Class: OpsManagerUiDrivers::Version15::OpsManagerDirector
- Inherits:
-
Object
- Object
- OpsManagerUiDrivers::Version15::OpsManagerDirector
- Defined in:
- lib/ops_manager_ui_drivers/version15/ops_manager_director.rb
Instance Method Summary collapse
- #add_availability_zones(iaas_type, iaas_availability_zones) ⇒ Object
- #add_networks(test_settings) ⇒ Object
- #assign_availability_zone(iaas_type, iaas_availability_zones) ⇒ Object
- #assign_network(deployment_network:) ⇒ Object
- #assign_networks(ops_manager) ⇒ Object
- #assign_networks_vsphere(infrastructure_network:, deployment_network:) ⇒ Object
- #config_director(ops_manager) ⇒ Object
- #configure_bosh_product(test_settings) ⇒ Object
- #configure_iaas(test_settings) ⇒ Object
- #configure_vm_passwords(use_generated_passwords: true) ⇒ Object
-
#initialize(browser:, iaas_configuration: Version15::MicroboshSections::IaasConfiguration.new(browser: browser)) ⇒ OpsManagerDirector
constructor
A new instance of OpsManagerDirector.
Constructor Details
#initialize(browser:, iaas_configuration: Version15::MicroboshSections::IaasConfiguration.new(browser: browser)) ⇒ OpsManagerDirector
Returns a new instance of OpsManagerDirector.
4 5 6 7 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 4 def initialize(browser:, iaas_configuration: Version15::MicroboshSections::IaasConfiguration.new(browser: browser)) @browser = browser @iaas_configuration = iaas_configuration end |
Instance Method Details
#add_availability_zones(iaas_type, iaas_availability_zones) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 31 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 availability_zones.add_single_az(iaas_availability_zones.first['iaas_identifier']) 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
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 43 def add_networks(test_settings) iaas_networks = test_settings.ops_manager.networks case test_settings.iaas_type when OpsManagerUiDrivers::AWS_IAAS_TYPE, OpsManagerUiDrivers::OPENSTACK_IAAS_TYPE first_network = iaas_networks.first networks.add_single_network( name: first_network['name'], iaas_network_identifier: first_network['identifier'], subnet: first_network['subnet'], reserved_ip_ranges: first_network['reserved_ips'], dns: first_network['dns'], gateway: first_network['gateway'], ) else iaas_networks && iaas_networks.each do |network| networks.add_network( name: network['name'], iaas_network_identifier: network['identifier'], subnet: network['subnet'], reserved_ip_ranges: network['reserved_ips'], dns: network['dns'], gateway: network['gateway'], ) end end end |
#assign_availability_zone(iaas_type, iaas_availability_zones) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 99 def assign_availability_zone(iaas_type, iaas_availability_zones) return unless iaas_availability_zones case iaas_type when OpsManagerUiDrivers::AWS_IAAS_TYPE, OpsManagerUiDrivers::OPENSTACK_IAAS_TYPE browser.click_on 'Assign Availability Zones' browser.select(iaas_availability_zones.first['iaas_identifier']) browser.click_on 'Save' when OpsManagerUiDrivers::VSPHERE_IAAS_TYPE browser.click_on 'Assign Availability Zones' browser.select(iaas_availability_zones.first['name']) browser.click_on 'Save' end end |
#assign_network(deployment_network:) ⇒ Object
143 144 145 146 147 148 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 143 def assign_network(deployment_network:) browser.click_on 'Assign Networks' browser.select(deployment_network, from: 'Network') browser.click_on 'Save' end |
#assign_networks(ops_manager) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 113 def assign_networks(ops_manager) if ops_manager.vcenter deployment_network = ops_manager.networks[0] infrastructure_network = ops_manager.networks[1] ? ops_manager.networks[1] : ops_manager.networks[0] assign_networks_vsphere( infrastructure_network: infrastructure_network['name'], deployment_network: deployment_network['name'], ) else assign_network(deployment_network: ops_manager.networks[0]['name']) end end |
#assign_networks_vsphere(infrastructure_network:, deployment_network:) ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 129 def assign_networks_vsphere(infrastructure_network:, deployment_network:) browser.click_on 'Assign Networks' browser.within browser.find '#director_network_assignments_infrastructure_network' do browser.select infrastructure_network end browser.within browser.find '#director_network_assignments_deployment_network' do browser.select deployment_network end browser.click_on 'Save' browser.poll_up_to_times(20) { browser.assert_text('Successfully assigned infrastructure network') } end |
#config_director(ops_manager) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 72 def config_director(ops_manager) browser.click_on 'Director Config' browser.fill_in('director_configuration[ntp_servers_string]', with: ops_manager.ntp_servers) browser.check('Enable VM Resurrector Plugin') if ops_manager.resurrector_enabled s3_blobstore = ops_manager.s3_blobstore if s3_blobstore browser.choose('S3 Compatible Blobstore') browser.fill_in('director_configuration[s3_blobstore_options][endpoint]', with: s3_blobstore.endpoint) browser.fill_in('director_configuration[s3_blobstore_options][bucket_name]', with: s3_blobstore.bucket_name) browser.fill_in('director_configuration[s3_blobstore_options][access_key]', with: s3_blobstore.access_key_id) browser.fill_in('director_configuration[s3_blobstore_options][secret_key]', with: s3_blobstore.secret_access_key) end mysql = ops_manager.mysql if mysql browser.choose('External MySQL Database') browser.fill_in('director_configuration[external_database_options][host]', with: mysql.host) browser.fill_in('director_configuration[external_database_options][port]', with: mysql.port) browser.fill_in('director_configuration[external_database_options][user]', with: mysql.user) browser.fill_in('director_configuration[external_database_options][password]', with: mysql.password) browser.fill_in('director_configuration[external_database_options][database]', with: mysql.dbname) end browser.click_on 'Save' end |
#configure_bosh_product(test_settings) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 9 def configure_bosh_product(test_settings) configure_iaas(test_settings) config_director(test_settings.ops_manager) add_availability_zones(test_settings.iaas_type, test_settings.ops_manager.availability_zones) assign_availability_zone(test_settings.iaas_type, test_settings.ops_manager.availability_zones) add_networks(test_settings) assign_networks(test_settings.ops_manager) end |
#configure_iaas(test_settings) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 23 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_vm_passwords(use_generated_passwords: true) ⇒ Object
150 151 152 153 154 155 156 157 158 159 |
# File 'lib/ops_manager_ui_drivers/version15/ops_manager_director.rb', line 150 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 |