forked from uncloud/uncloud
uncloud cli converted to argparse
This commit is contained in:
parent
50fb135726
commit
3296e524cc
13 changed files with 284 additions and 287 deletions
|
|
@ -1,8 +1,43 @@
|
|||
import os
|
||||
import argparse
|
||||
|
||||
from uncloud.settings import settings
|
||||
from uncloud.shared import shared
|
||||
|
||||
arg_parser = argparse.ArgumentParser('configure', add_help=False)
|
||||
configure_subparsers = arg_parser.add_subparsers(dest='subcommand')
|
||||
|
||||
otp_parser = configure_subparsers.add_parser('otp')
|
||||
otp_parser.add_argument('--verification-controller-url', required=True, metavar='URL')
|
||||
otp_parser.add_argument('--auth-name', required=True, metavar='OTP-NAME')
|
||||
otp_parser.add_argument('--auth-realm', required=True, metavar='OTP-REALM')
|
||||
otp_parser.add_argument('--auth-seed', required=True, metavar='OTP-SEED')
|
||||
|
||||
network_parser = configure_subparsers.add_parser('network')
|
||||
network_parser.add_argument('--prefix-length', required=True, type=int)
|
||||
network_parser.add_argument('--prefix', required=True)
|
||||
network_parser.add_argument('--vxlan-phy-dev', required=True)
|
||||
|
||||
netbox_parser = configure_subparsers.add_parser('netbox')
|
||||
netbox_parser.add_argument('--url', required=True)
|
||||
netbox_parser.add_argument('--token', required=True)
|
||||
|
||||
ssh_parser = configure_subparsers.add_parser('ssh')
|
||||
ssh_parser.add_argument('--username', default='root')
|
||||
ssh_parser.add_argument('--private-key-path', default=os.path.expanduser('~/.ssh/id_rsa'),)
|
||||
|
||||
storage_parser = configure_subparsers.add_parser('storage')
|
||||
storage_parser.add_argument('--file-dir', required=True)
|
||||
storage_parser_subparsers = storage_parser.add_subparsers(dest='storage_backend')
|
||||
|
||||
filesystem_storage_parser = storage_parser_subparsers.add_parser('filesystem')
|
||||
filesystem_storage_parser.add_argument('--vm-dir', required=True)
|
||||
filesystem_storage_parser.add_argument('--image-dir', required=True)
|
||||
|
||||
ceph_storage_parser = storage_parser_subparsers.add_parser('ceph')
|
||||
ceph_storage_parser.add_argument('--ceph-vm-pool', required=True)
|
||||
ceph_storage_parser.add_argument('--ceph-image-pool', required=True)
|
||||
|
||||
|
||||
def update_config(section, kwargs):
|
||||
uncloud_config = shared.etcd_client.get(
|
||||
|
|
@ -19,61 +54,9 @@ def update_config(section, kwargs):
|
|||
)
|
||||
|
||||
|
||||
def configure_parser(parser):
|
||||
configure_subparsers = parser.add_subparsers(dest="subcommand")
|
||||
|
||||
otp_parser = configure_subparsers.add_parser("otp")
|
||||
otp_parser.add_argument(
|
||||
"--verification-controller-url", required=True, metavar="URL"
|
||||
)
|
||||
otp_parser.add_argument(
|
||||
"--auth-name", required=True, metavar="OTP-NAME"
|
||||
)
|
||||
otp_parser.add_argument(
|
||||
"--auth-realm", required=True, metavar="OTP-REALM"
|
||||
)
|
||||
otp_parser.add_argument(
|
||||
"--auth-seed", required=True, metavar="OTP-SEED"
|
||||
)
|
||||
|
||||
network_parser = configure_subparsers.add_parser("network")
|
||||
network_parser.add_argument(
|
||||
"--prefix-length", required=True, type=int
|
||||
)
|
||||
network_parser.add_argument("--prefix", required=True)
|
||||
network_parser.add_argument("--vxlan-phy-dev", required=True)
|
||||
|
||||
netbox_parser = configure_subparsers.add_parser("netbox")
|
||||
netbox_parser.add_argument("--url", required=True)
|
||||
netbox_parser.add_argument("--token", required=True)
|
||||
|
||||
ssh_parser = configure_subparsers.add_parser("ssh")
|
||||
ssh_parser.add_argument("--username", default="root")
|
||||
ssh_parser.add_argument(
|
||||
"--private-key-path",
|
||||
default=os.path.expanduser("~/.ssh/id_rsa"),
|
||||
)
|
||||
|
||||
storage_parser = configure_subparsers.add_parser("storage")
|
||||
storage_parser.add_argument("--file-dir", required=True)
|
||||
storage_parser_subparsers = storage_parser.add_subparsers(
|
||||
dest="storage_backend"
|
||||
)
|
||||
|
||||
filesystem_storage_parser = storage_parser_subparsers.add_parser(
|
||||
"filesystem"
|
||||
)
|
||||
filesystem_storage_parser.add_argument("--vm-dir", required=True)
|
||||
filesystem_storage_parser.add_argument("--image-dir", required=True)
|
||||
|
||||
ceph_storage_parser = storage_parser_subparsers.add_parser("ceph")
|
||||
ceph_storage_parser.add_argument("--ceph-vm-pool", required=True)
|
||||
ceph_storage_parser.add_argument("--ceph-image-pool", required=True)
|
||||
|
||||
|
||||
def main(**kwargs):
|
||||
subcommand = kwargs.pop("subcommand")
|
||||
subcommand = kwargs.pop('subcommand')
|
||||
if not subcommand:
|
||||
pass
|
||||
arg_parser.print_help()
|
||||
else:
|
||||
update_config(subcommand, kwargs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue