vagrant-cosmic 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26aaea2370c5f49acb4f4ac2213ee4abd1eff8b1b2da980901567f1ff3da8849
4
- data.tar.gz: 90b320c724cf4287138ed8eeb8cf7b593c86a276c76d464f12bd7985ad0496a8
3
+ metadata.gz: 0bc8b5773c5e921ced5013787149dc97f6033baa4d5ffcac0c174df436e1030e
4
+ data.tar.gz: 1d2e353c0f413472b6e5c420990de781bf69f36c7ce04c7d26d1ab65b5db8aeb
5
5
  SHA512:
6
- metadata.gz: 1a0e30e9aab64d7509ac072cdd97752e6ff0082e9379d611712ec641b90fe1ad7daef15a60d4f26b99ec1a7927fd2c3325366bfc3f99ea316ee220750cd2039f
7
- data.tar.gz: 492681177543ceeaae27c150db202892e5149278b49f884dad671870dfbb21e379610f7ce9c0d5dcc6458f0f7126595b665fea86e749d03f100d34f0b1e19d24
6
+ metadata.gz: 6a26617c1e2d5e1e68b3c1c55e241084a47f024e7fb55570e8a05222608d00bb990537261f44df44d359584c82c5df84756ef3facf4e103470b64b620e4ef990
7
+ data.tar.gz: 7e9626c01b56224007699ab6c8a9ca85a03bc98e746f52f1e8edebd426c638f9375f3f01a232ef14c940617317e525ec6ed783f71d9d38180ca3f374875a8f9a
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file is used to list changes made in each version of the `vagrant-cosmic` plugin.
4
4
 
5
+ ## 0.2.0 (2020-06-11)
6
+
7
+ - Added support to provision instances in an already existing Affinity Group(s).
8
+
5
9
  ## 0.1.0 (2020-02-25)
6
10
 
