avst-cloud 0.1.14 → 0.1.17
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 +8 -8
- data/avst-cloud.gemspec +2 -2
- data/bin/avst-cloud-azure-rm +6 -3
- data/lib/avst-cloud/azure_rm_connection.rb +84 -36
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzFkODdkZDM1M2NiZTcxNDkxMTEzN2E3N2U5OWU3NjE1NTU0ZDE3OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjUyZTIwYzMyNTA1Mzk1MGZjZWYxZTU5MzQ1OTk4MDY1MmNmNWZjNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjM5ZTZjY2RhZjMzNDliOGVmMDBhNzljOWNiODY0MDhjZmJmZmJhMzZmMWU1
|
10
|
+
NTk3YTdmOWYyYzVjMTgzZDZhODIyNGJlMTAxYThhMzc2NmZjNjVhNjk2YTA5
|
11
|
+
ZWRjYzgwODc1OTViYzM0OTljYzM1ZGVlNjJhZjgyY2ZjOWZhNDI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTFlOTI3ZDYyZWQ0NTdjYzNhMjRkYzA2NGNhNDk2Yzc0MzUyN2IzYzU3OWNm
|
14
|
+
MTgzMjNiODE4NzA2NTc5ZTY3NmZmODkyZDA5Mzg4YjI5ZWQ5YjY0YTUyOWVm
|
15
|
+
Zjc3ZmY1NDlhYTEzZGY3YjVhOTcyNDY0MWI4MzMzZmZkOTllNWY=
|
data/avst-cloud.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "avst-cloud"
|
7
|
-
spec.version = '0.1.
|
7
|
+
spec.version = '0.1.17'
|
8
8
|
spec.authors = ["Martin Brehovsky", "Jon Bevan", "Matthew Hope"]
|
9
9
|
spec.email = ["mbrehovsky@adaptavist.com", "jbevan@adaptavist.com", "mhope@adaptavist.com"]
|
10
10
|
spec.summary = %q{Automated creation, bootstrapping and provisioning of servers }
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_development_dependency "rake"
|
21
21
|
spec.add_dependency "fog"
|
22
22
|
spec.add_dependency "fog-azure"
|
23
|
-
spec.add_dependency "fog-azure-rm"
|
23
|
+
spec.add_dependency "fog-azure-rm", "0.0.3"
|
24
24
|
spec.add_dependency "azure"
|
25
25
|
spec.add_dependency "capistrano", "3.2.1"
|
26
26
|
spec.add_dependency "capistrano-rvm"
|
data/bin/avst-cloud-azure-rm
CHANGED
@@ -35,7 +35,7 @@ publisher = 'Canonical'
|
|
35
35
|
offer = 'UbuntuServer'
|
36
36
|
sku = '14.04.2-LTS'
|
37
37
|
version = 'latest'
|
38
|
-
|
38
|
+
platform = nil # defaults to Linux
|
39
39
|
server_name = "hostname1"
|
40
40
|
user = "ubuntu"
|
41
41
|
# Must comply to Azure pass guidelines
|
@@ -55,6 +55,7 @@ dns_list = nil
|
|
55
55
|
network_address_list = nil
|
56
56
|
address_prefix = nil
|
57
57
|
use_public_ip = true # will return public ip, if set to false, private will be used by bootstrap
|
58
|
+
create_public_ip_configuration = true # in case you do not want to create public ip config set to false, ip_configuration_name needs to be set anyway, defaults to true
|
58
59
|
serv = conn.create_server(server_name,
|
59
60
|
user,
|
60
61
|
password,
|
@@ -62,7 +63,8 @@ serv = conn.create_server(server_name,
|
|
62
63
|
offer,
|
63
64
|
sku,
|
64
65
|
version,
|
65
|
-
|
66
|
+
platform,
|
67
|
+
location,
|
66
68
|
resource_group,
|
67
69
|
vm_size,
|
68
70
|
storage_account_name,
|
@@ -76,7 +78,8 @@ serv = conn.create_server(server_name,
|
|
76
78
|
dns_list,
|
77
79
|
network_address_list,
|
78
80
|
address_prefix,
|
79
|
-
use_public_ip
|
81
|
+
use_public_ip,
|
82
|
+
create_public_ip_configuration)
|
80
83
|
|
81
84
|
# serv = conn.server(server_name, resource_group ,user, password)
|
82
85
|
# puts serv.inspect
|
@@ -27,7 +27,7 @@ module AvstCloud
|
|
27
27
|
@subscription_id = subscription_id
|
28
28
|
end
|
29
29
|
|
30
|
-
def server(server_name, resource_group, root_user, root_password, use_public_ip=true)
|
30
|
+
def server(server_name, resource_group, root_user, root_password, use_public_ip=true, network_interface_resource_group=nil, public_ip_resource_group=nil )
|
31
31
|
server = find_fog_server(server_name, resource_group)
|
32
32
|
if !root_user
|
33
33
|
root_user = get_root_user
|
@@ -35,22 +35,24 @@ module AvstCloud
|
|
35
35
|
ip_address = nil
|
36
36
|
if (server.network_interface_card_id)
|
37
37
|
network_interface_card_name = server.network_interface_card_id.split("/")[-1]
|
38
|
-
|
38
|
+
network_interface_resource_group = resource_group unless network_interface_resource_group
|
39
|
+
nic = connect_to_networks.network_interfaces(resource_group: network_interface_resource_group).get(network_interface_card_name)
|
39
40
|
if nic
|
40
41
|
if use_public_ip
|
41
42
|
if nic.public_ip_address_id
|
42
43
|
ip_configuration_name = nic.public_ip_address_id.split("/")[-1]
|
43
|
-
|
44
|
+
public_ip_resource_group = network_interface_resource_group unless public_ip_resource_group
|
45
|
+
pip = connect_to_networks.public_ips(resource_group: public_ip_resource_group).get(ip_configuration_name)
|
44
46
|
ip_address = pip.ip_address
|
45
47
|
else
|
46
|
-
logger.debug "Can not find public ip for server #{server_name} in resource_group #{
|
48
|
+
logger.debug "Can not find public ip for server #{server_name} in resource_group #{public_ip_resource_group}"
|
47
49
|
raise "Can not find public ip"
|
48
50
|
end
|
49
51
|
else
|
50
52
|
ip_address = nic.private_ip_address
|
51
53
|
end
|
52
54
|
else
|
53
|
-
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{
|
55
|
+
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{network_interface_resource_group}"
|
54
56
|
raise "Can not find network interface card"
|
55
57
|
end
|
56
58
|
else
|
@@ -68,6 +70,7 @@ module AvstCloud
|
|
68
70
|
offer,
|
69
71
|
sku,
|
70
72
|
version,
|
73
|
+
platform,
|
71
74
|
location,
|
72
75
|
resource_group,
|
73
76
|
vm_size,
|
@@ -82,12 +85,19 @@ module AvstCloud
|
|
82
85
|
dns_list,
|
83
86
|
network_address_list,
|
84
87
|
address_prefix,
|
85
|
-
use_public_ip
|
88
|
+
use_public_ip,
|
89
|
+
create_public_ip_configuration,
|
90
|
+
storage_account_resource_group=nil,
|
91
|
+
virtual_network_resource_group=nil,
|
92
|
+
network_interface_resource_group=nil,
|
93
|
+
public_ip_resource_group=nil,
|
94
|
+
subnet_resource_group=nil
|
95
|
+
)
|
86
96
|
|
87
97
|
location = location || 'West Europe'
|
88
98
|
user = user || get_root_user
|
89
99
|
vm_size = vm_size || "Basic_A0"
|
90
|
-
|
100
|
+
platform = platform || "Linux"
|
91
101
|
# Check that resource_group exists if not create one
|
92
102
|
check_create_resource_group(resource_group, location)
|
93
103
|
|
@@ -108,13 +118,26 @@ module AvstCloud
|
|
108
118
|
logger.debug "offer - #{offer}"
|
109
119
|
logger.debug "sku - #{sku}"
|
110
120
|
logger.debug "version - #{version}"
|
121
|
+
logger.debug "platform - #{platform}"
|
122
|
+
|
123
|
+
storage_account_resource_group = resource_group unless storage_account_resource_group
|
124
|
+
virtual_network_resource_group = resource_group unless virtual_network_resource_group
|
125
|
+
network_interface_resource_group = virtual_network_resource_group unless network_interface_resource_group
|
126
|
+
public_ip_resource_group = virtual_network_resource_group unless public_ip_resource_group
|
127
|
+
subnet_resource_group = virtual_network_resource_group unless subnet_resource_group
|
128
|
+
|
129
|
+
logger.debug "storage_account_resource_group - #{storage_account_resource_group}"
|
130
|
+
logger.debug "network_interface_resource_group - #{network_interface_resource_group}"
|
131
|
+
logger.debug "virtual_network_resource_group - #{virtual_network_resource_group}"
|
132
|
+
logger.debug "public_ip_resource_group - #{public_ip_resource_group}"
|
133
|
+
logger.debug "subnet_resource_group - #{subnet_resource_group}"
|
111
134
|
|
112
135
|
# Check that storage_account exists if not create one
|
113
|
-
check_create_storage_account(storage_account_name, location,
|
136
|
+
check_create_storage_account(storage_account_name, location, storage_account_resource_group)
|
114
137
|
|
115
138
|
# Check if network_interface_card_id exists if not create one
|
116
139
|
# If not, create one for virtual network provided with subnet, security group and also public ip name
|
117
|
-
ip_address = check_create_network_interface(network_interface_name,
|
140
|
+
ip_address = check_create_network_interface(network_interface_name, network_interface_resource_group, location, virtual_network_name, subnet_name, ip_configuration_name, private_ip_allocation_method, public_ip_allocation_method, subnet_address_list, dns_list, network_address_list, address_prefix, use_public_ip, create_public_ip_configuration, virtual_network_resource_group, public_ip_resource_group, subnet_resource_group)
|
118
141
|
|
119
142
|
# create server
|
120
143
|
server = connect.servers.create(
|
@@ -126,11 +149,12 @@ module AvstCloud
|
|
126
149
|
username: user,
|
127
150
|
password: password,
|
128
151
|
disable_password_authentication: false,
|
129
|
-
network_interface_card_id: "/subscriptions/#{@subscription_id}/resourceGroups/#{
|
152
|
+
network_interface_card_id: "/subscriptions/#{@subscription_id}/resourceGroups/#{network_interface_resource_group}/providers/Microsoft.Network/networkInterfaces/#{network_interface_name}",
|
130
153
|
publisher: publisher,
|
131
154
|
offer: offer,
|
132
155
|
sku: sku,
|
133
|
-
version: version
|
156
|
+
version: version,
|
157
|
+
platform: platform
|
134
158
|
)
|
135
159
|
|
136
160
|
result_server = AvstCloud::AzureRmServer.new(server, server_name, ip_address, user, password)
|
@@ -147,18 +171,27 @@ module AvstCloud
|
|
147
171
|
logger.debug "#{storage_acc.inspect}"
|
148
172
|
end
|
149
173
|
|
150
|
-
def check_create_network_interface(network_interface_name, resource_group, location, virtual_network_name, subnet_name, ip_configuration_name, private_ip_allocation_method="Dynamic", public_ip_allocation_method="Static", subnet_address_list=nil, dns_list=nil, network_address_list=nil, address_prefix=nil, use_public_ip=true)
|
174
|
+
def check_create_network_interface(network_interface_name, resource_group, location, virtual_network_name, subnet_name, ip_configuration_name, private_ip_allocation_method="Dynamic", public_ip_allocation_method="Static", subnet_address_list=nil, dns_list=nil, network_address_list=nil, address_prefix=nil, use_public_ip=true, create_public_ip_configuration=true, virtual_network_resource_group=nil, public_ip_resource_group=nil, subnet_resource_group=nil)
|
151
175
|
nic = connect_to_networks.network_interfaces(resource_group: resource_group).get(network_interface_name)
|
152
176
|
|
153
177
|
# check/create ip_configuration_name exists
|
154
|
-
|
178
|
+
if create_public_ip_configuration
|
179
|
+
public_ip_resource_group = resource_group unless public_ip_resource_group
|
180
|
+
public_ip = check_create_ip_configuration(ip_configuration_name, public_ip_resource_group, location, public_ip_allocation_method)
|
181
|
+
public_ip_address_id = "/subscriptions/#{@subscription_id}/resourceGroups/#{public_ip_resource_group}/providers/Microsoft.Network/publicIPAddresses/#{ip_configuration_name}"
|
182
|
+
else
|
183
|
+
use_public_ip = false
|
184
|
+
end
|
155
185
|
unless nic
|
186
|
+
# default virtual_network_resource_group to network interface resource group
|
187
|
+
virtual_network_resource_group = resource_group unless virtual_network_resource_group
|
156
188
|
# check/create virtual_network exists
|
157
|
-
vnet = check_create_virtual_network(virtual_network_name,
|
189
|
+
vnet = check_create_virtual_network(virtual_network_name, virtual_network_resource_group, location, subnet_address_list, dns_list, network_address_list)
|
158
190
|
|
191
|
+
subnet_resource_group = virtual_network_resource_group unless subnet_resource_group
|
159
192
|
# check if provided subnet exists, if nil then use default one
|
160
|
-
unless subnet_name
|
161
|
-
subnets = connect_to_networks.subnets(resource_group:
|
193
|
+
unless subnet_name
|
194
|
+
subnets = connect_to_networks.subnets(resource_group: subnet_resource_group, virtual_network_name: virtual_network_name)
|
162
195
|
if subnets.length == 0
|
163
196
|
raise "Can not decide what subnet to choose. There are no subnets for virtual network #{virtual_network_name}."
|
164
197
|
elsif subnets.length != 1
|
@@ -167,16 +200,16 @@ module AvstCloud
|
|
167
200
|
subnet_name = subnets[0].name
|
168
201
|
logger.debug "Using subnet #{subnet_name}"
|
169
202
|
end
|
170
|
-
|
171
203
|
nic = connect_to_networks.network_interfaces.create(
|
172
204
|
name: network_interface_name,
|
173
205
|
resource_group: resource_group,
|
174
206
|
location: location,
|
175
|
-
subnet_id: "/subscriptions/#{@subscription_id}/resourceGroups/#{
|
176
|
-
public_ip_address_id:
|
207
|
+
subnet_id: "/subscriptions/#{@subscription_id}/resourceGroups/#{subnet_resource_group}/providers/Microsoft.Network/virtualNetworks/#{virtual_network_name}/subnets/#{subnet_name}",
|
208
|
+
public_ip_address_id: public_ip_address_id,
|
177
209
|
ip_configuration_name: ip_configuration_name,
|
178
210
|
private_ip_allocation_method: private_ip_allocation_method
|
179
211
|
)
|
212
|
+
|
180
213
|
end
|
181
214
|
if use_public_ip
|
182
215
|
public_ip
|
@@ -185,12 +218,13 @@ module AvstCloud
|
|
185
218
|
end
|
186
219
|
end
|
187
220
|
|
188
|
-
def find_network_interface_for_server(server_name, resource_group, should_fail=false)
|
221
|
+
def find_network_interface_for_server(server_name, resource_group, should_fail=false, network_interface_resource_group=nil)
|
189
222
|
server = find_fog_server(server_name, resource_group)
|
190
223
|
network_interface = nil
|
191
224
|
if (server and server.network_interface_card_id)
|
192
225
|
network_interface_card_name = server.network_interface_card_id.split("/")[-1]
|
193
|
-
|
226
|
+
network_interface_resource_group = resource_group unless network_interface_resource_group
|
227
|
+
network_interface = connect_to_networks.network_interfaces(resource_group: network_interface_resource_group).get(network_interface_card_name)
|
194
228
|
else
|
195
229
|
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{resource_group}"
|
196
230
|
raise "Can not find network interface card" if should_fail
|
@@ -240,21 +274,23 @@ module AvstCloud
|
|
240
274
|
logger.debug "Public IP deleted"
|
241
275
|
end
|
242
276
|
|
243
|
-
def destroy_ip_configuration_for_server(server_name, resource_group, should_fail=false)
|
277
|
+
def destroy_ip_configuration_for_server(server_name, resource_group, should_fail=false, network_interface_resource_group=nil, public_ip_resource_group=nil)
|
244
278
|
server = find_fog_server(server_name, resource_group)
|
245
279
|
if (server.network_interface_card_id)
|
246
280
|
network_interface_card_name = server.network_interface_card_id.split("/")[-1]
|
247
|
-
|
281
|
+
network_interface_resource_group = resource_group unless network_interface_resource_group
|
282
|
+
nic = connect_to_networks.network_interfaces(resource_group: network_interface_resource_group).get(network_interface_card_name)
|
248
283
|
if nic
|
249
284
|
if nic.public_ip_address_id
|
250
285
|
ip_configuration_name = nic.public_ip_address_id.split("/")[-1]
|
251
|
-
|
286
|
+
public_ip_resource_group = network_interface_resource_group unless public_ip_resource_group
|
287
|
+
destroy_ip_configuration(ip_configuration_name, public_ip_resource_group)
|
252
288
|
else
|
253
|
-
logger.debug "Can not find public ip for server #{server_name} in resource_group #{
|
289
|
+
logger.debug "Can not find public ip for server #{server_name} in resource_group #{network_interface_resource_group}"
|
254
290
|
raise "Can not find public ip" if should_fail
|
255
291
|
end
|
256
292
|
else
|
257
|
-
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{
|
293
|
+
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{network_interface_resource_group}"
|
258
294
|
raise "Can not find network interface card" if should_fail
|
259
295
|
end
|
260
296
|
else
|
@@ -286,22 +322,24 @@ module AvstCloud
|
|
286
322
|
logger.debug "Subnet deleted"
|
287
323
|
end
|
288
324
|
|
289
|
-
def destroy_subnet_for_server(server_name, resource_group, should_fail=false)
|
325
|
+
def destroy_subnet_for_server(server_name, resource_group, should_fail=false, network_interface_resource_group=nil, subnet_resource_group=nil)
|
290
326
|
server = find_fog_server(server_name, resource_group)
|
291
327
|
if (server.network_interface_card_id)
|
292
328
|
network_interface_card_name = server.network_interface_card_id.split("/")[-1]
|
293
|
-
|
329
|
+
network_interface_resource_group = resource_group unless network_interface_resource_group
|
330
|
+
nic = connect_to_networks.network_interfaces(resource_group: network_interface_resource_group).get(network_interface_card_name)
|
294
331
|
if nic
|
295
332
|
if nic.subnet_id
|
296
333
|
subnet_id_name = nic.subnet_id.split("/")[-1]
|
297
334
|
virtual_network_name = nic.subnet_id.split("virtualNetworks/")[-1].split("/")[0]
|
335
|
+
subnet_resource_group = network_interface_resource_group unless subnet_resource_group
|
298
336
|
destroy_subnet(subnet_id_name, resource_group, virtual_network_name)
|
299
337
|
else
|
300
|
-
logger.debug "Can not find subnet for server #{server_name} in resource_group #{
|
338
|
+
logger.debug "Can not find subnet for server #{server_name} in resource_group #{network_interface_resource_group}"
|
301
339
|
raise "Can not find subnet" if should_fail
|
302
340
|
end
|
303
341
|
else
|
304
|
-
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{
|
342
|
+
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{network_interface_resource_group}"
|
305
343
|
raise "Can not find network interface card" if should_fail
|
306
344
|
end
|
307
345
|
else
|
@@ -330,21 +368,23 @@ module AvstCloud
|
|
330
368
|
vnet
|
331
369
|
end
|
332
370
|
|
333
|
-
def destroy_virtual_network_for_server(server_name, resource_group, should_fail=false)
|
371
|
+
def destroy_virtual_network_for_server(server_name, resource_group, should_fail=false, network_interface_resource_group=nil, subnet_resource_group=nil)
|
334
372
|
server = find_fog_server(server_name, resource_group)
|
335
373
|
if (server.network_interface_card_id)
|
336
374
|
network_interface_card_name = server.network_interface_card_id.split("/")[-1]
|
337
|
-
|
375
|
+
network_interface_resource_group = resource_group unless network_interface_resource_group
|
376
|
+
nic = connect_to_networks.network_interfaces(resource_group: network_interface_resource_group).get(network_interface_card_name)
|
338
377
|
if nic
|
339
378
|
if nic.subnet_id
|
340
379
|
virtual_network_name = nic.subnet_id.split("virtualNetworks/")[-1].split("/")[0]
|
380
|
+
subnet_resource_group = virtual_network_resource_group unless subnet_resource_group
|
341
381
|
destroy_virtual_network(virtual_network_name, resource_group)
|
342
382
|
else
|
343
|
-
logger.debug "Can not find virtual network for server #{server_name} in resource_group #{
|
383
|
+
logger.debug "Can not find virtual network for server #{server_name} in resource_group #{virtual_network_resource_group}"
|
344
384
|
raise "Can not find subnet" if should_fail
|
345
385
|
end
|
346
386
|
else
|
347
|
-
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{
|
387
|
+
logger.debug "Can not find network interface card for server #{server_name} in resource_group #{virtual_network_resource_group}"
|
348
388
|
raise "Can not find network interface card" if should_fail
|
349
389
|
end
|
350
390
|
else
|
@@ -381,14 +421,22 @@ module AvstCloud
|
|
381
421
|
if (server and server.storage_account_name)
|
382
422
|
storage_account_name = server.storage_account_name
|
383
423
|
end
|
424
|
+
# storage account name not provided as part of server, trying to get it from os_disk_vhd_uri
|
425
|
+
unless storage_account_name
|
426
|
+
if server.os_disk_vhd_uri != nil
|
427
|
+
# os_disk_vhd_uri="http://storage_account_name.blob.core.windows.net/vhds/servername_os_disk.vhd"
|
428
|
+
storage_account_name = server.os_disk_vhd_uri.split(".")[0].split("/")[-1]
|
429
|
+
end
|
430
|
+
end
|
384
431
|
storage_account_name
|
385
432
|
end
|
386
433
|
|
387
|
-
def destroy_storage_account_for_server(server_name, resource_group, should_fail=false)
|
434
|
+
def destroy_storage_account_for_server(server_name, resource_group, should_fail=false, storage_account_resource_group=nil)
|
388
435
|
server = find_fog_server(server_name, resource_group)
|
389
436
|
if (server.storage_account_name)
|
390
437
|
storage_account_name = server.storage_account_name
|
391
|
-
|
438
|
+
storage_account_resource_group = resource_group unless storage_account_resource_group
|
439
|
+
destroy_storage_account(storage_account_name, storage_account_resource_group)
|
392
440
|
else
|
393
441
|
logger.debug "Can not find storage account for server #{server_name} in resource_group #{resource_group}"
|
394
442
|
raise "Can not find storage account" if should_fail
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avst-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Brehovsky
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-07-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -72,16 +72,16 @@ dependencies:
|
|
72
72
|
name: fog-azure-rm
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - '='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 0.0.3
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - '='
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
84
|
+
version: 0.0.3
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: azure
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|