ops_manager_ui_drivers 0.6.0 → 0.6.1

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
  SHA1:
3
- metadata.gz: e9ee69f6177cb3e3fe83ddf62efe72e5ed46e7a4
4
- data.tar.gz: 826099396b8878c9b0bc796c417a415a0d87a3d4
3
+ metadata.gz: 5cc64665096fb55bf4c4097208fa246b4eea5e95
4
+ data.tar.gz: 9e28d0e3a64b55978fb94c5f60ceff93b88b7016
5
5
  SHA512:
6
- metadata.gz: 0ff6397c37ea12d61420bec5a3f5814dbfc79e917b95d94fb4ed4989393869a33f9da11fa4705b8b65f370dd2d3b2fe600957dda2b8902cee6e74183b7a90021
7
- data.tar.gz: 5d932a45e9570dcd74819cee8d120c0789dfca1a619effda8497cd59ce3b9c66142851603df9ed52c83c925da172546523e80858343213f3d2ce86e36ec7507c
6
+ metadata.gz: 63c1d9dd73f0765a31b53b9010b819d093bed9d2e512c6e339338786ce9cb9f66c768294028d8fe3a7def36b8cecfe875bfd66257a3b62c514ac026395f8c157
7
+ data.tar.gz: 6d0be672fea9b6d1230095ef036e9ed247a6a0ed5cffd05828a0fd1afd195913e391b2d4fec42a7c591fa3c0284f7147861354dbd682b91a6ebfe19ad5e2a569
@@ -1,3 +1,3 @@
1
1
  module OpsManagerUiDrivers
2
- VERSION = '0.6.0'
2
+ VERSION = '0.6.1'
3
3
  end
@@ -5,101 +5,24 @@ module OpsManagerUiDrivers
5
5
  @browser = browser
6
6
  end
7
7
 
8
- def configure_iaas
9
- open_form('iaas_configuration')
10
-
11
- yield
12
-
13
- save_form
14
- end
15
-
16
- def set_vsphere_credentials(vcenter_ip:, username:, password:)
17
- set_field('vcenter_ip', vcenter_ip)
18
- set_field('vcenter_username', username)
19
- set_field('vcenter_password', password)
20
- end
21
-
22
- def set_vcloud_credentials(vcd_url:, organization:, user:, password:)
23
- set_field('vcd_url', vcd_url)
24
- set_field('organization', organization)
25
- set_field('vcd_username', user)
26
- set_field('vcd_password', password)
27
- end
28
-
29
- def set_aws_credentials(access_key_id:, secret_access_key:, vpc_id:, security_group:, key_pair_name:, ssh_private_key:)
30
- set_field('access_key_id', access_key_id)
31
- set_field('secret_access_key', secret_access_key)
32
- set_field('vpc_id', vpc_id)
33
- set_field('security_group', security_group)
34
- set_field('key_pair_name', key_pair_name)
35
- set_field('ssh_private_key', ssh_private_key)
36
- end
37
-
38
- def set_openstack_credentials(
39
- identity_endpoint:,
40
- username:,
41
- password:,
42
- tenant:,
43
- security_group_name:,
44
- key_pair_name:,
45
- ssh_private_key:
46
- )
47
- set_field('identity_endpoint', identity_endpoint)
48
- set_field('username', username)
49
- set_field('password', password)
50
- set_field('tenant', tenant)
51
- set_field('security_group', security_group_name)
52
- set_field('key_pair_name', key_pair_name)
53
- set_field('ssh_private_key', ssh_private_key)
54
- end
55
-
56
-
57
- def set_datacenter(datacenter)
58
- set_field('datacenter', datacenter)
59
- end
60
-
61
- def set_datastores(datastores)
62
- set_field('datastores_string', datastores)
63
- end
64
-
65
- def set_microbosh_vm_folder(microbosh_vm_folder)
66
- set_field('microbosh_vm_folder', microbosh_vm_folder)
67
- end
68
-
69
- def set_microbosh_template_folder(microbosh_template_folder)
70
- set_field('microbosh_template_folder', microbosh_template_folder)
71
- end
72
-
73
- def set_microbosh_disk_path(microbosh_disk_path)
74
- set_field('microbosh_disk_path', microbosh_disk_path)
75
- end
76
-
77
- def set_storage_profile(storage_profile)
78
- set_field('storage_profile', storage_profile)
79
- end
80
-
81
- def set_catalog_name(catalog_name)
82
- set_field('catalog_name', catalog_name)
8
+ def open_form
9
+ browser.visit '/'
10
+ browser.click_on 'show-microbosh-configure-action'
11
+ browser.click_on 'show-iaas_configuration-action'
83
12
  end
84
13
 
85
- private
86
-
87
- attr_reader :browser
88
-
89
14
  def save_form