7
11
  - Forked plugin from [MissionCriticalCloud/vagrant-cloudstack](https://github.com/MissionCriticalCloud/vagrant-cloudstack) and renamed to `vagrant-cosmic`
@@ -28,7 +28,7 @@ GIT
28
28
  PATH
29
29
  remote: .
30
30
  specs:
31
- vagrant-cosmic (0.1.0)
31
+ vagrant-cosmic (0.2.0)
32
32
  fog-cosmic (~> 0.1.0)
33
33
 
34
34
  GEM
@@ -38,7 +38,7 @@ GEM
38
38
  builder (3.2.4)
39
39
  childprocess (0.6.3)
40
40
  ffi (~> 1.0, >= 1.0.11)
41
- coderay (1.1.2)
41
+ coderay (1.1.3)
42
42
  concurrent-ruby (1.1.6)
43
43
  coveralls (0.7.1)
44
44
  multi_json (~> 1.3)
@@ -53,8 +53,8 @@ GEM
53
53
  ed25519 (1.2.4)
54
54
  erubi (1.9.0)
55
55
  erubis (2.7.0)
56
- excon (0.72.0)
57
- ffi (1.12.2)
56
+ excon (0.73.0)
57
+ ffi (1.13.1)
58
58
  fog-core (2.2.0)
59
59
  builder
60
60
  excon (~> 0.71)
@@ -90,10 +90,10 @@ GEM
90
90
  logging (2.2.2)
91
91
  little-plugger (~> 1.1)
92
92
  multi_json (~> 1.10)
93
- method_source (0.9.2)
93
+ method_source (1.0.0)
94
94
  mime-types (3.3.1)
95
95
  mime-types-data (~> 3.2015)
96
- mime-types-data (3.2019.1009)
96
+ mime-types-data (3.2020.0512)
97
97
  mini_portile2 (2.4.0)
98
98
  multi_json (1.14.1)
99
99
  net-scp (1.2.1)
@@ -102,14 +102,14 @@ GEM
102
102
  net-ssh (>= 2.6.5)
103
103
  net-ssh (5.1.0)
104
104
  netrc (0.11.0)
105
- nokogiri (1.10.8)
105
+ nokogiri (1.10.9)
106
106
  mini_portile2 (~> 2.4.0)
107
107
  nori (2.6.0)
108
- pry (0.12.2)
109
- coderay (~> 1.1.0)
110
- method_source (~> 0.9.0)
111
- rake (10.5.0)
112
- rb-fsevent (0.10.3)
108
+ pry (0.13.1)
109
+ coderay (~> 1.1)
110
+ method_source (~> 1.0)
111
+ rake (13.0.1)
112
+ rb-fsevent (0.10.4)
113
113
  rb-inotify (0.10.1)
114
114
  ffi (~> 1.0)
115
115
  rb-kqueue (0.2.5)
@@ -118,9 +118,9 @@ GEM
118
118
  http-cookie (>= 1.0.2, < 2.0)
119
119
  mime-types (>= 1.16, < 4.0)
120
120
  netrc (~> 0.8)
121
- rspec-core (3.9.1)
122
- rspec-support (~> 3.9.1)
123
- rspec-expectations (3.9.0)
121
+ rspec-core (3.9.2)
122
+ rspec-support (~> 3.9.3)
123
+ rspec-expectations (3.9.2)
124
124
  diff-lcs (>= 1.2.0, < 2.0)
125
125
  rspec-support (~> 3.9.0)
126
126
  rspec-its (1.3.0)
@@ -129,23 +129,23 @@ GEM
129
129
  rspec-mocks (3.9.1)
130
130
  diff-lcs (>= 1.2.0, < 2.0)
131
131
  rspec-support (~> 3.9.0)
132
- rspec-support (3.9.2)
132
+ rspec-support (3.9.3)
133
133
  ruby_dep (1.3.1)
134
134
  rubyntlm (0.6.2)
135
135
  rubyzip (1.2.4)
136
136
  simplecov (0.18.5)
137
137
  docile (~> 1.1)
138
138
  simplecov-html (~> 0.11)
139
- simplecov-html (0.12.1)
139
+ simplecov-html (0.12.2)
140
140
  sync (0.5.0)
141
141
  term-ansicolor (1.7.1)
142
142
  tins (~> 1.0)
143
143
  thor (1.0.1)
144
- tins (1.24.1)
144
+ tins (1.25.0)
145
145
  sync
146
146
  unf (0.1.4)
147
147
  unf_ext
148
- unf_ext (0.0.7.6)
148
+ unf_ext (0.0.7.7)
149
149
  vagrant_cloud (2.0.3)
150
150
  rest-client (~> 2.0.2)
151
151
  wdm (0.1.1)
@@ -174,7 +174,7 @@ PLATFORMS
174
174
  DEPENDENCIES
175
175
  coveralls
176
176
  pry
177
- rake (~> 10.5, >= 10.4)
177
+ rake (~> 13.0, >= 10.4)
178
178
  rspec-core
179
179
  rspec-expectations
180
180
  rspec-its
@@ -184,4 +184,4 @@ DEPENDENCIES
184
184
  vagrant-cosmic!
185
185
 
186
186
  BUNDLED WITH
187
- 1.17.2
187
+ 2.1.4
data/README.md CHANGED
@@ -101,9 +101,10 @@ to update UUIDs in your Vagrantfile. If both are specified, the id parameter tak
101
101
  * `scheme` - Cosmic API scheme _(defaults: https (thanks to the resolution order in fog))_
102
102
  * `api_key` - The API key for accessing Cosmic
103
103
  * `secret_key` - The secret key for accessing Cosmic
104
- * `instance_ready_timeout` - The number of seconds to wait for the instance
105
- to become "ready" in Cosmic. Defaults to 120 seconds.
104
+ * `affinity_group_id` - An affinity group uuid or array of uuid(s) to add the instance to
105
+ * `affinity_group_name` - An affinity group name or array of name(s) to add the instance to
106
106
  * `domain_id` - Domain id to launch the instance into
107
+ * `instance_ready_timeout` - The number of seconds to wait for the instance to become "ready" in Cosmic. Defaults to 120 seconds.
107
108
  * `network_id` - Network uuid(s) that the instance should use
108
109
  * `network_id` is single value (e.g. `"AAAA"`) or multiple values (e.g. `["AAAA", "BBBB"]`)
109
110
  * `network_name` - Network name(s) that the instance should use
@@ -82,7 +82,22 @@ module VagrantPlugins
82
82
 
83
83
  def sanitize_domain_config
84
84
  # Accept a single entry as input, convert it to array
85
- @domain_config.pf_trusted_networks = [@domain_config.pf_trusted_networks] if @domain_config.pf_trusted_networks
85
+ @domain_config.pf_trusted_networks = Array(@domain_config.pf_trusted_networks) if @domain_config.pf_trusted_networks
86
+
87
+ if @domain_config.affinity_group_id.nil?
88
+ # Use names if ids are not present
89
+ @domain_config.affinity_group_id = []
90
+
91
+ if @domain_config.affinity_group_name.nil?
92
+ @domain_config.affinity_group_name = []
93
+ else
94
+ @domain_config.affinity_group_name = Array(@domain_config.affinity_group_name)
95
+ end
96
+ else
97
+ # Use ids if present
98
+ @domain_config.affinity_group_id = Array(@domain_config.affinity_group_id)
99
+ @domain_config.affinity_group_name = []
100
+ end
86
101
 
87
102
  if @domain_config.network_id.nil?
88
103
  # Use names if ids are not present
@@ -101,6 +116,7 @@ module VagrantPlugins
101
116
  end
102
117
 
103
118
  def initialize_parameters
119
+ @affinity_groups = CosmicResource.create_list(@domain_config.affinity_group_id, @domain_config.affinity_group_name, 'affinity_group')
104
120
  @zone = CosmicResource.new(@domain_config.zone_id, @domain_config.zone_name, 'zone')
105
121
  @networks = CosmicResource.create_list(@domain_config.network_id, @domain_config.network_name, 'network')
106
122
  @service_offering = CosmicResource.new(@domain_config.service_offering_id, @domain_config.service_offering_name, 'service_offering')
@@ -116,6 +132,9 @@ module VagrantPlugins
116
132
  @resource_service.sync_resource(@disk_offering, {listall: true, name: @disk_offering.name})
117
133
  @resource_service.sync_resource(@template, {zoneid: @zone.id, templatefilter: 'executable', listall: true, name: @template.name})
118
134
  @resource_service.sync_resource(@pf_ip_address)
135
+ @affinity_groups.each do |affinity_group|
136
+ @resource_service.sync_resource(affinity_group)
137
+ end
119
138
  rescue CosmicResourceNotFound => e
120
139
  @env[:ui].error(e.message)
121
140
  exit(false)
@@ -154,6 +173,9 @@ module VagrantPlugins
154
173
  # Launch!
155
174
  @env[:ui].info(I18n.t('vagrant_cosmic.launching_instance'))
156
175
  @env[:ui].info(" -- Display Name: #{@domain_config.display_name}")
176
+ @affinity_groups.each do |affinity_group|
177
+ @env[:ui].info(" -- Affinity group: #{affinity_group.name} (#{affinity_group.id})")
178
+ end
157
179
  @env[:ui].info(" -- Group: #{@domain_config.group}") if @domain_config.group
158
180
  @env[:ui].info(" -- Service offering: #{@service_offering.name} (#{@service_offering.id})")
159
181
  @env[:ui].info(" -- Disk offering: #{@disk_offering.name} (#{@disk_offering.id})") unless @disk_offering.id.nil?
@@ -200,6 +222,10 @@ module VagrantPlugins
200
222
  :image_id => @template.id
201
223
  }
