morpheus-cli 5.0.0 → 5.0.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/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
|