Class: OpsManagerUiDrivers::Version17::OpsManagerDirector
- Inherits:
-
Object
- Object
- OpsManagerUiDrivers::Version17::OpsManagerDirector
- Defined in:
- lib/ops_manager_ui_drivers/version17/ops_manager_director.rb
Instance Method Summary collapse
- #add_availability_zones(iaas_type, iaas_availability_zones) ⇒ Object
- #add_networks(test_settings) ⇒ Object
- #assign_azs_and_networks(iaas_type, iaas_availability_zones, ops_manager) ⇒ Object
- #config_director(ops_manager) ⇒ Object
- #configure_bosh_product(test_settings) ⇒ Object
- #configure_iaas(test_settings) ⇒ Object
-
#configure_security_group(test_settings) ⇒ Object
lost in upgrade from 1.6 => 1.7.
- #configure_trusted_certificates(trusted_certificates) ⇒ Object
- #configure_vm_passwords(use_generated_passwords: true) ⇒ Object
- #delete_network(network_name) ⇒ Object
-
#initialize(browser:, iaas_configuration: Version17::BoshProductSections::IaasConfiguration.new(browser: browser)) ⇒ OpsManagerDirector
constructor
A new instance of OpsManagerDirector.
- #selected_network_name(iaas_type) ⇒ Object
- #selected_singleton_az_name(iaas_type) ⇒ Object
Constructor Details
#initialize(browser:, iaas_configuration: Version17::BoshProductSections::IaasConfiguration.new(browser: browser)) ⇒ OpsManagerDirector
Returns a new instance of OpsManagerDirector.
6 7 8 9 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 6 def initialize(browser:, iaas_configuration: Version17::BoshProductSections::IaasConfiguration.new(browser: browser)) @browser = browser @iaas_configuration = iaas_configuration end |
Instance Method Details
#add_availability_zones(iaas_type, iaas_availability_zones) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 33 def add_availability_zones(iaas_type, iaas_availability_zones) case iaas_type when OpsManagerUiDrivers::AWS_IAAS_TYPE, OpsManagerUiDrivers::OPENSTACK_IAAS_TYPE return unless iaas_availability_zones iaas_availability_zones && iaas_availability_zones.each do |az| availability_zones.add_az('iaas_identifier' => az['iaas_identifier']) end when OpsManagerUiDrivers::VSPHERE_IAAS_TYPE iaas_availability_zones && iaas_availability_zones.each do |az| availability_zones.add_az('name' => az['name'], 'cluster' => az['cluster'], 'resource_pool' => az['resource_pool']) end end end |
#add_networks(test_settings) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 47 def add_networks(test_settings) iaas_networks = test_settings.dig('ops_manager', 'networks') iaas_networks && iaas_networks.each do |network| networks.add_network( name: network['name'], subnets: network['subnets'], ) end end |
#assign_azs_and_networks(iaas_type, iaas_availability_zones, ops_manager) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 91 def assign_azs_and_networks(iaas_type, iaas_availability_zones, ops_manager) case iaas_type when OpsManagerUiDrivers::AWS_IAAS_TYPE, OpsManagerUiDrivers::OPENSTACK_IAAS_TYPE browser.click_on 'Assign AZs and Networks' browser.select(ops_manager.dig('networks', 0, 'name'), from: 'Network') browser.select(iaas_availability_zones.first['iaas_identifier']) when OpsManagerUiDrivers::VSPHERE_IAAS_TYPE browser.click_on 'Assign AZs and Networks' browser.select(ops_manager.dig('networks', 0, 'name'), from: 'Network') browser.select(iaas_availability_zones.first['name']) when OpsManagerUiDrivers::VCLOUD_IAAS_TYPE browser.click_on 'Assign Networks' browser.select(ops_manager.dig('networks', 0, 'name'), from: 'Network') end browser.click_on 'Save' end |
#config_director(ops_manager) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 62 def config_director(ops_manager) browser.click_on 'Director Config' browser.fill_in('director_configuration[ntp_servers_string]', with: ops_manager.dig('ntp_servers')) browser.check('Enable VM Resurrector Plugin') if ops_manager.dig('resurrector_enabled') s3_blobstore = ops_manager.dig('s3_blobstore') if s3_blobstore browser.choose('S3 Compatible Blobstore') browser.fill_in('director_configuration[s3_blobstore_options][endpoint]', with: s3_blobstore.dig('endpoint')) browser.fill_in('director_configuration[s3_blobstore_options][bucket_name]', with: s3_blobstore.dig('bucket_name')) browser.fill_in('director_configuration[s3_blobstore_options][access_key]', with: s3_blobstore.dig('access_key_id')) @browser.execute_script "$('a[data-masked-input-name=\"director_configuration[s3_blobstore_options][secret_key]\"]:contains(\"Change\")').click()" browser.fill_in('director_configuration[s3_blobstore_options][secret_key]', with: s3_blobstore.dig('secret_access_key')) end mysql = ops_manager.dig('mysql') if mysql browser.choose('External MySQL Database') browser.fill_in('director_configuration[external_database_options][host]', with: mysql.dig('host')) browser.fill_in('director_configuration[external_database_options][port]', with: mysql.dig('port')) browser.fill_in('director_configuration[external_database_options][user]', with: mysql.dig('user')) @browser.execute_script "$('a[data-masked-input-name=\"director_configuration[external_database_options][password]\"]:contains(\"Change\")').click()" browser.fill_in('director_configuration[external_database_options][password]', with: mysql.dig('password')) browser.fill_in('director_configuration[external_database_options][database]', with: mysql.dig('dbname')) end browser.click_on 'Save' end |
#configure_bosh_product(test_settings) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 11 def configure_bosh_product(test_settings) configure_iaas(test_settings) config_director(test_settings.dig('ops_manager')) add_availability_zones(test_settings.dig('iaas_type'), test_settings.dig('ops_manager', 'availability_zones')) add_networks(test_settings) assign_azs_and_networks(test_settings.dig('iaas_type'), test_settings.dig('ops_manager', 'availability_zones'), test_settings.dig('ops_manager')) configure_trusted_certificates(test_settings.dig('ops_manager', 'trusted_certificates')) end |
#configure_iaas(test_settings) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 25 def configure_iaas(test_settings) iaas_settings = Settings.for(test_settings) iaas_specific_fields = iaas_settings.iaas_configuration_fields advanced_infrastructure_config_fields = iaas_settings.advanced_infrastructure_config_fields iaas_configuration.fill_iaas_settings(iaas_specific_fields) advanced_infrastructure_config.fill_advanced_infrastructure_config_settings(advanced_infrastructure_config_fields) end |
#configure_security_group(test_settings) ⇒ Object
lost in upgrade from 1.6 => 1.7
148 149 150 151 152 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 148 def configure_security_group(test_settings) # lost in upgrade from 1.6 => 1.7 iaas_configuration.fill_iaas_settings( 'security_group' => test_settings.dig('ops_manager', 'aws', 'security_group_id'), ) end |
#configure_trusted_certificates(trusted_certificates) ⇒ Object
119 120 121 122 123 124 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 119 def configure_trusted_certificates(trusted_certificates) return unless trusted_certificates browser.click_on 'Security' browser.fill_in('security_tokens[trusted_certificates]', with: trusted_certificates) browser.click_on 'Save' end |
#configure_vm_passwords(use_generated_passwords: true) ⇒ Object
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 108 def configure_vm_passwords(use_generated_passwords: true) browser.click_on 'Security' if use_generated_passwords browser.choose('Generate passwords') else browser.choose('Use default BOSH password') end browser.click_on 'Save' browser.poll_up_to_times(20) { browser.assert_text('Settings updated') } end |
#delete_network(network_name) ⇒ Object
58 59 60 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 58 def delete_network(network_name) networks.delete_network(network_name) end |
#selected_network_name(iaas_type) ⇒ Object
126 127 128 129 130 131 132 133 134 135 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 126 def selected_network_name(iaas_type) case iaas_type when OpsManagerUiDrivers::VCLOUD_IAAS_TYPE browser.click_on 'Assign Networks' else browser.click_on 'Assign AZs and Networks' end = browser.find_field('Network').all('option[selected]') .first.text unless .empty? end |
#selected_singleton_az_name(iaas_type) ⇒ Object
137 138 139 140 141 142 143 144 145 146 |
# File 'lib/ops_manager_ui_drivers/version17/ops_manager_director.rb', line 137 def selected_singleton_az_name(iaas_type) case iaas_type when OpsManagerUiDrivers::VCLOUD_IAAS_TYPE browser.click_on 'Assign Networks' else browser.click_on 'Assign AZs and Networks' end = browser.find_field('bosh_product[singleton_availability_zone_reference]').all('option[selected]') .first.text unless .empty? end |