예제 #1
0
def do_list_apps(gargs, args, leftovers):
    """List currently running application. """

    if len(leftovers) != 1:
        print("Invalid parameter, run help list-applications")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])
    url = '/api/v1/projects/%s/apps' % project_id
    _, data = command.connect(gargs, ('GET', url), 200)

    for entry in data:

        accum = []

        accum.append("app id ")
        accum.append(entry['params']['service_id'])
        accum.append(" status RUNNING ")
        accum.append("\n  name: ")
        accum.append(entry['name'])

        accum.append("\n  params:")

        for k, val in entry['params'].items():
            accum.append("\n    %s: %s" % (k, val))

        print(''.join(accum))
예제 #2
0
def do_list_apps_catalog(gargs, args, leftovers):
    """List application that can be loaded. """

    if len(leftovers) != 1:
        print("Invalid parameter, run help list-applications")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])
    url = '/api/v1/projects/%s/catalog' % project_id
    _, data = command.connect(gargs, ('GET', url), 200)

    for entry in data:

        accum = []

        accum.append("name ")
        accum.append(entry['name'])
        accum.append("\n")

        accum.append("  desc: ")
        accum.append(entry['desc'])

        accum.append("\n  params:")

        for k, val in entry['params'].items():
            if k in ('service_id', 'project_id'):
                continue
            accum.append("\n    %s: %s" % (k, val['desc']))
            if 'default' in val:
                accum.append(" Default: %s." % val['default'])
            accum.append(" Type: %s." % val['type'])
            accum.append(" Mandatory: %s." % val['mandatory'])

        print(''.join(accum))
예제 #3
0
def do_cmd(gargs, args, leftovers):
    """ Help execute method. """

    if len(leftovers) != 1:
        print("No command specified")
        command.print_available_cmds()
        sys.exit()

    try:
        (parse_args, _) = command.CMDS[leftovers[0]]
        parse_args(['--help'], leftovers[0])
    except KeyError:
        print("Invalid command: %s is an unknown command." % leftovers[0])
        sys.exit()
예제 #4
0
def do_upsert_lte_slice(gargs, args, leftovers):
    """Create/update lte slice. """

    params = command.get_params(leftovers)

    if len(leftovers) < 2:
        print("Invalid parameter, run help load-create-lte-slice")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])
    slice_id = int(leftovers[1])

    request = {
        "version": "1.0",
        "slice_id": slice_id
    }

    if params:
        request['properties'] = params

    headers = command.get_headers(gargs)

    url = '/api/v1/projects/%s/lte_slices' % project_id
    command.connect(gargs, ('POST', url), 201, request, headers=headers)

    url = '/api/v1/projects/%s' % project_id
    _, prj = command.connect(gargs, ('GET', url), 200, headers=headers)

    url = '/api/v1/projects/%s/lte_slices/%u' % (project_id, slice_id)
    _, slc = command.connect(gargs, ('GET', url), 200, headers=headers)

    accum = []

    accum.append("project id ")
    accum.append(prj['project_id'])
    accum.append(" PLMNID ")

    if 'lte_props' not in prj or not prj['lte_props']:
        accum.append("UNDEFINED")
    else:
        accum.append(prj['lte_props']['plmnid'])

    accum.append("\nSlice ID: ")
    accum.append(str(slc['slice_id']))

    for k, val in slc['properties'].items():
        accum.append("\n    %s: %s" % (k, val))

    print(''.join(accum))
예제 #5
0
def do_unload_worker(gargs, args, leftovers):
    """Unload and application. """

    if len(leftovers) != 1:
        print("Invalid parameter, run help unload-worker")
        command.print_available_cmds()
        sys.exit()

    worker_id = uuid.UUID(leftovers[0])

    url = '/api/v1/workers/%s' % worker_id
    command.connect(gargs, ('DELETE', url), 204)

    print("worker id %s status STOPPED" % leftovers[0])
예제 #6
0
def do_unload_app(gargs, args, leftovers):
    """Unload and application. """

    if len(leftovers) != 2:
        print("Invalid parameter, run help load-application")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])
    app_id = uuid.UUID(leftovers[1])

    url = '/api/v1/projects/%s/apps/%s' % (project_id, app_id)
    command.connect(gargs, ('DELETE', url), 204)

    print("app id %s status STOPPED" % leftovers[1])
예제 #7
0
def do_delete_lte_slice(gargs, args, leftovers):
    """Delete lte slice. """

    if len(leftovers) != 2:
        print("Invalid parameter, run help load-delete-lte-slice")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])
    slice_id = int(leftovers[1])

    url = '/api/v1/projects/%s/lte_slices/%u' % (project_id, slice_id)
    command.connect(gargs, ('DELETE', url), 204)

    print("slice id %u status DELETED" % slice_id)
