def create_config(config_file, json_string):
- '''
+ """
Combines a YAML or JSON file with a JSON string into a Python3 structure
It loads the YAML or JSON file 'cfile' into a first dictionary.
It loads the JSON string into a second dictionary.
Then it updates the first dictionary with the info in the second dictionary.
If the field is present in both cfile and cdict, the field in cdict prevails.
If both cfile and cdict are None, it returns an empty dict (i.e. {})
- '''
+ """
config = {}
if config_file:
with open(config_file, "r") as cf:
envvar="OSM_HOSTNAME",
help="hostname of server. " + "Also can set OSM_HOSTNAME in environment",
)
-# @click.option('--sol005/--no-sol005',
-# default=True,
-# envvar='OSM_SOL005',
-# help='Use ETSI NFV SOL005 API (default) or the previous SO API. ' +
-# 'Also can set OSM_SOL005 in environment')
@click.option(
"--user",
default=None,
help="user domain name for keystone authentication (default to None). "
+ "Also can set OSM_USER_DOMAIN_NAME in environment",
)
-# @click.option('--so-port',
-# default=None,
-# envvar='OSM_SO_PORT',
-# help='hostname of server. ' +
-# 'Also can set OSM_SO_PORT in environment')
-# @click.option('--so-project',
-# default=None,
-# envvar='OSM_SO_PROJECT',
-# help='Project Name in SO. ' +
-# 'Also can set OSM_SO_PROJECT in environment')
-# @click.option('--ro-hostname',
-# default=None,
-# envvar='OSM_RO_HOSTNAME',
-# help='hostname of RO server. ' +
-# 'Also can set OSM_RO_HOSTNAME in environment')
-# @click.option('--ro-port',
-# default=None,
-# envvar='OSM_RO_PORT',
-# help='hostname of RO server. ' +
-# 'Also can set OSM_RO_PORT in environment')
@click.pass_context
def cli_osm(ctx, **kwargs):
global logger
exit(1)
# Remove None values
kwargs = {k: v for k, v in kwargs.items() if v is not None}
- # if so_port is not None:
- # kwargs['so_port']=so_port
- # if so_project is not None:
- # kwargs['so_project']=so_project
- # if ro_hostname is not None:
- # kwargs['ro_host']=ro_hostname
- # if ro_port is not None:
- # kwargs['ro_port']=ro_port
sol005 = os.getenv("OSM_SOL005", True)
- # if user is not None:
- # kwargs['user']=user
- # if password is not None:
- # kwargs['password']=password
- # if project is not None:
- # kwargs['project']=project
- # if all_projects:
- # kwargs['all_projects']=all_projects
- # if public is not None:
- # kwargs['public']=public
ctx.obj = client.Client(host=hostname, sol005=sol005, **kwargs)
logger = logging.getLogger("osmclient")
config,
config_file,
wait,
- timeout
+ timeout,
):
"""creates a new NS instance"""
logger.debug("")
@click.option("--user", default=None, help="VIM username")
@click.option("--password", default=None, help="VIM password")
@click.option("--auth_url", default=None, help="VIM url")
-@click.option("--tenant", "--project", "tenant", default=None, help="VIM tenant/project name")
+@click.option(
+ "--tenant", "--project", "tenant", default=None, help="VIM tenant/project name"
+)
@click.option("--config", default=None, help="VIM specific config parameters")
-@click.option("--config_file", default=None, help="VIM specific config parameters in YAML or JSON file")
+@click.option(
+ "--config_file",
+ default=None,
+ help="VIM specific config parameters in YAML or JSON file",
+)
@click.option("--account_type", default="openstack", help="VIM type")
@click.option("--description", default=None, help="human readable description")
@click.option(
"until the operation is completed, or timeout",
)
@click.option("--vca", default=None, help="VCA to be used in this VIM account")
-@click.option("--creds", default=None, help="credentials file (only applycable for GCP VIM type)")
-@click.option("--prometheus_config_file", default=None, help="Prometheus configuration to get VIM data")
+@click.option(
+ "--creds", default=None, help="credentials file (only applycable for GCP VIM type)"
+)
+@click.option(
+ "--prometheus_config_file",
+ default=None,
+ help="Prometheus configuration to get VIM data",
+)
@click.pass_context
def vim_create(
ctx,
wait,
vca,
creds,
- prometheus_config_file
+ prometheus_config_file,
):
"""creates a new VIM account"""
logger.debug("")
if creds:
with open(creds, "r") as cf:
vim_config["credentials"] = yaml.safe_load(cf.read())
- ctx.obj.vim.create(name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait)
+ ctx.obj.vim.create(
+ name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait
+ )
# except ClientException as e:
# print(str(e))
# exit(1)
@click.option("--auth_url", help="VIM url")
@click.option("--tenant", help="VIM tenant name")
@click.option("--config", help="VIM specific config parameters")
-@click.option("--config_file", default=None, help="VIM specific config parameters in YAML or JSON file")
+@click.option(
+ "--config_file",
+ default=None,
+ help="VIM specific config parameters in YAML or JSON file",
+)
@click.option("--account_type", help="VIM type")
@click.option("--description", help="human readable description")
@click.option(
help="do not return the control immediately, but keep it "
"until the operation is completed, or timeout",
)
-@click.option("--creds", default=None, help="credentials file (only applycable for GCP VIM type)")
-@click.option("--prometheus_config_file", default=None, help="Prometheus configuration to get VIM data")
+@click.option(
+ "--creds", default=None, help="credentials file (only applycable for GCP VIM type)"
+)
+@click.option(
+ "--prometheus_config_file",
+ default=None,
+ help="Prometheus configuration to get VIM data",
+)
@click.pass_context
def vim_update(
ctx,
sdn_port_mapping,
wait,
creds,
- prometheus_config_file
+ prometheus_config_file,
):
"""updates a VIM account
prometheus_config_dict = json.load(prometheus_file)
vim["prometheus-config"] = prometheus_config_dict
logger.info(f"VIM: {vim}, VIM config: {vim_config}")
- ctx.obj.vim.update(name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait)
+ ctx.obj.vim.update(
+ name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait
+ )
# except ClientException as e:
# print(str(e))
# exit(1)
# help='do not return the control immediately, but keep it until the operation is completed, or timeout')
@click.pass_context
def k8scluster_add(
- ctx, name, creds, version, vim, k8s_nets, init_helm2, init_helm3, init_jujubundle, description, namespace, wait, cni
+ ctx,
+ name,
+ creds,
+ version,
+ vim,
+ k8s_nets,
+ init_helm2,
+ init_helm3,
+ init_jujubundle,
+ description,
+ namespace,
+ wait,
+ cni,
):
"""adds a K8s cluster to OSM
cluster["vim_account"] = vim
cluster["nets"] = yaml.safe_load(k8s_nets)
if not (init_helm2 and init_jujubundle and init_helm3):
- cluster["deployment_methods"] = {"helm-chart": init_helm2,
- "juju-bundle": init_jujubundle,
- "helm-chart-v3": init_helm3}
+ cluster["deployment_methods"] = {
+ "helm-chart": init_helm2,
+ "juju-bundle": init_jujubundle,
+ "helm-chart-v3": init_helm3,
+ }
if description:
cluster["description"] = description
if namespace:
multiple=True,
help="remove role(s) in a project. Can be used several times: 'project,role1[,role2,...]'",
)
-@click.option(
- "--change_password",
- "change_password",
- help="user's current password"
-)
+@click.option("--change_password", "change_password", help="user's current password")
@click.option(
"--new_password",
"new_password",
- help="user's new password to update in expiry condition"
+ help="user's new password to update in expiry condition",
)
@click.pass_context
def user_update(
if iterator[i] in separators:
if i == first:
continue
- if (i - first < 2):
- raise ClientException(f"Expected at least one argument after separator (possible separators: {separators}).")
+ if i - first < 2:
+ raise ClientException(
+ f"Expected at least one argument after separator (possible separators: {separators})."
+ )
list_of_lists.append(list(iterator[first:i]))
first = i
- if ((len(iterator) - first) < 2):
- raise ClientException(f"Expected at least one argument after separator (possible separators: {separators}).")
+ if (len(iterator) - first) < 2:
+ raise ClientException(
+ f"Expected at least one argument after separator (possible separators: {separators})."
+ )
else:
- list_of_lists.append(list(iterator[first:len(iterator)]))
+ list_of_lists.append(list(iterator[first : len(iterator)]))
# logger.debug(f"List of lists: {list_of_lists}")
return list_of_lists
i = 0
while i < len(args):
if args[i] == "--cause":
- if (i+1 >= len(args)) or args[i+1].startswith("--"):
+ if (i + 1 >= len(args)) or args[i + 1].startswith("--"):
raise ClientException("No cause was provided after --cause")
- heal_vnf_dict["cause"] = args[i+1]
+ heal_vnf_dict["cause"] = args[i + 1]
i = i + 2
continue
if args[i] == "--run-day1":
if "additionalParams" not in heal_vnf_dict:
heal_vnf_dict["additionalParams"] = {}
heal_vnf_dict["additionalParams"]["vdu"] = []
- if (i+1 >= len(args)) or args[i+1].startswith("--"):
+ if (i + 1 >= len(args)) or args[i + 1].startswith("--"):
raise ClientException("No VDU ID was provided after --vdu")
- heal_vnf_dict["additionalParams"]["vdu"].append({"vdu-id": args[i+1]})
+ heal_vnf_dict["additionalParams"]["vdu"].append({"vdu-id": args[i + 1]})
current_item = "vdu"
i = i + 2
continue
if args[i] == "--count-index":
if current_item == "vnf":
- raise ClientException("Option --count-index only applies to VDU, not to VNF")
- if (i+1 >= len(args)) or args[i+1].startswith("--"):
+ raise ClientException(
+ "Option --count-index only applies to VDU, not to VNF"
+ )
+ if (i + 1 >= len(args)) or args[i + 1].startswith("--"):
raise ClientException("No count index was provided after --count-index")
- heal_vnf_dict["additionalParams"]["vdu"][-1]["count-index"] = int(args[i+1])
+ heal_vnf_dict["additionalParams"]["vdu"][-1]["count-index"] = int(
+ args[i + 1]
+ )
i = i + 2
continue
i = i + 1
@cli_osm.command(
name="ns-heal",
short_help="heals (recreates) VNFs or VDUs of a NS instance",
- context_settings=dict(ignore_unknown_options=True,)
+ context_settings=dict(
+ ignore_unknown_options=True,
+ ),
)
@click.argument("ns_name")
@click.argument(
- 'args',
+ "args",
nargs=-1,
type=click.UNPROCESSED,
callback=process_ns_heal_params,
)
-@click.option(
- "--timeout",
- type=int,
- default=None,
- help="timeout in seconds"
-)
+@click.option("--timeout", type=int, default=None, help="timeout in seconds")
@click.option(
"--wait",
default=False,
help="do not return the control immediately, but keep it until the operation is completed, or timeout",
)
@click.pass_context
-def ns_heal(
- ctx,
- ns_name,
- args,
- heal_params,
- timeout,
- wait
-):
+def ns_heal(ctx, ns_name, args, heal_params, timeout, wait):
"""heals (recreates) VNFs or VDUs of a NS instance
NS_NAME: name or ID of the NS instance
vnf_filter = f"member-vnf-index-ref={vnf_id}"
vnf_list = ctx.obj.vnf.list(ns=ns_name, filter=vnf_filter)
if len(vnf_list) == 0:
- raise ClientException(f"No VNF found in NS {ns_name} with filter {vnf_filter}")
+ raise ClientException(
+ f"No VNF found in NS {ns_name} with filter {vnf_filter}"
+ )
elif len(vnf_list) == 1:
vnf["vnfInstanceId"] = vnf_list[0]["_id"]
else:
- raise ClientException(f"More than 1 VNF found in NS {ns_name} with filter {vnf_filter}")
+ raise ClientException(
+ f"More than 1 VNF found in NS {ns_name} with filter {vnf_filter}"
+ )
logger.debug(f"Heal dict:\n{yaml.safe_dump(heal_dict)}")
check_client_version(ctx.obj, ctx.command.name)
ctx.obj.ns.heal(ns_name, heal_dict, wait, timeout)
@cli_osm.command(
name="vnf-heal",
short_help="heals (recreates) a VNF instance or the VDUs of a VNF instance",
- context_settings=dict(ignore_unknown_options=True,)
+ context_settings=dict(
+ ignore_unknown_options=True,
+ ),
)
@click.argument("vnf_name")
@click.argument(
- 'args',
+ "args",
nargs=-1,
type=click.UNPROCESSED,
callback=process_vnf_heal_params,
)
-@click.option(
- "--timeout",
- type=int,
- default=None,
- help="timeout in seconds"
-)
+@click.option("--timeout", type=int, default=None, help="timeout in seconds")
@click.option(
"--wait",
default=False,
def cli():
try:
- cli_osm()
+ cli_osm() # pylint: disable=no-value-for-parameter
exit(0)
except pycurl.error as exc:
print(exc)