morpheus-cli 5.0.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Dockerfile +1 -1
- data/lib/morpheus/api/api_client.rb +12 -0
- data/lib/morpheus/api/billing_interface.rb +1 -0
- data/lib/morpheus/api/deploy_interface.rb +1 -1
- data/lib/morpheus/api/deployments_interface.rb +20 -1
- data/lib/morpheus/api/forgot_password_interface.rb +17 -0
- data/lib/morpheus/api/instances_interface.rb +7 -0
- data/lib/morpheus/api/search_interface.rb +13 -0
- data/lib/morpheus/api/servers_interface.rb +7 -0
- data/lib/morpheus/api/usage_interface.rb +18 -0
- data/lib/morpheus/cli.rb +4 -1
- data/lib/morpheus/cli/cli_command.rb +26 -9
- data/lib/morpheus/cli/commands/standard/curl_command.rb +3 -5
- data/lib/morpheus/cli/commands/standard/history_command.rb +3 -1
- data/lib/morpheus/cli/commands/standard/man_command.rb +74 -40
- data/lib/morpheus/cli/deploy.rb +199 -90
- data/lib/morpheus/cli/deployments.rb +341 -28
- data/lib/morpheus/cli/deploys.rb +206 -41
- data/lib/morpheus/cli/error_handler.rb +7 -0
- data/lib/morpheus/cli/forgot_password.rb +133 -0
- data/lib/morpheus/cli/health_command.rb +2 -2
- data/lib/morpheus/cli/hosts.rb +169 -32
- data/lib/morpheus/cli/instances.rb +83 -32
- data/lib/morpheus/cli/invoices_command.rb +33 -16
- data/lib/morpheus/cli/logs_command.rb +9 -6
- data/lib/morpheus/cli/mixins/deployments_helper.rb +31 -2
- data/lib/morpheus/cli/mixins/print_helper.rb +0 -21
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +24 -4
- data/lib/morpheus/cli/option_types.rb +266 -17
- data/lib/morpheus/cli/remote.rb +35 -10
- data/lib/morpheus/cli/reports_command.rb +99 -30
- data/lib/morpheus/cli/search_command.rb +182 -0
- data/lib/morpheus/cli/setup.rb +1 -1
- data/lib/morpheus/cli/shell.rb +33 -11
- data/lib/morpheus/cli/tasks.rb +20 -21
- data/lib/morpheus/cli/usage_command.rb +64 -11
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/cli/virtual_images.rb +280 -199
- data/lib/morpheus/cli/whoami.rb +6 -6
- data/lib/morpheus/cli/workflows.rb +33 -40
- data/lib/morpheus/formatters.rb +22 -0
- data/lib/morpheus/terminal.rb +6 -2
- metadata +7 -2
data/lib/morpheus/cli/whoami.rb
CHANGED
@@ -160,15 +160,15 @@ EOT
|
|
160
160
|
print cyan
|
161
161
|
print_description_list({
|
162
162
|
"ID" => 'id',
|
163
|
-
"Tenant" => lambda {|it| (it['account'] ? it['account']['name'] : '') + (@is_master_account ? " (Master Tenant)" : '') },
|
164
|
-
"First Name" => 'firstName',
|
165
|
-
"Last Name" => 'lastName',
|
166
|
-
# "Name" => 'displayName',
|
167
|
-
#"Name" => lambda {|it| it['firstName'] ? it['displayName'] : '' },
|
168
163
|
"Username" => 'username',
|
164
|
+
# "First Name" => 'firstName',
|
165
|
+
# "Last Name" => 'lastName',
|
166
|
+
# "Name" => 'displayName',
|
167
|
+
"Name" => lambda {|it| "#{it['firstName']} #{it['lastName']}".strip },
|
169
168
|
"Email" => 'email',
|
169
|
+
"Tenant" => lambda {|it| (it['account'] ? it['account']['name'] : '') + (@is_master_account ? " (Master Tenant)" : '') },
|
170
170
|
"Role" => lambda {|it| format_user_role_names(it) },
|
171
|
-
|
171
|
+
"Remote" => lambda {|it| display_appliance(@appliance_name, @appliance_url) },
|
172
172
|
}, @current_user)
|
173
173
|
print cyan
|
174
174
|
|
@@ -32,7 +32,7 @@ class Morpheus::Cli::Workflows
|
|
32
32
|
params = {}
|
33
33
|
options = {}
|
34
34
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
35
|
-
opts.banner = subcommand_usage()
|
35
|
+
opts.banner = subcommand_usage("[search]")
|
36
36
|
opts.on("-t", "--type TYPE", "Type of workflow. i.e. provision or operation. Default is provision.") do |val|
|
37
37
|
workflow_type = val.to_s.downcase
|
38
38
|
if workflow_type.include?('provision')
|
@@ -42,50 +42,43 @@ class Morpheus::Cli::Workflows
|
|
42
42
|
end
|
43
43
|
params['type'] = workflow_type
|
44
44
|
end
|
45
|
-
|
45
|
+
build_standard_list_options(opts, options)
|
46
|
+
opts.footer = "List workflows."
|
46
47
|
end
|
47
48
|
optparse.parse!(args)
|
48
49
|
connect(options)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
50
|
+
if args.count > 0
|
51
|
+
options[:phrase] = args.join(" ")
|
52
|
+
end
|
53
|
+
params.merge!(parse_list_options(options))
|
54
|
+
@task_sets_interface.setopts(options)
|
55
|
+
if options[:dry_run]
|
56
|
+
print_dry_run @task_sets_interface.dry.get(params)
|
57
|
+
return
|
58
|
+
end
|
59
|
+
json_response = @task_sets_interface.get(params)
|
60
|
+
task_sets = json_response['taskSets']
|
61
|
+
render_response(json_response, options, 'taskSets') do
|
62
|
+
title = "Morpheus Workflows"
|
63
|
+
subtitles = []
|
64
|
+
subtitles += parse_list_subtitles(options)
|
65
|
+
if params['type']
|
66
|
+
subtitles << "Type: #{params['type']}"
|
67
|
+
end
|
68
|
+
print_h1 title, subtitles
|
69
|
+
if task_sets.empty?
|
70
|
+
print cyan,"No workflows found.",reset,"\n"
|
68
71
|
else
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
subtitles += parse_list_subtitles(options)
|
73
|
-
if params['type']
|
74
|
-
subtitles << "Type: #{params['type']}"
|
75
|
-
end
|
76
|
-
print_h1 title, subtitles
|
77
|
-
if task_sets.empty?
|
78
|
-
print cyan,"No workflows found.",reset,"\n"
|
79
|
-
else
|
80
|
-
print cyan
|
81
|
-
print_workflows_table(task_sets)
|
82
|
-
print_results_pagination(json_response)
|
83
|
-
end
|
84
|
-
print reset,"\n"
|
72
|
+
print cyan
|
73
|
+
print_workflows_table(task_sets)
|
74
|
+
print_results_pagination(json_response)
|
85
75
|
end
|
86
|
-
|
87
|
-
|
88
|
-
|
76
|
+
print reset,"\n"
|
77
|
+
end
|
78
|
+
if task_sets.empty?
|
79
|
+
return 1, "no workflows found"
|
80
|
+
else
|
81
|
+
return 0, nil
|
89
82
|
end
|
90
83
|
end
|
91
84
|
|
data/lib/morpheus/formatters.rb
CHANGED
@@ -399,6 +399,7 @@ def format_currency(amount, currency='usd', opts={})
|
|
399
399
|
sigdig = opts[:sigdig] ? opts[:sigdig].to_i : 2 # max decimal digits
|
400
400
|
min_sigdig = opts[:min_sigdig] ? opts[:min_sigdig].to_i : 2 # min decimal digits
|
401
401
|
display_value = format_sig_dig(amount, sigdig, min_sigdig, opts[:pad_zeros])
|
402
|
+
display_value = format_number(display_value) # commas
|
402
403
|
rtn = currency_sym(currency).to_s + display_value
|
403
404
|
if amount.to_i < 0
|
404
405
|
rtn = "(#{rtn})"
|
@@ -415,3 +416,24 @@ alias :format_money :format_currency
|
|
415
416
|
# def format_money(amount, currency='usd', opts={})
|
416
417
|
# format_currency(amount, currency, opts)
|
417
418
|
# end
|
419
|
+
|
420
|
+
def format_list(items, conjunction="and", limit=nil)
|
421
|
+
items = items ? items.clone : []
|
422
|
+
if limit
|
423
|
+
items = items.first(limit)
|
424
|
+
end
|
425
|
+
last_item = items.pop
|
426
|
+
if items.empty?
|
427
|
+
return "#{last_item}"
|
428
|
+
else
|
429
|
+
return items.join(", ") + (conjunction.to_s.empty? ? ", " : " #{conjunction} ") + "#{last_item}" + ((limit && limit < (items.size+1)) ? " ..." : "")
|
430
|
+
end
|
431
|
+
end
|
432
|
+
|
433
|
+
def anded_list(items, limit=nil)
|
434
|
+
format_list(items, "and", limit)
|
435
|
+
end
|
436
|
+
|
437
|
+
def ored_list(items, limit=nil)
|
438
|
+
format_list(items, "or", limit)
|
439
|
+
end
|
data/lib/morpheus/terminal.rb
CHANGED
@@ -277,8 +277,12 @@ module Morpheus
|
|
277
277
|
end
|
278
278
|
end
|
279
279
|
out << "Commands:\n"
|
280
|
-
Morpheus::Cli::CliRegistry.all.
|
281
|
-
|
280
|
+
sorted_commands = Morpheus::Cli::CliRegistry.all.values.sort { |x,y| x.command_name.to_s <=> y.command_name.to_s }
|
281
|
+
sorted_commands.each {|cmd|
|
282
|
+
# JD: not ready to show description yet, gotta finish filling in every command first
|
283
|
+
# maybe change 'View and manage' to something more concise like 'Manage'
|
284
|
+
# out << "\t#{cmd.command_name.to_s.ljust(28, ' ')} #{cmd.command_description}\n"
|
285
|
+
out << "\t#{cmd.command_name.to_s}\n"
|
282
286
|
}
|
283
287
|
# out << "Options:\n"
|
284
288
|
out << optparse.to_s
|
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: 5.0.
|
4
|
+
version: 5.0.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-
|
14
|
+
date: 2020-10-21 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -207,6 +207,7 @@ files:
|
|
207
207
|
- lib/morpheus/api/execute_schedules_interface.rb
|
208
208
|
- lib/morpheus/api/execution_request_interface.rb
|
209
209
|
- lib/morpheus/api/file_copy_request_interface.rb
|
210
|
+
- lib/morpheus/api/forgot_password_interface.rb
|
210
211
|
- lib/morpheus/api/group_policies_interface.rb
|
211
212
|
- lib/morpheus/api/groups_interface.rb
|
212
213
|
- lib/morpheus/api/guidance_interface.rb
|
@@ -273,6 +274,7 @@ files:
|
|
273
274
|
- lib/morpheus/api/reports_interface.rb
|
274
275
|
- lib/morpheus/api/rest_interface.rb
|
275
276
|
- lib/morpheus/api/roles_interface.rb
|
277
|
+
- lib/morpheus/api/search_interface.rb
|
276
278
|
- lib/morpheus/api/security_group_rules_interface.rb
|
277
279
|
- lib/morpheus/api/security_groups_interface.rb
|
278
280
|
- lib/morpheus/api/server_types_interface.rb
|
@@ -284,6 +286,7 @@ files:
|
|
284
286
|
- lib/morpheus/api/subnets_interface.rb
|
285
287
|
- lib/morpheus/api/task_sets_interface.rb
|
286
288
|
- lib/morpheus/api/tasks_interface.rb
|
289
|
+
- lib/morpheus/api/usage_interface.rb
|
287
290
|
- lib/morpheus/api/user_groups_interface.rb
|
288
291
|
- lib/morpheus/api/user_settings_interface.rb
|
289
292
|
- lib/morpheus/api/user_sources_interface.rb
|
@@ -354,6 +357,7 @@ files:
|
|
354
357
|
- lib/morpheus/cli/execution_request_command.rb
|
355
358
|
- lib/morpheus/cli/expression_parser.rb
|
356
359
|
- lib/morpheus/cli/file_copy_request_command.rb
|
360
|
+
- lib/morpheus/cli/forgot_password.rb
|
357
361
|
- lib/morpheus/cli/groups.rb
|
358
362
|
- lib/morpheus/cli/guidance_command.rb
|
359
363
|
- lib/morpheus/cli/health_command.rb
|
@@ -428,6 +432,7 @@ files:
|
|
428
432
|
- lib/morpheus/cli/remote.rb
|
429
433
|
- lib/morpheus/cli/reports_command.rb
|
430
434
|
- lib/morpheus/cli/roles.rb
|
435
|
+
- lib/morpheus/cli/search_command.rb
|
431
436
|
- lib/morpheus/cli/security_group_rules.rb
|
432
437
|
- lib/morpheus/cli/security_groups.rb
|
433
438
|
- lib/morpheus/cli/service_plans_command.rb
|