Configuration/Setting module added
This commit is contained in:
parent
71279a968f
commit
bc58a6ed9c
11 changed files with 217 additions and 106 deletions
0
ucloud/configure/__init__.py
Normal file
0
ucloud/configure/__init__.py
Normal file
67
ucloud/configure/main.py
Normal file
67
ucloud/configure/main.py
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
import argparse
|
||||
import sys
|
||||
import os
|
||||
|
||||
from ucloud.settings import Settings
|
||||
|
||||
config = Settings()
|
||||
etcd_client = config.get_etcd_client()
|
||||
|
||||
def update_config(section, kwargs):
|
||||
uncloud_config = etcd_client.get(config.config_key,
|
||||
value_in_json=True)
|
||||
if not uncloud_config:
|
||||
uncloud_config = {}
|
||||
else:
|
||||
uncloud_config = uncloud_config.value
|
||||
|
||||
uncloud_config[section] = kwargs
|
||||
etcd_client.put(config.config_key, uncloud_config, value_in_json=True)
|
||||
|
||||
|
||||
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')
|
||||
if not subcommand:
|
||||
pass
|
||||
else:
|
||||
update_config(subcommand, kwargs)
|
||||
Loading…
Add table
Add a link
Reference in a new issue