- self.common_db = CommonDbClient()
- self.auth_manager = AuthManager()
- vim_account_info = self.auth_manager.get_credentials(vim_account_id)
- cfg = json.loads(vim_account_info.config)
- self.vrops_site = cfg['vrops_site']
- self.vrops_user = cfg['vrops_user']
- self.vrops_password = cfg['vrops_password']
- self.client = self.connect_client(vim_account_id)
-
- def connect_client(self, vim_account_id: str):
- vim_account_details = self.auth_manager.get_credentials(vim_account_id)
- verify_ssl = self.auth_manager.is_verify_ssl(vim_account_id)
- auth = v3.Password(auth_url=vim_account_details.url,
- username=vim_account_details.user,
- password=vim_account_details.password,
- project_name=vim_account_details.tenant_name,
- project_domain_id='default',
- user_domain_id='default')
- sess = session.Session(auth=auth, verify=verify_ssl)
- client = nClient.Client('2.1', session=sess, endpoint_type=None)
- return client
-
- def _get_resource_uuid(self, nsr_id, vnf_member_index, vdur_name) -> str:
- vdur = self.common_db.get_vdur(nsr_id, vnf_member_index, vdur_name)
- return vdur['vim-id']
-
- def get_vm_name_and_id(self, resource_uuid):
- """ Method to find vm name and id using resource_uuid
- """
- server = self.client.servers.find(id=resource_uuid)
- name = server.to_dict()['name']
- _id = server.to_dict()['id']
- return name, _id
-
- def get_vm_resource_id(self, name, _id):
- """ Find resource ID in vROPs
- """
- api_url = '/suite-api/api/resources?resourceKind=VirtualMachine'
- headers = {'Accept': 'application/json'}
-
- resp = requests.get(self.vrops_site + api_url,
- auth=(self.vrops_user, self.vrops_password),
- verify=False, headers=headers)
-
- if resp.status_code != 200:
- log.error("Failed to get resource details for{} {} {}".format(name,
- resp.status_code,
- resp.content))
- return None
-
- vm_resource_id = None
- try:
- resp_data = json.loads(resp.content.decode('utf-8'))
- if resp_data.get('resourceList') is not None:
- resource_list = resp_data.get('resourceList')
- for resource in resource_list:
- if resource.get('resourceKey') is not None:
- m = re.match(r"(.*?)\s\((.*?)\)", resource['resourceKey']['name'])
- if m:
- v_name = m.group(1)
- v_id = m.group(2)
- if name == v_name and _id == v_id:
- vm_resource_id = resource['identifier']
- log.info("Found VM resource ID: {} for vm: {}".format(vm_resource_id,
- v_name))
-
- except Exception as exp:
- log.info("get_vm_resource_id: Error in parsing {}\n{}".format(exp, traceback.format_exc()))
-
- return vm_resource_id
+ self.common_db = CommonDbClient(config)
+ cfg = self.get_vim_account(vim_account_id)
+ self.vrops = vROPS_Helper(
+ vrops_site=cfg["vrops_site"],
+ vrops_user=cfg["vrops_user"],
+ vrops_password=cfg["vrops_password"],
+ )
+
+ def get_vim_account(self, vim_account_id: str):
+ vim_account_info = self.common_db.get_vim_account(vim_account_id)
+ return vim_account_info["config"]