From 2914bd3d3799cc771b9081192b02d6af91541cce Mon Sep 17 00:00:00 2001 From: meow Date: Mon, 11 Nov 2019 23:44:17 +0500 Subject: [PATCH] options added to accomodate networking --- commands/network.py | 25 +++++++++++++++++++++++++ commands/user.py | 11 +++++++++++ commands/vm.py | 9 +++++---- ucloud.py | 3 ++- 4 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 commands/network.py diff --git a/commands/network.py b/commands/network.py new file mode 100644 index 0000000..a41e1a8 --- /dev/null +++ b/commands/network.py @@ -0,0 +1,25 @@ +from commands.helper import load_dump_pretty, OTPCredentials +from decouple import config + +import click +import requests + +@click.group() +def network(): + pass + + +@network.command("create") +@click.option("--name", envvar="OTP_NAME", required=True) +@click.option("--realm", envvar="OTP_REALM", required=True) +@click.option("--seed", envvar="OTP_SEED", required=True) +@click.option("--network-name", required=True) +@click.option("--network-type", required=True) +def create(name, realm, seed, network_name, network_type): + data = { + **OTPCredentials(name, realm, seed).get_json(), + "network_name": network_name, + "type": network_type + } + r = requests.post("{}/network/create".format(config('UCLOUD_API_SERVER')), json=data) + print(load_dump_pretty(r.content)) diff --git a/commands/user.py b/commands/user.py index abd4266..3c1fd88 100755 --- a/commands/user.py +++ b/commands/user.py @@ -29,6 +29,17 @@ def list_vms(name, realm, seed): r = requests.get("{}/user/vms".format(config('UCLOUD_API_SERVER')), json=data) print(load_dump_pretty(r.content)) + +@user.command("network") +@click.option("--name", envvar="OTP_NAME", required=True) +@click.option("--realm", envvar="OTP_REALM", required=True) +@click.option("--seed", envvar="OTP_SEED", required=True) +def list_files(name, realm, seed): + data = OTPCredentials(name, realm, seed).get_json() + r = requests.get("{}/user/networks".format(config('UCLOUD_API_SERVER')), json=data) + print(load_dump_pretty(r.content)) + + @user.command("add-ssh") @click.option("--name", envvar="OTP_NAME", required=True) @click.option("--realm", envvar="OTP_REALM", required=True) diff --git a/commands/vm.py b/commands/vm.py index 8ece029..21813ff 100755 --- a/commands/vm.py +++ b/commands/vm.py @@ -27,8 +27,9 @@ def vm(): @click.option("--ram", required=True) @click.option("--os-ssd", required=True) @click.option("--hdd", default=list(), multiple=True) -@click.option("--image-uuid", required=True) -def create(name, realm, seed, vm_name, cpu, ram, os_ssd, hdd, image_uuid): +@click.option("--image", required=True) +@click.option("--network", default=list(), multiple=True) +def create(name, realm, seed, vm_name, cpu, ram, os_ssd, hdd, image, network): data = { **OTPCredentials(name, realm, seed).get_json(), "vm_name": vm_name, @@ -38,9 +39,9 @@ def create(name, realm, seed, vm_name, cpu, ram, os_ssd, hdd, image_uuid): 'os-ssd': os_ssd, 'hdd': hdd }, - "image_uuid": image_uuid, + "network": network, + "image": image, } - print(data) r = requests.post("{}/vm/create".format(config('UCLOUD_API_SERVER')), json=data) print(load_dump_pretty(r.content)) diff --git a/ucloud.py b/ucloud.py index ceb26fc..3713d58 100755 --- a/ucloud.py +++ b/ucloud.py @@ -4,7 +4,7 @@ from commands.vm import vm from commands.user import user from commands.host import host from commands.image import image - +from commands.network import network @click.group() def entry_point(): @@ -15,6 +15,7 @@ entry_point.add_command(vm) entry_point.add_command(user) entry_point.add_command(image) entry_point.add_command(host) +entry_point.add_command(network) if __name__ == "__main__": entry_point()