class OpsManagerUiDrivers::Version17::ProductStatusHelper

Attributes

browser[R]
product_name[R]

Public Class Methods

new(product_name:, browser:) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 4
def initialize(product_name:, browser:)
  @product_name = product_name
  @browser      = browser
end

Public Instance Methods

az_name_for_job_in_az(job_name, vpc_id, az_guid) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 42
def az_name_for_job_in_az(job_name, vpc_id, az_guid)
  job_status = job_status_in_az("#{job_name}-partition-#{az_guid}", az_guid)

  job_ip = job_status.ips.fetch(0)

  ec2 = ::AWS::EC2.new  # creds initialized in TestSettings::Renderer::SettingsFetcher::AWSSettings.initialize

  found_instance = ec2.instances.find do |instance|
    instance.private_ip_address == job_ip && instance.vpc_id == vpc_id && instance.status == :running
  end

  found_instance.availability_zone if found_instance
end
job_status(job_name) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 9
def job_status(job_name)
  open_page

  wait_for_loading_indicator_to_disappear

  browser.within "##{product_name}-status" do
    job_row = browser.find(:css, "tr[data-ip-name ^= '#{job_name}']")

    Version17::JobStatusHelper.from_job_row(job_row)
  end
end
job_status_in_az(job_name, az_guid) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 21
def job_status_in_az(job_name, az_guid)
  open_page

  wait_for_loading_indicator_to_disappear

  browser.within "##{product_name}-#{az_guid}-status-table" do
    job_row = browser.find(:css, "tr[data-ip-name ^= '#{job_name}']")

    Version17::JobStatusHelper.from_job_row(job_row)
  end
end
resource_pool_for_job_in_az(job_name, az_guid, vsphere_connection) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 33
def resource_pool_for_job_in_az(job_name, az_guid, vsphere_connection)
  job_status = job_status_in_az("#{job_name}-partition-#{az_guid}", az_guid)

  job_ip = job_status.ips.fetch(0)

  vm = vsphere_connection.searchIndex.FindByIp(ip: job_ip, vmSearch: true)
  vm.resourcePool.name
end

Private Instance Methods

open_page() click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 60
def open_page
  browser.visit '/'

  browser.click_on "show-#{product_name}-configure-action"
  browser.click_on 'show-status-action'
end
wait_for_loading_indicator_to_disappear() click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_status_helper.rb, line 67
def wait_for_loading_indicator_to_disappear
  Capybara.using_wait_time 20 do
    browser.all('.status-loading', count: 0) # blocks until there are no spinners
  end
end