Esempio n. 1
0
def do_set_app_params(gargs, args, leftovers):
    """Set application parameters. """

    request = {"version": "1.0", "params": command.get_params(leftovers)}

    headers = command.get_headers(gargs)

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

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

    accum = []

    accum.append("app_id ")
    accum.append(data['service_id'])
    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))
Esempio n. 2
0
def do_cmd(gargs, args, leftovers):
    """Load a worker. """

    request = {
        "version": "1.0",
        "name": args.name,
        "params": command.get_params(leftovers)
    }

    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)

    print(data['service_id'])
Esempio n. 3
0
def do_upsert_wifi_slice(gargs, args, _):
    """Create/update wifi slice. """

    headers = command.get_headers(gargs)

    request = {
        "version": "1.0",
        "slice_id": args.slice_id,
        "properties": {
            'amsdu_aggregation': False,
            'quantum': args.quantum,
            'sta_scheduler': 0
        }
    }

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

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

    accum = []

    accum.append("slice_id ")
    accum.append(str(slc['slice_id']))

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

    print(''.join(accum))
Esempio n. 4
0
def do_create_project(gargs, args, _):
    """ Add a new Project """

    request = {"version": "1.0", "desc": args.desc, "owner": args.owner}

    if args.ssid:

        request["wifi_props"] = {
            "bssid_type": args.ssid_type,
            "ssid": args.ssid
        }

    if args.mcc and args.mnc:

        plmnid = PLMNID(args.mcc, args.mnc)

        request["lte_props"] = {"plmnid": plmnid.to_dict()}

    headers = command.get_headers(gargs)

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

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

    print(project_id)
Esempio n. 5
0
def do_set_worker_params(gargs, args, leftovers):
    """Set worker parameters. """

    request = {"version": "1.0", "params": command.get_params(leftovers)}

    headers = command.get_headers(gargs)

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

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

    accum = []

    accum.append("worker id ")
    accum.append(data['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))
Esempio n. 6
0
def do_cmd(gargs, args, _):
    """Create/update LTE slice. """

    headers = command.get_headers(gargs)

    request = {
        "version": "1.0",
        "slice_id": args.slice_id,
        "properties": {
            'rbgs': args.rbgs,
            'ue_scheduler': 0
        }
    }

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

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

    accum = []

    accum.append("slice_id ")
    accum.append(str(slc['slice_id']))

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

    print(''.join(accum))
Esempio n. 7
0
def do_load_app(gargs, args, leftovers):
    """Load and application. """

    request = {
        "version": "1.0",
        "name": args.name,
        "params": command.get_params(leftovers)
    }

    headers = command.get_headers(gargs)

    url = '/api/v1/projects/%s/apps' % args.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' % (args.project_id, app_id)
    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    print(data['service_id'])
def do_cmd(gargs, args, _):
    """Add a new lenddevs."""

    headers = command.get_headers(gargs)
    url = '/api/v1/lns/lenddevs/'

    if args.json_file:

        with open(args.json_file, 'r') as file:
            lenddevs = json.load(file)

        for lenddev in lenddevs:
            dev_eui = lenddev.get("devEUI")
            if not dev_eui:
                print("devEUI missing, cannot add device")
                return
            request = dict(version="1.0")
            for key, value in KEYS.items():
                if value in lenddev:
                    request[key] = lenddev[value]
            # url = '/api/v1/lns/lenddevs/%s' % devEUI
            try:
                response, _ = command.connect(gargs, ('POST', url + dev_eui),
                                              201,
                                              request,
                                              headers=headers,
                                              exit_on_err=False)
            except Exception as err:
                print(err)
            else:
                location = response.headers['Location']
                tokens = location.split("/")
                dev_eui = tokens[-1]
                print("lEndDev (%s) added to LNS  Database" % dev_eui)
            print()

    else:

        request = {}
        url += args.devEUI
        try:
            response, _ = command.connect(gargs, ('POST', url),
                                          201,
                                          request,
                                          headers=headers,
                                          exit_on_err=False)
        except Exception as err:
            print(err)
        else:
            location = response.headers['Location']
            tokens = location.split("/")
            dev_eui = tokens[-1]
            print("lEndDev (%s) added to LNS  Database" % dev_eui)
        print()
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))
Esempio n. 10
0
def do_add_wtp(gargs, args, _):
    """ Add a new WTP """

    request = {"version": "1.0", "addr": args.addr}

    if args.desc:
        request["desc"] = args.desc

    headers = command.get_headers(gargs)

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

    print(args.addr)
Esempio n. 11
0
def do_unload_all_apps(gargs, args, _):
    """Unload and application. """

    headers = command.get_headers(gargs)

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

    for entry in data.values():

        app_id = entry['service_id']

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

        print(app_id)
def do_cmd(gargs, *_):
    """Unload all workers. """

    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['service_id']

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

        print(worker_id)
Esempio n. 13
0
def do_unload_all_workers(gargs, args, leftovers):
    """Unload and application. """

    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['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)
Esempio n. 14
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))
Esempio n. 15
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))
Esempio n. 16
0
def do_cmd(gargs, args, _):
    """Set worker callback."""

    request = {
        "version": "1.0",
        "name": args.name,
        "callback_type": CALLBACK_REST,
        "callback": args.callback
    }

    headers = command.get_headers(gargs)
    url = '/api/v1/workers/%s/callbacks' % args.uuid
    command.connect(gargs, ('POST', url), 201, request, headers=headers)

    url = '/api/v1/workers/%s/callbacks/%s' % (args.uuid, args.name)

    _, data = command.connect(gargs, ('GET', url), 200, headers=headers)

    print(data)
Esempio n. 17
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))
Esempio n. 18
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)
Esempio n. 19
0
def do_load_worker(gargs, args, leftovers):
    """Load and application. """

    request = {
        "version": "1.0",
        "name": args.name,
        "params": command.get_params(leftovers)
    }

    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['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))
Esempio n. 20
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))
Esempio n. 21
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)