def offline_version(ctx, group, pod, version): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] try: r = eru.offline_version(group, pod, ctx.obj['appname'], version) except EruException as e: click.echo(error(e.message)) return count = 1 task_status = {i: 0 for i in r['tasks']} while not all(s != 0 for s in task_status.values()): if count < 10: click.echo('o' * count + '\r', nl=False) elif count % 2: click.echo('o' * 10 + 'o\r', nl=False) else: click.echo('o' * 10 + 'x\r', nl=False) for task_id, status in task_status.iteritems(): if status != 0: continue try: task = eru.get_task(task_id) if task['finished']: task_status[task_id] = 1 except EruException: task_status[task_id] = -1 time.sleep(0.5) count += 1 fcount = len([s for s in task_status.values() if s == -1]) scount = len([s for s in task_status.values() if s == 1]) click.echo(info('Done.' + count * ' ')) click.echo(info('%s failed, %s succeeded.' % (fcount, scount)))
def deploy_public_container(ctx, group, pod, entrypoint, env, ncontainer, version, network, ip, raw, image): eru = ctx.obj['eru'] network_ids = [] for nname in network: try: n = eru.get_network(nname) except EruException as e: click.echo(error(e.message)) ctx.exit(-1) else: network_ids.append(n['id']) if not version: version = ctx.obj['short_sha1'] try: r = eru.deploy_public( group, pod, ctx.obj['appname'], ncontainer, version, entrypoint, env, network_ids, raw, image, ip ) except EruException as e: click.echo(error(e.message)) return count = 1 task_status = {i: 0 for i in r['tasks']} while not all(s != 0 for s in task_status.values()): if count < 10: click.echo('o' * count + '\r', nl=False) elif count % 2: click.echo('o' * 10 + 'o\r', nl=False) else: click.echo('o' * 10 + 'x\r', nl=False) for task_id, status in task_status.iteritems(): if status != 0: continue try: task = eru.get_task(task_id) if task['finished']: task_status[task_id] = 1 except EruException: task_status[task_id] = -1 time.sleep(0.5) count += 1 fcount = len([s for s in task_status.values() if s == -1]) scount = len([s for s in task_status.values() if s == 1]) click.echo(info('Done.' + count * ' ')) click.echo(info('%s failed, %s succeeded.' % (fcount, scount)))
def remove_containers(ctx, container_ids): eru = ctx.obj['eru'] r = eru.remove_containers(container_ids) if r['r']: click.echo(error(r['msg'])) return count = 1 task_status = {i: 0 for i in r['tasks']} while not all(s != 0 for s in task_status.values()): if count < 10: click.echo('o' * count + '\r', nl=False) elif count % 2: click.echo('o' * 10 + 'o\r', nl=False) else: click.echo('o' * 10 + 'x\r', nl=False) for task_id, status in task_status.iteritems(): if status != 0: continue task = eru.get_task(task_id) if 'r' in task: task_status[task_id] = -1 if task['finished']: task_status[task_id] = 1 time.sleep(0.5) count += 1 fcount = len([s for s in task_status.values() if s == -1]) scount = len([s for s in task_status.values() if s == 1]) click.echo(info('Done.' + count * ' ')) click.echo(info('%s failed, %s succeeded.' % (fcount, scount)))
def create_group(ctx, name, description): eru = ctx.obj['eru'] r = eru.create_group(name, description) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('Group created successfully'))
def assign_host_to_group(ctx, addr, group_name): eru = ctx.obj['eru'] r = eru.assign_host_to_group(addr, group_name) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('Host assigned to group successfully'))
def create_host(ctx, addr, pod_name): eru = ctx.obj['eru'] r = eru.create_host(addr, pod_name) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('Host created successfully'))
def assign_pod_to_group(ctx, pod_name, group_name): eru = ctx.obj['eru'] r = eru.assign_pod_to_group(pod_name, group_name) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('Pod assigned to group successfully'))
def create_pod(ctx, name, description): eru = ctx.obj['eru'] try: eru.create_pod(name, description) click.echo(info('Pod created successfully')) except EruException as e: click.echo(error(e.message))
def create_network(ctx, name, netspace): eru = ctx.obj['eru'] try: eru.create_network(name, netspace) click.echo(info('Network created successfully')) except EruException as e: click.echo(error(e.message))
def assign_pod_to_group(ctx, pod_name, group_name): eru = ctx.obj['eru'] try: eru.assign_pod_to_group(pod_name, group_name) click.echo(info('Pod assigned to group successfully')) except EruException as e: click.echo(error(e.message))
def create_host(ctx, addr, pod_name): eru = ctx.obj['eru'] try: eru.create_host(addr, pod_name) click.echo(info('Host created successfully')) except EruException as e: click.echo(error(e.message))
def assign_host_to_group(ctx, addr, group_name): eru = ctx.obj['eru'] try: eru.assign_host_to_group(addr, group_name) click.echo(info('Host assigned to group successfully')) except EruException as e: click.echo(error(e.message))
def register_app_version(ctx): eru = ctx.obj['eru'] r = eru.register_app_version(ctx.obj['appname'], ctx.obj['sha1'], ctx.obj['remote'], ctx.obj['appname'], ctx.obj['appconfig']) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('Register successfully'))
def as_form(title, content): empty = not bool(content) if empty: content = [['' for _ in title]] header, contents = tabulate(content, headers=title).split('-\n', 1) # tricky click.echo(info(header + '-')) if not empty: click.echo(contents)
def register_app_version(ctx): eru = ctx.obj['eru'] r = eru.register_app_version(ctx.obj['appname'], ctx.obj['sha1'], ctx.obj['remote'], ctx.obj['appname'], ctx.obj['appconfig']) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('Register successfully'))
def as_form(title, content): empty = not bool(content) if empty: content = [['' for _ in title]] header, contents = tabulate(content, headers=title).split('-\n', 1) # tricky click.echo(info(header + '-')) if not empty: click.echo(contents)
def update_version(ctx, group, pod, version): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] r = eru.update_version(group, pod, ctx.obj['appname'], version) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Update successfully'))
def update_version(ctx, group, pod, version): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] r = eru.update_version(group, pod, ctx.obj['appname'], version) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Update successfully'))
def bind_container_network(ctx, container_id, network): if not network: click.echo(error('at least bind 1 network')) return eru = ctx.obj['eru'] try: r = eru.bind_container_network(ctx.obj['appname'], container_id, network) except EruException as e: click.echo(error(e.message)) return if r['r']: click.echo(error(r['msg'])) return rs = ','.join(ip['address'] for ip in r['msg']) click.echo(info('Done.')) click.echo(info('%s bound' % rs))
def remove_containers(ctx, group, pod, host, version, ncontainer): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] r = eru.remove_containers(group, pod, ctx.obj['appname'], version, host, ncontainer) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Remove successfully'))
def deploy_public_container(ctx, group, pod, entrypoint, env, ncontainer, version): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] r = eru.deploy_public(group, pod, ctx.obj['appname'], ncontainer, version, entrypoint, env) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Deploy successfully'))
def remove_containers(ctx, group, pod, host, version, ncontainer): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] r = eru.remove_containers(group, pod, ctx.obj['appname'], version, host, ncontainer) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Remove successfully'))
def deploy_public_container(ctx, group, pod, entrypoint, env, ncontainer, version): eru = ctx.obj['eru'] if not version: version = ctx.obj['short_sha1'] r = eru.deploy_public(group, pod, ctx.obj['appname'], ncontainer, version, entrypoint, env) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Deploy successfully'))
def alloc_resource(ctx, env, res_name, name): if name == '': name = res_name if res_name not in ('influxdb', 'mysql'): click.echo(error('Res name must be influxdb/mysql')) ctx.exit(-1) eru = ctx.obj['eru'] r = eru.alloc_resource(ctx.obj['appname'], env, res_name, name) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Alloc successfully'))
def alloc_resource(ctx, env, res_name, name): if name == '': name = res_name if res_name not in ('influxdb', 'mysql'): click.echo(error('Res name must be influxdb/mysql')) ctx.exit(-1) eru = ctx.obj['eru'] r = eru.alloc_resource(ctx.obj['appname'], env, res_name, name) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Alloc successfully'))
def set_app_env(ctx, env, vs): kv = {} for v in vs: if not '=' in v: click.echo(error('Env must be like key=value')) ctx.exit(-1) key, value = v.split('=', 1) kv[key] = value eru = ctx.obj['eru'] try: eru.set_app_env(ctx.obj['appname'], env, **kv) click.echo(info('env variables set successfully')) except EruException as e: click.echo(error(e.message))
def set_app_env(ctx, env, vs): kv = {} for v in vs: if not '=' in v: click.echo(error('Env must be like key=value')) ctx.exit(-1) key, value = v.split('=', 1) kv[key] = value eru = ctx.obj['eru'] r = eru.set_app_env(ctx.obj['appname'], env, **kv) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('env variables set successfully'))
def register_app_version(ctx, raw): eru = ctx.obj['eru'] try: eru.register_app_version( ctx.obj['appname'], ctx.obj['sha1'], ctx.obj['remote'], ctx.obj['appname'], ctx.obj['appconfig'], raw ) click.echo(info('Register successfully')) except EruException as e: click.echo(error(e.message))
def set_app_env(ctx, env, vs): kv = {} for v in vs: if not '=' in v: click.echo(error('Env must be like key=value')) ctx.exit(-1) key, value = v.split('=', 1) kv[key] = value eru = ctx.obj['eru'] r = eru.set_app_env(ctx.obj['appname'], env, **kv) if r['r']: click.echo(error(r['msg'])) else: click.echo(info('env variables set successfully'))
def deploy_public_container(ctx, group, pod, entrypoint, env, ncontainer, version, network): eru = ctx.obj['eru'] network_ids = [] for nname in network: n = eru.get_network_by_name(nname) if 'r' in n and n['r'] == 1: click.echo(error(n['msg'])) ctx.exit(-1) network_ids.append(n['id']) if not version: version = ctx.obj['short_sha1'] r = eru.deploy_public(group, pod, ctx.obj['appname'], ncontainer, version, entrypoint, env, network_ids) if r['r']: click.echo(error(r['msg'])) else: # TODO get tasks id click.echo(info('Deploy successfully'))