diff options
author | Steven Pisarski <s.pisarski@cablelabs.com> | 2018-06-08 17:24:21 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2018-06-08 17:24:21 +0000 |
commit | e0c640946294e6fc190f03f341e873e6db483291 (patch) | |
tree | f0c8421eeb115221a432c8f1416c0dbd6b3c63b2 /snaps/openstack/utils/launch_utils.py | |
parent | 9f00c18a8bda11e3ffdafa53832cf4816e785196 (diff) | |
parent | 82305fb92b6ee5607a9e3beb58be3c6c56413584 (diff) |
Merge "Added support for OSCreds output to SNAPS-OO orchestrator app."
Diffstat (limited to 'snaps/openstack/utils/launch_utils.py')
-rw-r--r-- | snaps/openstack/utils/launch_utils.py | 66 |
1 files changed, 44 insertions, 22 deletions
diff --git a/snaps/openstack/utils/launch_utils.py b/snaps/openstack/utils/launch_utils.py index 6e8b94e..00ea822 100644 --- a/snaps/openstack/utils/launch_utils.py +++ b/snaps/openstack/utils/launch_utils.py @@ -530,8 +530,8 @@ def __get_connection_info(ansible_config, vm_dict): return None -def __get_variables(var_config, os_creds_dict, vm_dict, image_dict, flavor_dict, - networks_dict, routers_dict): +def __get_variables(var_config, os_creds_dict, vm_dict, image_dict, + flavor_dict, networks_dict, routers_dict): """ Returns a dictionary of substitution variables to be used for Ansible templates @@ -587,18 +587,19 @@ def __get_variable_value(var_config_values, os_creds_dict, vm_dict, image_dict, the name is the key :return: """ - admin_creds = os_creds_dict.get('admin-creds') if var_config_values['type'] == 'string': return __get_string_variable_value(var_config_values) if var_config_values['type'] == 'vm-attr': return __get_vm_attr_variable_value(var_config_values, vm_dict) if var_config_values['type'] == 'os_creds': - return __get_os_creds_variable_value(var_config_values, admin_creds) + return __get_os_creds_variable_value(var_config_values, os_creds_dict) + if var_config_values['type'] == 'os_creds_dict': + return str(__get_os_creds_dict(var_config_values, os_creds_dict)) if var_config_values['type'] == 'network': return __get_network_variable_value(var_config_values, networks_dict) if var_config_values['type'] == 'router': return __get_router_variable_value(var_config_values, routers_dict, - admin_creds) + os_creds_dict) if var_config_values['type'] == 'port': return __get_vm_port_variable_value(var_config_values, vm_dict) if var_config_values['type'] == 'floating_ip': @@ -607,8 +608,8 @@ def __get_variable_value(var_config_values, os_creds_dict, vm_dict, image_dict, return __get_image_variable_value(var_config_values, image_dict) if var_config_values['type'] == 'flavor': return __get_flavor_variable_value(var_config_values, flavor_dict) - if var_config_values['type'] == 'snaps-env-yaml': - return __create_snaps_env_yaml(var_config_values, vm_dict) + if var_config_values['type'] == 'vm-yaml': + return __create_yaml(var_config_values, vm_dict) return None @@ -637,13 +638,19 @@ def __get_vm_attr_variable_value(var_config_values, vm_dict): return vm.get_image_user() -def __get_os_creds_variable_value(var_config_values, os_creds): +def __get_os_creds_variable_value(var_config_values, os_creds_dict): """ Returns the associated OS credentials value :param var_config_values: the configuration dictionary - :param os_creds: the admin OpenStack OSCreds object + :param os_creds_dict: dict of OpenStack credentials where the key is the + name :return: the value """ + if 'creds_name' in var_config_values: + os_creds = os_creds_dict.get[var_config_values['creds_name']] + else: + os_creds = os_creds_dict.get('admin-creds') + if os_creds: if var_config_values['value'] == 'username': logger.info("Returning OS username") @@ -659,6 +666,21 @@ def __get_os_creds_variable_value(var_config_values, os_creds): return os_creds.project_name +def __get_os_creds_dict(var_config_values, os_creds_dict): + """ + Returns the associated OS credentials as a dict + :param var_config_values: the configuration dictionary + :param os_creds_dict: dict of creds where the key is the username + :return: the value dict + """ + if 'creds_name' in var_config_values: + os_creds = os_creds_dict.get[var_config_values['creds_name']] + else: + os_creds = os_creds_dict.get('admin-creds') + if os_creds: + return os_creds.to_dict() + + def __get_network_variable_value(var_config_values, networks_dict): """ Returns the associated network value @@ -706,15 +728,22 @@ def __get_network_variable_value(var_config_values, networks_dict): return broadcast_ip -def __get_router_variable_value(var_config_values, routers_dict, os_creds): +def __get_router_variable_value(var_config_values, routers_dict, + os_creds_dict): """ Returns the associated network value :param var_config_values: the configuration dictionary :param routers_dict: the dictionary containing all networks where the key is the network name - :param os_creds: the admin OpenStack credentials + :param os_creds_dict: dict of OpenStack credentials where the key is the + name :return: the value """ + if 'creds_name' in var_config_values: + os_creds = os_creds_dict.get[var_config_values['creds_name']] + else: + os_creds = os_creds_dict.get('admin-creds') + router_name = var_config_values.get('router_name') router_creator = routers_dict[router_name] @@ -818,34 +847,27 @@ def __get_flavor_variable_value(var_config_values, flavor_dict): return flavor_creator.get_flavor().id -def __create_snaps_env_yaml(var_config_values, vm_dict): +def __create_yaml(var_config_values, vm_dict): """ Creates a yaml file containing an OpenStack pod's credentials with a list of server IDs that can be used for obtaining SNAPS-OO instances for manipulation such as rebooting :param var_config_values: the configuration dictionary - :param os_creds: the admin credentials for accessing OpenStack :param vm_dict: the dictionary containing all vm creators where the key is the name :return: the name of the generated file """ out_dict = dict() out_dict['vms'] = list() + req_vm_names = var_config_values.get('vms') for name, vm_creator in vm_dict.items(): vm_inst = vm_creator.get_vm_inst() - inst_creds = vm_creator._os_creds - if vm_inst: + if vm_inst and vm_inst.name in req_vm_names: out_dict['vms'].append({ 'name': str(vm_inst.name), 'id': str(vm_inst.id), - 'os_creds': { - 'username': inst_creds.username, - 'password': inst_creds.password, - 'auth_url': inst_creds.auth_url, - 'project_name': inst_creds.project_name, - 'identity_api_version': inst_creds.identity_api_version, - } + 'os_creds': vm_creator.get_os_creds().to_dict() }) out_file = file_utils.persist_dict_to_yaml( |