avst-cloud 0.1.38 → 0.1.39
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/avst-cloud.gemspec +1 -1
- data/lib/avst-cloud/aws_connection.rb +43 -9
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e554dc8cd38016db8c872e1f914121d5c3ea77656baf8728dfd4adeac4f1d46f
|
4
|
+
data.tar.gz: 56246f4e2eac57dba6b5e840cb037d64425e7d69b3cb44f7bf6e78da80b3c4ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b8cdba149899e18f325e7452e006c0b20d9fca52b334984682b092bba5784cfb6d028849d67a9b87c57e7e5a8e48c849b6940a181e7f9df74e12d598db1ba98
|
7
|
+
data.tar.gz: 2a02c5de191f28a462db748ae7f803758f5b13272731600df90ec34e4d1cfdbb5948aacfc49fd8f3a099ce54b1deabf7db56c90ec4e64e30312070996ee265bd
|
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.39'
|
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 }
|
@@ -33,7 +33,7 @@ module AvstCloud
|
|
33
33
|
AvstCloud::AwsServer.new(server, server_name, server.public_ip_address, root_user, root_password)
|
34
34
|
end
|
35
35
|
|
36
|
-
def create_server(server_name, flavour, os, key_name, ssh_key, subnet_id, security_group_ids, ebs_size, hdd_device_path, ami_image_id, availability_zone, additional_hdds={}, vpc=nil, created_by=nil, custom_tags={}, root_username=nil, create_elastic_ip=false)
|
36
|
+
def create_server(server_name, flavour, os, key_name, ssh_key, subnet_id, security_group_ids, ebs_size, hdd_device_path, ami_image_id, availability_zone, additional_hdds={}, vpc=nil, created_by=nil, custom_tags={}, root_username=nil, create_elastic_ip=false, encrypt_root=false ,root_encryption_key=nil, delete_root_disk=true, root_disk_type='gp2', root_disk_iops=0)
|
37
37
|
# Permit named instances from DEFAULT_FLAVOURS
|
38
38
|
flavour = flavour || "t2.micro"
|
39
39
|
os = os || "ubuntu-14"
|
@@ -91,22 +91,56 @@ module AvstCloud
|
|
91
91
|
create_ebs_volume = nil
|
92
92
|
if ebs_size
|
93
93
|
# in case of centos ami we need to use /dev/xvda this is ami dependent
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
94
|
+
root_disk = {
|
95
|
+
:DeviceName => device_name,
|
96
|
+
'Ebs.VolumeType' => root_disk_type,
|
97
|
+
'Ebs.VolumeSize' => ebs_size,
|
98
|
+
}
|
99
|
+
# if the root disk is to be encrypted set te "Encrypted" flag to true, if there is an optional KMS Key ID send that,
|
100
|
+
# if not set to nil and thereby defalt to the default key for EBS
|
101
|
+
if encrypt_root
|
102
|
+
root_disk.merge!('Ebs.Encrypted' => true, 'Ebs.KmsKeyId' => root_encryption_key||nil )
|
103
|
+
end
|
104
|
+
|
105
|
+
# if we do not want to delete the root disk with the VM set the flag
|
106
|
+
if delete_root_disk == false || delete_root_disk == 'false'
|
107
|
+
root_disk.merge!('Ebs.DeleteOnTermination' => false)
|
108
|
+
end
|
109
|
+
|
110
|
+
# if this is a provisioned IOPS disk set the iops value
|
111
|
+
if root_disk_type == 'io1'
|
112
|
+
root_disk.merge!('Ebs.Iops' => root_disk_iops)
|
113
|
+
end
|
114
|
+
# add the root disk as the first entry in the array of disks to create/attach
|
115
|
+
create_ebs_volume = [ root_disk ]
|
116
|
+
|
101
117
|
if additional_hdds and additional_hdds.is_a?(Hash)
|
102
118
|
additional_hdds.each_value do |disk|
|
103
119
|
volume_type = disk['volume_type'] || 'gp2'
|
104
120
|
if disk['device_name'] && disk['ebs_size']
|
105
|
-
|
121
|
+
disk_hash = {
|
106
122
|
:DeviceName => disk['device_name'],
|
107
123
|
'Ebs.VolumeType' => volume_type,
|
108
124
|
'Ebs.VolumeSize' => disk['ebs_size']
|
109
125
|
}
|
126
|
+
# if the additional disk is to be encrypted set te "Encrypted" flag to true, if there is an optional KMS Key ID send that,
|
127
|
+
# if not set to nil and thereby defalt to the default key for EBS
|
128
|
+
if disk['encrypted']
|
129
|
+
disk_hash.merge!('Ebs.Encrypted' => true, 'Ebs.KmsKeyId' => disk['encryption_key_id'] || nil)
|
130
|
+
end
|
131
|
+
|
132
|
+
# if we do not want to delete the additional disk with the VM set the flag
|
133
|
+
if disk['delete_disk_with_vm'] == false || disk['delete_disk_with_vm'] == 'false'
|
134
|
+
disk_hash.merge!('Ebs.DeleteOnTermination' => false)
|
135
|
+
end
|
136
|
+
|
137
|
+
# if the additional disk is an provisioned IOPS disk set the iops value
|
138
|
+
if volume_type == 'io1'
|
139
|
+
disk_hash.merge!('Ebs.Iops' => disk['volume_iops'] || 0)
|
140
|
+
end
|
141
|
+
|
142
|
+
# add this disk to the array of all disks to create/attach
|
143
|
+
create_ebs_volume << disk_hash
|
110
144
|
else
|
111
145
|
logger.warn "Failed to create additional hdd, required params device_name (e.g. /dev/sda1) or ebs_size missing: #{disk}"
|
112
146
|
end
|
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.39
|
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: 2020-
|
13
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -275,8 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
275
275
|
- !ruby/object:Gem::Version
|
276
276
|
version: '0'
|
277
277
|
requirements: []
|
278
|
-
|
279
|
-
rubygems_version: 2.7.7
|
278
|
+
rubygems_version: 3.0.8
|
280
279
|
signing_key:
|
281
280
|
specification_version: 4
|
282
281
|
summary: Automated creation, bootstrapping and provisioning of servers
|