202
224
 
225
+ unless @affinity_groups.empty?
226
+ ags = @affinity_groups.map(&:id).compact.join(",")
227
+ options['affinity_group_ids'] = ags unless ags.empty?
228
+ end
203
229
  unless @networks.empty?
204
230
  nets = @networks.map(&:id).compact.join(",")
205
231
  options['network_ids'] = nets unless nets.empty?
@@ -3,23 +3,48 @@ require "vagrant"
3
3
  module VagrantPlugins
4
4
  module Cosmic
5
5
  class Config < Vagrant.plugin("2", :config)
6
- INSTANCE_VAR_DEFAULT_NIL = %w(host name path port domain_id network_id network_name project_id service_offering_id service_offering_name
7
- template_id template_name zone_id zone_name keypair pf_ip_address_id pf_ip_address pf_public_port
8
- pf_public_rdp_port pf_private_port pf_trusted_networks display_name group user_data ssh_key ssh_user
9
- ssh_network_id ssh_network_name vm_user vm_password private_ip_address).freeze
6
+ INSTANCE_VAR_DEFAULT_NIL = %w(affinity_group_id
7
+ affinity_group_name
8
+ display_name
9
+ domain_id
10
+ group
11
+ host
12
+ keypair
13
+ name
14
+ network_id
15
+ network_name
16
+ path
17
+ pf_ip_address
18
+ pf_ip_address_id
19
+ pf_private_port
20
+ pf_public_port
21
+ pf_public_rdp_port
22
+ pf_trusted_networks
23
+ port
24
+ private_ip_address
25
+ project_id
26
+ service_offering_id
27
+ service_offering_name
28
+ ssh_key
29
+ ssh_network_id
30
+ ssh_network_name
31
+ ssh_user
32
+ template_id
33
+ template_name
34
+ user_data
35
+ vm_password
36
+ vm_user
37
+ zone_id
38
+ zone_name).freeze
10
39
  INSTANCE_VAR_DEFAULT_EMPTY_ARRAY = %w(static_nat port_forwarding_rules firewall_rules).freeze
