def _get_services(self): headers = {} headers["x-vchs-authorization"] = self.token headers["Accept"] = "application/xml;version=" + self.version response = requests.get(self.host + "/api/vchs/services", headers=headers, verify=self.verify) if response.status_code == requests.codes.ok: return serviceType.parseString(response.content, True)
def login(self, password=None, token=None, org=None, org_url=None): """ Request to login to vCloud Air :param password: The password. :param token: The token from a previous successful login, None if this is a new login request. :return: True if the user was successfully logged in, False otherwise. """ if self.service_type == 'subscription': if token: headers = {} headers["x-vchs-authorization"] = token headers["Accept"] = "application/xml;version=" + self.version self.response = requests.get(self.host + "/api/vchs/services", headers=headers, verify=self.verify) if self.response.status_code == requests.codes.ok: self.services = serviceType.parseString( self.response.content, True) self.token = token return True else: return False else: url = self.host + "/api/vchs/sessions" encode = "Basic " + base64.standard_b64encode(self.username + ":" + password) headers = {} headers["Authorization"] = encode.rstrip() headers["Accept"] = "application/xml;version=" + self.version self.response = requests.post(url, headers=headers, verify=self.verify) if self.response.status_code == requests.codes.created: self.token = self.response.headers["x-vchs-authorization"] self.services = self._get_services() return True else: return False elif self.service_type == 'ondemand': if token: self.token = token self.instances = self.get_instances() return self.instances != None else: url = self.host + "/api/iam/login" encode = "Basic " + base64.standard_b64encode(self.username + ":" + password) headers = {} headers["Authorization"] = encode.rstrip() headers[ "Accept"] = "application/json;version=%s" % self.version self.response = requests.post(url, headers=headers, verify=self.verify) if self.response.status_code == requests.codes.created: self.token = self.response.headers["vchs-authorization"] self.instances = self.get_instances() return True else: return False elif self.service_type == 'vcd': if token: url = self.host + '/api/sessions' vcloud_session = VCS(url, self.username, org, None, org_url, org_url, version=self.version, verify=self.verify) result = vcloud_session.login(token=token) if result: self.org = org self.vcloud_session = vcloud_session return result else: url = self.host + '/api/sessions' vcloud_session = VCS(url, self.username, org, None, org_url, org_url, version=self.version, verify=self.verify) result = vcloud_session.login(password=password) if result: self.token = vcloud_session.token self.org = org self.vcloud_session = vcloud_session return result else: return False return False
def login(self, password=None, token=None, org=None, org_url=None): """ Request to login to vCloud Air :param password: The password. :param token: The token from a previous successful login, None if this is a new login request. :return: True if the user was successfully logged in, False otherwise. """ if self.service_type == 'subscription': if token: headers = {} headers["x-vchs-authorization"] = token headers["Accept"] = "application/xml;version=" + self.version self.response = requests.get(self.host + "/api/vchs/services", headers=headers, verify=self.verify) if self.response.status_code == requests.codes.ok: self.services = serviceType.parseString(self.response.content, True) self.token = token return True else: return False else: url = self.host + "/api/vchs/sessions" encode = "Basic " + base64.standard_b64encode(self.username + ":" + password) headers = {} headers["Authorization"] = encode.rstrip() headers["Accept"] = "application/xml;version=" + self.version self.response = requests.post(url, headers=headers, verify=self.verify) if self.response.status_code == requests.codes.created: self.token = self.response.headers["x-vchs-authorization"] self.services = self._get_services() return True else: return False elif self.service_type == 'ondemand': if token: self.token = token self.instances = self.get_instances() return self.instances != None else: url = self.host + "/api/iam/login" encode = "Basic " + base64.standard_b64encode(self.username + ":" + password) headers = {} headers["Authorization"] = encode.rstrip() headers["Accept"] = "application/json;version=%s" % self.version self.response = requests.post(url, headers=headers, verify=self.verify) if self.response.status_code == requests.codes.created: self.token = self.response.headers["vchs-authorization"] self.instances = self.get_instances() return True else: return False elif self.service_type == 'vcd': if token: url = self.host + '/api/sessions' vcloud_session = VCS(url, self.username, org, None, org_url, org_url, version=self.version, verify=self.verify) result = vcloud_session.login(token=token) if result: self.org = org self.vcloud_session = vcloud_session return result else: url = self.host + '/api/sessions' vcloud_session = VCS(url, self.username, org, None, org_url, org_url, version=self.version, verify=self.verify) result = vcloud_session.login(password=password) if result: self.token = vcloud_session.token self.org = org self.vcloud_session = vcloud_session return result else: return False return False