예제 #8
0
def do_load_worker(gargs, args, leftovers):
    """Load and application. """

    params = command.get_params(leftovers)

    if not leftovers:
        print("Invalid parameter, run help load-worker")
        command.print_available_cmds()
        sys.exit()

    request = {
        "version": "1.0",
        "name": leftovers[0],
    }

    if params:
        request['params'] = params

    headers = command.get_headers(gargs)

    url = '/api/v1/workers'
    response, _ = command.connect(gargs, ('POST', url),
                                  201,
                                  request,
                                  headers=headers)

    location = response.headers['Location']
    tokens = location.split("/")
    worker_id = tokens[-1]

    url = '/api/v1/workers/%s' % worker_id
    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    accum = []

    accum.append("worker id ")
    accum.append(data['params']['service_id'])
    accum.append(" status RUNNING ")
    accum.append("\n  name: ")
    accum.append(data['name'])

    accum.append("\n  params:")

    for k, val in data['params'].items():
        accum.append("\n    %s: %s" % (k, val))

    print(''.join(accum))
예제 #9
0
def do_load_app(gargs, args, leftovers):
    """Load and application. """

    params = command.get_params(leftovers)

    if len(leftovers) < 2:
        print("Invalid parameter, run help load-app")
        command.print_available_cmds()
        sys.exit()

    request = {
        "version": "1.0",
        "name": leftovers[1],
    }

    if params:
        request['params'] = params

    headers = command.get_headers(gargs)

    project_id = uuid.UUID(leftovers[0])
    url = '/api/v1/projects/%s/apps' % project_id
    response, _ = command.connect(gargs, ('POST', url), 201, request,
                                  headers=headers)

    location = response.headers['Location']
    tokens = location.split("/")
    app_id = tokens[-1]

    url = '/api/v1/projects/%s/apps/%s' % (project_id, app_id)
    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    accum = []

    accum.append("app id ")
    accum.append(data['params']['service_id'])
    accum.append(" status RUNNING ")
    accum.append("\n  name: ")
    accum.append(data['name'])

    accum.append("\n  params:")

    for k, val in data['params'].items():
        accum.append("\n    %s: %s" % (k, val))

    print(''.join(accum))
예제 #10
0
def do_set_app_params(gargs, args, leftovers):
    """Set application parameters. """

    params = command.get_params(leftovers)

    if len(leftovers) < 2:
        print("Invalid parameter, run help set-app-params")
        command.print_available_cmds()
        sys.exit()

    request = {
        "version": "1.0",
    }

    if params:
        request['params'] = params

    headers = command.get_headers(gargs)

    project_id = uuid.UUID(leftovers[0])
    app_id = uuid.UUID(leftovers[1])

    url = '/api/v1/projects/%s/apps/%s' % (project_id, app_id)
    command.connect(gargs, ('PUT', url), 204, request, headers=headers)

    url = '/api/v1/projects/%s/apps/%s' % (project_id, app_id)
    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    accum = []

    accum.append("app id ")
    accum.append(data['params']['service_id'])
    accum.append(" status RUNNING ")
    accum.append("\n  name: ")
    accum.append(data['name'])

    accum.append("\n  params:")

    for k, val in data['params'].items():
        accum.append("\n    %s: %s" % (k, val))

    print(''.join(accum))
예제 #11
0
def do_unload_all_workers(gargs, args, leftovers):
    """Unload and application. """

    if leftovers:
        print("Invalid parameter, run help unload-all-workers")
        command.print_available_cmds()
        sys.exit()

    headers = command.get_headers(gargs)

    url = '/api/v1/workers'
    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    for entry in data.values():

        worker_id = entry['params']['service_id']

        url = '/api/v1/workers/%s' % worker_id
        command.connect(gargs, ('DELETE', url), 204, headers=headers)

        print("worker id %s status STOPPED" % worker_id)
예제 #12
0
def do_list_lte_slices(gargs, args, leftovers):
    """List lte slices."""

    if len(leftovers) != 1:
        print("Invalid parameter, run help list-lte-slices")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])

    headers = command.get_headers(gargs)

    url = '/api/v1/projects/%s' % project_id
    _, prj = command.connect(gargs, ('GET', url), 200, headers=headers)

    url = '/api/v1/projects/%s/lte_slices' % project_id
    _, slcs = command.connect(gargs, ('GET', url), 200, headers=headers)

    accum = []

    accum.append("project id ")
    accum.append(prj['project_id'])
    accum.append(" PMMNID ")

    if 'lte_props' not in prj or not prj['lte_props']:
        accum.append("UNDEFINED")
    else:
        accum.append(prj['lte_props']['plmnid'])

    for slc in slcs.values():

        accum.append("\nSlice ID: ")
        accum.append(str(slc['slice_id']))

        for k, val in slc['properties'].items():
            accum.append("\n    %s: %s" % (k, val))

    print(''.join(accum))
예제 #13
0
def do_unload_all_apps(gargs, args, leftovers):
    """Unload and application. """

    if len(leftovers) != 1:
        print("Invalid parameter, run help load-application")
        command.print_available_cmds()
        sys.exit()

    project_id = uuid.UUID(leftovers[0])

    headers = command.get_headers(gargs)

    url = '/api/v1/projects/%s/apps' % project_id
    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    for entry in data:

        app_id = entry['params']['service_id']

        url = '/api/v1/projects/%s/apps/%s' % (project_id, app_id)
        command.connect(gargs, ('DELETE', url), 204, headers=headers)

        print("app id %s status STOPPED" % app_id)