Class: Prof::OpsManager
- Inherits:
-
Object
show all
- Extended by:
- Forwardable
- Defined in:
- lib/prof/ops_manager.rb,
lib/prof/ops_manager/rails_500_error.rb,
lib/prof/ops_manager/web_app_internals.rb,
lib/prof/ops_manager/web_app_internals/page/form.rb,
lib/prof/ops_manager/web_app_internals/page/login.rb,
lib/prof/ops_manager/web_app_internals/page/modal.rb,
lib/prof/ops_manager/web_app_internals/page/dashboard.rb,
lib/prof/ops_manager/web_app_internals/page/rails_500.rb,
lib/prof/ops_manager/web_app_internals/page/form_error.rb,
lib/prof/ops_manager/web_app_internals/page/form_field.rb,
lib/prof/ops_manager/web_app_internals/page/click_field.rb,
lib/prof/ops_manager/web_app_internals/page/form_fields.rb,
lib/prof/ops_manager/web_app_internals/page/select_field.rb,
lib/prof/ops_manager/web_app_internals/page/flash_message.rb,
lib/prof/ops_manager/web_app_internals/page/tile_settings.rb,
lib/prof/ops_manager/web_app_internals/page/checkbox_field.rb,
lib/prof/ops_manager/web_app_internals/page/installation_progress.rb
Defined Under Namespace
Classes: InstallationError, NullLogFetcher, Rails500Error, WebAppInternals
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(url:, username:, password:, page: default_capybara_session, log_fetcher: null_log_fetcher, version: "1.6") ⇒ OpsManager
24
25
26
27
28
29
30
31
|
# File 'lib/prof/ops_manager.rb', line 24
def initialize(url:, username:, password:, page: default_capybara_session, log_fetcher: null_log_fetcher, version: "1.6")
@url = url
@username = username
@password = password
@page = page
@log_fetcher = log_fetcher
@version = Gem::Version.new(version)
end
|
Instance Attribute Details
#url ⇒ Object
Returns the value of attribute url.
33
34
35
|
# File 'lib/prof/ops_manager.rb', line 33
def url
@url
end
|
Instance Method Details
#add_tile(tile) ⇒ Object
81
82
83
|
# File 'lib/prof/ops_manager.rb', line 81
def add_tile(tile)
opsmanager_client.add_product(tile)
end
|
#browser {|page, url| ... } ⇒ Object
Add ability to get hold of the capybara session while transitioning code over to page objects
56
57
58
|
# File 'lib/prof/ops_manager.rb', line 56
def browser(&_block)
yield page, url
end
|
#product_tiles ⇒ Object
91
92
93
|
# File 'lib/prof/ops_manager.rb', line 91
def product_tiles
tiles.reject{|t| ['cf', 'microbosh', 'p-bosh'].include?(t.name) }
end
|
#setup_tile(tile) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/prof/ops_manager.rb', line 69
def setup_tile(tile)
puts "Adding #{tile.name}"
add_tile(tile)
puts "Installing update"
apply_changes
rescue Rails500Error => e
puts "FAILED: '#{e.message}'\n"
logs = log_fetcher.fetch_logs('production.log', 500)
raise Rails500Error, "#{e.message}\n---------------\n#{logs}"
end
|
#tiles ⇒ Object
95
96
97
98
99
100
101
102
103
|
# File 'lib/prof/ops_manager.rb', line 95
def tiles
opsmanager_client.send(:installed_products).map {|tempest_product|
Tile.new(
name: tempest_product.type,
version: tempest_product.version,
guid: tempest_product.guid
)
}
end
|
#uninstall_tile(*tile_or_tiles) ⇒ Object
Also known as:
uninstall_tiles
60
61
62
63
64
65
66
|
# File 'lib/prof/ops_manager.rb', line 60
def uninstall_tile(*tile_or_tiles)
tiles = Array(tile_or_tiles).flatten
return if tiles.empty?
tiles.each { |t| web_app_internals.tile_uninstall(t) }
web_app_internals.apply_changes
end
|
#upload_product(product) ⇒ Object
85
86
87
88
89
|
# File 'lib/prof/ops_manager.rb', line 85
def upload_product(product)
puts "Uploading product #{product.name}"
opsmanager_client.upload_product(product)
Tile.new(name: product.name, version: product.version)
end
|
#vms_for_job_type(job_type) ⇒ Object
105
106
107
|
# File 'lib/prof/ops_manager.rb', line 105
def vms_for_job_type(job_type)
opsmanager_client.vms_for_job_type(job_type)
end
|