90
15
  browser.click_on 'Save'
91
16
  browser.expect(browser.page).to browser.have_css('.flash-message.success')
92
17
  end
93
18
 
94
- def open_form(form)
95
- browser.visit '/'
96
- browser.click_on 'show-microbosh-configure-action'
97
- browser.click_on "show-#{form}-action"
98
- end
99
-
100
19
  def set_field(field, value)
101
20
  browser.find_field("iaas_configuration[#{field}]").set(value)
102
21
  end
22
+
23
+ private
24
+
25
+ attr_reader :browser
103
26
  end
104
27
  end
105
28
  end
@@ -1,8 +1,11 @@
1
+ require 'ops_manager_ui_drivers/version15/settings'
2
+
1
3
  module OpsManagerUiDrivers
2
4
  module Version15
3
5
  class OpsManagerDirector
4
- def initialize(browser:)
5
- @browser = browser
6
+ def initialize(browser:, iaas_configuration: Version15::IaasConfiguration.new(browser: browser))
7
+ @browser = browser
8
+ @iaas_configuration = iaas_configuration
6
9
  end
7
10
 
8
11
  def configure_microbosh(test_settings)
@@ -20,48 +23,12 @@ module OpsManagerUiDrivers
20
23
  end
21
24
 
22
25
  def configure_iaas(test_settings)
23
- case test_settings.iaas_type
24
- when OpsManagerUiDrivers::VCLOUD_IAAS_TYPE then
25
- configure_vcloud(
26
- vcd_url: test_settings.ops_manager.vcloud.creds.url,
27
- organization: test_settings.ops_manager.vcloud.creds.organization,
28
- user: test_settings.ops_manager.vcloud.creds.user,
29
- password: test_settings.ops_manager.vcloud.creds.password,
30
- datacenter: test_settings.ops_manager.vcloud.vdc.name,
31
- storage_profile: test_settings.ops_manager.vcloud.vdc.storage_profile,
32
- catalog_name: test_settings.ops_manager.vcloud.vdc.catalog_name,
33
- )
34
- when OpsManagerUiDrivers::VSPHERE_IAAS_TYPE then
35
- configure_vcenter(
36
- ip: test_settings.ops_manager.vcenter.creds.ip,
37
- username: test_settings.ops_manager.vcenter.creds.username,
38
- password: test_settings.ops_manager.vcenter.creds.password,
39
- datacenter: test_settings.ops_manager.vcenter.datacenter,
40
- datastores: test_settings.ops_manager.vcenter.datastore,
41
- microbosh_vm_folder: test_settings.ops_manager.vcenter.microbosh_vm_folder,
42
- microbosh_template_folder: test_settings.ops_manager.vcenter.microbosh_template_folder,
43
- microbosh_disk_path: test_settings.ops_manager.vcenter.microbosh_disk_path,
44
- )
45
- when OpsManagerUiDrivers::AWS_IAAS_TYPE then
46
- configure_aws(
47
- aws_access_key: test_settings.ops_manager.aws.aws_access_key,
48
- aws_secret_key: test_settings.ops_manager.aws.aws_secret_key,
49
- vpc_id: test_settings.ops_manager.aws.vpc_id,
50
- security_group: test_settings.ops_manager.aws.security_group,
51
- key_pair_name: test_settings.ops_manager.aws.key_pair_name,
52
- ssh_private_key: test_settings.ops_manager.aws.ssh_key
53
- )
54
- when OpsManagerUiDrivers::OPENSTACK_IAAS_TYPE then
55
- configure_openstack(
56
- identity_endpoint: test_settings.ops_manager.openstack.identity_endpoint,
57
- username: test_settings.ops_manager.openstack.username,
58
- password: test_settings.ops_manager.openstack.password,
59
- tenant: test_settings.ops_manager.openstack.tenant,
60
- security_group_name: test_settings.ops_manager.openstack.security_group_name,
61
- key_pair_name: test_settings.ops_manager.openstack.key_pair_name,
62
- ssh_private_key: test_settings.ops_manager.openstack.ssh_private_key
63
- )
26
+ iaas_configuration.open_form
27
+ iaas_settings = Settings.for(test_settings)
28
+ iaas_settings.fields.each do |name, value|
29
+ iaas_configuration.set_field(name, value)
64
30
  end
31
+ iaas_configuration.save_form
65
32
  end
66
33
 
67
34
  def add_azs(iaas_type, iaas_availability_zones)
@@ -99,12 +66,12 @@ module OpsManagerUiDrivers
99
66
  else
100
67
  iaas_networks && iaas_networks.each do |network|
