Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 49 additions & 1 deletion libs/ShivaApi.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,41 @@ def get_esxi_datastores(self):
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_all_contentlibs(self):
"""Find all content libraries"""
response = self.get(self.base_url + "/v1/vcenters/content_libraries")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_all_contentlibsitems(self):
"""Find all content libraries items"""
response = self.get(self.base_url + "/v1/vcenters/content_libraries/items")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_openiaas_templates(self):
"""Find all openiaas templates"""
response = self.get(self.base_url + "/v1/open_iaas/templates")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_all_vcnetworks(self):
"""Find all vc networks"""
response = self.get(self.base_url + "/v1/vcenters/networks")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_openiaas_networks(self):
"""Find all vc networks"""
response = self.get(self.base_url + "/v1/open_iaas/networks")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_vm_network_adapters(self, vm_id: str):
"""Find network adapters for virtual machine"""
Expand Down Expand Up @@ -88,6 +122,13 @@ def get_hosts(self):
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_openiaas_hosts(self):
"""Find Hosts"""
response = self.get(self.base_url + "/v1/open_iaas/hosts")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_hosts_by_vdc(self, vdc_id):
"""Find Hots with Virtual Datacenter ID Filter"""
Expand Down Expand Up @@ -137,6 +178,13 @@ def get_datastore_clusters_by_dc(self, id_dc):
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_openiaas_storage_repositories(self):
"""Find all storage_repositories"""
response = self.get(self.base_url + "/v1/open_iaas/storage_repositories")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)

def get_vcenters(self):
"""Find vCenter servers"""
Expand Down Expand Up @@ -253,7 +301,7 @@ def get_jobs(self):

def get_policies(self):
"""Find SLA Policies"""
response = self.get(self.base_url + "/v1/policies")
response = self.get(self.base_url + "/v1/spp/policies")
if response.status_code == HTTPStatus.OK:
return self.json_response(response)
return self.error_response(response)
Expand Down
32 changes: 1 addition & 31 deletions libs/httpClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,7 @@ def auth(self):
exp_epoch = datetime.fromtimestamp(self.jwt_decoded['exp'])
time_now = datetime.now()
diff = (exp_epoch - time_now).total_seconds() / 60
if 10 > diff > 1:
if hasattr(self, 'logger'):
self.logger.debug("10 > diff > 1 - token is valide")
self.__refresh()
elif diff < 1:
if diff < 10:
self.__login()

def __login(self):
Expand Down Expand Up @@ -100,32 +96,6 @@ def __login(self):
self.logger.error("request exception %s", err)
raise HttpClientException("request exception", err) from err

def __refresh(self):
try:
headers = {
'Content-Type': 'application/json',
'accept': 'application/json',
'Authorization': "Bearer " + self.bearer_token
}

refreshToken = {
'refreshToken': self.bearer_token
}

# Retrieve bearer
bearer_request = requests.post(url=self.url + "/api/iam/v2/auth/refresh", headers=headers,
json=refreshToken)

if bearer_request.status_code != 200:
raise HttpClientException("Cannot generate bearer token", bearer_request.reason)
else:
self.bearer_token = bearer_request.json()['refresh_token']

except RequestException as err:
if hasattr(self, 'logger'):
self.logger.error("request exception %s", err)
raise HttpClientException("request exception", err) from err

def __execute(self, req: Request) -> Response:
self.auth()
try:
Expand Down