11
40
 
41
+ ### API settings
42
+
12
43
  # Cosmic API host.
13
44
  #
14
45
  # @return [String]
15
46
  attr_accessor :host
16
47
 
17
- # Hostname for the machine instance
18
- # This will be passed through to the api.
19
- #
20
- # @return [String]
21
- attr_accessor :name
22
-
23
48
  # Cosmic API path.
24
49
  #
25
50
  # @return [String]
@@ -45,15 +70,63 @@ module VagrantPlugins
45
70
  # @return [String]
46
71
  attr_accessor :secret_key
47
72
 
73
+ ### Instance settings
74
+
75
+ # Hostname for the machine instance
76
+ # This will be passed through to the api.
77
+ #
78
+ # @return [String]
79
+ attr_accessor :name
80
+
81
+ # Affinity group ID(s) the instance should be applied to
82
+ #
83
+ # @return [String]
84
+ attr_accessor :affinity_group_id
85
+
86
+ # Affinity group name(s) the instance should be applied to
87
+ #
88
+ # @return [String]
89
+ attr_accessor :affinity_group_name
90
+
91
+ # Disk offering uuid to use for the instance
92
+ #
93
+ # @return [String]
94
+ attr_accessor :disk_offering_id
95
+
96
+ # Disk offering name to use for the instance
97
+ #
98
+ # @return [String]
99
+ attr_accessor :disk_offering_name
100
+
101
+ # display name for the instance
102
+ #
103
+ # @return [String]
104
+ attr_accessor :display_name
105
+
106
+ # Domain id to launch the instance into.
107
+ #
108
+ # @return [String]
109
+ attr_accessor :domain_id
110
+
111
+ # flag to enable/disable expunge vm on destroy
112
+ #
113
+ # @return [Boolean]
114
+ attr_accessor :expunge_on_destroy
115
+
116
+ # group for the instance
117
+ #
118
+ # @return [String]
119
+ attr_accessor :group
120
+
48
121
  # The timeout to wait for an instance to become ready.
49
122
  #
50
123
  # @return [Fixnum]
51
124
  attr_accessor :instance_ready_timeout