101
68
  networks.add_network(
102
- name: network['name'],
69
+ name: network['name'],
103
70
  iaas_network_identifier: network['identifier'],
104
- subnet: network['subnet'],
105
- reserved_ip_ranges: network['reserved_ips'],
106
- dns: network['dns'],
107
- gateway: network['gateway'],
71
+ subnet: network['subnet'],
72
+ reserved_ip_ranges: network['reserved_ips'],
73
+ dns: network['dns'],
74
+ gateway: network['gateway'],
108
75
  )
109
76
  end
110
77
  end
@@ -161,7 +128,7 @@ module OpsManagerUiDrivers
161
128
 
162
129
  assign_networks_vsphere(
163
130
  infrastructure_network: infrastructure_network['name'],
164
- deployment_network: deployment_network['name'],
131
+ deployment_network: deployment_network['name'],
165
132
  )
166
133
  else
167
134
  assign_network(deployment_network: ops_manager.networks[0]['name'])
@@ -189,66 +156,9 @@ module OpsManagerUiDrivers
189
156
  end
190
157
 
191
158
  private
192
- attr_reader :browser
193
159
 
194
- def configure_vcenter(ip:, username:, password:, datacenter:, datastores:, microbosh_vm_folder:, microbosh_template_folder:, microbosh_disk_path:)
195
- iaas_configuration.configure_iaas do
196
- iaas_configuration.set_vsphere_credentials(vcenter_ip: ip, username: username, password: password)
197
- iaas_configuration.set_datacenter(datacenter)
198
- iaas_configuration.set_datastores(datastores)
199
- iaas_configuration.set_microbosh_vm_folder(microbosh_vm_folder)
200
- iaas_configuration.set_microbosh_template_folder(microbosh_template_folder)
201
- iaas_configuration.set_microbosh_disk_path(microbosh_disk_path)
202
- end
203
- end
160
+ attr_reader :browser, :iaas_configuration
204
161
 
205
- def configure_vcloud(vcd_url:, organization:, user:, password:, datacenter:, storage_profile:, catalog_name:)
206
- iaas_configuration.configure_iaas do
207
- iaas_configuration.set_vcloud_credentials(vcd_url: vcd_url, organization: organization, user: user, password: password)
208
- iaas_configuration.set_datacenter(datacenter)
209
- iaas_configuration.set_storage_profile(storage_profile)
210
- iaas_configuration.set_catalog_name(catalog_name)
211
- end
212
- end
213
-
214
- def configure_aws(aws_access_key:, aws_secret_key:, vpc_id:, security_group:, key_pair_name:, ssh_private_key:)
215
- iaas_configuration.configure_iaas do
216
- iaas_configuration.set_aws_credentials(
217
- access_key_id: aws_access_key,
218
- secret_access_key: aws_secret_key,
219
- vpc_id: vpc_id,
220
- security_group: security_group,
221
- key_pair_name: key_pair_name,
222
- ssh_private_key: ssh_private_key
223
- )
224
- end
225
- end
226
-
227
- def configure_openstack(
228
- identity_endpoint:,
229
- username:,
230
- password:,
231
- tenant:,
232
- security_group_name:,
233
- key_pair_name:,
234
- ssh_private_key:
235
- )
236
- iaas_configuration.configure_iaas do
237
- iaas_configuration.set_openstack_credentials(
238
- identity_endpoint: identity_endpoint,
239
- username: username,
240
- password: password,
241
- tenant: tenant,
242
- security_group_name: security_group_name,
243
- key_pair_name: key_pair_name,
244
- ssh_private_key: ssh_private_key
245
- )
246
- end
247
- end
248
-
249
- def iaas_configuration
250
- @iaas_configuration ||= Version15::IaasConfiguration.new(browser: browser)
251
- end
252
162
 
253
163
  def availability_zones
254
164
  @availability_zones ||= Version15::AvailabilityZones.new(browser: browser)
