opsmgr 0.35.1 → 0.35.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/opsmgr/api/client.rb +9 -0
- data/lib/opsmgr/api/http_client.rb +7 -0
- data/lib/opsmgr/api/results.rb +8 -0
- data/lib/opsmgr/api/version20/endpoints.rb +4 -0
- data/lib/opsmgr/cmd/ops_manager.rb +21 -0
- data/lib/opsmgr/tasks/opsmgr.rake +14 -0
- data/lib/opsmgr/tasks/product.rake +15 -0
- data/lib/opsmgr/ui_helpers/revert_staged_changes_spec.rb +39 -0
- data/lib/opsmgr/ui_helpers/ui_spec_runner.rb +4 -0
- data/lib/opsmgr/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71f8e5c59049f4977f4e12b8bc1bf7f22753200e
|
4
|
+
data.tar.gz: 995e46d45ee220bf76e26bb010e991acbecc4c24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f210dfafc8fb3c3533cae6479756dae5872e5f53e680712d5a9c6fea3e83cb067b9ca293372774272afb1b9c155f43786c95b77a8b01fe9f5ab35ba711e517e
|
7
|
+
data.tar.gz: 97cc3182d119418cebda42073b5b2141368c2f74ffd1d099d86efdaedf62c8a116ec9b3e643dcfd0f36c1b310b1d6883212b11f12b0e17b80e39ac26da1996a0
|
data/lib/opsmgr/api/client.rb
CHANGED
@@ -50,6 +50,15 @@ module Opsmgr
|
|
50
50
|
basic_success_or_error("Error upgrading '#{product_guid}' to '#{to_version}'", response)
|
51
51
|
end
|
52
52
|
|
53
|
+
def download_staged_manifest(product_guid)
|
54
|
+
response = http_client.download_staged_manifest(product_guid)
|
55
|
+
if response.code == '200'
|
56
|
+
StagedManifestResult.new(response.body)
|
57
|
+
else
|
58
|
+
Error.new("Error downloading staged manifest for '#{product_guid}'", response)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
53
62
|
def list_products
|
54
63
|
response = http_client.list_products
|
55
64
|
if response.code == '200'
|
@@ -109,6 +109,13 @@ module Opsmgr
|
|
109
109
|
http.request(req)
|
110
110
|
end
|
111
111
|
|
112
|
+
def download_staged_manifest(product_guid)
|
113
|
+
req = Net::HTTP::Get.new(endpoints.download_staged_manifest(product_guid))
|
114
|
+
add_auth_header(req)
|
115
|
+
|
116
|
+
http.request(req)
|
117
|
+
end
|
118
|
+
|
112
119
|
def trigger_install
|
113
120
|
req = Net::HTTP::Post.new(endpoints.install_post_path)
|
114
121
|
req.body = ''
|
data/lib/opsmgr/api/results.rb
CHANGED
@@ -240,6 +240,14 @@ module Opsmgr
|
|
240
240
|
end
|
241
241
|
end
|
242
242
|
|
243
|
+
class StagedManifestResult < Result
|
244
|
+
attr_reader :manifest
|
245
|
+
|
246
|
+
def initialize(manifest)
|
247
|
+
@manifest = manifest
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
243
251
|
class Error < Result
|
244
252
|
def initialize(message, response)
|
245
253
|
@message = "#{message}:\n#{response.body}"
|
@@ -105,6 +105,27 @@ module Opsmgr
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
+
def download_staged_manifest(client, guid, manifest_filepath)
|
109
|
+
result = client.download_staged_manifest(guid)
|
110
|
+
if result.success?
|
111
|
+
File.open(manifest_filepath, 'w') do |mf|
|
112
|
+
mf.write(result.manifest)
|
113
|
+
end
|
114
|
+
log.info 'Successfully downloaded staged manifest for product'
|
115
|
+
else
|
116
|
+
fail result.message
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def revert_staged_changes(client)
|
121
|
+
result = client.revert_staged_changes
|
122
|
+
if result.success?
|
123
|
+
log.info 'Successfully reverted staged changes'
|
124
|
+
else
|
125
|
+
fail result.message
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
108
129
|
private
|
109
130
|
|
110
131
|
attr_reader :environment
|
@@ -180,6 +180,20 @@ namespace :opsmgr do
|
|
180
180
|
download_logs: args.with_defaults(download_logs: false)
|
181
181
|
).run_errand
|
182
182
|
end
|
183
|
+
|
184
|
+
desc 'Revert staged changes'
|
185
|
+
task :revert_staged_changes, [:environment, :om_version] do |_, args|
|
186
|
+
require 'opsmgr/ui_helpers/ui_spec_runner'
|
187
|
+
|
188
|
+
unless args.om_version
|
189
|
+
raise "Please provide an Ops Manager version (for example, 1.7)"
|
190
|
+
end
|
191
|
+
|
192
|
+
UiSpecRunner.new(
|
193
|
+
environment: args.environment,
|
194
|
+
om_version: args.om_version
|
195
|
+
).revert_staged_changes
|
196
|
+
end
|
183
197
|
end
|
184
198
|
# Copyright (c) 2014-2015 Pivotal Software, Inc.
|
185
199
|
# All rights reserved.
|
@@ -55,6 +55,21 @@ namespace :opsmgr do
|
|
55
55
|
om_version: args.om_version
|
56
56
|
).uncheck_errands(args.product_name, args.extras)
|
57
57
|
end
|
58
|
+
|
59
|
+
desc 'Download staged manifest for a Generic Pivotal Product'
|
60
|
+
task :download_staged_manifest, [:environment, :om_version, :product_name, :manifest_filepath] do |_, args|
|
61
|
+
require 'opsmgr/environments'
|
62
|
+
require 'opsmgr/cmd/ops_manager'
|
63
|
+
require 'opsmgr/api/client'
|
64
|
+
|
65
|
+
environment_object = Opsmgr::Environments.for(args.environment)
|
66
|
+
client = Opsmgr::Api::Client.new(environment_object, args.om_version)
|
67
|
+
opsmgr_cmd = Opsmgr::Cmd::OpsManager.new(environment_object)
|
68
|
+
|
69
|
+
installed_products = opsmgr_cmd.installed_products(client)
|
70
|
+
product_guid = installed_products.guid_for(args.product_name)
|
71
|
+
opsmgr_cmd.download_staged_manifest(client, product_guid, args.manifest_filepath)
|
72
|
+
end
|
58
73
|
end
|
59
74
|
end
|
60
75
|
# Copyright (c) 2014-2015 Pivotal Software, Inc.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative 'config_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'Reverting staged changes', order: :defined do
|
4
|
+
let!(:current_ops_manager) { ops_manager_driver }
|
5
|
+
let!(:env_settings) { fetch_environment_settings }
|
6
|
+
|
7
|
+
it 'creates the admin user and logs in' do
|
8
|
+
# if the ops manager is not up, fail earlier than other cases and
|
9
|
+
# let the caller handle the error
|
10
|
+
poll_up_to_mins(1) do
|
11
|
+
current_ops_manager.setup_page.setup_or_login(
|
12
|
+
user: env_settings['ops_manager']['username'],
|
13
|
+
password: env_settings['ops_manager']['password'],
|
14
|
+
)
|
15
|
+
|
16
|
+
expect(page).to have_content('Installation Dashboard')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'reverts staged changes' do
|
21
|
+
if current_ops_manager.product_dashboard.revert_available?
|
22
|
+
current_ops_manager.product_dashboard.revert_pending_changes
|
23
|
+
|
24
|
+
poll_up_to_mins(1) do
|
25
|
+
expect(current_ops_manager.product_dashboard.revert_available?).to eq false
|
26
|
+
end
|
27
|
+
else
|
28
|
+
puts 'no staged changes to revert'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
# Copyright (c) 2014-2015 Pivotal Software, Inc.
|
33
|
+
# All rights reserved.
|
34
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
35
|
+
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
36
|
+
# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
37
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
38
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
39
|
+
# USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/lib/opsmgr/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opsmgr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.35.
|
4
|
+
version: 0.35.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Release Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -358,6 +358,7 @@ files:
|
|
358
358
|
- lib/opsmgr/ui_helpers/import_stemcell_spec.rb
|
359
359
|
- lib/opsmgr/ui_helpers/microbosh/configure_microbosh_spec.rb
|
360
360
|
- lib/opsmgr/ui_helpers/post_import_configuration_spec.rb
|
361
|
+
- lib/opsmgr/ui_helpers/revert_staged_changes_spec.rb
|
361
362
|
- lib/opsmgr/ui_helpers/settings_helper.rb
|
362
363
|
- lib/opsmgr/ui_helpers/trigger_install_spec.rb
|
363
364
|
- lib/opsmgr/ui_helpers/ui_spec_runner.rb
|