morpheus-cli 4.2 → 4.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +1 -1
- data/lib/morpheus/api/library_instance_types_interface.rb +9 -7
- data/lib/morpheus/api/library_layouts_interface.rb +3 -1
- data/lib/morpheus/api/service_plans_interface.rb +6 -0
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +10 -7
- data/lib/morpheus/cli/service_plans_command.rb +55 -1
- data/lib/morpheus/cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46d92f279d50a64ebeb6f5c08623f9e54573cbf4855f08f2bfbb6a201b706522
|
4
|
+
data.tar.gz: 19c96eb29f3afc1943d6e52667fac9be0364a8d8e87d9b2d04da13671d2b68c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7267a3cfbc6052d7963dcda64401c289031b65b12779721361154dfdbf6344195779a8b44d8da5b45a0d52a1b06c5f53cd8a4cf07b300693e23ec71463adaf6
|
7
|
+
data.tar.gz: bca94b7c92c9c420224a5695d05f8f35f89c8211c61c74b3e106b2789439df2a46ab8f7adcee04654655cbff6275fddf5da68408f9691711c25152fcb9636c81
|
data/Dockerfile
CHANGED
@@ -10,21 +10,23 @@ class Morpheus::LibraryInstanceTypesInterface < Morpheus::APIClient
|
|
10
10
|
|
11
11
|
def get(id, params={})
|
12
12
|
raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
|
13
|
-
|
13
|
+
# new URL is available in api 4.2 +
|
14
|
+
# url = "#{@base_url}/api/library/#{id}"
|
15
|
+
url = "#{@base_url}/api/library/#{id}"
|
14
16
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
15
17
|
opts = {method: :get, url: url, headers: headers}
|
16
18
|
execute(opts)
|
17
19
|
end
|
18
20
|
|
19
21
|
def list(params={})
|
20
|
-
url = "#{@base_url}/api/library
|
22
|
+
url = "#{@base_url}/api/library"
|
21
23
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
22
24
|
opts = {method: :get, url: url, headers: headers}
|
23
25
|
execute(opts)
|
24
26
|
end
|
25
27
|
|
26
28
|
def create(options)
|
27
|
-
url = "#{@base_url}/api/library
|
29
|
+
url = "#{@base_url}/api/library"
|
28
30
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
29
31
|
payload = options
|
30
32
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
@@ -32,7 +34,7 @@ class Morpheus::LibraryInstanceTypesInterface < Morpheus::APIClient
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def update(id, options)
|
35
|
-
url = "#{@base_url}/api/library
|
37
|
+
url = "#{@base_url}/api/library/#{id}"
|
36
38
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
37
39
|
payload = options
|
38
40
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
@@ -40,14 +42,14 @@ class Morpheus::LibraryInstanceTypesInterface < Morpheus::APIClient
|
|
40
42
|
end
|
41
43
|
|
42
44
|
def toggle_featured(id, params={}, payload={})
|
43
|
-
url = "#{@base_url}/api/library
|
45
|
+
url = "#{@base_url}/api/library/#{id}/toggle-featured"
|
44
46
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
45
47
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
46
48
|
execute(opts)
|
47
49
|
end
|
48
50
|
|
49
51
|
def destroy(id, payload={})
|
50
|
-
url = "#{@base_url}/api/library
|
52
|
+
url = "#{@base_url}/api/library/#{id}"
|
51
53
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
52
54
|
opts = {method: :delete, url: url, headers: headers, payload: payload.to_json}
|
53
55
|
execute(opts)
|
@@ -55,7 +57,7 @@ class Morpheus::LibraryInstanceTypesInterface < Morpheus::APIClient
|
|
55
57
|
|
56
58
|
# NOT json, multipart file upload
|
57
59
|
def update_logo(id, logo_file)
|
58
|
-
url = "#{@base_url}/api/library
|
60
|
+
url = "#{@base_url}/api/library/#{id}/update-logo"
|
59
61
|
headers = { :params => {}, :authorization => "Bearer #{@access_token}"}
|
60
62
|
payload = {}
|
61
63
|
payload[:logo] = logo_file
|
@@ -51,7 +51,9 @@ class Morpheus::LibraryLayoutsInterface < Morpheus::APIClient
|
|
51
51
|
def build_url(instance_type_id=nil, id=nil)
|
52
52
|
url = "#{@base_url}/api"
|
53
53
|
if instance_type_id
|
54
|
-
|
54
|
+
# new URL is available in api 4.2 +
|
55
|
+
# url += "/library/instance-types/#{instance_type_id}/layouts"
|
56
|
+
url += "/library/#{instance_type_id}/layouts"
|
55
57
|
else
|
56
58
|
url += "/library/layouts"
|
57
59
|
end
|
@@ -33,6 +33,12 @@ class Morpheus::ServicePlansInterface < Morpheus::APIClient
|
|
33
33
|
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
34
34
|
end
|
35
35
|
|
36
|
+
def activate(id, params={})
|
37
|
+
url = "#{@api_url}/#{id}/activate"
|
38
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
39
|
+
execute(method: :put, url: url, headers: headers)
|
40
|
+
end
|
41
|
+
|
36
42
|
def deactivate(id, params={})
|
37
43
|
url = "#{@api_url}/#{id}/deactivate"
|
38
44
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
@@ -599,13 +599,16 @@ module Morpheus::Cli::ProvisioningHelper
|
|
599
599
|
|
600
600
|
# add selectable datastores for resource pool
|
601
601
|
if options[:select_datastore]
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
service_plan['datastores'][type]
|
608
|
-
|
602
|
+
begin
|
603
|
+
service_plan['datastores'] = {'cluster' => [], 'store' => []}
|
604
|
+
selectable_datastores = cloud_datastores_interface.selectable(cloud_id, {'siteId' => group_id, 'resourcePoolId' => resource_pool['id']})
|
605
|
+
['cluster', 'store'].each do |type|
|
606
|
+
service_plan['datastores'][type] ||= []
|
607
|
+
selectable_datastores[type].reject { |ds| service_plan['datastores'][type].find {|it| it['id'] == ds['id']} }.each { |ds|
|
608
|
+
service_plan['datastores'][type] << ds
|
609
|
+
}
|
610
|
+
end
|
611
|
+
rescue => error
|
609
612
|
end
|
610
613
|
|
611
614
|
if provision_type && provision_type['supportsAutoDatastore']
|
@@ -7,7 +7,7 @@ class Morpheus::Cli::ServicePlanCommand
|
|
7
7
|
|
8
8
|
set_command_name :'service-plans'
|
9
9
|
|
10
|
-
register_subcommands :list, :get, :add, :update, :deactivate
|
10
|
+
register_subcommands :list, :get, :add, :update, :activate, :deactivate
|
11
11
|
set_default_subcommand :list
|
12
12
|
|
13
13
|
def connect(opts)
|
@@ -637,6 +637,60 @@ class Morpheus::Cli::ServicePlanCommand
|
|
637
637
|
exit 1
|
638
638
|
end
|
639
639
|
end
|
640
|
+
|
641
|
+
def activate(args)
|
642
|
+
options = {}
|
643
|
+
params = {}
|
644
|
+
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
645
|
+
opts.banner = subcommand_usage( "[plan]")
|
646
|
+
build_common_options(opts, options, [:json, :dry_run, :remote, :auto_confirm])
|
647
|
+
opts.footer = "Activate service plan.\n" +
|
648
|
+
"[plan] is required. Service plan ID, name or code"
|
649
|
+
end
|
650
|
+
optparse.parse!(args)
|
651
|
+
connect(options)
|
652
|
+
if args.count != 1
|
653
|
+
raise_command_error "wrong number of arguments, expected 1 and got (#{args.count}) #{args}\n#{optparse}"
|
654
|
+
return 1
|
655
|
+
end
|
656
|
+
|
657
|
+
begin
|
658
|
+
plan = find_service_plan(args[0])
|
659
|
+
|
660
|
+
if !plan
|
661
|
+
print_red_alert "Service plan #{args[0]} not found"
|
662
|
+
exit 1
|
663
|
+
end
|
664
|
+
|
665
|
+
if plan['active'] == true
|
666
|
+
print_green_success "Service plan #{plan['name']} already actived."
|
667
|
+
return 0
|
668
|
+
end
|
669
|
+
|
670
|
+
unless options[:yes] || ::Morpheus::Cli::OptionTypes::confirm("Are you sure you would like to activate the service plan '#{plan['name']}'?", options)
|
671
|
+
return 9, "aborted command"
|
672
|
+
end
|
673
|
+
|
674
|
+
@service_plans_interface.setopts(options)
|
675
|
+
if options[:dry_run]
|
676
|
+
print_dry_run @service_plans_interface.dry.activate(plan['id'], params)
|
677
|
+
return
|
678
|
+
end
|
679
|
+
|
680
|
+
json_response = @service_plans_interface.activate(plan['id'], params)
|
681
|
+
|
682
|
+
if options[:json]
|
683
|
+
print JSON.pretty_generate(json_response)
|
684
|
+
print "\n"
|
685
|
+
elsif !options[:quiet]
|
686
|
+
print_green_success "Service plan #{plan['name']} activated"
|
687
|
+
end
|
688
|
+
return 0
|
689
|
+
rescue RestClient::Exception => e
|
690
|
+
print_rest_exception(e, options)
|
691
|
+
exit 1
|
692
|
+
end
|
693
|
+
end
|
640
694
|
|
641
695
|
def deactivate(args)
|
642
696
|
options = {}
|
data/lib/morpheus/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: morpheus-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Estes
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-03-
|
14
|
+
date: 2020-03-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|