avst-cloud 0.1.17 → 0.1.18

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzFkODdkZDM1M2NiZTcxNDkxMTEzN2E3N2U5OWU3NjE1NTU0ZDE3OQ==
4
+ NjlhMDcyNDIwYTI2OGMxYzI3NDk3NGVlZjJkYjRkMWE3MWVjM2QxMw==
5
5
  data.tar.gz: !binary |-
6
- MjUyZTIwYzMyNTA1Mzk1MGZjZWYxZTU5MzQ1OTk4MDY1MmNmNWZjNA==
6
+ YjRlOTJhODcwZjZkNDc5MDUwZDFiZDEzYmJiM2Y0ZGExM2U0YTQ2Ng==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MjM5ZTZjY2RhZjMzNDliOGVmMDBhNzljOWNiODY0MDhjZmJmZmJhMzZmMWU1
10
- NTk3YTdmOWYyYzVjMTgzZDZhODIyNGJlMTAxYThhMzc2NmZjNjVhNjk2YTA5
11
- ZWRjYzgwODc1OTViYzM0OTljYzM1ZGVlNjJhZjgyY2ZjOWZhNDI=
9
+ NTViZTQ1ZmYyZDZlYzFkZjJkNjk5NzM1ODU3ZWNlOWI4YTk1ODc0OTA0NWVl
10
+ NjI1NDZjYmM4YTNjNDI1MzYyYTAwYTkxMTM2NTg3MDcyYTY2ZTNkYTBhODky
11
+ OGI4ODQ3NGEzYmI5NWY1MDI0ZmM2OWZmN2Q5ZTM0NGYyMGMxN2Q=
12
12
  data.tar.gz: !binary |-
13
- NTFlOTI3ZDYyZWQ0NTdjYzNhMjRkYzA2NGNhNDk2Yzc0MzUyN2IzYzU3OWNm
14
- MTgzMjNiODE4NzA2NTc5ZTY3NmZmODkyZDA5Mzg4YjI5ZWQ5YjY0YTUyOWVm
15
- Zjc3ZmY1NDlhYTEzZGY3YjVhOTcyNDY0MWI4MzMzZmZkOTllNWY=
13
+ NmUxODY3MTZjODRhNDdkNmIzNWJiZmYwZGM4M2JhYTQ4ZjYwYmUzODVkN2Yz
14
+ OWRmOGIxZWI1M2YzNjcyN2QzMTYzY2Y3ZjVlMmFiNGQzNDUzYzZmNTkyYzdm
15
+ OTE0YzdkOGIxYzYwZGJkMTA2YTNjNTAxNTg2OTdhY2M4ZWYzMzY=
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.17'
7
+ spec.version = '0.1.18'
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 }
@@ -87,6 +87,7 @@ module AvstCloud
87
87
  address_prefix,
88
88
  use_public_ip,
89
89
  create_public_ip_configuration,
90
+ availability_set_name=nil,
90
91
  storage_account_resource_group=nil,
91
92
  virtual_network_resource_group=nil,
92
93
  network_interface_resource_group=nil,
@@ -119,6 +120,7 @@ module AvstCloud
119
120
  logger.debug "sku - #{sku}"
120
121
  logger.debug "version - #{version}"
121
122
  logger.debug "platform - #{platform}"
123
+ logger.debug "availability_set_name- #{availability_set_name}"
122
124
 
123
125
  storage_account_resource_group = resource_group unless storage_account_resource_group
124
126
  virtual_network_resource_group = resource_group unless virtual_network_resource_group
@@ -135,6 +137,8 @@ module AvstCloud
135
137
  # Check that storage_account exists if not create one
136
138
  check_create_storage_account(storage_account_name, location, storage_account_resource_group)
137
139
 
140
+ availability_set_id = availability_set_name ? check_create_availability_set(availability_set_name, resource_group, location).id : nil
141
+
138
142
  # Check if network_interface_card_id exists if not create one
139
143
  # If not, create one for virtual network provided with subnet, security group and also public ip name
140
144
  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)
@@ -154,7 +158,8 @@ module AvstCloud
154
158
  offer: offer,
155
159
  sku: sku,
156
160
  version: version,
157
- platform: platform
161
+ platform: platform,
162
+ availability_set_id: availability_set_id
158
163
  )
159
164
 
160
165
  result_server = AvstCloud::AzureRmServer.new(server, server_name, ip_address, user, password)
@@ -452,6 +457,49 @@ module AvstCloud
452
457
  logger.debug "Storage deleted"
453
458
  end
454
459
 
460
+ def check_create_availability_set(availability_set_name, resource_group, location)
461
+ logger.debug "Searching for #{resource_group}"
462
+ found_availability_set = connect.availability_sets(resource_group: resource_group).get(resource_group, availability_set_name)
463
+ unless found_availability_set
464
+ logger.debug "Availability set #{availability_set_name} in #{resource_group} not found, creating new one"
465
+ found_availability_set = connect.availability_sets.create(
466
+ name: availability_set_name,
467
+ location: location,
468
+ resource_group: resource_group
469
+ )
470
+ end
471
+ found_availability_set
472
+ end
473
+
474
+ def find_availability_set_name_for_server(server_name, resource_group, should_fail=true)
475
+ availability_set_name = nil
476
+ server = find_fog_server(server_name, resource_group)
477
+ if (server.availability_set_id)
478
+ availability_set_name = server.availability_set_id.split("/")[-1]
479
+ else
480
+ logger.debug "Can not find availability_set_id for server #{server_name} in resource_group #{resource_group}"
481
+ raise "Can not find availability_set_id" if should_fail
482
+ end
483
+ availability_set_name
484
+ end
485
+
486
+ def list_availability_sets(resource_group)
487
+ availability_sets = connect.availability_sets(resource_group: resource_group)
488
+ availability_sets.each do |availability_set|
489
+ logger.debug "#{availability_set.id}"
490
+ logger.debug "#{availability_set.name}"
491
+ logger.debug "#{availability_set.location}"
492
+ end
493
+ end
494
+
495
+ def destroy_availability_set(availability_set_name, resource_group)
496
+ logger.debug "Deleting #{resource_group}"
497
+ found_availability_set = connect.availability_sets(resource_group: resource_group).get(resource_group, availability_set_name)
498
+ if found_availability_set
499
+ found_availability_set.destroy
500
+ end
501
+ end
502
+
455
503
  def check_create_resource_group(resource_group, location)
456
504
  logger.debug "Searching for #{resource_group}"
457
505
  found_resource_group = connect_to_resources.resource_groups.get(resource_group)
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.17
4
+ version: 0.1.18
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-07-04 00:00:00.000000000 Z
13
+ date: 2016-07-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler