vm_shepherd 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/vm_shepherd/shepherd.rb +69 -69
- data/lib/vm_shepherd/version.rb +1 -1
- data/lib/vm_shepherd/vsphere_manager.rb +15 -13
- data/spec/fixtures/shepherd/aws.yml +1 -1
- data/spec/fixtures/shepherd/openstack.yml +1 -1
- data/spec/fixtures/shepherd/vcloud.yml +1 -1
- data/spec/fixtures/shepherd/vsphere.yml +11 -6
- data/spec/vm_shepherd/shepherd_spec.rb +54 -54
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 332b0c845cd5bedefc34b1b53112f8c88d4f47e2
|
|
4
|
+
data.tar.gz: 84722561fa76876622ee890a54ebdc356eb04524
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f34ca161984596b2f1f60b7bb79909a455dc61c7fb440af5f97ba5bc4137939fcec5091242f4a98944236f4701af9743b9ca27e9cb2ef60744371e4cb1cdb357
|
|
7
|
+
data.tar.gz: fd2e25348bb919862ff161d3dc75d3e00cf0f3b0df1226fd050a76b6ed7cf8fbf4907a5fd515e4a38583679958321ffae796b6573ef4d77bb77a72f6966693c2
|
data/lib/vm_shepherd/shepherd.rb
CHANGED
|
@@ -11,15 +11,15 @@ module VmShepherd
|
|
|
11
11
|
when VmShepherd::VCLOUD_IAAS_TYPE then
|
|
12
12
|
VmShepherd::VcloudManager.new(
|
|
13
13
|
{
|
|
14
|
-
url: settings.
|
|
15
|
-
organization: settings.
|
|
16
|
-
user: settings.
|
|
17
|
-
password: settings.
|
|
14
|
+
url: settings.vm_shepherd.creds.url,
|
|
15
|
+
organization: settings.vm_shepherd.creds.organization,
|
|
16
|
+
user: settings.vm_shepherd.creds.user,
|
|
17
|
+
password: settings.vm_shepherd.creds.password,
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
vdc: settings.
|
|
21
|
-
catalog: settings.
|
|
22
|
-
network: settings.
|
|
20
|
+
vdc: settings.vm_shepherd.vdc.name,
|
|
21
|
+
catalog: settings.vm_shepherd.vdc.catalog,
|
|
22
|
+
network: settings.vm_shepherd.vdc.network,
|
|
23
23
|
},
|
|
24
24
|
debug_logger
|
|
25
25
|
).deploy(
|
|
@@ -28,25 +28,25 @@ module VmShepherd
|
|
|
28
28
|
)
|
|
29
29
|
when VmShepherd::VSPHERE_IAAS_TYPE then
|
|
30
30
|
VmShepherd::VsphereManager.new(
|
|
31
|
-
settings.
|
|
32
|
-
settings.
|
|
33
|
-
settings.
|
|
34
|
-
settings.
|
|
31
|
+
settings.vm_shepherd.vcenter_creds.ip,
|
|
32
|
+
settings.vm_shepherd.vcenter_creds.username,
|
|
33
|
+
settings.vm_shepherd.vcenter_creds.password,
|
|
34
|
+
settings.vm_shepherd.vsphere.datacenter,
|
|
35
35
|
).deploy(
|
|
36
36
|
path,
|
|
37
37
|
{
|
|
38
|
-
ip: settings.
|
|
39
|
-
gateway: settings.
|
|
40
|
-
netmask: settings.
|
|
41
|
-
dns: settings.
|
|
42
|
-
ntp_servers: settings.
|
|
38
|
+
ip: settings.vm_shepherd.vm.ip,
|
|
39
|
+
gateway: settings.vm_shepherd.vm.gateway,
|
|
40
|
+
netmask: settings.vm_shepherd.vm.netmask,
|
|
41
|
+
dns: settings.vm_shepherd.vm.dns,
|
|
42
|
+
ntp_servers: settings.vm_shepherd.vm.ntp_servers,
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
cluster: settings.
|
|
46
|
-
resource_pool: settings.
|
|
47
|
-
datastore: settings.
|
|
48
|
-
network: settings.
|
|
49
|
-
folder: settings.
|
|
45
|
+
cluster: settings.vm_shepherd.vsphere.cluster,
|
|
46
|
+
resource_pool: settings.vm_shepherd.vsphere.resource_pool,
|
|
47
|
+
datastore: settings.vm_shepherd.vsphere.datastore,
|
|
48
|
+
network: settings.vm_shepherd.vsphere.network,
|
|
49
|
+
folder: settings.vm_shepherd.vsphere.folder,
|
|
50
50
|
}
|
|
51
51
|
)
|
|
52
52
|
when VmShepherd::AWS_IAAS_TYPE then
|
|
@@ -63,25 +63,25 @@ module VmShepherd
|
|
|
63
63
|
when VmShepherd::VCLOUD_IAAS_TYPE then
|
|
64
64
|
VmShepherd::VcloudManager.new(
|
|
65
65
|
{
|
|
66
|
-
url: settings.
|
|
67
|
-
organization: settings.
|
|
68
|
-
user: settings.
|
|
69
|
-
password: settings.
|
|
66
|
+
url: settings.vm_shepherd.creds.url,
|
|
67
|
+
organization: settings.vm_shepherd.creds.organization,
|
|
68
|
+
user: settings.vm_shepherd.creds.user,
|
|
69
|
+
password: settings.vm_shepherd.creds.password,
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
vdc: settings.
|
|
73
|
-
catalog: settings.
|
|
74
|
-
network: settings.
|
|
72
|
+
vdc: settings.vm_shepherd.vdc.name,
|
|
73
|
+
catalog: settings.vm_shepherd.vdc.catalog,
|
|
74
|
+
network: settings.vm_shepherd.vdc.network,
|
|
75
75
|
},
|
|
76
76
|
logger
|
|
77
|
-
).destroy([settings.
|
|
77
|
+
).destroy([settings.vm_shepherd.vapp.ops_manager_name] + settings.vm_shepherd.vapp.product_names)
|
|
78
78
|
when VmShepherd::VSPHERE_IAAS_TYPE then
|
|
79
79
|
VmShepherd::VsphereManager.new(
|
|
80
|
-
settings.
|
|
81
|
-
settings.
|
|
82
|
-
settings.
|
|
83
|
-
settings.
|
|
84
|
-
).destroy(settings.
|
|
80
|
+
settings.vm_shepherd.vcenter_creds.ip,
|
|
81
|
+
settings.vm_shepherd.vcenter_creds.username,
|
|
82
|
+
settings.vm_shepherd.vcenter_creds.password,
|
|
83
|
+
settings.vm_shepherd.vsphere.datacenter,
|
|
84
|
+
).destroy(settings.vm_shepherd.vm.ip)
|
|
85
85
|
when VmShepherd::AWS_IAAS_TYPE then
|
|
86
86
|
ami_manager.destroy
|
|
87
87
|
when VmShepherd::OPENSTACK_IAAS_TYPE then
|
|
@@ -96,28 +96,28 @@ module VmShepherd
|
|
|
96
96
|
when VmShepherd::VCLOUD_IAAS_TYPE then
|
|
97
97
|
VmShepherd::VcloudManager.new(
|
|
98
98
|
{
|
|
99
|
-
url: settings.
|
|
100
|
-
organization: settings.
|
|
101
|
-
user: settings.
|
|
102
|
-
password: settings.
|
|
99
|
+
url: settings.vm_shepherd.creds.url,
|
|
100
|
+
organization: settings.vm_shepherd.creds.organization,
|
|
101
|
+
user: settings.vm_shepherd.creds.user,
|
|
102
|
+
password: settings.vm_shepherd.creds.password,
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
vdc: settings.
|
|
106
|
-
catalog: settings.
|
|
107
|
-
network: settings.
|
|
105
|
+
vdc: settings.vm_shepherd.vdc.name,
|
|
106
|
+
catalog: settings.vm_shepherd.vdc.catalog,
|
|
107
|
+
network: settings.vm_shepherd.vdc.network,
|
|
108
108
|
},
|
|
109
109
|
logger
|
|
110
110
|
).clean_environment
|
|
111
111
|
when VmShepherd::VSPHERE_IAAS_TYPE then
|
|
112
112
|
VmShepherd::VsphereManager.new(
|
|
113
|
-
settings.
|
|
114
|
-
settings.
|
|
115
|
-
settings.
|
|
116
|
-
settings.
|
|
113
|
+
settings.vm_shepherd.vcenter_creds.ip,
|
|
114
|
+
settings.vm_shepherd.vcenter_creds.username,
|
|
115
|
+
settings.vm_shepherd.vcenter_creds.password,
|
|
116
|
+
settings.vm_shepherd.cleanup.datacenter,
|
|
117
117
|
).clean_environment(
|
|
118
|
-
datacenter_folders_to_clean: settings.
|
|
119
|
-
|
|
120
|
-
datastore_folders_to_clean: settings.
|
|
118
|
+
datacenter_folders_to_clean: settings.vm_shepherd.cleanup.datacenter_folders_to_clean,
|
|
119
|
+
datastores: settings.vm_shepherd.cleanup.datastores,
|
|
120
|
+
datastore_folders_to_clean: settings.vm_shepherd.cleanup.datastore_folders_to_clean,
|
|
121
121
|
)
|
|
122
122
|
when VmShepherd::AWS_IAAS_TYPE then
|
|
123
123
|
ami_manager.clean_environment
|
|
@@ -145,7 +145,7 @@ module VmShepherd
|
|
|
145
145
|
end
|
|
146
146
|
|
|
147
147
|
def vcloud_deploy_options
|
|
148
|
-
vm = settings.
|
|
148
|
+
vm = settings.vm_shepherd.vapp
|
|
149
149
|
{
|
|
150
150
|
name: vm.ops_manager_name,
|
|
151
151
|
ip: vm.ip,
|
|
@@ -157,37 +157,37 @@ module VmShepherd
|
|
|
157
157
|
end
|
|
158
158
|
|
|
159
159
|
def ami_manager
|
|
160
|
-
|
|
160
|
+
vm_shepherd = settings.vm_shepherd
|
|
161
161
|
VmShepherd::AwsManager.new(
|
|
162
|
-
aws_access_key:
|
|
163
|
-
aws_secret_key:
|
|
164
|
-
ssh_key_name:
|
|
165
|
-
security_group_id:
|
|
166
|
-
public_subnet_id:
|
|
167
|
-
private_subnet_id:
|
|
168
|
-
elastic_ip_id:
|
|
169
|
-
vm_name:
|
|
162
|
+
aws_access_key: vm_shepherd.aws_access_key,
|
|
163
|
+
aws_secret_key: vm_shepherd.aws_secret_key,
|
|
164
|
+
ssh_key_name: vm_shepherd.ssh_key_name,
|
|
165
|
+
security_group_id: vm_shepherd.security_group,
|
|
166
|
+
public_subnet_id: vm_shepherd.public_subnet_id,
|
|
167
|
+
private_subnet_id: vm_shepherd.private_subnet_id,
|
|
168
|
+
elastic_ip_id: vm_shepherd.elastic_ip_id,
|
|
169
|
+
vm_name: vm_shepherd.vm_name,
|
|
170
170
|
)
|
|
171
171
|
end
|
|
172
172
|
|
|
173
173
|
def openstack_vm_manager
|
|
174
174
|
OpenstackManager.new(
|
|
175
|
-
auth_url: settings.
|
|
176
|
-
username: settings.
|
|
177
|
-
api_key: settings.
|
|
178
|
-
tenant: settings.
|
|
175
|
+
auth_url: settings.vm_shepherd.creds.auth_url,
|
|
176
|
+
username: settings.vm_shepherd.creds.username,
|
|
177
|
+
api_key: settings.vm_shepherd.creds.api_key,
|
|
178
|
+
tenant: settings.vm_shepherd.creds.tenant,
|
|
179
179
|
)
|
|
180
180
|
end
|
|
181
181
|
|
|
182
182
|
def openstack_vm_options
|
|
183
183
|
{
|
|
184
|
-
name: settings.
|
|
185
|
-
min_disk_size: settings.
|
|
186
|
-
network_name: settings.
|
|
187
|
-
key_name: settings.
|
|
188
|
-
security_group_names: settings.
|
|
189
|
-
public_ip: settings.
|
|
190
|
-
private_ip: settings.
|
|
184
|
+
name: settings.vm_shepherd.vm.name,
|
|
185
|
+
min_disk_size: settings.vm_shepherd.vm.flavor_parameters.min_disk_size,
|
|
186
|
+
network_name: settings.vm_shepherd.vm.network_name,
|
|
187
|
+
key_name: settings.vm_shepherd.vm.key_name,
|
|
188
|
+
security_group_names: settings.vm_shepherd.vm.security_group_names,
|
|
189
|
+
public_ip: settings.vm_shepherd.vm.public_ip,
|
|
190
|
+
private_ip: settings.vm_shepherd.vm.private_ip,
|
|
191
191
|
}
|
|
192
192
|
end
|
|
193
193
|
end
|
data/lib/vm_shepherd/version.rb
CHANGED
|
@@ -29,25 +29,27 @@ module VmShepherd
|
|
|
29
29
|
FileUtils.remove_entry_secure(ovf_file_path, force: true) unless ovf_file_path.nil?
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
def clean_environment(datacenter_folders_to_clean:,
|
|
32
|
+
def clean_environment(datacenter_folders_to_clean:, datastores:, datastore_folders_to_clean:)
|
|
33
33
|
datacenter_folders_to_clean.each do |folder_name|
|
|
34
34
|
validate_folder_name!(folder_name)
|
|
35
35
|
delete_folder_and_vms(folder_name)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
datastore_folders_to_clean.each do |folder_name|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
datastores.each do |datastore|
|
|
40
|
+
VALID_DISK_FOLDER_REGEX.match(folder_name) || fail("#{folder_name.inspect} is not a valid disk folder name")
|
|
41
|
+
begin
|
|
42
|
+
logger.info("BEGIN datastore_folder.destroy_task folder=#{folder_name}")
|
|
43
|
+
|
|
44
|
+
connection.serviceContent.fileManager.DeleteDatastoreFile_Task(
|
|
45
|
+
datacenter: datacenter,
|
|
46
|
+
name: "[#{datastore}] #{folder_name}"
|
|
47
|
+
).wait_for_completion
|
|
48
|
+
|
|
49
|
+
logger.info("END datastore_folder.destroy_task folder=#{folder_name}")
|
|
50
|
+
rescue RbVmomi::Fault => e
|
|
51
|
+
logger.info("ERROR datastore_folder.destroy_task folder=#{folder_name} #{e.inspect}")
|
|
52
|
+
end
|
|
51
53
|
end
|
|
52
54
|
end
|
|
53
55
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
iaas_type: vsphere
|
|
2
|
-
|
|
2
|
+
vm_shepherd:
|
|
3
3
|
vcenter_creds:
|
|
4
4
|
ip: OVA_URL
|
|
5
5
|
username: OVA_ORGANIZATION
|
|
@@ -12,14 +12,19 @@ vm_deployer:
|
|
|
12
12
|
resource_pool: VSPHERE_RESOURCE_POOL
|
|
13
13
|
datastore: VSPHERE_DATASTORE
|
|
14
14
|
folder: VSPHERE_FOLDER
|
|
15
|
-
datacenter_folders_to_clean:
|
|
16
|
-
- DC_FOLDER_ONE
|
|
17
|
-
- DC_FOLDER_TWO
|
|
18
|
-
datastore_folders_to_clean:
|
|
19
|
-
- DS_DISK_FOLDER
|
|
20
15
|
vm:
|
|
21
16
|
ip: OVA_IP
|
|
22
17
|
gateway: OVA_GATEWAY
|
|
23
18
|
netmask: OVA_NETMASK
|
|
24
19
|
dns: OVA_DNS
|
|
25
20
|
ntp_servers: OVA_NTP
|
|
21
|
+
cleanup:
|
|
22
|
+
datacenter: VSPHERE_OTHER_DATACENTER
|
|
23
|
+
datastores:
|
|
24
|
+
- VSPHERE_DATASTORE_ONE
|
|
25
|
+
- VSPHERE_DATASTORE_TWO
|
|
26
|
+
datacenter_folders_to_clean:
|
|
27
|
+
- DC_FOLDER_ONE
|
|
28
|
+
- DC_FOLDER_TWO
|
|
29
|
+
datastore_folders_to_clean:
|
|
30
|
+
- DS_DISK_FOLDER
|
|
@@ -16,15 +16,15 @@ module VmShepherd
|
|
|
16
16
|
expect(VcloudManager).to receive(:new).
|
|
17
17
|
with(
|
|
18
18
|
{
|
|
19
|
-
url: settings.
|
|
20
|
-
organization: settings.
|
|
21
|
-
user: settings.
|
|
22
|
-
password: settings.
|
|
19
|
+
url: settings.vm_shepherd.creds.url,
|
|
20
|
+
organization: settings.vm_shepherd.creds.organization,
|
|
21
|
+
user: settings.vm_shepherd.creds.user,
|
|
22
|
+
password: settings.vm_shepherd.creds.password,
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
vdc: settings.
|
|
26
|
-
catalog: settings.
|
|
27
|
-
network: settings.
|
|
25
|
+
vdc: settings.vm_shepherd.vdc.name,
|
|
26
|
+
catalog: settings.vm_shepherd.vdc.catalog,
|
|
27
|
+
network: settings.vm_shepherd.vdc.network,
|
|
28
28
|
},
|
|
29
29
|
instance_of(Logger)
|
|
30
30
|
).and_return(vcloud_manager)
|
|
@@ -32,12 +32,12 @@ module VmShepherd
|
|
|
32
32
|
expect(vcloud_manager).to receive(:deploy).with(
|
|
33
33
|
'FAKE_PATH',
|
|
34
34
|
{
|
|
35
|
-
name: settings.
|
|
36
|
-
ip: settings.
|
|
37
|
-
gateway: settings.
|
|
38
|
-
netmask: settings.
|
|
39
|
-
dns: settings.
|
|
40
|
-
ntp: settings.
|
|
35
|
+
name: settings.vm_shepherd.vapp.ops_manager_name,
|
|
36
|
+
ip: settings.vm_shepherd.vapp.ip,
|
|
37
|
+
gateway: settings.vm_shepherd.vapp.gateway,
|
|
38
|
+
netmask: settings.vm_shepherd.vapp.netmask,
|
|
39
|
+
dns: settings.vm_shepherd.vapp.dns,
|
|
40
|
+
ntp: settings.vm_shepherd.vapp.ntp,
|
|
41
41
|
}
|
|
42
42
|
)
|
|
43
43
|
|
|
@@ -53,27 +53,27 @@ module VmShepherd
|
|
|
53
53
|
|
|
54
54
|
it 'uses VsphereManager to launch a vm' do
|
|
55
55
|
expect(VsphereManager).to receive(:new).with(
|
|
56
|
-
settings.
|
|
57
|
-
settings.
|
|
58
|
-
settings.
|
|
59
|
-
settings.
|
|
56
|
+
settings.vm_shepherd.vcenter_creds.ip,
|
|
57
|
+
settings.vm_shepherd.vcenter_creds.username,
|
|
58
|
+
settings.vm_shepherd.vcenter_creds.password,
|
|
59
|
+
settings.vm_shepherd.vsphere.datacenter,
|
|
60
60
|
).and_return(ova_manager)
|
|
61
61
|
|
|
62
62
|
expect(ova_manager).to receive(:deploy).with(
|
|
63
63
|
'FAKE_PATH',
|
|
64
64
|
{
|
|
65
|
-
ip: settings.
|
|
66
|
-
gateway: settings.
|
|
67
|
-
netmask: settings.
|
|
68
|
-
dns: settings.
|
|
69
|
-
ntp_servers: settings.
|
|
65
|
+
ip: settings.vm_shepherd.vm.ip,
|
|
66
|
+
gateway: settings.vm_shepherd.vm.gateway,
|
|
67
|
+
netmask: settings.vm_shepherd.vm.netmask,
|
|
68
|
+
dns: settings.vm_shepherd.vm.dns,
|
|
69
|
+
ntp_servers: settings.vm_shepherd.vm.ntp_servers,
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
cluster: settings.
|
|
73
|
-
resource_pool: settings.
|
|
74
|
-
datastore: settings.
|
|
75
|
-
network: settings.
|
|
76
|
-
folder: settings.
|
|
72
|
+
cluster: settings.vm_shepherd.vsphere.cluster,
|
|
73
|
+
resource_pool: settings.vm_shepherd.vsphere.resource_pool,
|
|
74
|
+
datastore: settings.vm_shepherd.vsphere.datastore,
|
|
75
|
+
network: settings.vm_shepherd.vsphere.network,
|
|
76
|
+
folder: settings.vm_shepherd.vsphere.folder,
|
|
77
77
|
},
|
|
78
78
|
)
|
|
79
79
|
|
|
@@ -165,19 +165,19 @@ module VmShepherd
|
|
|
165
165
|
it 'uses VcloudManager to destroy a vm' do
|
|
166
166
|
expect(VcloudManager).to receive(:new).with(
|
|
167
167
|
{
|
|
168
|
-
url: settings.
|
|
169
|
-
organization: settings.
|
|
170
|
-
user: settings.
|
|
171
|
-
password: settings.
|
|
168
|
+
url: settings.vm_shepherd.creds.url,
|
|
169
|
+
organization: settings.vm_shepherd.creds.organization,
|
|
170
|
+
user: settings.vm_shepherd.creds.user,
|
|
171
|
+
password: settings.vm_shepherd.creds.password,
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
|
-
vdc: settings.
|
|
175
|
-
catalog: settings.
|
|
176
|
-
network: settings.
|
|
174
|
+
vdc: settings.vm_shepherd.vdc.name,
|
|
175
|
+
catalog: settings.vm_shepherd.vdc.catalog,
|
|
176
|
+
network: settings.vm_shepherd.vdc.network,
|
|
177
177
|
},
|
|
178
178
|
instance_of(Logger)
|
|
179
179
|
).and_return(vcloud_manager)
|
|
180
|
-
vapp_names = [settings.
|
|
180
|
+
vapp_names = [settings.vm_shepherd.vapp.ops_manager_name] + settings.vm_shepherd.vapp.product_names
|
|
181
181
|
expect(vcloud_manager).to receive(:destroy).with(vapp_names)
|
|
182
182
|
|
|
183
183
|
manager.destroy
|
|
@@ -192,12 +192,12 @@ module VmShepherd
|
|
|
192
192
|
|
|
193
193
|
it 'uses VsphereManager to destroy a vm' do
|
|
194
194
|
expect(VsphereManager).to receive(:new).with(
|
|
195
|
-
settings.
|
|
196
|
-
settings.
|
|
197
|
-
settings.
|
|
198
|
-
settings.
|
|
195
|
+
settings.vm_shepherd.vcenter_creds.ip,
|
|
196
|
+
settings.vm_shepherd.vcenter_creds.username,
|
|
197
|
+
settings.vm_shepherd.vcenter_creds.password,
|
|
198
|
+
settings.vm_shepherd.vsphere.datacenter,
|
|
199
199
|
).and_return(ova_manager)
|
|
200
|
-
expect(ova_manager).to receive(:destroy).with(settings.
|
|
200
|
+
expect(ova_manager).to receive(:destroy).with(settings.vm_shepherd.vm.ip)
|
|
201
201
|
|
|
202
202
|
manager.destroy
|
|
203
203
|
end
|
|
@@ -286,15 +286,15 @@ module VmShepherd
|
|
|
286
286
|
it 'uses VcloudManager to destroy a vm' do
|
|
287
287
|
expect(VcloudManager).to receive(:new).with(
|
|
288
288
|
{
|
|
289
|
-
url: settings.
|
|
290
|
-
organization: settings.
|
|
291
|
-
user: settings.
|
|
292
|
-
password: settings.
|
|
289
|
+
url: settings.vm_shepherd.creds.url,
|
|
290
|
+
organization: settings.vm_shepherd.creds.organization,
|
|
291
|
+
user: settings.vm_shepherd.creds.user,
|
|
292
|
+
password: settings.vm_shepherd.creds.password,
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
|
-
vdc: settings.
|
|
296
|
-
catalog: settings.
|
|
297
|
-
network: settings.
|
|
295
|
+
vdc: settings.vm_shepherd.vdc.name,
|
|
296
|
+
catalog: settings.vm_shepherd.vdc.catalog,
|
|
297
|
+
network: settings.vm_shepherd.vdc.network,
|
|
298
298
|
},
|
|
299
299
|
instance_of(Logger)
|
|
300
300
|
).and_return(vcloud_manager)
|
|
@@ -311,18 +311,18 @@ module VmShepherd
|
|
|
311
311
|
let(:ova_manager) { instance_double(VsphereManager) }
|
|
312
312
|
let(:clean_environment_options) do
|
|
313
313
|
{
|
|
314
|
-
datacenter_folders_to_clean: settings.
|
|
315
|
-
|
|
316
|
-
datastore_folders_to_clean: settings.
|
|
314
|
+
datacenter_folders_to_clean: settings.vm_shepherd.cleanup.datacenter_folders_to_clean,
|
|
315
|
+
datastores: settings.vm_shepherd.cleanup.datastores,
|
|
316
|
+
datastore_folders_to_clean: settings.vm_shepherd.cleanup.datastore_folders_to_clean,
|
|
317
317
|
}
|
|
318
318
|
end
|
|
319
319
|
|
|
320
320
|
it 'uses VsphereManager to destroy a vm' do
|
|
321
321
|
expect(VsphereManager).to receive(:new).with(
|
|
322
|
-
settings.
|
|
323
|
-
settings.
|
|
324
|
-
settings.
|
|
325
|
-
settings.
|
|
322
|
+
settings.vm_shepherd.vcenter_creds.ip,
|
|
323
|
+
settings.vm_shepherd.vcenter_creds.username,
|
|
324
|
+
settings.vm_shepherd.vcenter_creds.password,
|
|
325
|
+
settings.vm_shepherd.cleanup.datacenter,
|
|
326
326
|
).and_return(ova_manager)
|
|
327
327
|
expect(ova_manager).to receive(:clean_environment).with(clean_environment_options)
|
|
328
328
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vm_shepherd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ops Manager Team
|
|
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
177
|
version: '0'
|
|
178
178
|
requirements: []
|
|
179
179
|
rubyforge_project:
|
|
180
|
-
rubygems_version: 2.4.
|
|
180
|
+
rubygems_version: 2.4.5
|
|
181
181
|
signing_key:
|
|
182
182
|
specification_version: 4
|
|
183
183
|
summary: A tool for booting and tearing down Ops Manager VMs on various Infrastructures.
|