52
125
 
53
- # Domain id to launch the instance into.
126
+ # The name of the keypair to use.
54
127
  #
55
128
  # @return [String]
56
- attr_accessor :domain_id
129
+ attr_accessor :keypair
57
130
 
58
131
  # Network uuid(s) that the instance should use
59
132
  #
@@ -70,6 +143,11 @@ module VagrantPlugins
70
143
  # @return [String]
71
144
  attr_accessor :network_type
72
145
 
146
+ # Private ip for the instance
147
+ #
148
+ # @return [String]
149
+ attr_accessor :private_ip_address
150
+
73
151
  # Project uuid that the instance should belong to
74
152
  #
75
153
  # @return [String]
@@ -85,15 +163,30 @@ module VagrantPlugins
85
163
  # @return [String]
86
164
  attr_accessor :service_offering_name
87
165
 
88
- # Disk offering uuid to use for the instance
166
+ # The key to be used when loging in to the vm via ssh
89
167
  #
90
168
  # @return [String]
91
- attr_accessor :disk_offering_id
169
+ attr_accessor :ssh_key
92
170
 
93
- # Disk offering name to use for the instance
171
+ # The network_id to be used when loging in to the vm via ssh
94
172
  #
95
173
  # @return [String]
96
- attr_accessor :disk_offering_name
174
+ attr_accessor :ssh_network_id
175
+
176
+ # The network_name to be used when loging in to the vm via ssh
177
+ #
178
+ # @return [String]
179
+ attr_accessor :ssh_network_name
180
+
181
+ # The username to be used when loging in to the vm via ssh
182
+ #
183
+ # @return [String]
184
+ attr_accessor :ssh_user
185
+
186
+ # Paramters for Static NAT
187
+ #
188
+ # @return [String]
189
+ attr_accessor :static_nat
97
190
 
98
191
  # Template uuid to use for the instance
99
192
  #
@@ -105,6 +198,21 @@ module VagrantPlugins
105
198
  # @return [String]
106
199
  attr_accessor :template_name
107
200
 
201
+ # The user data string
202
+ #
203
+ # @return [String]
204
+ attr_accessor :user_data
205
+
206
+ # The username to be used when loging in to the vm
207
+ #
208
+ # @return [String]
209
+ attr_accessor :vm_password
210
+
211
+ # The username to be used when loging in to the vm
212
+ #
213
+ # @return [String]
214
+ attr_accessor :vm_user
215
+
108
216
  # Zone uuid to launch the instance into. If nil, it will
109
217
  # launch in default project.
110
218
  #
@@ -117,15 +225,20 @@ module VagrantPlugins
117
225
  # @return [String]
118
226
  attr_accessor :zone_name
119
227
 
120
- # The name of the keypair to use.
228
+ ### Firewall settings
229
+
230
+ # comma separated list of firewall rules
231
+ # (hash with rule parameters)
121
232
  #
122
- # @return [String]
123
- attr_accessor :keypair
233
+ # @return [Array]
234
+ attr_accessor :firewall_rules
124
235
 
125
- # Paramters for Static NAT
236
+ # flag to enable/disable automatic open firewall rule
126
237
  #
127
- # @return [String]
128
- attr_accessor :static_nat
238
+ # @return [Boolean]
239
+ attr_accessor :pf_open_firewall
240
+
241
+ ### Port forward settings
129
242
 
130
243
  # IP address id to use for port forwarding rule
131
244
  #
@@ -162,11 +275,6 @@ module VagrantPlugins
162
275
  # @return [String]
163
276
  attr_accessor :pf_private_port
164
277
 
165
- # flag to enable/disable automatic open firewall rule
166
- #
167
- # @return [Boolean]
168
- attr_accessor :pf_open_firewall
169
-
170
278
  # CIDR List string of trusted networks
171
279
  #
172
280
  # @return [String]
@@ -178,67 +286,6 @@ module VagrantPlugins
178
286
  # @return [Array]
