opsmgr 0.33.5 → 0.34.0
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 +6 -3
- data/lib/opsmgr/api/http_client.rb +168 -26
- data/lib/opsmgr/api/version20/endpoints.rb +18 -2
- data/lib/opsmgr/bosh_command_runner.rb +21 -17
- data/lib/opsmgr/cmd/bosh_command.rb +54 -78
- data/lib/opsmgr/cmd/ops_manager.rb +7 -4
- data/lib/opsmgr/environments.rb +34 -5
- data/lib/opsmgr/errand_runner.rb +1 -3
- data/lib/opsmgr/product_upload_wrapper.rb +8 -8
- data/lib/opsmgr/tasks/bosh.rake +1 -7
- data/lib/opsmgr/tasks/destroy.rake +2 -2
- data/lib/opsmgr/tasks/info.rake +1 -1
- data/lib/opsmgr/tasks/opsmgr.rake +11 -8
- data/lib/opsmgr/tasks/product.rake +9 -6
- data/lib/opsmgr/ui_helpers/add_first_user_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/config_helper.rb +18 -18
- data/lib/opsmgr/ui_helpers/delete_installation_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/delete_product_if_present_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/delete_product_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/export_installation_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/get_latest_install_log_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/import_stemcell_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/microbosh/configure_microbosh_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/{import_installation_spec.rb → post_import_configuration_spec.rb} +7 -5
- data/lib/opsmgr/ui_helpers/trigger_install_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/ui_spec_runner.rb +2 -4
- data/lib/opsmgr/ui_helpers/uncheck_errands_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/upload_and_add_product_spec.rb +2 -2
- data/lib/opsmgr/ui_helpers/upload_and_upgrade_product_spec.rb +2 -2
- data/lib/opsmgr/version.rb +1 -1
- data/sample_env_files/aws.yml +1 -0
- metadata +23 -10
- data/lib/opsmgr/api/endpoints_factory.rb +0 -39
@@ -1,10 +1,15 @@
|
|
1
|
+
require 'backport_refinements'
|
2
|
+
using OpsManagerUiDrivers::BackportRefinements
|
3
|
+
|
1
4
|
require 'opsmgr/ui_helpers/ui_spec_runner'
|
2
5
|
require 'opsmgr/environments'
|
6
|
+
require 'opsmgr/api/client'
|
3
7
|
require 'ops_manager_ui_drivers'
|
4
8
|
require 'capybara'
|
5
9
|
require 'capybara/dsl'
|
6
10
|
require 'capybara/webkit'
|
7
11
|
require 'net/ssh/gateway'
|
12
|
+
require 'net/scp'
|
8
13
|
|
9
14
|
module Opsmgr
|
10
15
|
module Cmd
|
@@ -18,27 +23,22 @@ module Opsmgr
|
|
18
23
|
@env_name = env_name
|
19
24
|
@om_version = om_version
|
20
25
|
@current_ops_manager = setup_or_login
|
26
|
+
|
27
|
+
configure_client_credentials
|
21
28
|
end
|
22
29
|
|
23
30
|
def command
|
24
31
|
ip = ENV['DIRECTOR_IP_OVERRIDE'] || director_ip
|
25
32
|
|
26
|
-
|
27
|
-
bosh
|
28
|
-
|
29
|
-
-u director
|
30
|
-
-p #{director_password}
|
31
|
-
).join(' ')
|
32
|
-
end
|
33
|
-
|
34
|
-
def target
|
35
|
-
ip = ENV['DIRECTOR_IP_OVERRIDE'] || director_ip
|
33
|
+
if Gem::Version.new(om_version) >= Gem::Version.new('1.7')
|
34
|
+
return "BOSH_CLIENT=#{@bosh_client} BOSH_CLIENT_SECRET=#{@bosh_client_secret} bosh -t #{ip} --ca-cert #{root_cert_file}"
|
35
|
+
end
|
36
36
|
|
37
37
|
%W(
|
38
38
|
bosh
|
39
|
+
-t #{ip}
|
39
40
|
-u director
|
40
41
|
-p #{director_password}
|
41
|
-
target #{ip}
|
42
42
|
).join(' ')
|
43
43
|
end
|
44
44
|
|
@@ -46,9 +46,9 @@ module Opsmgr
|
|
46
46
|
status_page = current_ops_manager.product_status_for(director_tile_name)
|
47
47
|
|
48
48
|
partitioned_job_name = 'director-partition-null-az'
|
49
|
-
availability_zones = env_settings
|
49
|
+
availability_zones = env_settings['ops_manager']['availability_zones']
|
50
50
|
if availability_zones
|
51
|
-
az_name = availability_zones.first
|
51
|
+
az_name = availability_zones.first['iaas_identifier'] || 'first-az'
|
52
52
|
partitioned_job_name = "director-partition-#{current_ops_manager.availability_zone_guid_for_name(az_name)}"
|
53
53
|
end
|
54
54
|
|
@@ -59,12 +59,49 @@ module Opsmgr
|
|
59
59
|
|
60
60
|
private
|
61
61
|
|
62
|
+
def configure_client_credentials
|
63
|
+
return unless Gem::Version.new(om_version) >= Gem::Version.new('1.7')
|
64
|
+
|
65
|
+
installation_settings = Opsmgr::Api::Client.new(Opsmgr::Environments.for(@env_name), @om_version).installation_settings.as_hash
|
66
|
+
uaa_credentials = installation_settings['products'].find { |p| p['identifier'] == 'p-bosh' }['uaa_credentials']
|
67
|
+
|
68
|
+
|
69
|
+
@bosh_client = uaa_credentials['identity']
|
70
|
+
@bosh_client_secret = uaa_credentials['password']
|
71
|
+
end
|
72
|
+
|
73
|
+
def root_cert_file
|
74
|
+
@root_cert_file_name ||= begin
|
75
|
+
Net::SCP.download!(
|
76
|
+
env_settings['ops_manager']['url'].gsub('https://', '').gsub('/', ''),
|
77
|
+
'ubuntu',
|
78
|
+
'/var/tempest/workspaces/default/root_ca_certificate',
|
79
|
+
filename,
|
80
|
+
ssh: { password: 'tempest', key_data: ops_manager_ssh_key }
|
81
|
+
)
|
82
|
+
filename
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def filename
|
87
|
+
ENV.fetch('TMPDIR', '/tmp') + '/root_ca_certificate'
|
88
|
+
end
|
89
|
+
|
90
|
+
def ops_manager_ssh_key
|
91
|
+
case @env_settings.dig('iaas_type')
|
92
|
+
when 'aws'
|
93
|
+
@env_settings.dig('ops_manager', 'aws', 'ssh_key')
|
94
|
+
when 'openstack'
|
95
|
+
@env_settings.dig('ops_manager', 'openstack', 'ssh_private_key')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
62
99
|
def setup_or_login
|
63
100
|
driver = ops_manager_driver(om_version)
|
64
101
|
|
65
102
|
driver.setup_page.setup_or_login(
|
66
|
-
user: env_settings
|
67
|
-
password: env_settings
|
103
|
+
user: env_settings['ops_manager']['username'],
|
104
|
+
password: env_settings['ops_manager']['password'],
|
68
105
|
)
|
69
106
|
driver
|
70
107
|
end
|
@@ -73,12 +110,12 @@ module Opsmgr
|
|
73
110
|
Capybara.configure do |c|
|
74
111
|
c.default_driver = :webkit
|
75
112
|
c.run_server = false
|
76
|
-
c.app_host = env_settings
|
113
|
+
c.app_host = env_settings['ops_manager']['url']
|
77
114
|
end
|
78
115
|
|
79
116
|
Capybara::Webkit.configure do |c|
|
80
117
|
c.ignore_ssl_errors = true
|
81
|
-
c.allow_url(env_settings
|
118
|
+
c.allow_url(env_settings['ops_manager']['url'])
|
82
119
|
end
|
83
120
|
|
84
121
|
page.current_window.resize_to(1024, 1600) # avoid overlapping footer spec failures
|
@@ -141,67 +178,6 @@ module Opsmgr
|
|
141
178
|
|
142
179
|
attr_reader :env_settings, :om_version, :current_ops_manager
|
143
180
|
end
|
144
|
-
|
145
|
-
class IaasGateway
|
146
|
-
def initialize(bosh_command:, environment_name:, logger:)
|
147
|
-
@bosh_command = bosh_command
|
148
|
-
@environment = Opsmgr::Environments.for(environment_name)
|
149
|
-
@logger = logger
|
150
|
-
end
|
151
|
-
|
152
|
-
def gateway(&block)
|
153
|
-
case environment.settings.iaas_type
|
154
|
-
when 'vsphere'
|
155
|
-
block.call
|
156
|
-
when 'aws', 'openstack'
|
157
|
-
ssh_key_gateway(block)
|
158
|
-
when 'vcloud'
|
159
|
-
ssh_password_gateway(block)
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
private
|
164
|
-
|
165
|
-
attr_reader :bosh_command, :environment, :logger
|
166
|
-
|
167
|
-
def ssh_password_gateway(block)
|
168
|
-
ENV['DIRECTOR_IP_OVERRIDE'] = 'localhost'
|
169
|
-
uri = URI.parse(environment.settings.ops_manager.url)
|
170
|
-
director_ip = bosh_command.director_ip
|
171
|
-
logger.info("Setting up SSH gateway to OpsManager at #{uri.host}")
|
172
|
-
Net::SSH::Gateway.new(
|
173
|
-
uri.host,
|
174
|
-
'ubuntu',
|
175
|
-
password: 'tempest'
|
176
|
-
).open(director_ip, 25_555, 25_555) do |_|
|
177
|
-
logger.info("Opened tunnel to Director at #{director_ip}")
|
178
|
-
block.call
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
def ssh_key_gateway(block)
|
183
|
-
ENV['DIRECTOR_IP_OVERRIDE'] = 'localhost'
|
184
|
-
uri = URI.parse(environment.settings.ops_manager.url)
|
185
|
-
director_ip = bosh_command.director_ip
|
186
|
-
Net::SSH::Gateway.new(
|
187
|
-
uri.host,
|
188
|
-
'ubuntu',
|
189
|
-
key_data: [ssh_key]
|
190
|
-
).open(director_ip, 25_555, 25_555) do |_|
|
191
|
-
logger.info("Opened tunnel to Director at #{director_ip}")
|
192
|
-
block.call
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
def ssh_key
|
197
|
-
case environment.settings.iaas_type
|
198
|
-
when 'aws'
|
199
|
-
environment.settings.ops_manager.aws.ssh_key
|
200
|
-
when 'openstack'
|
201
|
-
environment.settings.ops_manager.openstack.ssh_private_key
|
202
|
-
end
|
203
|
-
end
|
204
|
-
end
|
205
181
|
end
|
206
182
|
end
|
207
183
|
# Copyright (c) 2014-2015 Pivotal Software, Inc.
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'backport_refinements'
|
2
|
+
using OpsManagerUiDrivers::BackportRefinements
|
3
|
+
|
1
4
|
require 'opsmgr/log'
|
2
5
|
|
3
6
|
module Opsmgr
|
@@ -18,9 +21,9 @@ module Opsmgr
|
|
18
21
|
return if result['infrastructure']['type'] != 'vsphere'
|
19
22
|
|
20
23
|
result['infrastructure']['file_system'] = {
|
21
|
-
'microbosh_vm_folder' => environment.settings.name,
|
22
|
-
'microbosh_template_folder' => environment.settings.name,
|
23
|
-
'microbosh_disk_path' => environment.settings.name,
|
24
|
+
'microbosh_vm_folder' => environment.settings.dig('name'),
|
25
|
+
'microbosh_template_folder' => environment.settings.dig('name'),
|
26
|
+
'microbosh_disk_path' => environment.settings.dig('name'),
|
24
27
|
}
|
25
28
|
|
26
29
|
file = Tempfile.new('om_install_settings')
|
@@ -85,7 +88,7 @@ module Opsmgr
|
|
85
88
|
end
|
86
89
|
|
87
90
|
def import_installation(client, path)
|
88
|
-
result = client.import_installation(path, environment.settings.ops_manager
|
91
|
+
result = client.import_installation(path, environment.settings.dig('ops_manager', 'password'))
|
89
92
|
if result.success?
|
90
93
|
log.info 'Successfully imported installation'
|
91
94
|
else
|
data/lib/opsmgr/environments.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
require '
|
1
|
+
require 'backport_refinements'
|
2
|
+
using OpsManagerUiDrivers::BackportRefinements
|
2
3
|
|
3
4
|
require 'active_support'
|
4
5
|
require 'active_support/core_ext'
|
@@ -51,9 +52,9 @@ module Opsmgr
|
|
51
52
|
file_system = installation_settings['infrastructure']['file_system']
|
52
53
|
|
53
54
|
settings_to_modify = settings
|
54
|
-
settings_to_modify.vm_shepherd
|
55
|
-
settings_to_modify.vm_shepherd
|
56
|
-
settings_to_modify.vm_shepherd
|
55
|
+
settings_to_modify.dig('vm_shepherd', 'vm_configs', 0, 'cleanup', 'datacenter_folders_to_clean') << file_system['microbosh_vm_folder']
|
56
|
+
settings_to_modify.dig('vm_shepherd', 'vm_configs', 0, 'cleanup', 'datacenter_folders_to_clean') << file_system['microbosh_template_folder']
|
57
|
+
settings_to_modify.dig('vm_shepherd', 'vm_configs', 0, 'cleanup', 'datastore_folders_to_clean') << file_system['microbosh_disk_path']
|
57
58
|
settings_to_modify
|
58
59
|
end
|
59
60
|
|
@@ -63,7 +64,35 @@ module Opsmgr
|
|
63
64
|
raise "Specified name #{@env_name} does not match name in #{@config_path}"
|
64
65
|
end
|
65
66
|
|
66
|
-
|
67
|
+
fix_subnets(string_keyed_hash)
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def fix_subnets(settings)
|
73
|
+
settings['ops_manager']['networks'].each do |n|
|
74
|
+
next if n['subnets']
|
75
|
+
availability_zones = settings['ops_manager']['availability_zones'] || []
|
76
|
+
n['subnets'] = [
|
77
|
+
{
|
78
|
+
'identifier' => n['identifier'],
|
79
|
+
'cidr' => n['subnet'],
|
80
|
+
'dns' => n['dns'],
|
81
|
+
'gateway' => n['gateway'],
|
82
|
+
'reserved_ips' => n['reserved_ips'],
|
83
|
+
'availability_zones' => availability_zones.map { |z| z['name'] }
|
84
|
+
}
|
85
|
+
]
|
86
|
+
end
|
87
|
+
|
88
|
+
if settings['vm_shepherd']['env_config']
|
89
|
+
outputs = settings['vm_shepherd']['env_config']['outputs']
|
90
|
+
unless outputs['subnets']
|
91
|
+
outputs['subnets'] = [outputs['public_subnet_id'], outputs['private_subnet_id']]
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
settings
|
67
96
|
end
|
68
97
|
end
|
69
98
|
end
|
data/lib/opsmgr/errand_runner.rb
CHANGED
@@ -3,8 +3,7 @@ require 'open3'
|
|
3
3
|
|
4
4
|
module Opsmgr
|
5
5
|
class ErrandRunner
|
6
|
-
def initialize(
|
7
|
-
@iaas_gateway = iaas_gateway
|
6
|
+
def initialize(bosh_command:, environment_name:, logger:, product_name:, errand_name:, download_logs:)
|
8
7
|
@bosh_command = bosh_command
|
9
8
|
@environment_name = environment_name
|
10
9
|
@logger = logger
|
@@ -13,7 +12,6 @@ module Opsmgr
|
|
13
12
|
@download_logs = download_logs ? "--download-logs" : ""
|
14
13
|
|
15
14
|
@bosh_command_runner = Opsmgr::BoshCommandRunner.new(
|
16
|
-
iaas_gateway: @iaas_gateway,
|
17
15
|
bosh_command: @bosh_command,
|
18
16
|
logger: @logger
|
19
17
|
)
|
@@ -4,25 +4,25 @@ require 'opsmgr/cmd/ops_manager'
|
|
4
4
|
require 'opsmgr/api/client'
|
5
5
|
|
6
6
|
class ProductUploadWrapper
|
7
|
-
def self.wrap_add(environment:, product_path:, product_name:)
|
8
|
-
wrap_operation(environment, product_path, product_name, 'add')
|
7
|
+
def self.wrap_add(environment:, product_path:, product_name:, om_version:)
|
8
|
+
wrap_operation(environment, product_path, product_name, 'add', om_version)
|
9
9
|
end
|
10
10
|
|
11
|
-
def self.wrap_upgrade(environment:, product_path:, product_name:)
|
12
|
-
wrap_operation(environment, product_path, product_name, 'upgrade')
|
11
|
+
def self.wrap_upgrade(environment:, product_path:, product_name:, om_version:)
|
12
|
+
wrap_operation(environment, product_path, product_name, 'upgrade', om_version)
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.wrap_upload(environment:, product_path:, product_name:)
|
16
|
-
wrap_operation(environment, product_path, product_name, 'upload')
|
15
|
+
def self.wrap_upload(environment:, product_path:, product_name:, om_version:)
|
16
|
+
wrap_operation(environment, product_path, product_name, 'upload', om_version)
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.wrap_operation(environment, product_path, product_name, operation)
|
19
|
+
def self.wrap_operation(environment, product_path, product_name, operation, om_version)
|
20
20
|
unless %w(add upgrade upload).include?(operation)
|
21
21
|
fail "Operation '#{operation}' is not available"
|
22
22
|
end
|
23
23
|
|
24
24
|
environment_object = Opsmgr::Environments.for(environment)
|
25
|
-
client = Opsmgr::Api::Client.new(environment_object)
|
25
|
+
client = Opsmgr::Api::Client.new(environment_object, om_version)
|
26
26
|
opsmgr_cmd = Opsmgr::Cmd::OpsManager.new(environment_object)
|
27
27
|
opsmgr_cmd.upload_product(client, product_path)
|
28
28
|
|
data/lib/opsmgr/tasks/bosh.rake
CHANGED
@@ -35,7 +35,7 @@ namespace :opsmgr do
|
|
35
35
|
require 'opsmgr/cmd/ops_manager'
|
36
36
|
|
37
37
|
environment = Opsmgr::Environments.for(args.environment)
|
38
|
-
client = Opsmgr::Api::Client.new(environment)
|
38
|
+
client = Opsmgr::Api::Client.new(environment, args.om_version)
|
39
39
|
Opsmgr::Cmd::OpsManager.new(environment).configure_microbosh_infrastructure(client)
|
40
40
|
|
41
41
|
UiSpecRunner.new(
|
@@ -71,13 +71,7 @@ namespace :opsmgr do
|
|
71
71
|
env_name: args.environment_name,
|
72
72
|
om_version: args.om_version
|
73
73
|
)
|
74
|
-
iaas_gateway = Opsmgr::Cmd::IaasGateway.new(
|
75
|
-
bosh_command: bosh_command,
|
76
|
-
environment_name: args.environment_name,
|
77
|
-
logger: logger
|
78
|
-
)
|
79
74
|
Opsmgr::BoshCommandRunner.new(
|
80
|
-
iaas_gateway: iaas_gateway,
|
81
75
|
bosh_command: bosh_command,
|
82
76
|
logger: logger
|
83
77
|
).run(args.command)
|
@@ -4,14 +4,14 @@ namespace :opsmgr do
|
|
4
4
|
|
5
5
|
namespace :destroy do
|
6
6
|
desc "- Clear our Resource Pool, deleting stemcells, all installed products' VMs (including Ops Mgr)"
|
7
|
-
task :vms, [:environment] do |_, args|
|
7
|
+
task :vms, [:environment, :om_version] do |_, args|
|
8
8
|
require 'opsmgr/cmd/ops_manager'
|
9
9
|
require 'opsmgr/environments'
|
10
10
|
require 'opsmgr/api/client'
|
11
11
|
|
12
12
|
env = Opsmgr::Environments.for(args.environment)
|
13
13
|
begin
|
14
|
-
installation_settings = Opsmgr::Api::Client.new(env).installation_settings.as_hash
|
14
|
+
installation_settings = Opsmgr::Api::Client.new(env, args.om_version).installation_settings.as_hash
|
15
15
|
rescue
|
16
16
|
installation_settings = { 'infrastructure' => {} }
|
17
17
|
end
|
data/lib/opsmgr/tasks/info.rake
CHANGED
@@ -4,7 +4,7 @@ namespace :opsmgr do
|
|
4
4
|
task :host, [:environment] do |_, args|
|
5
5
|
require 'opsmgr/environments'
|
6
6
|
require 'uri'
|
7
|
-
uri = URI(Opsmgr::Environments.for(args.environment).settings
|
7
|
+
uri = URI(Opsmgr::Environments.for(args.environment).settings['ops_manager']['url'])
|
8
8
|
puts uri.host
|
9
9
|
end
|
10
10
|
end
|
@@ -36,9 +36,18 @@ namespace :opsmgr do
|
|
36
36
|
require 'opsmgr/api/client'
|
37
37
|
|
38
38
|
environment_object = Opsmgr::Environments.for(args.environment)
|
39
|
-
client = Opsmgr::Api::Client.new(environment_object)
|
39
|
+
client = Opsmgr::Api::Client.new(environment_object, args.om_version)
|
40
40
|
opsmgr_cmd = Opsmgr::Cmd::OpsManager.new(environment_object)
|
41
41
|
opsmgr_cmd.import_installation(client, args.import_file)
|
42
|
+
|
43
|
+
if Gem::Version.new(args.om_version) >= Gem::Version.new('1.7')
|
44
|
+
require 'opsmgr/ui_helpers/ui_spec_runner'
|
45
|
+
|
46
|
+
UiSpecRunner.new(
|
47
|
+
environment: args.environment,
|
48
|
+
om_version: args.om_version
|
49
|
+
).post_import_configuration
|
50
|
+
end
|
42
51
|
end
|
43
52
|
|
44
53
|
desc 'Delete installation'
|
@@ -123,7 +132,7 @@ namespace :opsmgr do
|
|
123
132
|
require 'opsmgr/environments'
|
124
133
|
|
125
134
|
environment = Opsmgr::Environments.for(args.environment)
|
126
|
-
client = Opsmgr::Api::Client.new(environment)
|
135
|
+
client = Opsmgr::Api::Client.new(environment, args.om_version)
|
127
136
|
Opsmgr::Cmd::OpsManager.new(environment).delete_unused_products(client)
|
128
137
|
end
|
129
138
|
|
@@ -156,13 +165,7 @@ namespace :opsmgr do
|
|
156
165
|
env_name: args.environment_name,
|
157
166
|
om_version: args.om_version
|
158
167
|
)
|
159
|
-
iaas_gateway = Opsmgr::Cmd::IaasGateway.new(
|
160
|
-
bosh_command: bosh_command,
|
161
|
-
environment_name: args.environment_name,
|
162
|
-
logger: logger
|
163
|
-
)
|
164
168
|
Opsmgr::ErrandRunner.new(
|
165
|
-
iaas_gateway: iaas_gateway,
|
166
169
|
bosh_command: bosh_command,
|
167
170
|
environment_name: args.environment_name,
|
168
171
|
logger: logger,
|
@@ -1,35 +1,38 @@
|
|
1
1
|
namespace :opsmgr do
|
2
2
|
namespace :product do
|
3
3
|
desc 'Upload a Pivotal Product'
|
4
|
-
task :upload, [:environment, :
|
4
|
+
task :upload, [:environment, :om_version, :product_path, :product_name] do |_, args|
|
5
5
|
require 'opsmgr/product_upload_wrapper'
|
6
6
|
|
7
7
|
ProductUploadWrapper.wrap_upload(
|
8
8
|
environment: args.environment,
|
9
9
|
product_path: args.product_path,
|
10
|
-
product_name: args.product_name
|
10
|
+
product_name: args.product_name,
|
11
|
+
om_version: args.om_version
|
11
12
|
)
|
12
13
|
end
|
13
14
|
|
14
15
|
desc 'Upload and Add a Pivotal Product'
|
15
|
-
task :upload_add, [:environment, :
|
16
|
+
task :upload_add, [:environment, :om_version, :product_path, :product_name] do |_, args|
|
16
17
|
require 'opsmgr/product_upload_wrapper'
|
17
18
|
|
18
19
|
ProductUploadWrapper.wrap_add(
|
19
20
|
environment: args.environment,
|
20
21
|
product_path: args.product_path,
|
21
|
-
product_name: args.product_name
|
22
|
+
product_name: args.product_name,
|
23
|
+
om_version: args.om_version
|
22
24
|
)
|
23
25
|
end
|
24
26
|
|
25
27
|
desc 'Upgrade a Generic Pivotal Product'
|
26
|
-
task :upload_upgrade, [:environment, :
|
28
|
+
task :upload_upgrade, [:environment, :om_version, :product_path, :product_name] do |_, args|
|
27
29
|
require 'opsmgr/product_upload_wrapper'
|
28
30
|
|
29
31
|
ProductUploadWrapper.wrap_upgrade(
|
30
32
|
environment: args.environment,
|
31
33
|
product_path: args.product_path,
|
32
|
-
product_name: args.product_name
|
34
|
+
product_name: args.product_name,
|
35
|
+
om_version: args.om_version
|
33
36
|
)
|
34
37
|
end
|
35
38
|
|