예제 #1
0
def cluster(cmd_proc, operation, cluster_name, cluster_id, node_count, vdc,
            network_name):
    """Operations with Container Service Extension"""
    result = cmd_proc.re_login()
    if not result:
        utils.print_error('Not logged in', cmd_proc)
        sys.exit(1)
    if vdc is None:
        vdc = cmd_proc.vdc_name
    the_vdc = cmd_proc.vca.get_vdc(vdc)
    if the_vdc is None:
        utils.print_error("VDC not found '%s'" % vdc, cmd_proc)
        sys.exit(1)
    if cmd_proc.vca.vcloud_session and \
       cmd_proc.vca.vcloud_session.organization:
        cse = Cluster(session=cmd_proc.vca.vcloud_session,
                      verify=cmd_proc.verify,
                      log=cmd_proc.vca.log)
        if 'list' == operation:
            headers = ['Name', 'Id', 'Status', 'Leader IP', 'Masters', 'Nodes']
            table1 = []
            try:
                clusters = cse.get_clusters()
            except Exception:
                utils.print_error("can't get list of clusters", cmd_proc, cse)
                sys.exit(1)
            n = 1
            for cluster in clusters:
                cluster['name'] = 'k8s-cluster-%s' % n
                n += 1
                table1.append([
                    cluster['name'],
                    cluster['cluster_id'],
                    cluster['status'],
                    cluster['leader_endpoint'],
                    len(cluster['master_nodes']),
                    len(cluster['nodes']),
                ])
            table = sorted(table1, key=operator.itemgetter(0), reverse=False)
            utils.print_table(
                "Available clusters in VDC '%s', profile '%s':" %
                (vdc, cmd_proc.profile), headers, table, cmd_proc)
        elif 'create' == operation:
            utils.print_message("creating cluster '%s'" % (cluster_name))
            try:
                r = cse.create_cluster(vdc, network_name, cluster_name,
                                       node_count)
                t = Task(session=cmd_proc.vca.vcloud_session,
                         verify=cmd_proc.verify,
                         log=cmd_proc.vca.log)
                task = t.get_task(r['task_id'])
                utils.display_progress(
                    task, cmd_proc,
                    cmd_proc.vca.vcloud_session.get_vcloud_headers())
            except Exception:
                utils.print_error("can't create cluster", cmd_proc, cse)
                sys.exit(1)
        elif 'delete' == operation:
            utils.print_message("deleting cluster with id '%s'" % (cluster_id))
            try:
                r = cse.delete_cluster(cluster_id)
                t = Task(session=cmd_proc.vca.vcloud_session,
                         verify=cmd_proc.verify,
                         log=cmd_proc.vca.log)
                task = t.get_task(r['task_id'])
                utils.display_progress(
                    task, cmd_proc,
                    cmd_proc.vca.vcloud_session.get_vcloud_headers())
            except Exception:
                utils.print_error("can't delete cluster", cmd_proc, cse)
                sys.exit(1)
        else:
            utils.print_error('not implemented', cmd_proc)
            sys.exit(1)
    cmd_proc.save_current_config()
예제 #2
0
for t in tasks.get_Task():
    print('%s, %s, %s, %s, %s, %s->%s' %
          (t.get_id().split(':')[-1], t.get_operation(),
           t.get_Owner().get_name(), t.get_status(), t.get_Progress(),
           str(t.get_startTime()).split('.')[0], str(
               t.get_endTime()).split('.')[0]))
    task_ids.append(t.get_id().split(':')[-1])

# task_ids = []
# task_ids.append('b4dca9a2-ee70-4cb8-a48d-a32d80b65c05')
# task_ids.append('0333d74f-4fe6-48b4-9154-d77ae97f7870')
# task_ids.append('229e39c6-ce4e-426f-95ee-e6c7d81259c7')

task = Task(session=vca_system.vcloud_session, verify=verify, log=log)
for task_id in task_ids:
    t = task.get_task(task_id)
    if t is None:
        print('task %s not found' % task_id)
    else:
        namespace = t.get_serviceNamespace()
        operation_name = t.get_operationName()
        operation_description = t.get_operation()
        org_id = vca_tenant.vcloud_session.organization.get_id().split(':')[-1]
        org_name = vca_tenant.vcloud_session.organization.get_name()

        print('%s, %s, %s, %s, %s, %s->%s' %
              (t.get_id().split(':')[-1], t.get_operation(),
               t.get_Owner().get_name(), t.get_status(), t.get_Progress(),
               str(t.get_startTime()).split('.')[0], str(
                   t.get_endTime()).split('.')[0]))
        if t.get_status() == 'running':