Class: OpsManagerUiDrivers::Version14::ProductDashboard

Inherits:
Object
  • Object
show all
Includes:
AnimationHelper
Defined in:
lib/ops_manager_ui_drivers/version14/product_dashboard.rb

Defined Under Namespace

Classes: ApplyUpdatesResult

Instance Method Summary collapse

Methods included from AnimationHelper

#disable_css_transitions!

Constructor Details

#initialize(browser:) ⇒ ProductDashboard

Returns a new instance of ProductDashboard.



9
10
11
12
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 9

def initialize(browser:)
  @browser = browser
  @allowed_ignorable_errors = []
end

Instance Method Details

#apply_updates(validate: true) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 14

def apply_updates(validate: true)
  open_dashboard
  browser.click_on 'install-action'
  if validate
    fail 'Install failed verification' if nonignorable_verification_failed?
    allow_cpu_verification_errors
    allow_privilege_verification_errors
    allow_icmp_verification_errors #this is only for AWS; consider moving out

    ignore_allowable_errors
    assert_installation_started
  end
  ApplyUpdatesResult.new(browser: @browser)
end

#delete_installation_available?Boolean

Returns:

  • (Boolean)


90
91
92
93
94
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 90

def delete_installation_available?
  open_dashboard
  browser.click_on 'toggle-installation-dropdown-action'
  browser.all('#show-delete-installation-modal-action').any?
end

#delete_product(product_name) ⇒ Object



43
44
45
46
47
48
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 43

def delete_product(product_name)
  open_dashboard
  disable_css_transitions!
  browser.click_on "open-delete-#{product_name.dasherize}-modal"
  browser.click_on "delete-#{product_name.dasherize}-action"
end

#delete_whole_installationObject



74
75
76
77
78
79
80
81
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 74

def delete_whole_installation
  open_dashboard
  browser.click_on 'toggle-installation-dropdown-action'
  disable_css_transitions!
  browser.click_on 'show-delete-installation-modal-action'
  browser.click_on 'delete-installation-action'
  apply_updates
end

#deletion_in_progress?Boolean

Returns:

  • (Boolean)


96
97
98
99
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 96

def deletion_in_progress?
  open_dashboard
  browser.all('#delete-in-progress-marker').any?
end

#import_installation_file(file_path) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 29

def import_installation_file(file_path)
  open_dashboard
  browser.click_on 'toggle-installation-dropdown-action'
  browser.click_on 'show-import-backup'
  browser.attach_file 'import[file]', file_path
  browser.click_on 'import-backup'
end

#import_product_from(full_path) ⇒ Object



50
51
52
53
54
55
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 50

def import_product_from(full_path)
  open_dashboard
  browser.attach_file('component_add[file]', full_path, {visible: false})

  browser.expect(browser.page).to browser.have_text('Successfully added product')
end

#product_available?(product_name, product_version) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 57

def product_available?(product_name, product_version)
  open_dashboard
  browser.all("li.#{product_name} input#component_version[value='#{product_version}']", {visible: false}).any?
end

#product_configuration_percentage(product_name) ⇒ Object



123
124
125
126
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 123

def product_configuration_percentage(product_name)
  open_dashboard
  browser.find("#show-#{product_name}-configure-action")['data-progress'].to_i
end

#reset_state(ops_manager) ⇒ Object



101
102
103
104
105
106
107
108
109
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 101

def reset_state(ops_manager)
  revert_pending_changes if revert_available?
  if delete_installation_available?
    delete_whole_installation
    browser.poll_up_to_mins(15) do
      browser.expect(ops_manager.state_change_progress).to browser.be_state_change_success
    end
  end
end

#revert_available?Boolean

Returns:

  • (Boolean)


118
119
120
121
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 118

def revert_available?
  open_dashboard
  browser.all('#open-revert-installation-modal-action').any?
end

#revert_pending_changesObject



111
112
113
114
115
116
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 111

def revert_pending_changes
  open_dashboard
  disable_css_transitions!
  browser.click_on 'open-revert-installation-modal-action'
  browser.click_on 'revert-installation-action'
end

#upgrade_microboshObject



37
38
39
40
41
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 37

def upgrade_microbosh
  open_dashboard
  browser.find('p', text: 'Ops Manager Director').trigger(:mouseover)
  browser.click_on 'upgrade-microbosh'
end

#upgrade_product(product_name) ⇒ Object



62
63
64
65
66
67
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 62

def upgrade_product(product_name)
  open_dashboard
  browser.find(".product.#{product_name} p").trigger(:mouseover)
  browser.click_on "upgrade-#{product_name}"
  expect_no_flash_errors
end

#version_for_product(product_name) ⇒ Object



69
70
71
72
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 69

def version_for_product(product_name)
  open_dashboard
  browser.find("#show-#{product_name}-configure-action .version").text
end

#wait_for_installation_to_be_deletedObject



83
84
85
86
87
88
# File 'lib/ops_manager_ui_drivers/version14/product_dashboard.rb', line 83

def wait_for_installation_to_be_deleted
  browser.poll_up_to_mins(10) do
    open_dashboard
    assert_install_action_disabled
  end
end