@@ -0,0 +1,116 @@
1
+ module OpsManagerUiDrivers
2
+ module Version15
3
+ module Settings
4
+ def self.for(test_settings)
5
+ settings_class = [Vcloud, Vsphere, AWS, OpenStack].find do |klass|
6
+ klass.works_with?(test_settings.iaas_type)
7
+ end or raise("Unsupported IaaS: #{test_settings.iaas_type.inspect}")
8
+ settings_class.new(test_settings)
9
+ end
10
+
11
+ class Vcloud
12
+ def self.works_with?(iaas_type)
13
+ iaas_type == 'vcloud'
14
+ end
15
+
16
+ def initialize(test_settings)
17
+ @test_settings = test_settings
18
+ end
19
+
20
+ def fields
21
+ {
22
+ 'vcd_url' => test_settings.ops_manager.vcloud.creds.url,
23
+ 'organization' => test_settings.ops_manager.vcloud.creds.organization,
24
+ 'vcd_username' => test_settings.ops_manager.vcloud.creds.user,
25
+ 'vcd_password' => test_settings.ops_manager.vcloud.creds.password,
26
+ 'datacenter' => test_settings.ops_manager.vcloud.vdc.name,
27
+ 'storage_profile' => test_settings.ops_manager.vcloud.vdc.storage_profile,
28
+ 'catalog_name' => test_settings.ops_manager.vcloud.vdc.catalog_name,
29
+ }
30
+ end
31
+
32
+ private
33
+
34
+ attr_reader :test_settings
35
+ end
36
+
37
+ class Vsphere
38
+ def self.works_with?(iaas_type)
39
+ iaas_type == 'vsphere'
40
+ end
41
+
42
+ def initialize(test_settings)
43
+ @test_settings = test_settings
44
+ end
45
+
46
+ def fields
47
+ {
48
+ 'vcenter_ip' => test_settings.ops_manager.vcenter.creds.ip,
49
+ 'vcenter_username' => test_settings.ops_manager.vcenter.creds.username,
50
+ 'vcenter_password' => test_settings.ops_manager.vcenter.creds.password,
51
+ 'datacenter' => test_settings.ops_manager.vcenter.datacenter,
52
+ 'datastores_string' => test_settings.ops_manager.vcenter.datastore,
53
+ 'microbosh_vm_folder' => test_settings.ops_manager.vcenter.microbosh_vm_folder,
54
+ 'microbosh_template_folder' => test_settings.ops_manager.vcenter.microbosh_template_folder,
55
+ 'microbosh_disk_path' => test_settings.ops_manager.vcenter.microbosh_disk_path,
56
+ }
57
+ end
58
+
59
+ private
60
+
61
+ attr_reader :test_settings
62
+ end
63
+
64
+ class AWS
65
+ def self.works_with?(iaas_type)
66
+ iaas_type == 'aws'
67
+ end
68
+
69
+ def initialize(test_settings)
70
+ @test_settings = test_settings
71
+ end
72
+
73
+ def fields
74
+ {
75
+ 'access_key_id' => test_settings.ops_manager.aws.aws_access_key,
76
+ 'secret_access_key' => test_settings.ops_manager.aws.aws_secret_key,
77
+ 'vpc_id' => test_settings.ops_manager.aws.vpc_id,
78
+ 'security_group' => test_settings.ops_manager.aws.security_group,
79
+ 'key_pair_name' => test_settings.ops_manager.aws.key_pair_name,
80
+ 'ssh_private_key' => test_settings.ops_manager.aws.ssh_key,
81
+ }
82
+ end
83
+
84
+ private
85
+
86
+ attr_reader :test_settings
87
+ end
88
+
89
+ class OpenStack
90
+ def self.works_with?(iaas_type)
91
+ iaas_type == 'openstack'
92
+ end
93
+
94
+ def initialize(test_settings)
95
+ @test_settings = test_settings
96
+ end
97
+
98
+ def fields
99
+ {
100
+ 'identity_endpoint' => test_settings.ops_manager.openstack.identity_endpoint,
101
+ 'username' => test_settings.ops_manager.openstack.username,
102
+ 'password' => test_settings.ops_manager.openstack.password,
103
+ 'tenant' => test_settings.ops_manager.openstack.tenant,
104
+ 'security_group' => test_settings.ops_manager.openstack.security_group_name,
105
+ 'key_pair_name' => test_settings.ops_manager.openstack.key_pair_name,
106
+ 'ssh_private_key' => test_settings.ops_manager.openstack.ssh_private_key,
107
+ }
108
+ end
109
+
110
+ private
111
+
112
+ attr_reader :test_settings
113
+ end
114
+ end
115
+ end
116
+ end
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency 'rake', '~> 10.0'
27
27
  spec.add_development_dependency 'rubocop'
28
28
  spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency 'recursive-open-struct'
29
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_manager_ui_drivers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pivotal, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-01 00:00:00.000000000 Z
11
+ date: 2015-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: recursive-open-struct
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description:
112
126
  email:
113
127
  - cf-tempest-eng+ops_manager_ui_drivers@pivotal.io
@@ -179,6 +193,7 @@ files:
179
193
  - lib/ops_manager_ui_drivers/version15/product_logs.rb
180
194
  - lib/ops_manager_ui_drivers/version15/product_resource_configuration.rb
181
195
  - lib/ops_manager_ui_drivers/version15/product_status_helper.rb
196
+ - lib/ops_manager_ui_drivers/version15/settings.rb
182
197
  - lib/ops_manager_ui_drivers/version15/setup.rb
183
198
  - lib/ops_manager_ui_drivers/version15/state_change_progress.rb
184
199
  - lib/ops_manager_ui_drivers/version15/web_ui.rb