vagrant-cosmic 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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/