+ def _read_vnf_price_list(self, price_list_file_path):
+ """
+ read vnf price list configuration file
+ :param price_list_file_path:
+ :return:
+ """
+ with open(str(price_list_file_path)) as pl_fd:
+ price_list = yaml.safe_load_all(pl_fd)
+ return next(price_list)
+
+ def _price_list_with_project(self, price_list):
+ """
+ Figure out if this price list is with project or not.
+ Note: to handle the unlikely event that a project is called 'prices' we do not simply check if 'prices'
+ is in the dict keys for a price list sequence but rather go down one step in the nesting
+ in which we either have
+ 1) 'prices:{vim_url:...}' if prices are also per project, or
+ 2) '{vim_url:...}' if prices are only per vim
+
+ :param price_list:
+ :return: True if project part of price list, else False
+ """
+ price_list_entry_keys = set(price_list[0].keys())
+ price_list_entry_keys.remove('vnfd')
+ pl_key = price_list_entry_keys.pop()
+ entry_to_check = price_list[0][pl_key][0].keys()
+ return True if 'prices' in entry_to_check else False
+
+ def _get_vnf_price_list(self, price_list_file_path, project_name=None):