def get_extension(self, name): content_type = 'application/vnd.vmware.admin.vmwExtension+xml' link = [ link for link in self.vcloud_session.get_Link() if link.get_type() == content_type ] self.response = Http.get( link[0].get_href() + '/service/query?pageSize=' + '1024', headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: result = queryRecordViewType.parseString( self.response.content.decode('utf-8'), True) for t in result.get_Record(): if name == t.get_name(): # return {'name': t.get_name(), 'href': t.get_href()} self.response = Http.get( t.get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: doc = ET.fromstring( self.response.content.decode('utf-8')) return doc # print(self.response.content.decode('utf-8')) # return {'name': t.get_name(), 'href': t.get_href()} return None else: raise Exception(self.response.status_code)
def update_session_data(self, token): headers = {} headers["x-vcloud-authorization"] = token headers["Accept"] = "application/*+xml;version=" + self.version self.response = Http.get(self.url, headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: self.session = sessionType.parseString( self.response.content.decode('utf-8'), True) self.org_url = [ link for link in self.session.Link if link.type_ == 'application/vnd.vmware.vcloud.org+xml' ][0].href self.username = self.session.get_user() self.user_id = self.session.get_userId().split(':')[-1] self.org = self.session.get_org() self.org_id = self.org_url.split('/')[-1] self.response = Http.get(self.org_url, headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: self.token = token self.organization = organizationType.parseString( self.response.content.decode('utf-8'), True) return True else: return False else: return False
def get_instances(self): self.response = Http.get(self.host + "/api/sc/instances", headers=self._get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.history and self.response.history[-1]: self.response = Http.get(self.response.history[-1].headers['location'], headers=self._get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: return json.loads(self.response.content)['instances'] else: return None
def get_plans(self): headers = self._get_vcloud_headers() headers['Accept'] = "application/json;version=%s;class=com.vmware.vchs.sc.restapi.model.planlisttype" % self.version self.response = Http.get(self.host + "/api/sc/plans", headers=headers, verify=self.verify, logger=self.logger) if self.response.history and self.response.history[-1]: self.response = Http.get(self.response.history[-1].headers['location'], headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: return json.loads(self.response.content)['plans'] else: return None
def create_vapp(self, vdc_name, vapp_name, template_name, catalog_name, network_name=None, network_mode='bridged', vm_name=None, vm_cpus=None, vm_memory=None, deploy='false', poweron='false'): self.vdc = self.get_vdc(vdc_name) if not self.vcloud_session or not self.vcloud_session.organization or not self.vdc: #"Select an organization and datacenter first" return False if '' == vm_name: vm_name = None catalogs = filter(lambda link: catalog_name == link.get_name() and link.get_type() == "application/vnd.vmware.vcloud.catalog+xml", self.vcloud_session.organization.get_Link()) if len(catalogs) == 1: self.response = Http.get(catalogs[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: catalog = catalogType.parseString(self.response.content, True) catalog_items = filter(lambda catalogItemRef: catalogItemRef.get_name() == template_name, catalog.get_CatalogItems().get_CatalogItem()) if len(catalog_items) == 1: self.response = Http.get(catalog_items[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) # use ElementTree instead because none of the types inside resources (not even catalogItemType) is able to parse the response correctly catalogItem = ET.fromstring(self.response.content) entity = [child for child in catalogItem if child.get("type") == "application/vnd.vmware.vcloud.vAppTemplate+xml"][0] vm_href = None if vm_name: self.response = Http.get(entity.get('href'), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: vAppTemplate = ET.fromstring(self.response.content) for vm in vAppTemplate.iter('{http://www.vmware.com/vcloud/v1.5}Vm'): vm_href = vm.get('href') template_params = self._create_instantiateVAppTemplateParams( vapp_name, entity.get("href"), vm_name=vm_name, vm_href=vm_href, vm_cpus=vm_cpus, vm_memory=vm_memory, deploy=deploy, power=poweron) if network_name: pass output = StringIO() template_params.export(output, 0, name_ = 'InstantiateVAppTemplateParams', namespacedef_ = '''xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"''', pretty_print = False) body = '<?xml version="1.0" encoding="UTF-8"?>' + \ output.getvalue().replace('class:', 'rasd:')\ .replace(' xmlns:vmw="http://www.vmware.com/vcloud/v1.5"', '')\ .replace('vmw:', 'rasd:')\ .replace('Info>', "ovf:Info>") content_type = "application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml" link = filter(lambda link: link.get_type() == content_type, self.vdc.get_Link()) self.response = Http.post(link[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, data=body, logger=self.logger) if self.response.status_code == requests.codes.created: vApp = vAppType.parseString(self.response.content, True) task = vApp.get_Tasks().get_Task()[0] return task return False
def get_gateways(self, vdc_name): gateways = [] vdc = self.get_vdc(vdc_name) if not vdc: return gateways link = filter(lambda link: link.get_rel() == "edgeGateways", vdc.get_Link()) self.response = Http.get(link[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: queryResultRecords = queryRecordViewType.parseString(self.response.content, True) if queryResultRecords.get_Record(): for edgeGatewayRecord in queryResultRecords.get_Record(): self.response = Http.get(edgeGatewayRecord.get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: gateway = Gateway(networkType.parseString(self.response.content, True), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, log=self.log) gateways.append(gateway) return gateways
def get_media(self, catalog_name, media_name): refs = filter(lambda ref: ref.name == catalog_name and ref.type_ == 'application/vnd.vmware.vcloud.catalog+xml', self.vcloud_session.organization.Link) if len(refs) == 1: self.response = Http.get(refs[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: catalog = catalogType.parseString(self.response.content, True) catalog_items = filter(lambda catalogItemRef: catalogItemRef.get_name() == media_name, catalog.get_CatalogItems().get_CatalogItem()) if len(catalog_items) == 1: self.response = Http.get(catalog_items[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) # print self.response.content if self.response.status_code == requests.codes.ok: doc = self.parsexml_(self.response.content) for element in doc._children: if element.tag == '{http://www.vmware.com/vcloud/v1.5}Entity': return element.attrib
def delete_catalog(self, catalog_name): admin_url = None if not self.vcloud_session or not self.vcloud_session.organization: return False if 'ondemand' == self.service_type: refs = filter(lambda ref: ref.type_ == 'application/vnd.vmware.admin.organization+xml', self.vcloud_session.organization.Link) if len(refs) == 1: admin_url = refs[0].href else: refs = filter(lambda ref: ref.type_ == 'application/vnd.vmware.admin.catalog+xml', self.vcloud_session.organization.Link) if len(refs) == 1: admin_url = refs[0].href[:refs[0].href.rindex('/')] if admin_url: self.response = Http.get(admin_url, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: adminOrg = vCloudEntities.parseString(self.response.content, True) if adminOrg and adminOrg.Catalogs and adminOrg.Catalogs.CatalogReference: catRefs = filter(lambda ref: ref.name == catalog_name and ref.type_ == 'application/vnd.vmware.admin.catalog+xml', adminOrg.Catalogs.CatalogReference) if len(catRefs) == 1: self.response = Http.delete(catRefs[0].href, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.no_content: return True return False
def block_until_completed(self, task): progress = task.get_Progress() status = task.get_status() rnd = 0 while status != "success": if status == "error": error = task.get_Error() Log.error(self.logger, "task error, major=%s, minor=%s, message=%s" % (error.get_majorErrorCode(), error.get_minorErrorCode(), error.get_message())) return False else: # some task doesn't not report progress if progress: pass else: rnd += 1 time.sleep(1) self.response = Http.get(task.get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: task = taskType.parseString(self.response.content, True) progress = task.get_Progress() status = task.get_status() else: Log.error(self.logger, "can't get task") return False return True
def get_vdc_references(self, serviceId): serviceReferences = filter(lambda serviceReference: serviceReference.get_serviceId() == serviceId, self.services.get_Service()) if len(serviceReferences) == 0: return [] self.response = Http.get(serviceReferences[0].get_href(), headers=self._get_vcloud_headers(), verify=self.verify, logger=self.logger) vdcs = vchsType.parseString(self.response.content, True) return vdcs.get_VdcRef()
def _get_services(self): headers = {} headers["x-vchs-authorization"] = self.token headers["Accept"] = "application/xml;version=" + self.version response = Http.get(self.host + "/api/vchs/services", headers=headers, verify=self.verify, logger=self.logger) if response.status_code == requests.codes.ok: return serviceType.parseString(response.content, True)
def get_vapp(self, vdc, vapp_name): refs = filter(lambda ref: ref.name == vapp_name and ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml', vdc.ResourceEntities.ResourceEntity) if len(refs) == 1: self.response = Http.get(refs[0].href, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: vapp = VAPP(vAppType.parseString(self.response.content, True), self.vcloud_session.get_vcloud_headers(), self.verify, self.log) return vapp
def ping(self): self.response = Http.get( self.api_url, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) return self.response.status_code
def delete_network_action(vca=None, network_uuid=None): """ Method leverages vCloud director and query network based on network uuid Args: vca - is active VCA connection. network_uuid - is a network uuid Returns: The return XML respond """ if vca is None or network_uuid is None: return None url_list = [vca.host, '/api/admin/network/', network_uuid] vm_list_rest_call = ''.join(url_list) if not (not vca.vcloud_session or not vca.vcloud_session.organization): response = Http.get(url=vm_list_rest_call, headers=vca.vcloud_session.get_vcloud_headers(), verify=vca.verify, logger=vca.logger) if response.status_code == requests.codes.ok: print response.content return response.content return None
def get_status(self): self.response = Http.get(self.url + '/status', headers=self.get_headers(), verify=self.verify, logger=self.logger) Log.debug(self.logger, self.response.status_code) Log.debug(self.logger, self.response.content) return self.response.content
def list(self, deployment_id): params = {'deployment_id': deployment_id} self.score.response = Http.get(self.score.url + '/executions', headers=self.score.get_headers(), params=params, verify=self.score.verify, logger=self.logger) if self.score.response.status_code == requests.codes.ok: return json.loads(self.score.response.content) else: Log.error(self.logger, 'list executions returned %s' % self.score.response.status_code)
def get_disks(self, vdc_name): vdc = self.get_vdc(vdc_name) links = self.get_diskRefs(vdc) disks = [] for link in links: response = Http.get(link.get_href(), headers = self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) disk = self._parse_disk(response.content) vms = [] content_type = "application/vnd.vmware.vcloud.vms+xml" response = Http.get(link.get_href()+'/attachedVms', headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) # print response.content listofvms = vmsType.parseString(response.content, True) for vmReference in listofvms.get_VmReference(): vms.append(vmReference) disks.append([disk, vms]) return disks
def get_vdc(self, vdc_name): if self.vcloud_session and self.vcloud_session.organization: refs = filter(lambda ref: ref.name == vdc_name and ref.type_ == 'application/vnd.vmware.vcloud.vdc+xml', self.vcloud_session.organization.Link) if len(refs) == 1: self.response = Http.get(refs[0].href, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: # print self.response.content return vdcType.parseString(self.response.content, True)
def list(self): self.score.response = Http.get(self.score.url + '/blueprints', headers=self.score.get_headers(), verify=self.score.verify, logger=self.logger) if self.score.response.status_code != requests.codes.ok: raise exceptions.from_response(self.score.response) return json.loads(self.score.response.content)
def _get(self, href): response = Http.get( href, headers=self._session.vca.vcloud_session.get_vcloud_headers(), verify=CONF.vcloud.verify) if response.status_code == requests.codes.ok: return response return None
def get_catalogs(self): links = filter(lambda link: link.get_type() == "application/vnd.vmware.vcloud.catalog+xml", self.vcloud_session.organization.Link) catalogs = [] for link in links: self.response = Http.get(link.get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: catalogs.append(catalogType.parseString(self.response.content, True)) return catalogs
def display_progress(self, task, cmd_proc=None, headers=None): progress = task.get_Progress() status = task.get_status() rnd = 0 response = None while status != "success": if status == "error": error = task.get_Error() sys.stdout.write('\r' + ' ' * 120 + '\r') sys.stdout.flush() self.print_error(CommonUtils.convertPythonObjToStr( error, name="Error"), cmd_proc=cmd_proc) return None else: # some task doesn't not report progress if progress: sys.stdout.write("\rprogress : [" + "*" * int(progress) + " " * (100 - int(progress - 1)) + "] " + str(progress) + " %") else: sys.stdout.write("\rprogress : ") if rnd % 4 == 0: sys.stdout.write( "[" + "*" * 25 + " " * 75 + "]") elif rnd % 4 == 1: sys.stdout.write( "[" + " " * 25 + "*" * 25 + " " * 50 + "]") elif rnd % 4 == 2: sys.stdout.write( "[" + " " * 50 + "*" * 25 + " " * 25 + "]") elif rnd % 4 == 3: sys.stdout.write( "[" + " " * 75 + "*" * 25 + "]") rnd += 1 sys.stdout.flush() time.sleep(1) response = Http.get(task.get_href(), headers=headers, verify=cmd_proc.verify, logger=cmd_proc.logger) if response.status_code == requests.codes.ok: task = parseString(response.content, True) progress = task.get_Progress() status = task.get_status() else: Log.error(cmd_proc.logger, "can't get task") return sys.stdout.write("\r" + " " * 120) sys.stdout.flush() if response is not None: if cmd_proc is not None and cmd_proc.json_output: sys.stdout.write("\r" + self.task_to_json(response.content) + '\n') else: sys.stdout.write("\r" + self.task_to_table(response.content) + '\n') sys.stdout.flush()
def get_syslog_conf(self): headers = self.headers headers['Accept']='application/*+xml;version=5.11' self.response = Http.get(self.me.href, data='', headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: doc = ET.fromstring(self.response.content) for element in doc.iter('{http://www.vmware.com/vcloud/v1.5}SyslogServerIp'): return element.text return ''
def get(self, deployment_id): self.score.response = Http.get(self.score.url + '/deployments/%s' % deployment_id, headers=self.score.get_headers(), verify=self.score.verify, logger=self.logger) if self.score.response.status_code != requests.codes.ok: raise exceptions.from_response(self.score.response) return json.loads(self.score.response.content)
def get_clusters(self): headers = self.vcloud_session.get_vcloud_headers() self.response = Http.get(self.api_url, headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: return json.loads(self.response.content) else: raise Exception(self.response.status_code)
def get_admin_network_href(self, vdc_name, network_name): vdc = self.get_vdc(vdc_name) link = filter(lambda link: link.get_rel() == "orgVdcNetworks", vdc.get_Link()) self.response = Http.get(link[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) queryResultRecords = queryRecordViewType.parseString(self.response.content, True) if self.response.status_code == requests.codes.ok: for record in queryResultRecords.get_Record(): if record.name == network_name: return record.href
def get_instance(self, instance_id, service_code='mssql'): self.response = Http.get(self.host + '/appsrv/%s/v1/instances/%s' % (service_code, instance_id), headers=self.get_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: return json.loads(self.response.content) else: raise Exception(self.response.status_code)
def get_extensions(self): content_type = 'application/vnd.vmware.admin.vmwExtension+xml' link = filter(lambda link: link.get_type() == content_type, self.vcloud_session.get_Link()) self.response = Http.get(link[0].get_href() + '/service/query', headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: doc = ET.fromstring(self.response.content) return doc else: raise Exception(self.response.status_code)
def get_networks(self, vdc_name): result = [] vdc = self.get_vdc(vdc_name) if not vdc: return result networks = vdc.get_AvailableNetworks().get_Network() for n in networks: self.response = Http.get(n.get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: network = networkType.parseString(self.response.content, True) result.append(network) return result
def list(self, deployment_id): params = {'deployment_id': deployment_id} self.score.response = Http.get(self.score.url + '/executions', headers=self.score.get_headers(), params=params, verify=self.score.verify, logger=self.logger) if self.score.response.status_code != requests.codes.ok: Log.error( self.logger, 'list executions returned %s' % self.score.response.status_code) raise exceptions.from_response(self.score.response) return json.loads(self.score.response.content)
def get_orgs(self): content_type = 'application/vnd.vmware.vcloud.orgList+xml' link = filter(lambda link: link.get_type() == content_type, self.vcloud_session.get_Link()) orgs = [] self.response = Http.get(link[0].get_href(), headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: organizations = organizationListType.parseString(self.response.content, True) for org in organizations.get_Org(): orgs.append({'name': org.get_name(), 'href': org.get_href()}) return orgs else: raise Exception(self.response.status_code)
def get_task(self, task_id): if self.vcloud_session: o = urlparse(self.vcloud_session.url) link = '%s://%s%s/%s' % (o.scheme, o.netloc, '/api/task', task_id) self.response = Http.get( link, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: return taskType.parseString(self.response.content, True) else: raise Exception(self.response.status_code) return None
def download(self, blueprint_id, output_file=None): self.score.response = Http.get(self.score.url + '/blueprints/%s/archive' % blueprint_id, headers=self.score.get_headers(), verify=self.score.verify, logger=self.logger) if self.score.response.status_code != requests.codes.ok: raise exceptions.from_response(self.score.response) with contextlib.closing(self.score.response) as streamed_response: output_file = self._write_response_stream_to_file( streamed_response, output_file) return output_file
def get_syslog_conf(self): headers = self.headers headers['Accept'] = 'application/*+xml;version=5.11' self.response = Http.get(self.me.href, data='', headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: doc = ET.fromstring(self.response.content) for element in doc.iter( '{http://www.vmware.com/vcloud/v1.5}SyslogServerIp'): return element.text return ''
def download(self, blueprint_id, output_file=None): self.score.response = Http.get( self.score.url + '/blueprints/%s/archive' % blueprint_id, headers=self.score.get_headers(), verify=self.score.verify, logger=self.logger) if self.score.response.status_code != requests.codes.ok: raise exceptions.from_response(self.score.response) with contextlib.closing(self.score.response) as streamed_response: output_file = self._write_response_stream_to_file( streamed_response, output_file) return output_file
def get(self, execution_id, from_event=0, batch_size=100, include_logs=False): data = { "execution_id": execution_id, "from": from_event, "size": batch_size, "include_logs": include_logs } headers = self.score.get_headers() headers['Content-type'] = 'application/json' self.score.response = Http.get(self.score.url + '/events', headers=headers, data=json.dumps(data), verify=self.score.verify, logger=self.logger) if self.score.response.status_code != requests.codes.ok: raise exceptions.from_response(self.score.response) return json.loads(self.score.response.content)
def get_tasks(self, status=statuses[0]): if self.vcloud_session and self.vcloud_session.organization: refs = filter( lambda ref: ref.type_ == 'application/vnd.vmware.vcloud.tasksList+xml', self.vcloud_session.organization.Link) if len(refs) == 1: self.response = Http.get( refs[0].href, headers=self.vcloud_session.get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: return tasksListType.parseString(self.response.content, True) else: raise Exception(self.response.status_code) return None
def get(self, execution_id, from_event=0, batch_size=100, include_logs=False): assert execution_id data = { "from": from_event, "size": batch_size, "sort": [{"@timestamp": {"order": "asc"}}], "query": self._create_events_query(execution_id, include_logs) } headers = self.score.get_headers() headers['Content-type'] = 'application/json' self.score.response = Http.get(self.score.url + '/events', headers=headers, data=data, verify=self.score.verify, logger=self.logger) if self.score.response.status_code == requests.codes.ok: # print self.score.response.content json_events = json.loads(self.score.response.content) return json_events else: return []
def login_to_org(self, service, org_name): vdcReference = self.get_vdc_reference(service, org_name) if vdcReference: link = filter(lambda link: link.get_type() == "application/xml;class=vnd.vmware.vchs.vcloudsession", vdcReference.get_Link())[0] self.response = Http.post(link.get_href(), headers=self._get_vcloud_headers(), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.created: vchs = vchsType.parseString(self.response.content, True) vdcLink = vchs.get_VdcLink() headers = {} headers[vdcLink.authorizationHeader] = vdcLink.authorizationToken headers["Accept"] = "application/*+xml;version=" + self.version self.response = Http.get(vdcLink.href, headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: self.vdc = vdcType.parseString(self.response.content, True) self.org = self.vdc.name org_url = filter(lambda link: link.get_type() == "application/vnd.vmware.vcloud.org+xml", self.vdc.get_Link())[0].href vcloud_session = VCS(org_url, self.username, self.org, None, org_url, org_url, version=self.version, verify=self.verify, log=self.log) if vcloud_session.login(password=None, token=vdcLink.authorizationToken): self.vcloud_session = vcloud_session return True return False
def login(self, password=None, token=None): if token: headers = {} headers["x-vcloud-authorization"] = token headers["Accept"] = "application/*+xml;version=" + self.version self.response = Http.get(self.org_url, headers=headers, verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: self.token = token self.organization = organizationType.parseString(self.response.content, True) return True else: return False else: headers = {} headers["Accept"] = "application/*+xml;version=" + self.version self.response = Http.post(self.url, headers=headers, auth=(self.username + "@" + self.org, password), verify=self.verify, logger=self.logger) if self.response.status_code == requests.codes.ok: self.token = self.response.headers["x-vcloud-authorization"] self.session = sessionType.parseString(self.response.content, True) self.org_url = filter(lambda link: link.type_ == 'application/vnd.vmware.vcloud.org+xml', self.session.Link)[0].href return True else: return False
def get(self, blueprint_id): self.score.response = Http.get(self.score.url + '/blueprints/{0}'.format(blueprint_id), headers=self.score.get_headers(), verify=self.score.verify, logger=self.logger) if self.score.response.status_code == requests.codes.ok: return json.loads(self.score.response.content)
def ping(self): self.response = Http.get(self.host + '/appsrv/api/v1/services/mssql/', headers=self.get_headers(), verify=self.verify, logger=self.logger) return self.response.status_code
def ping(self): self.response = Http.get(self.url + '/blueprints', headers=self.get_headers(), verify=self.verify, logger=self.logger) return self.response.status_code
def list(self): self.score.response = Http.get(self.score.url + '/deployments', headers=self.score.get_headers(), verify=self.score.verify, logger=self.logger) if self.score.response.status_code == requests.codes.ok: return json.loads(self.score.response.content)