179
287
  attr_accessor :port_forwarding_rules
180
288
 
181
- # comma separated list of firewall rules
182
- # (hash with rule parameters)
183
- #
184
- # @return [Array]
185
- attr_accessor :firewall_rules
186
-
187
- # display name for the instance
188
- #
189
- # @return [String]
190
- attr_accessor :display_name
191
-
192
- # group for the instance
193
- #
194
- # @return [String]
195
- attr_accessor :group
196
-
197
- # The user data string
198
- #
199
- # @return [String]
200
- attr_accessor :user_data
201
-
202
- # The key to be used when loging in to the vm via ssh
203
- #
204
- # @return [String]
205
- attr_accessor :ssh_key
206
-
207
- # The username to be used when loging in to the vm via ssh
208
- #
209
- # @return [String]
210
- attr_accessor :ssh_user
211
-
212
- # The network_id to be used when loging in to the vm via ssh
213
- #
214
- # @return [String]
215
- attr_accessor :ssh_network_id
216
-
217
- # The network_name to be used when loging in to the vm via ssh
218
- #
219
- # @return [String]
220
- attr_accessor :ssh_network_name
221
-
222
- # The username to be used when loging in to the vm
223
- #
224
- # @return [String]
225
- attr_accessor :vm_user
226
-
227
- # The username to be used when loging in to the vm
228
- #
229
- # @return [String]
230
- attr_accessor :vm_password
231
-
232
- # Private ip for the instance
233
- #
234
- # @return [String]
235
- attr_accessor :private_ip_address
236
-
237
- # flag to enable/disable expunge vm on destroy
238
- #
239
- # @return [Boolean]
240
- attr_accessor :expunge_on_destroy
241
-
242
289
  def initialize(domain_specific = false)
243
290
  # Initialize groups in bulk, re-use these groups to set defaults in bulk
244
291
  INSTANCE_VAR_DEFAULT_NIL.each do |instance_variable|
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Cosmic
3
- VERSION = '0.1.0'
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
@@ -8,6 +8,8 @@ Dir["#{__dir__}/vagrant-cosmic/support/**/*.rb"].each { |f| require f }
8
8
  SimpleCov.start
9
9
  Coveralls.wear!
10
10
 
11
+ AFFINITY_GROUP_NAME = 'Affinity Group Name'.freeze
12
+ AFFINITY_GROUP_ID = 'Affinity Group UUID'.freeze
11
13
  ZONE_NAME = 'Zone Name'.freeze
12
14
  ZONE_ID = 'Zone UUID'.freeze
13
15
  SERVICE_OFFERING_NAME = 'Service Offering Name'.freeze
@@ -38,6 +38,20 @@ describe VagrantPlugins::Cosmic::Action::RunInstance do
38
38
  }
39
39
  end
40
40
 
41
+ let(:list_affinitygroups_response) do
42
+ {
43
+ 'listaffinitygroupsresponse' => {
44
+ 'count' => 1,
45
+ 'affinitygroup' => [
46
+ {
47
+ 'id' => AFFINITY_GROUP_ID,
48
+ 'name' => AFFINITY_GROUP_NAME,
49
+ }
50
+ ]
51
+ }
52
+ }
53
+ end
54
+
41
55
  let(:list_public_ip_addresses_response) do
