2
0
mirror of https://github.com/xcat2/confluent.git synced 2024-11-22 09:32:21 +00:00
confluent/confluent_server/bin/osimage

53 lines
1.8 KiB
Plaintext
Raw Normal View History

2020-05-12 13:48:27 +00:00
#!/usr/bin/python2
import argparse
import os.path
2020-05-12 13:48:27 +00:00
import sys
import time
path = os.path.dirname(os.path.realpath(__file__))
path = os.path.realpath(os.path.join(path, '..', 'lib', 'python'))
if path.startswith('/opt'):
sys.path.append(path)
import confluent.client as client
2020-05-12 13:48:27 +00:00
def main(args):
ap = argparse.ArgumentParser(description='Manage OS deployment resources')
sp = ap.add_subparsers(dest='command')
2020-05-12 13:53:46 +00:00
osip = sp.add_parser('import', help='Import an OS image from an ISO image')
2020-05-12 13:48:27 +00:00
osip.add_argument('imagefile', help='File to use for source of importing')
cmdset = ap.parse_args()
2020-05-12 13:53:46 +00:00
if cmdset.command == 'import':
2020-05-12 13:48:27 +00:00
osimport(cmdset.imagefile)
def osimport(imagefile):
c = client.Command()
imagefile = os.path.abspath(imagefile)
2020-05-12 13:48:27 +00:00
importing = False
shortname = None
for rsp in c.create('/deployment/importing/', {'filename': imagefile}):
if 'target' in rsp:
importing = True
shortname = rsp['name']
2020-05-12 13:48:27 +00:00
print('Importing from {0} to {1}'.format(imagefile, rsp['target']))
else:
print(repr(rsp))
while importing:
for rsp in c.read('/deployment/importing/{0}'.format(shortname)):
if 'progress' in rsp:
sys.stdout.write('{0}: {1:.2f}% \r'.format(rsp['phase'],
rsp['progress']))
if rsp['phase'] == 'complete':
importing = False
sys.stdout.write('\n')
for profile in rsp['profiles']:
print('Deployment profile created: {0}'.format(profile))
sys.stdout.flush()
else:
print(repr(rsp))
time.sleep(0.5)
list(c.delete('/deployment/importing/{0}'.format(shortname)))
if __name__ == '__main__':
main(sys.argv)