Sha256: d9fceb8ceaaf0a0a1de09cc59ffcc938b7220b20fa01934a72b092b7a4a197ed

Contents?: true

Size: 1.69 KB

Versions: 37

Compression:

Stored size: 1.69 KB

Contents

module OpsManagerUiDrivers
  module Version14
    class ProductStatusHelper
      def initialize(product_name:, browser:)
        @product_name = product_name
        @browser = browser
      end

      def job_status(job_name)
        open_page

        wait_for_loading_indicator_to_disappear

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

          Version14::JobStatusHelper.from_job_row(job_row)
        end
      end

      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(:xpath, ".//tr[@data-ip-name = '#{job_name}']")

          Version14::JobStatusHelper.from_job_row(job_row)
        end
      end

      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

      attr_reader :browser, :product_name

      def open_page
        browser.visit '/'

        browser.click_on "show-#{dasherized_product_name}-configure-action"
        browser.click_on 'show-status-action'
      end

      def wait_for_loading_indicator_to_disappear
        Capybara.using_wait_time 10 do
          browser.all('.status-loading', count: 0) # blocks until there are no spinners
        end
      end

      def dasherized_product_name
        product_name.to_s.gsub(/[_]/, '-')
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
ops_manager_ui_drivers-1.3.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-1.2.1 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-1.2.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-1.1.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-1.0.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.16.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.15.2 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.15.1 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.15.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.14.1 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.14.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.13.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.12.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.11.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.10.0 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.9.9 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.9.8 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.9.7 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.9.6 lib/ops_manager_ui_drivers/version14/product_status_helper.rb
ops_manager_ui_drivers-0.9.5 lib/ops_manager_ui_drivers/version14/product_status_helper.rb