42
56
  {
43
57
  'listpublicipaddressesresponse' => {
@@ -325,6 +339,8 @@ describe VagrantPlugins::Cosmic::Action::RunInstance do
325
339
  let(:pf_trusted_networks) { nil }
326
340
  let(:pf_public_port_randomrange) { { start: 49_152, end: 65_535 } }
327
341
  let(:pf_open_firewall) { true }
342
+ let(:affinity_group_id) { nil }
343
+ let(:affinity_group_name) { nil }
328
344
  let(:disk_offering_name) { nil }
329
345
 
330
346
  let(:provider_config) do
@@ -341,6 +357,8 @@ describe VagrantPlugins::Cosmic::Action::RunInstance do
341
357
  cfg.pf_open_firewall = pf_open_firewall
342
358
  cfg.ssh_key = ssh_key
343
359
  cfg.disk_offering_name = disk_offering_name
360
+ cfg.affinity_group_id = affinity_group_id
361
+ cfg.affinity_group_name = affinity_group_name
344
362
  end
345
363
  config.finalize!
346
364
  config.get_domain_config(:cosmic)
@@ -391,6 +409,36 @@ describe VagrantPlugins::Cosmic::Action::RunInstance do
391
409
  end
392
410
  end
393
411
 
412
+ context 'with affinity group id' do
413
+ let(:affinity_group_id) { AFFINITY_GROUP_ID }
414
+ let(:create_servers_parameters) { super().merge('affinity_group_ids' => AFFINITY_GROUP_ID) }
415
+
416
+ before(:each) do
417
+ expect(cosmic_compute).to receive(:send)
418
+ .with(:list_affinity_groups, {"id"=>"Affinity Group UUID"})
419
+ .and_return(list_affinitygroups_response)
420
+ end
421
+
422
+ it 'starts a vm' do
423
+ should eq true
424
+ end
425
+ end
426
+
427
+ context 'with affinity group name' do
428
+ let(:affinity_group_name) { AFFINITY_GROUP_NAME }
429
+ let(:create_servers_parameters) { super().merge('affinity_group_ids' => AFFINITY_GROUP_ID) }
430
+
431
+ before(:each) do
432
+ expect(cosmic_compute).to receive(:send)
433
+ .with(:list_affinity_groups, {})
434
+ .and_return(list_affinitygroups_response)
435
+ end
436
+
437
+ it 'starts a vm' do
438
+ should eq true
439
+ end
440
+ end
441
+
394
442
  context 'with generated password' do
395
443
  before(:each) do
396
444
  expect(server).to receive(:password_enabled).and_return(true)
@@ -0,0 +1,45 @@
1
+ Bringing machine 'default' up with 'cosmic' provider...
2
+ ==> default: Warning! The Cosmic provider doesn't support any of the Vagrant
3
+ ==> default: high-level network configurations (`config.vm.network`). They
4
+ ==> default: will be silently ignored.
5
+ ==> default: Fetching UUID for zone with name 'BETA-NL2'
6
+ default: Syncronized resource: zone - aa4493c5-d73f-48be-ba3c-7b6f0549bac1:BETA-NL2
7
+ ==> default: Fetching UUID for service_offering with name 'MCC_v2.2vCPU.4GB.SBP1'
8
+ default: Syncronized resource: service_offering - f27bb74b-1b6f-4d68-8bac-67db1af81e4d:MCC_v2.2vCPU.4GB.SBP1
9
+ ==> default: Fetching UUID for template with name 'Centos7-x86_64-Hardened-KVM-latest'
10
+ default: Syncronized resource: template - 931957fa-acdd-464f-82c4-5dfc477b8d04:Centos7-x86_64-Hardened-KVM-latest
11
+ ==> default: Fetching UUID for public_ip_address with ipaddress '31.22.81.114'
12
+ default: Syncronized resource: public_ip_address - 5cb86fb4-346d-4184-99d3-4117eb1f85f2:31.22.81.114
13
+ ==> default: Fetching UUID for network with name 'SBP_COOKBOOK_TESTING'
14
+ default: Syncronized resource: network - 35fde2ef-c923-474a-ae90-66e82a15416d:SBP_COOKBOOK_TESTING
15
+ ==> default: No keypair or ssh_key specified to launch your instance with.
16
+ ==> default: Generating a temporary keypair for this instance...
17
+ ==> default: Launching an instance with the following settings...
18
+ ==> default: -- Display Name: shoekstra_test_1590010606
19
+ ==> default: -- Service offering: MCC_v2.2vCPU.4GB.SBP1 (f27bb74b-1b6f-4d68-8bac-67db1af81e4d)
20
+ ==> default: -- Template: Centos7-x86_64-Hardened-KVM-latest (931957fa-acdd-464f-82c4-5dfc477b8d04)
21
+ ==> default: -- Zone: BETA-NL2 (aa4493c5-d73f-48be-ba3c-7b6f0549bac1)
22
+ ==> default: -- Network: SBP_COOKBOOK_TESTING (35fde2ef-c923-474a-ae90-66e82a15416d)
23
+ ==> default: -- Keypair: vagacs_shoekstra_test_1590010606_5745
24
+ ==> default: Waiting for instance to become "ready"...
25
+ ==> default: Password of virtualmachine: H9Qe5uA69VvA
26
+ ==> default: Creating a port forwarding rule for this instance ...
27
+ ==> default: Fetching UUID for public_ip_address with ipaddress '31.22.81.114'
28
+ default: Syncronized resource: public_ip_address - 5cb86fb4-346d-4184-99d3-4117eb1f85f2:31.22.81.114
29
+ ==> default: -- IP address : 31.22.81.114 (5cb86fb4-346d-4184-99d3-4117eb1f85f2)
30
+ ==> default: -- Protocol : tcp
31
+ ==> default: -- Public port : 52776
32
+ ==> default: -- Private port : 22
33
+ ==> default: -- Open Firewall : false
34
+ ==> default: Creating a firewall rule ...
35
+ ==> default: Fetching ipaddress for public_ip_address with UUID '5cb86fb4-346d-4184-99d3-4117eb1f85f2'
36
+ default: Syncronized resource: public_ip_address - 5cb86fb4-346d-4184-99d3-4117eb1f85f2:31.22.81.114
37
+ ==> default: -- IP address : 31.22.81.114 (5cb86fb4-346d-4184-99d3-4117eb1f85f2)
38
+ ==> default: -- Protocol : tcp
39
+ ==> default: -- CIDR list : 213.127.72.193/32
40
+ ==> default: -- Start port : 22
41
+ ==> default: -- End port : 22
42
+ ==> default: -- ICMP code :
43
+ ==> default: -- ICMP type :
44
+ ==> default: Waiting for SSH to become available...
45
+ ==> default: Machine is booted and ready for use!
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
 
18
18
  s.add_runtime_dependency 'fog-cosmic', '~> 0.1.0'
19
19
 
20
- s.add_development_dependency 'rake', '>= 10.4', '~> 10.5'
20
+ s.add_development_dependency 'rake', '>= 10.4', '~> 13.0'
21
21
  s.add_development_dependency 'rspec-core', '~> 2.14', '>= 2.14.7'
22
22
  s.add_development_dependency 'rspec-expectations', '~> 2.14', '>= 2.14.4'
23
23
  s.add_development_dependency 'rspec-mocks', '~> 2.14', '>= 2.14.4'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-cosmic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitchell Hashimoto
@@ -23,7 +23,7 @@ authors:
23
23
  autorequire:
24
24
  bindir: bin
25
25
  cert_chain: []
26
- date: 2020-02-26 00:00:00.000000000 Z
26
+ date: 2020-06-11 00:00:00.000000000 Z
27
27
  dependencies:
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: fog-cosmic
@@ -48,7 +48,7 @@ dependencies:
48
48
  version: '10.4'
49
49
  - - "~>"
50
50
  - !ruby/object:Gem::Version
51
- version: '10.5'
51
+ version: '13.0'
52
52
  type: :development
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  version: '10.4'
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.5'
61
+ version: '13.0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec-core
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -190,6 +190,7 @@ files:
190
190
  - spec/vagrant-cosmic/model/cosmic_resource_spec.rb
191
191
  - spec/vagrant-cosmic/service/cosmic_resource_service_spec.rb
192
192
  - spec/vagrant-cosmic/support/be_a_resource.rb
193
+ - test/vagrant.log
193
194
  - vagrant-cosmic.gemspec
194
195
  - vagrant-cosmic.spec
195
196
  homepage: https://github.com/MissionCriticalCloud/vagrant-cosmic/