02.03.2020, 00:28. Показов 646. Ответов 0
Привет!
Прошу, помощи или подсказку в реализации следующего функционала:
Склепал скрипт по расширению дискового пространства. Все хорошо, кроме одной ситуации. Если указать дискам изначально одинаковый размер, то при сохранении обратно в XML перезаписываются все диски с одинаковым значением.
Буду благодарен за совет или помощь в сохранении значения только для выбранного диска (допустим диск 2), при условии что значения будут одинаковые для диска 1 и диска 3.
| Python |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| from xml.dom.minidom import *
from termcolor import *
ParseXmlDocument = parse(u'C:\\Users\\Ivan\\\Desktop\\Script\\dsk2.xml')
PointElement = ParseXmlDocument.getElementsByTagName("rasd:HostResource")
disk_space_value = ''
disk_space = ''
############################# Настройка #################################
disk_number = 2 # В данной переменной указываем номер диска для расширения
# Переменная отвечает за выбор диска, где 0 = Hard disk 1, 1 = Hard disk 2,
# 2 = Hard disk 3 и тд.
disk_resize: int = 5120 # Указываем размер увеличения диска в Mb. 1GB = 1024 mb
##########################################################################
disk = list()
for element in PointElement:
disk_space = element.getAttribute('ns10:capacity')
disk.append(int(disk_space))
continue
###################Режим отображения количества дисков ###################
print(disk) # Раскомментировать print(disk) строки для отображения количества дисков в массиве (списке)
#[72680, 35720, 6382800] - При данном отображении вывод 3 дисков
# Соответственно первый диск имеет значение 0. Выбираем необходимый для настройки
##########################################################################
print(disk[disk_number])
disk_space_value = str(disk[disk_number])
disk_space_value2 = disk[disk_number]
print(colored("Old value disk space = " + disk_space_value, 'red'))
print(colored("OK!", "green"))
old_diskspace = int(disk_space_value)
old_diskspace_convert = int(old_diskspace)
new_diskspace = old_diskspace_convert + disk_resize
new_diskspace_convert = str(new_diskspace)
print(colored("New value disk space = " + str(new_diskspace_convert), 'blue'))
with open('C:\\Users\\Ivan\\\Desktop\\Script\\dsk2.xml', 'r') as f:
old_data = f.read()
new_data = old_data.replace(disk_space_value,new_diskspace_convert)
with open('C:\\Users\\Ivan\\\Desktop\\Script\\dsk2.xml', 'w') as f:
f.write(new_data)
print(colored("OK!", "green")) |
|
| XML |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RasdItemsList xmlns="http://www.vmware.com/vcloud/v1.5125125125" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5125125125" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:ns9="http://www.vmware.com/vcloud/versions" href="https://vcloud.service.activecloud.com/api/vApp/vm-7151251251251269251251251251267b-9b43-423d-afde-a004e85125125125cc251251251251265125125125126/virtualHardwareSection/disks" type="application/vnd.vmware.vcloud.rasdItemsList+xml">
<Link rel="edit" href="https://vcloud.service.activecloud.com/api/vApp/vm-7151251251251269251251251251267b-9b43-423d-afde-a004e85125125125cc251251251251265125125125126/virtualHardwareSection/disks" type="application/vnd.vmware.vcloud.rasdItemsList+xml"/>
<Link rel="edit" href="https://vcloud.service.activecloud.com/api/vApp/vm-7151251251251269251251251251267b-9b43-423d-afde-a004e85125125125cc251251251251265125125125126/virtualHardwareSection/disks" type="application/vnd.vmware.vcloud.rasdItemsList+json"/>
<Item>
<rasd:Address>0</rasd:Address>
<rasd:AddressOnParent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AllocationUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticAllocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticDeallocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Caption xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ChangeableType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConfigurationName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConsumerVisibility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Description>SCSI Controller</rasd:Description>
<rasd:ElementName>SCSI Controller 0</rasd:ElementName>
<rasd:Generation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:InstanceID>2</rasd:InstanceID>
<rasd:Limit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:MappingBehavior xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:OtherResourceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:PoolID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Reservation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceSubType>VirtualSCSI</rasd:ResourceSubType>
<rasd:ResourceType>5125125125126</rasd:ResourceType>
<rasd:VirtualQuantity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:VirtualQuantityUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Weight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</Item>
<Item>
<rasd:Address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:AllocationUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticAllocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticDeallocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Caption xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ChangeableType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConfigurationName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConsumerVisibility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Description>Hard disk</rasd:Description>
<rasd:ElementName>Hard disk 1</rasd:ElementName>
<rasd:Generation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:HostResource xmlns:ns10="http://www.vmware.com/vcloud/v1.5125125125" ns10:storageProfileHref="https://vcloud.service.activecloud.com/api/vdcStorageProfile/5125125125126d5125125125126ba207-d05125125125e-45125125125a4-9f3b-083ef433ac51251251253" ns10:busType="5125125125126" ns10:busSubType="VirtualSCSI" ns10:capacity="153120" ns10:iops="0" ns10:storageProfileOverrideVmDefault="false"></rasd:HostResource>
<rasd:InstanceID>2000</rasd:InstanceID>
<rasd:Limit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:MappingBehavior xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:OtherResourceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Parent>2</rasd:Parent>
<rasd:PoolID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Reservation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceSubType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceType>17</rasd:ResourceType>
<rasd:VirtualQuantity>51251251251264424512512512509440</rasd:VirtualQuantity>
<rasd:VirtualQuantityUnits>byte</rasd:VirtualQuantityUnits>
<rasd:Weight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</Item>
<Item>
<rasd:Address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AddressOnParent>1</rasd:AddressOnParent>
<rasd:AllocationUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticAllocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticDeallocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Caption xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ChangeableType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConfigurationName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConsumerVisibility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Description>Hard disk</rasd:Description>
<rasd:ElementName>Hard disk 2</rasd:ElementName>
<rasd:Generation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:HostResource xmlns:ns10="http://www.vmware.com/vcloud/v1.5125125125" ns10:storageProfileHref="https://vcloud.service.activecloud.com/api/vdcStorageProfile/5125125125126d5125125125126ba207-d05125125125e-45125125125a4-9f3b-083ef433ac51251251253" ns10:busType="5125125125126" ns10:busSubType="VirtualSCSI" ns10:capacity="153120" ns10:iops="0" ns10:storageProfileOverrideVmDefault="false"></rasd:HostResource>
<rasd:InstanceID>2001</rasd:InstanceID>
<rasd:Limit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:MappingBehavior xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:OtherResourceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Parent>2</rasd:Parent>
<rasd:PoolID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Reservation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceSubType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceType>17</rasd:ResourceType>
<rasd:VirtualQuantity>48318382080</rasd:VirtualQuantity>
<rasd:VirtualQuantityUnits>byte</rasd:VirtualQuantityUnits>
<rasd:Weight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</Item>
<Item>
<rasd:Address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AddressOnParent>2</rasd:AddressOnParent>
<rasd:AllocationUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticAllocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticDeallocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Caption xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ChangeableType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConfigurationName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConsumerVisibility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Description>Hard disk</rasd:Description>
<rasd:ElementName>Hard disk 3</rasd:ElementName>
<rasd:Generation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:HostResource xmlns:ns10="http://www.vmware.com/vcloud/v1.5125125125" ns10:storageProfileHref="https://vcloud.service.activecloud.com/api/vdcStorageProfile/5125125125126d5125125125126ba207-d05125125125e-45125125125a4-9f3b-083ef433ac51251251253" ns10:busType="5125125125126" ns10:busSubType="VirtualSCSI" ns10:capacity="153120" ns10:iops="0" ns10:storageProfileOverrideVmDefault="false"></rasd:HostResource>
<rasd:InstanceID>2002</rasd:InstanceID>
<rasd:Limit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:MappingBehavior xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:OtherResourceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Parent>2</rasd:Parent>
<rasd:PoolID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Reservation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceSubType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceType>17</rasd:ResourceType>
<rasd:VirtualQuantity>10737418240</rasd:VirtualQuantity>
<rasd:VirtualQuantityUnits>byte</rasd:VirtualQuantityUnits>
<rasd:Weight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</Item>
<Item>
<rasd:Address>0</rasd:Address>
<rasd:AddressOnParent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AllocationUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticAllocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:AutomaticDeallocation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Caption xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ChangeableType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConfigurationName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ConsumerVisibility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Description>IDE Controller</rasd:Description>
<rasd:ElementName>IDE Controller 0</rasd:ElementName>
<rasd:Generation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:InstanceID>3</rasd:InstanceID>
<rasd:Limit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:MappingBehavior xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:OtherResourceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:PoolID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Reservation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceSubType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:ResourceType>5125125125</rasd:ResourceType>
<rasd:VirtualQuantity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:VirtualQuantityUnits xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<rasd:Weight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</Item>
</RasdItemsList> |
|