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))
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'])
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))
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)
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))
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))
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))
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)
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)
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)
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))
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))
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)
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))
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)
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))
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))
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)