def execute(client, args): cci = CCIManager(client) cci_id = resolve_id(cci, args.get('<identifier>')) ready = cci.wait_for_transaction(cci_id, int(args.get('--wait') or 0)) if ready: return "READY" else: raise CLIAbort("Instance %s not ready" % cci_id)
def execute(client, args): cci = CCIManager(client) if args['--userdata'] and args['--userfile']: raise ArgumentError('[-u | --userdata] not allowed with ' '[-F | --userfile]') if args['--userfile']: if not os.path.exists(args['--userfile']): raise ArgumentError( 'File does not exist [-u | --userfile] = %s' % args['--userfile']) data = { "hourly": args['--hourly'], "cpus": args['--cpu'], "domain": args['--domain'], "hostname": args['--hostname'], "private": args['--private'], "local_disk": True, } try: memory = int(args['--memory']) if memory < 1024: memory = memory * 1024 except ValueError: unit = args['--memory'][-1] memory = int(args['--memory'][0:-1]) if unit in ['G', 'g']: memory = memory * 1024 if unit in ['T', 'r']: memory = memory * 1024 * 1024 data["memory"] = memory if args['--monthly']: data["hourly"] = False if args.get('--os'): data["os_code"] = args['--os'] if args.get('--image'): data["image_id"] = args['--image'] if args.get('--datacenter'): data["datacenter"] = args['--datacenter'] if args.get('--network'): data['nic_speed'] = args.get('--network') if args.get('--userdata'): data['userdata'] = args['--userdata'] elif args.get('userfile'): f = open(args['--userfile'], 'r') try: data['userdata'] = f.read() finally: f.close() t = Table(['Item', 'cost']) t.align['Item'] = 'r' t.align['cost'] = 'r' if args.get('--test'): result = cci.verify_create_instance(**data) total_monthly = 0.0 total_hourly = 0.0 for price in result['prices']: total_monthly += float(price.get('recurringFee', 0.0)) total_hourly += float(price.get('hourlyRecurringFee', 0.0)) if args.get('--hourly'): rate = "%.2f" % float(price['hourlyRecurringFee']) else: rate = "%.2f" % float(price['recurringFee']) t.add_row([price['item']['description'], rate]) if args.get('--hourly'): total = total_hourly else: total = total_monthly billing_rate = 'monthly' if args.get('--hourly'): billing_rate = 'hourly' t.add_row(['Total %s cost' % billing_rate, "%.2f" % total]) output = SequentialOutput(blanks=False) output.append(t) output.append(FormattedItem( '', ' -- ! Prices reflected here are retail and do not ' 'take account level discounts and are not guarenteed.') ) elif args['--really'] or confirm( "This action will incur charges on your account. Continue?"): result = cci.create_instance(**data) t = Table(['name', 'value']) t.align['name'] = 'r' t.align['value'] = 'l' t.add_row(['id', result['id']]) t.add_row(['created', result['createDate']]) t.add_row(['guid', result['globalIdentifier']]) output = t else: raise CLIAbort('Aborting CCI order.') if args.get('--wait') or 0 and not args.get('--test'): ready = cci.wait_for_transaction( result['id'], int(args.get('--wait') or 1)) t.add_row(['ready', ready]) return output