本文整理汇总了Python中schema.vcd.v1_5.schemas.vcloud.taskType.parseString函数的典型用法代码示例。如果您正苦于以下问题:Python parseString函数的具体用法?Python parseString怎么用?Python parseString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了parseString函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: connect_to_network
def connect_to_network(self, network_name, network_href, fence_mode='bridged'):
"""
Connect the vApp to an existing virtual network in the VDC.
:param network_name: (str): The name of the virtual network.
:param network_href: (str): A uri that points to the network resource.
:param fence_mode: (str, optional):
:return: (TaskType) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request.
"""
vApp_NetworkConfigSection = [section for section in self.me.get_Section() if section.__class__.__name__ == "NetworkConfigSectionType"][0]
link = [link for link in vApp_NetworkConfigSection.get_Link() if link.get_type() == "application/vnd.vmware.vcloud.networkConfigSection+xml"][0]
for networkConfig in vApp_NetworkConfigSection.get_NetworkConfig():
if networkConfig.get_networkName() == network_name:
task = TaskType()
task.set_status("success")
task.set_Progress("100")
return task
networkConfigSection = VAPP.create_networkConfigSection(network_name, network_href, fence_mode, vApp_NetworkConfigSection)
output = StringIO()
networkConfigSection.export(output,
0,
name_ = 'NetworkConfigSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body = output.getvalue().\
replace('Info msgid=""', "ovf:Info").replace("Info", "ovf:Info").replace(":vmw", "").replace("vmw:","")\
.replace("RetainNetovf", "ovf").replace("ovf:InfoAcrossDeployments","RetainNetInfoAcrossDeployments")
self.response = Http.put(link.get_href(), data=body, headers=self.headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:kostya13,项目名称:pyvcloud,代码行数:31,代码来源:vapp.py
示例2: set_syslog_conf
def set_syslog_conf(self, syslog_server_ip):
headers = self.headers
headers['Accept'] = 'application/*+xml;version=5.11'
headers['Content-Type'] = 'application/vnd.vmware.vcloud.SyslogSettings+xml;version=5.11'
# content_type = "application/vnd.vmware.vcloud.SyslogSettings+xml"
body = ''
if '' == syslog_server_ip:
body = """
<SyslogServerSettings xmlns="http://www.vmware.com/vcloud/v1.5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://10.160.99.94/api/v1.5/schema/master.xsd">
<TenantSyslogServerSettings>
</TenantSyslogServerSettings>
</SyslogServerSettings>
"""
else:
body = """
<SyslogServerSettings xmlns="http://www.vmware.com/vcloud/v1.5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://10.160.99.94/api/v1.5/schema/master.xsd">
<TenantSyslogServerSettings>
<SyslogServerIp>%s</SyslogServerIp>
</TenantSyslogServerSettings>
</SyslogServerSettings>
""" % syslog_server_ip
# '<SyslogServerSettings><TenantSyslogServerSettings><SyslogServerIp>%s</SyslogServerIp></TenantSyslogServerSettings></SyslogServerSettings>' % syslog_server_ip
# link = filter(lambda link: link.get_type() == content_type, self.me.get_Link())
self.response = requests.post(self.me.href+'/action/configureSyslogServerSettings', data=body, headers=headers, verify=self.verify)
if self.response.status_code == requests.codes.accepted:
task = taskType.parseString(self.response.content, True)
return task
开发者ID:cjoelrun,项目名称:pyvcloud,代码行数:29,代码来源:gateway.py
示例3: disconnect_from_network
def disconnect_from_network(self, network_name):
"""
Disconnect the vApp from an existing virtual network in the VDC.
:param network_name: (str): The name of the virtual network.
:return: (TaskType) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request.
"""
networkConfigSection = [section for section in self.me.get_Section() if section.__class__.__name__ == "NetworkConfigSectionType"][0]
link = [link for link in networkConfigSection.get_Link() if link.get_type() == "application/vnd.vmware.vcloud.networkConfigSection+xml"][0]
found = -1
for index, networkConfig in enumerate(networkConfigSection.get_NetworkConfig()):
if networkConfig.get_networkName() == network_name:
found = index
if found != -1:
networkConfigSection.NetworkConfig.pop(found)
output = StringIO()
networkConfigSection.export(output,
0,
name_ = 'NetworkConfigSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body = output.getvalue().\
replace("vmw:", "").replace('Info xmlns:vmw="http://www.vmware.com/vcloud/v1.5" msgid=""', "ovf:Info").\
replace("/Info", "/ovf:Info")
self.response = Http.put(link.get_href(), data=body, headers=self.headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:kostya13,项目名称:pyvcloud,代码行数:29,代码来源:vapp.py
示例4: disconnect_vms
def disconnect_vms(self, network_name):
children = self.me.get_Children()
if children:
vms = children.get_Vm()
for vm in vms:
networkConnectionSection = [section for section in vm.get_Section() if isinstance(section, NetworkConnectionSectionType)][0]
link = [link for link in networkConnectionSection.get_Link() if link.get_type() == "application/vnd.vmware.vcloud.networkConnectionSection+xml"][0]
found = -1
primary = networkConnectionSection.get_PrimaryNetworkConnectionIndex()
for index, networkConnection in enumerate(networkConnectionSection.NetworkConnection):
if networkConnection.get_network() == network_name:
found = index
if found != -1:
if networkConnectionSection.NetworkConnection[found].get_NetworkConnectionIndex() != primary:
networkConnectionSection.NetworkConnection.pop(found)
else:
networkConnectionSection.NetworkConnection[found].set_network("None")
output = StringIO()
networkConnectionSection.export(output,
0,
name_ = 'NetworkConfigSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body = output.getvalue().\
replace("vmw:", "").replace('Info xmlns:vmw="http://www.vmware.com/vcloud/v1.5" msgid=""', "ovf:Info").\
replace("/Info", "/ovf:Info")
self.response = requests.put(link.get_href(), data=body, headers=self.headers, verify=self.verify)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:cjoelrun,项目名称:pyvcloud,代码行数:31,代码来源:vapp.py
示例5: connect_to_network
def connect_to_network(self, network_name, network_href, fence_mode="bridged"):
vApp_NetworkConfigSection = [
section for section in self.me.get_Section() if section.__class__.__name__ == "NetworkConfigSectionType"
][0]
link = [
link
for link in vApp_NetworkConfigSection.get_Link()
if link.get_type() == "application/vnd.vmware.vcloud.networkConfigSection+xml"
][0]
networkConfigSection = VAPP.create_networkConfigSection(network_name, network_href, fence_mode)
for networkConfig in vApp_NetworkConfigSection.get_NetworkConfig():
if networkConfig.get_networkName() == network_name:
task = TaskType()
task.set_status("success")
task.set_Progress("100")
return task
networkConfigSection.add_NetworkConfig(networkConfig)
output = StringIO()
networkConfigSection.export(
output,
0,
name_="NetworkConfigSection",
namespacedef_='xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print=False,
)
body = output.getvalue().replace('Info msgid=""', "ovf:Info").replace("/Info", "/ovf:Info").replace("vmw:", "")
self.response = requests.put(link.get_href(), data=body, headers=self.headers, verify=self.verify)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:kevin-zhangsen,项目名称:badam,代码行数:29,代码来源:vapp.py
示例6: connect_vms
def connect_vms(self, network_name, connection_index,
connections_primary_index=None, ip_allocation_mode='DHCP',
mac_address=None, ip_address=None):
children = self.me.get_Children()
if children:
vms = children.get_Vm()
for vm in vms:
new_connection = self._create_networkConnection(
network_name, connection_index, ip_allocation_mode,
mac_address, ip_address)
networkConnectionSection = [section for section in vm.get_Section() if isinstance(section, NetworkConnectionSectionType)][0]
self._modify_networkConnectionSection(
networkConnectionSection,
new_connection,
connections_primary_index)
output = StringIO()
networkConnectionSection.export(output,
0,
name_ = 'NetworkConnectionSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:vmw="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body=output.getvalue().replace("vmw:Info", "ovf:Info")
self.response = requests.put(vm.get_href() + "/networkConnectionSection/", data=body, headers=self.headers, verify=self.verify)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:cjoelrun,项目名称:pyvcloud,代码行数:25,代码来源:vapp.py
示例7: disconnect_from_network
def disconnect_from_network(self, network_name):
networkConfigSection = [
section for section in self.me.get_Section() if section.__class__.__name__ == "NetworkConfigSectionType"
][0]
link = [
link
for link in networkConfigSection.get_Link()
if link.get_type() == "application/vnd.vmware.vcloud.networkConfigSection+xml"
][0]
found = -1
for index, networkConfig in enumerate(networkConfigSection.get_NetworkConfig()):
if networkConfig.get_networkName() == network_name:
found = index
if found != -1:
networkConfigSection.NetworkConfig.pop(found)
output = StringIO()
networkConfigSection.export(
output,
0,
name_="NetworkConfigSection",
namespacedef_='xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print=False,
)
body = (
output.getvalue()
.replace("vmw:", "")
.replace('Info xmlns:vmw="http://www.vmware.com/vcloud/v1.5" msgid=""', "ovf:Info")
.replace("/Info", "/ovf:Info")
)
self.response = requests.put(link.get_href(), data=body, headers=self.headers, verify=self.verify)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:kevin-zhangsen,项目名称:badam,代码行数:32,代码来源:vapp.py
示例8: force_customization
def force_customization(self, vm_name):
children = self.me.get_Children()
if children:
vms = [vm for vm in children.get_Vm() if vm.name == vm_name]
if len(vms) == 1:
sections = vms[0].get_Section()
links = filter(lambda link: link.rel == "deploy", vms[0].Link)
if len(links) == 1:
forceCustomizationValue = "true"
deployVAppParams = vcloudType.DeployVAppParamsType()
deployVAppParams.set_powerOn("true")
deployVAppParams.set_deploymentLeaseSeconds(0)
deployVAppParams.set_forceCustomization("true")
body = CommonUtils.convertPythonObjToStr(
deployVAppParams,
name="DeployVAppParams",
namespacedef='xmlns="http://www.vmware.com/vcloud/v1.5"',
)
headers = self.headers
headers["Content-type"] = "application/vnd.vmware.vcloud.deployVAppParams+xml"
self.response = requests.post(links[0].href, data=body, headers=headers, verify=self.verify)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
else:
print self.response.content
开发者ID:kevin-zhangsen,项目名称:badam,代码行数:25,代码来源:vapp.py
示例9: customize_guest_os
def customize_guest_os(self, vm_name, customization_script=None,
computer_name=None, admin_password=None,
reset_password_required=False):
"""
Associate a customization script with a guest OS and execute the script.
The VMware tools must be installed in the Guest OS.
:param vm_name: (str): The name of the vm to be customized.
:param customization_script: (str, Optional): The path to a file on the local file system containing the customization script.
:param computer_name: (str, Optional): A new value for the the computer name. A default value for the template is used if a value is not set.
:param admin_password: (str, Optional): A password value for the admin/root user. A password is autogenerated if a value is not supplied.
:param reset_password_required: (bool): Force the user to reset the password on first login.
:return: (TaskType) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request. \n
if the task cannot be created a debug level log message is generated detailing the reason.
"""
children = self.me.get_Children()
if children:
vms = [vm for vm in children.get_Vm() if vm.name == vm_name]
if len(vms) == 1:
sections = vms[0].get_Section()
customization_section = [section for section in sections
if (section.__class__.__name__ ==
"GuestCustomizationSectionType")
][0]
customization_section.set_Enabled(True)
customization_section.set_ResetPasswordRequired(
reset_password_required)
customization_section.set_AdminAutoLogonEnabled(False)
customization_section.set_AdminAutoLogonCount(0)
if customization_script:
customization_section.set_CustomizationScript(
customization_script)
if computer_name:
customization_section.set_ComputerName(computer_name)
if admin_password:
customization_section.set_AdminPasswordEnabled(True)
customization_section.set_AdminPasswordAuto(False)
customization_section.set_AdminPassword(admin_password)
output = StringIO()
customization_section.export(output,
0,
name_ = 'GuestCustomizationSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body = output.getvalue().\
replace("vmw:", "").replace('Info xmlns:vmw="http://www.vmware.com/vcloud/v1.5" msgid=""', "ovf:Info").\
replace("/Info", "/ovf:Info")
headers = self.headers
headers['Content-type'] = 'application/vnd.vmware.vcloud.guestcustomizationsection+xml'
self.response = Http.put(customization_section.Link[0].href, data=body, headers=headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
else:
Log.debug(self.logger, "failed; response status=%d, content=%s" % (self.response.status_code, self.response.text))
开发者ID:kostya13,项目名称:pyvcloud,代码行数:55,代码来源:vapp.py
示例10: save_services_configuration
def save_services_configuration(self):
edgeGatewayServiceConfiguration = self.me.get_Configuration().get_EdgeGatewayServiceConfiguration()
body = '<?xml version="1.0" encoding="UTF-8"?>' + \
CommonUtils.convertPythonObjToStr(self.me.get_Configuration().get_EdgeGatewayServiceConfiguration(),
name='EdgeGatewayServiceConfiguration',
namespacedef='xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ')
content_type = "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml"
link = filter(lambda link: link.get_type() == content_type, self.me.get_Link())
self.response = requests.post(link[0].get_href(), data=body, headers=self.headers)
if self.response.status_code == requests.codes.accepted:
task = taskType.parseString(self.response.content, True)
return task
开发者ID:cjoelrun,项目名称:pyvcloud,代码行数:12,代码来源:gateway.py
示例11: connect_vms
def connect_vms(self, network_name, connection_index,
connections_primary_index=None, ip_allocation_mode='DHCP',
mac_address=None, ip_address=None):
"""
Attach vms to a virtual network.
something helpful.
:param network_name: (str): The network name to connect the VM to.
:param connection_index: (str): Virtual slot number associated with this NIC. First slot number is 0.
:param connections_primary_index: (str): Virtual slot number associated with the NIC that should be considered this \n
virtual machine's primary network connection. Defaults to slot 0.
:param ip_allocation_mode: (str, optional): IP address allocation mode for this connection.
* One of:
- POOL (A static IP address is allocated automatically from a pool of addresses.)
- DHCP (The IP address is obtained from a DHCP service.)
- MANUAL (The IP address is assigned manually in the IpAddress element.)
- NONE (No IP addressing mode specified.)
:param mac_address: (str): the MAC address associated with the NIC.
:param ip_address: (str): the IP address assigned to this NIC.
:return: (TaskType) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request.
"""
children = self.me.get_Children()
if children:
vms = children.get_Vm()
for vm in vms:
new_connection = self._create_networkConnection(
network_name, connection_index, ip_allocation_mode,
mac_address, ip_address)
networkConnectionSection = [section for section in vm.get_Section() if isinstance(section, NetworkConnectionSectionType)][0]
self._modify_networkConnectionSection(
networkConnectionSection,
new_connection,
connections_primary_index)
output = StringIO()
networkConnectionSection.export(output,
0,
name_ = 'NetworkConnectionSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:vmw="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body=output.getvalue().replace("vmw:Info", "ovf:Info")
self.response = Http.put(vm.get_href() + "/networkConnectionSection/", data=body, headers=self.headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:kostya13,项目名称:pyvcloud,代码行数:52,代码来源:vapp.py
示例12: modify_vm_memory
def modify_vm_memory(self, vm_name, new_size):
"""
Modify the virtual Memory allocation for VM.
:param vm_name: (str): The name of the vm to be customized.
:param new_size: (int): The new memory allocation in MB.
:return: (TaskType) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request. \n
if the task cannot be created a debug level log message is generated detailing the reason.
:raises: Exception: If the named VM cannot be located or another error occured.
"""
children = self.me.get_Children()
if children:
vms = [vm for vm in children.get_Vm() if vm.name == vm_name]
if len(vms) == 1:
sections = vm.get_Section()
virtualHardwareSection = filter(lambda section: section.__class__.__name__== "VirtualHardwareSection_Type", sections)[0]
items = virtualHardwareSection.get_Item()
memory = filter(lambda item: item.get_Description().get_valueOf_() == "Memory Size", items)[0]
href = memory.get_anyAttributes_().get('{http://www.vmware.com/vcloud/v1.5}href')
en = memory.get_ElementName()
en.set_valueOf_('%s MB of memory' % new_size)
memory.set_ElementName(en)
vq = memory.get_VirtualQuantity()
vq.set_valueOf_(new_size)
memory.set_VirtualQuantity(vq)
weight = memory.get_Weight()
weight.set_valueOf_(str(int(new_size)*10))
memory.set_Weight(weight)
memory_string = CommonUtils.convertPythonObjToStr(memory, 'Memory')
Log.debug(self.logger, "memory: \n%s" % memory_string)
output = StringIO()
memory.export(output,
0,
name_ = 'Item',
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 = True)
body = output.getvalue().\
replace('Info msgid=""', "ovf:Info").replace("/Info", "/ovf:Info").\
replace("vmw:", "").replace("class:", "rasd:").replace("ResourceType", "rasd:ResourceType")
headers = self.headers
headers['Content-type'] = 'application/vnd.vmware.vcloud.rasdItem+xml'
self.response = Http.put(href, data=body, headers=headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
else:
raise Exception(self.response.status_code)
raise Exception('can\'t find vm')
开发者ID:kostya13,项目名称:pyvcloud,代码行数:48,代码来源:vapp.py
示例13: disconnect_from_networks
def disconnect_from_networks(self):
networkConfigSection = [section for section in self.me.get_Section() if section.__class__.__name__ == "NetworkConfigSectionType"][0]
link = [link for link in networkConfigSection.get_Link() if link.get_type() == "application/vnd.vmware.vcloud.networkConfigSection+xml"][0]
networkConfigSection.NetworkConfig[:] = []
output = StringIO()
networkConfigSection.export(output,
0,
name_ = 'NetworkConfigSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = False)
body = output.getvalue().\
replace("vmw:", "").replace('Info xmlns:vmw="http://www.vmware.com/vcloud/v1.5" msgid=""', "ovf:Info").\
replace("/Info", "/ovf:Info")
self.response = Http.put(link.get_href(), data=body, headers=self.headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
开发者ID:nmishkin,项目名称:pyvcloud,代码行数:16,代码来源:vapp.py
示例14: allocate_public_ip
def allocate_public_ip(self):
api_version = "5.11"
headers = dict(self.headers)
headers["Accept"] = "application/*+xml;version={0}".format(api_version)
href = self.me.get_href() + "/action/manageExternalIpAddresses"
body = """
<ExternalIpAddressActionList
xmlns="http://www.vmware.com/vcloud/networkservice/1.0">
<Allocation>
<NumberOfExternalIpAddressesToAllocate>1</NumberOfExternalIpAddressesToAllocate>
</Allocation>
</ExternalIpAddressActionList>
"""
self.response = Http.put(href, data=body, headers=headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.ok:
task = taskType.parseString(self.response.content, True)
return task
开发者ID:jtyr,项目名称:pyvcloud,代码行数:18,代码来源:gateway.py
示例15: customize_guest_os
def customize_guest_os(self, vm_name, customization_script=None, computer_name=None, admin_password=None):
children = self.me.get_Children()
if children:
vms = [vm for vm in children.get_Vm() if vm.name == vm_name]
if len(vms) == 1:
sections = vms[0].get_Section()
customization_section = [
section for section in sections if (section.__class__.__name__ == "GuestCustomizationSectionType")
][0]
customization_section.set_AdminAutoLogonEnabled(False)
customization_section.set_AdminAutoLogonCount(0)
if customization_script:
customization_section.set_CustomizationScript(customization_script)
if computer_name:
customization_section.set_ComputerName(computer_name)
if admin_password:
customization_section.set_AdminPasswordEnabled(True)
customization_section.set_AdminPasswordAuto(False)
customization_section.set_ResetPasswordRequired(False)
customization_section.set_AdminPassword(admin_password)
output = StringIO()
customization_section.export(
output,
0,
name_="GuestCustomizationSection",
namespacedef_='xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print=False,
)
body = (
output.getvalue()
.replace("vmw:", "")
.replace('Info xmlns:vmw="http://www.vmware.com/vcloud/v1.5" msgid=""', "ovf:Info")
.replace("/Info", "/ovf:Info")
)
headers = self.headers
headers["Content-type"] = "application/vnd.vmware.vcloud.guestcustomizationsection+xml"
self.response = requests.put(
customization_section.Link[0].href, data=body, headers=headers, verify=self.verify
)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
else:
print self.response.content
开发者ID:kevin-zhangsen,项目名称:badam,代码行数:43,代码来源:vapp.py
示例16: deallocate_public_ip
def deallocate_public_ip(self, ip_address):
api_version = '5.11'
headers = dict(self.headers)
headers['Accept']='application/*+xml;version={0}'.format(api_version)
href = self.me.get_href() + '/action/manageExternalIpAddresses'
body = """
<ExternalIpAddressActionList
xmlns="http://www.vmware.com/vcloud/networkservice/1.0">
<Deallocation>
<ExternalIpAddress>{0}</ExternalIpAddress>
</Deallocation>
</ExternalIpAddressActionList>
""".format(ip_address)
self.response = requests.put(href, data=body, headers=headers,
verify=self.verify)
if self.response.status_code == requests.codes.ok:
task = taskType.parseString(self.response.content, True)
return task
开发者ID:cjoelrun,项目名称:pyvcloud,代码行数:19,代码来源:gateway.py
示例17: disconnect_vms
def disconnect_vms(self, network_name=None):
"""
Disconnect the vm from the vapp network.
:param network_name: (string): The name of the vApp network. If None, then disconnect from all the networks.
:return: (bool): True if the user was vApp was successfully deployed, False otherwise.
"""
children = self.me.get_Children()
if children:
vms = children.get_Vm()
for vm in vms:
Log.debug(self.logger, "child VM name=%s" % vm.get_name())
networkConnectionSection = [section for section in vm.get_Section() if isinstance(section, NetworkConnectionSectionType)][0]
found = -1
if network_name is None:
networkConnectionSection.set_NetworkConnection([])
found = 1
else:
for index, networkConnection in enumerate(networkConnectionSection.get_NetworkConnection()):
if networkConnection.get_network() == network_name:
found = index
break
if found != -1:
networkConnectionSection.NetworkConnection.pop(found)
if found != -1:
output = StringIO()
networkConnectionSection.export(output,
0,
name_ = 'NetworkConnectionSection',
namespacedef_ = 'xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:vmw="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"',
pretty_print = True)
body=output.getvalue().replace("vmw:Info", "ovf:Info")
self.response = Http.put(vm.get_href() + "/networkConnectionSection/", data=body, headers=self.headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
task = TaskType()
task.set_status("success")
task.set_Progress("100")
return task
开发者ID:kostya13,项目名称:pyvcloud,代码行数:40,代码来源:vapp.py
示例18: execute
def execute(self, operation, http, body=None, targetVM=None):
"""
Execute an operation against a VM as an Asychronous Task.
:param operation: (str): The command to execute
:param http: (str): The http operation.
:param body: (str, optional): a body for the http request
:param targetVM: (str, optional): The name of the VM that will be the target of the request.
:return: (TaskType or Bool) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request. \n
Or False if the request failed, error and debug level messages are logged.
"""
vApp = targetVM if targetVM else self.me
link = filter(lambda link: link.get_rel() == operation, vApp.get_Link())
if not link:
Log.error(self.logger, "link not found; rel=%s" % operation)
Log.debug(self.logger, "vApp href=%s, name=%s" % (vApp.get_href(), vApp.get_name()))
return False
else:
if http == "post":
headers = self.headers
if body and body.startswith('<DeployVAppParams '):
headers['Content-type'] = 'application/vnd.vmware.vcloud.deployVAppParams+xml'
elif body and body.startswith('<UndeployVAppParams '):
headers['Content-type'] = 'application/vnd.vmware.vcloud.undeployVAppParams+xml'
elif body and body.startswith('<CreateSnapshotParams '):
headers['Content-type'] = 'application/vnd.vmware.vcloud.createSnapshotParams+xml'
self.response = Http.post(link[0].get_href(), data=body, headers=headers, verify=self.verify, logger=self.logger)
elif http == "put":
self.response = Http.put(link[0].get_href(), data=body, headers=self.headers, verify=self.verify, logger=self.logger)
else:
self.response = Http.delete(link[0].get_href(), headers=self.headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
else:
Log.debug(self.logger, "failed; response status=%d, content=%s" % (self.response.status_code, self.response.text))
return False
开发者ID:kostya13,项目名称:pyvcloud,代码行数:37,代码来源:vapp.py
示例19: force_customization
def force_customization(self, vm_name, power_on=True):
"""
Force the guest OS customization script to be run for a specific vm in the vApp.
A customization script must have been previously associated with the VM
using the pyvcloud customize_guest_os method or using the vCD console
The VMware tools must be installed in the Guest OS.
:param vm_name: (str): The name of the vm to be customized.
:param power_on (bool): Wether to power the vm on after customization or not
:return: (TaskType) a :class:`pyvcloud.schema.vcd.v1_5.schemas.admin.vCloudEntities.TaskType` object that can be used to monitor the request.b\n
if the task cannot be created a debug level log message is generated detailing the reason.
"""
children = self.me.get_Children()
if children:
vms = [vm for vm in children.get_Vm() if vm.name == vm_name]
if len(vms) == 1:
sections = vms[0].get_Section()
links = filter(lambda link: link.rel== "deploy", vms[0].Link)
if len(links) == 1:
forceCustomizationValue = 'true'
deployVAppParams = vcloudType.DeployVAppParamsType()
if power_on:
deployVAppParams.set_powerOn('true')
else:
deployVAppParams.set_powerOn('false')
deployVAppParams.set_deploymentLeaseSeconds(0)
deployVAppParams.set_forceCustomization('true')
body = CommonUtils.convertPythonObjToStr(deployVAppParams, name = "DeployVAppParams",
namespacedef = 'xmlns="http://www.vmware.com/vcloud/v1.5"')
headers = self.headers
headers['Content-type'] = 'application/vnd.vmware.vcloud.deployVAppParams+xml'
self.response = Http.post(links[0].href, data=body, headers=headers, verify=self.verify, logger=self.logger)
if self.response.status_code == requests.codes.accepted:
return taskType.parseString(self.response.content, True)
else:
Log.debug(self.logger, "response status=%d, content=%s" % (self.response.status_code, self.response.text))
|
请发表评论