Class: OpsManagerUiDrivers::Version19::WebUi

Inherits:
Object
  • Object
show all
Defined in:
lib/ops_manager_ui_drivers/version19/web_ui.rb,
lib/ops_manager_ui_drivers/version19/product_availability_zones.rb

Defined Under Namespace

Classes: ProductAvailabilityZones

Instance Method Summary collapse

Constructor Details

#initialize(browser:) ⇒ WebUi

Returns a new instance of WebUi.



7
8
9
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 7

def initialize(browser:)
  @browser = browser
end

Instance Method Details

#assign_azs_and_network_for_product(product_name:, zones:, network:) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 62

def assign_azs_and_network_for_product(product_name:, zones:, network:)
  zones_present = zones && zones.first

  singleton_az = zones_present ? (zones[0]['iaas_identifier'] || zones[0]['name']) : nil
  availability_zones = zones_present ? zones.map{|zone| (zone['iaas_identifier'] || zone['name']) } : nil

  job_azs_and_network_mapping_for(product_name).assign_azs_and_network(
    singleton_availability_zone: singleton_az,
    availability_zones: availability_zones,
    network: network,
  )
end

#availability_zone_guid_for_name(az_name) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 88

def availability_zone_guid_for_name(az_name)
  browser.visit '/'
  browser.click_on 'show-p-bosh-configure-action'
  browser.click_on 'show-director-az-and-network-assignment-action'

  availability_zone_options = find_az_field
  availability_zone_options.each do |element|
    if element.text == az_name
      return element[:value]
    end
  end
end

#available_productsObject



27
28
29
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 27

def available_products
  Version19::AvailableProducts.new(browser: browser)
end

#current_timeObject



75
76
77
78
79
80
81
82
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 75

def current_time
  uri = URI(Capybara.app_host)
  uri.path = '/'
  Net::HTTP.start(uri.hostname, uri.port, use_ssl: (uri.scheme == 'https'), verify_mode: OpenSSL::SSL::VERIFY_NONE) do |http|
    response = http.request(Net::HTTP::Get.new(uri))
    DateTime.parse(response['Date'])
  end
end

#flash_messageObject



84
85
86
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 84

def flash_message
  browser.find('.flash-message').text
end

#job_azs_and_network_mapping_for(product_name) ⇒ Object



55
56
57
58
59
60
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 55

def job_azs_and_network_mapping_for(product_name)
  Version19::JobAzAndNetworkMappingHelper.new(
    browser: browser,
    product_name: product_name,
  )
end

#ops_manager_directorObject



31
32
33
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 31

def ops_manager_director
  Version19::OpsManagerDirector.new(browser: browser)
end

#product(product_name) ⇒ Object



43
44
45
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 43

def product(product_name)
  Version19::ProductConfiguration.new(browser: browser, product_name: product_name)
end

#product_availability_zones(product_name) ⇒ Object



51
52
53
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 51

def product_availability_zones(product_name)
  Version19::ProductAvailabilityZones.new(browser: browser, product: product_name)
end

#product_dashboardObject



19
20
21
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 19

def product_dashboard
  Version19::ProductDashboard.new(browser: browser)
end

#product_logs_for(product_name) ⇒ Object



35
36
37
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 35

def product_logs_for(product_name)
  Version19::ProductLogs.new(browser: browser, product_name: product_name)
end

#product_resources_configuration(product_name) ⇒ Object



39
40
41
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 39

def product_resources_configuration(product_name)
  Version19::ProductResourceConfiguration.new(browser: browser, product_name: product_name)
end

#product_status_for(product_name) ⇒ Object



47
48
49
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 47

def product_status_for(product_name)
  Version19::ProductStatusHelper.new(browser: browser, product_name: product_name)
end

#settings_pageObject



15
16
17
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 15

def settings_page
  Version19::UserSettings.new(browser: browser)
end

#setup_pageObject



11
12
13
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 11

def setup_page
  Version19::Setup.new(browser: browser)
end

#state_change_progressObject



23
24
25
# File 'lib/ops_manager_ui_drivers/version19/web_ui.rb', line 23

def state_change_progress
  Version19::StateChangeProgress.new(browser: browser)
end