class OpsManagerUiDrivers::Version15::OpsManagerDirector
Attributes
browser[R]
iaas_configuration[R]
Public Class Methods
new(browser:, iaas_configuration: Version15::MicroboshSections::IaasConfiguration.new(browser: browser))
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 5 def initialize(browser:, iaas_configuration: Version15::MicroboshSections::IaasConfiguration.new(browser: browser)) @browser = browser @iaas_configuration = iaas_configuration end
Public Instance Methods
add_availability_zones(iaas_type, iaas_availability_zones)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 32 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)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 44 def add_networks(test_settings) iaas_networks = test_settings.dig('ops_manager', 'networks') case test_settings.dig('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)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 100 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:)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 144 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)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 114 def assign_networks(ops_manager) if ops_manager.dig('vcenter') deployment_network = ops_manager.dig('networks', 0) infrastructure_network = ops_manager.dig('networks', 1) ? ops_manager.dig('networks', 1) : ops_manager.dig('networks', 0) assign_networks_vsphere( infrastructure_network: infrastructure_network['name'], deployment_network: deployment_network['name'], ) else assign_network(deployment_network: ops_manager.dig('networks', 0, 'name')) end end
assign_networks_vsphere(infrastructure_network:, deployment_network:)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 130 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)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 73 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.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.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)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 10 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')) assign_availability_zone(test_settings.dig('iaas_type'), test_settings.dig('ops_manager', 'availability_zones')) add_networks(test_settings) assign_networks(test_settings.dig('ops_manager')) end
configure_iaas(test_settings)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 24 def configure_iaas(test_settings) iaas_settings = Settings.for(test_settings) iaas_configuration.fill_iaas_settings(iaas_settings.iaas_configuration_fields) advanced_infrastructure_config.fill_advanced_infrastructure_config_settings( iaas_settings.advanced_infrastructure_config_fields ) end
configure_vm_passwords(use_generated_passwords: true)
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 151 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
Private Instance Methods
advanced_infrastructure_config()
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 175 def advanced_infrastructure_config @advanced_infrastructure_config ||= Version15::MicroboshSections::AdvancedInfrastructureConfig.new(browser: browser) end
availability_zones()
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 167 def availability_zones @availability_zones ||= Version15::MicroboshSections::AvailabilityZones.new(browser: browser) end
networks()
click to toggle source
# File lib/ops_manager_ui_drivers/version15/ops_manager_director.rb, line 171 def networks @networks ||= Version15::MicroboshSections::Networks.new(browser: browser) end