morpheus-cli 3.6.9 → 3.6.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/morpheus/api/api_client.rb +0 -4
  3. data/lib/morpheus/api/deploy_interface.rb +12 -8
  4. data/lib/morpheus/cli.rb +0 -1
  5. data/lib/morpheus/cli/access_token_command.rb +3 -4
  6. data/lib/morpheus/cli/account_groups_command.rb +8 -3
  7. data/lib/morpheus/cli/apps.rb +10 -5
  8. data/lib/morpheus/cli/archives_command.rb +20 -6
  9. data/lib/morpheus/cli/boot_scripts_command.rb +5 -2
  10. data/lib/morpheus/cli/change_password_command.rb +1 -1
  11. data/lib/morpheus/cli/cli_command.rb +2 -4
  12. data/lib/morpheus/cli/cloud_datastores_command.rb +3 -2
  13. data/lib/morpheus/cli/commands/standard/alias_command.rb +10 -14
  14. data/lib/morpheus/cli/commands/standard/history_command.rb +0 -20
  15. data/lib/morpheus/cli/commands/standard/man_command.rb +8 -8
  16. data/lib/morpheus/cli/containers_command.rb +9 -1
  17. data/lib/morpheus/cli/credentials.rb +2 -1
  18. data/lib/morpheus/cli/cypher_command.rb +10 -2
  19. data/lib/morpheus/cli/dashboard_command.rb +1 -0
  20. data/lib/morpheus/cli/deployments.rb +5 -1
  21. data/lib/morpheus/cli/deploys.rb +26 -9
  22. data/lib/morpheus/cli/execute_schedules_command.rb +9 -1
  23. data/lib/morpheus/cli/execution_request_command.rb +3 -2
  24. data/lib/morpheus/cli/file_copy_request_command.rb +3 -2
  25. data/lib/morpheus/cli/hosts.rb +8 -6
  26. data/lib/morpheus/cli/image_builder_command.rb +14 -10
  27. data/lib/morpheus/cli/instance_types.rb +2 -1
  28. data/lib/morpheus/cli/instances.rb +9 -4
  29. data/lib/morpheus/cli/key_pairs.rb +33 -21
  30. data/lib/morpheus/cli/library_container_scripts_command.rb +5 -2
  31. data/lib/morpheus/cli/library_container_templates_command.rb +5 -2
  32. data/lib/morpheus/cli/library_container_types_command.rb +5 -3
  33. data/lib/morpheus/cli/library_instance_types_command.rb +6 -2
  34. data/lib/morpheus/cli/library_layouts_command.rb +5 -3
  35. data/lib/morpheus/cli/library_option_lists_command.rb +5 -1
  36. data/lib/morpheus/cli/library_option_types_command.rb +5 -0
  37. data/lib/morpheus/cli/library_upgrades_command.rb +5 -3
  38. data/lib/morpheus/cli/license.rb +3 -0
  39. data/lib/morpheus/cli/load_balancers.rb +10 -1
  40. data/lib/morpheus/cli/mixins/processes_helper.rb +10 -4
  41. data/lib/morpheus/cli/monitoring_apps_command.rb +32 -26
  42. data/lib/morpheus/cli/monitoring_checks_command.rb +35 -27
  43. data/lib/morpheus/cli/monitoring_contacts_command.rb +19 -16
  44. data/lib/morpheus/cli/monitoring_groups_command.rb +32 -26
  45. data/lib/morpheus/cli/monitoring_incidents_command.rb +39 -30
  46. data/lib/morpheus/cli/network_domains_command.rb +5 -2
  47. data/lib/morpheus/cli/network_groups_command.rb +5 -2
  48. data/lib/morpheus/cli/network_pool_servers_command.rb +5 -2
  49. data/lib/morpheus/cli/network_pools_command.rb +5 -2
  50. data/lib/morpheus/cli/network_proxies_command.rb +5 -2
  51. data/lib/morpheus/cli/network_services_command.rb +1 -0
  52. data/lib/morpheus/cli/networks_command.rb +5 -2
  53. data/lib/morpheus/cli/packages_command.rb +6 -3
  54. data/lib/morpheus/cli/policies_command.rb +17 -3
  55. data/lib/morpheus/cli/power_schedules_command.rb +9 -1
  56. data/lib/morpheus/cli/preseed_scripts_command.rb +5 -2
  57. data/lib/morpheus/cli/processes_command.rb +17 -6
  58. data/lib/morpheus/cli/recent_activity_command.rb +1 -0
  59. data/lib/morpheus/cli/remote.rb +1 -0
  60. data/lib/morpheus/cli/roles.rb +14 -5
  61. data/lib/morpheus/cli/security_group_rules.rb +8 -4
  62. data/lib/morpheus/cli/security_groups.rb +4 -0
  63. data/lib/morpheus/cli/shell.rb +13 -23
  64. data/lib/morpheus/cli/storage_providers_command.rb +12 -6
  65. data/lib/morpheus/cli/tasks.rb +6 -0
  66. data/lib/morpheus/cli/tenants_command.rb +13 -9
  67. data/lib/morpheus/cli/user_groups_command.rb +7 -1
  68. data/lib/morpheus/cli/user_settings_command.rb +7 -1
  69. data/lib/morpheus/cli/user_sources_command.rb +10 -8
  70. data/lib/morpheus/cli/users.rb +7 -2
  71. data/lib/morpheus/cli/version.rb +1 -1
  72. data/lib/morpheus/cli/virtual_images.rb +8 -1
  73. data/lib/morpheus/cli/whoami.rb +34 -15
  74. data/lib/morpheus/cli/workflows.rb +5 -0
  75. data/lib/morpheus/formatters.rb +4 -0
  76. data/lib/morpheus/rest_client.rb +6 -1
  77. metadata +2 -4
  78. data/lib/morpheus/api/app_templates_interface.rb +0 -64
  79. data/lib/morpheus/cli/app_templates.rb +0 -2019
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edf4a115c224b9ee5fbdb0289bc5ed3a9338e2847461ff395c558e28c6352929
4
- data.tar.gz: d3eed3cf1efe9c90679fb6c3a6e52e177fc9e78bc6bafeab4429cbe4a72308da
3
+ metadata.gz: a3d463857d867530a0377c41c1dc74f7ef7a70263e98d24b9a161a245c602fb6
4
+ data.tar.gz: b54e2067737379a676e48feefe1c347a7a5bbb1df4694651b2e55195e4c91f3c
5
5
  SHA512:
6
- metadata.gz: 970a441acc7a65b6b91578f7a3d44bba995ac01f4060982a17d7ebc490ef7ddced9bb63a9dca5b1bebecb7dff7239bc352f42d6ea8a7f1a179b05fb20b312323
7
- data.tar.gz: f07cc47e7ffdc6d2f754dca1551d4f122a944b6b5afe18e7a8d52bb494c870f6cc57c0a0298f42bca88f3559b878f6c7b0d408693b6e02ff9812fd4e753063db
6
+ metadata.gz: b23d4bcb6342da85c55c27b641a13bb6277071beb9e925774317d61c96db96d1fdabbf36ab2f344bf82dbc6cb9dabd477354a42b1e9e7c2cfb576953e5a3c891
7
+ data.tar.gz: fa239481d1a0498b45aaeb1db54a34620891ea308b2a386cec31483b5345bafb2b7f3b0bd34c05bbda678644c6d61c6c4b0fdbe8cdd81061adbd60fbca4be969
@@ -260,10 +260,6 @@ class Morpheus::APIClient
260
260
  Morpheus::BlueprintsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
261
261
  end
262
262
 
263
- def app_templates
264
- Morpheus::AppTemplatesInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
265
- end
266
-
267
263
  def deploy
268
264
  Morpheus::DeployInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
269
265
  end
@@ -40,20 +40,24 @@ class Morpheus::DeployInterface < Morpheus::APIClient
40
40
 
41
41
  # todo: use execute() to support @dry_run?
42
42
  def upload_file(id,path,destination=nil)
43
- url_string = "#{@base_url}/api/deploy/#{id}/files"
43
+ url = "#{@base_url}/api/deploy/#{id}/files"
44
44
  if !destination.empty?
45
- url_string += "/#{destination}"
45
+ url += "/#{destination}"
46
46
  end
47
-
48
- url = URI.parse(url_string)
49
- req = Net::HTTP::Post::Multipart.new url.path,
47
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/octet-stream' }
48
+ opts = { method: :post, url: url, headers: headers, payload: File.new(path,'rb')}
49
+ if @dry_run
50
+ return opts
51
+ end
52
+ uri = URI.parse(url)
53
+ req = Net::HTTP::Post::Multipart.new uri.path,
50
54
  "file" => UploadIO.new(File.new(path,'rb'), "image/jpeg", File.basename(path))
51
-
55
+ # todo: iterate headers and abstract th :upload_io to execute() too.
52
56
  req['Authorization'] = "Bearer #{@access_token}"
53
- res = Net::HTTP.start(url.host, url.port) do |http|
57
+ res = Net::HTTP.start(uri.host, uri.port) do |http|
54
58
  http.request(req)
55
59
  end
56
- res
60
+ res
57
61
  end
58
62
 
59
63
  def destroy(id)
@@ -91,7 +91,6 @@ module Morpheus
91
91
  load 'morpheus/cli/containers_command.rb'
92
92
  load 'morpheus/cli/apps.rb'
93
93
  load 'morpheus/cli/blueprints_command.rb'
94
- load 'morpheus/cli/app_templates.rb' # deprecated
95
94
  load 'morpheus/cli/deploys.rb'
96
95
  load 'morpheus/cli/license.rb'
97
96
  load 'morpheus/cli/instance_types.rb'
@@ -42,7 +42,8 @@ class Morpheus::Cli::AccessTokenCommand
42
42
  end
43
43
 
44
44
  def handle(args)
45
- if args.empty?
45
+ # access-token get by default, except access-token -h should list the subcommands.
46
+ if args.empty? || (args[0] && args[0] =~ /^\-/ && !['-h', '--help'].include?(args[0]))
46
47
  print_access_token(args)
47
48
  else
48
49
  handle_subcommand(args)
@@ -124,10 +125,8 @@ class Morpheus::Cli::AccessTokenCommand
124
125
  end
125
126
 
126
127
  connect(options)
127
-
128
128
  if options[:dry_run]
129
- auth_interface = Morpheus::AuthInterface.new(@appliance_url)
130
- print_dry_run auth_interface.dry.use_refresh_token(@wallet['refresh_token'])
129
+ print_dry_run Morpheus::AuthInterface.new(@appliance_url).setopts(options).use_refresh_token(@wallet['refresh_token'])
131
130
  return 0
132
131
  end
133
132
  unless options[:quiet]
@@ -61,7 +61,7 @@ class Morpheus::Cli::AccountGroupsCommand
61
61
  account_id = account['id']
62
62
 
63
63
  params.merge!(parse_list_options(options))
64
-
64
+ @account_groups_interface.setopts(options)
65
65
  if options[:dry_run]
66
66
  print_dry_run @account_groups_interface.dry.list(account['id'], params)
67
67
  return
@@ -119,6 +119,7 @@ class Morpheus::Cli::AccountGroupsCommand
119
119
  account_id = account['id']
120
120
 
121
121
  if options[:dry_run]
122
+ @account_groups_interface.setopts(options)
122
123
  if args[0].to_s =~ /\A\d{1,}\Z/
123
124
  print_dry_run @account_groups_interface.dry.get(account_id, args[0].to_i)
124
125
  else
@@ -128,6 +129,7 @@ class Morpheus::Cli::AccountGroupsCommand
128
129
  end
129
130
 
130
131
  group = find_account_group_by_name_or_id(account_id, args[0])
132
+ @account_groups_interface.setopts(options)
131
133
  return 1 if group.nil?
132
134
  # skip redundant request
133
135
  # json_response = @account_groups_interface.dry.get(account_id, args[0].to_i)
@@ -215,7 +217,7 @@ class Morpheus::Cli::AccountGroupsCommand
215
217
  params = Morpheus::Cli::OptionTypes.prompt(all_option_types, options[:options], @api_client, {})
216
218
  group_payload.merge!(params)
217
219
  payload = {group: group_payload}
218
-
220
+ @account_groups_interface.setopts(options)
219
221
  if options[:dry_run]
220
222
  print_dry_run @account_groups_interface.dry.create(account['id'], payload)
221
223
  return
@@ -279,7 +281,7 @@ class Morpheus::Cli::AccountGroupsCommand
279
281
  group_payload.merge!(params)
280
282
 
281
283
  payload = {group: group_payload}
282
-
284
+ @account_groups_interface.setopts(options)
283
285
  if options[:dry_run]
284
286
  print_dry_run @account_groups_interface.dry.update(account['id'], group['id'], payload)
285
287
  return
@@ -335,6 +337,7 @@ class Morpheus::Cli::AccountGroupsCommand
335
337
  end
336
338
  new_zones = current_zones + [{'id' => cloud['id']}]
337
339
  payload = {group: {id: group["id"], zones: new_zones}}
340
+ @account_groups_interface.setopts(options)
338
341
  if options[:dry_run]
339
342
  print_dry_run @account_groups_interface.dry.update_zones(account['id'], group["id"], payload)
340
343
  return
@@ -391,6 +394,7 @@ class Morpheus::Cli::AccountGroupsCommand
391
394
  end
392
395
  new_zones = current_zones.reject {|it| it["id"] == cloud["id"] }
393
396
  payload = {group: {id: group["id"], zones: new_zones}}
397
+ @account_groups_interface.setopts(options)
394
398
  if options[:dry_run]
395
399
  print_dry_run @account_groups_interface.dry.update_zones(account['id'], group["id"], payload)
396
400
  return
@@ -441,6 +445,7 @@ class Morpheus::Cli::AccountGroupsCommand
441
445
  unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the group #{group['name']}?")
442
446
  exit
443
447
  end
448
+ @account_groups_interface.setopts(options)
444
449
  if options[:dry_run]
445
450
  print_dry_run @account_groups_interface.dry.destroy(account['id'], group['id'])
446
451
  return
@@ -1250,7 +1250,7 @@ class Morpheus::Cli::Apps
1250
1250
  print_dry_run @apps_interface.dry.apply_security_groups(app['id'], payload)
1251
1251
  return
1252
1252
  end
1253
- @apps_interface.apply_security_groups(app['id'], payloaad)
1253
+ @apps_interface.apply_security_groups(app['id'], payload)
1254
1254
  security_groups([args[0]])
1255
1255
  rescue RestClient::Exception => e
1256
1256
  print_rest_exception(e, options)
@@ -1273,6 +1273,11 @@ class Morpheus::Cli::Apps
1273
1273
  opts.on( nil, '--output', "Display process output." ) do
1274
1274
  options[:show_output] = true
1275
1275
  end
1276
+ opts.on(nil, '--details', "Display more details. Shows everything, untruncated." ) do
1277
+ options[:show_events] = true
1278
+ options[:show_output] = true
1279
+ options[:details] = true
1280
+ end
1276
1281
  build_common_options(opts, options, [:list, :query, :json, :yaml, :csv, :fields, :dry_run, :remote])
1277
1282
  opts.footer = "List historical processes for a specific app.\n" +
1278
1283
  "[app] is required. This is the name or id of an app."
@@ -1361,8 +1366,8 @@ class Morpheus::Cli::Apps
1361
1366
  startDate: format_local_dt(process_event['startDate']),
1362
1367
  duration: format_process_duration(process_event),
1363
1368
  status: format_process_status(process_event),
1364
- error: format_process_error(process_event),
1365
- output: format_process_output(process_event)
1369
+ error: format_process_error(process_event, options[:details] ? nil : 20),
1370
+ output: format_process_output(process_event, options[:details] ? nil : 20)
1366
1371
  }
1367
1372
  history_records << event_row
1368
1373
  end
@@ -1565,8 +1570,8 @@ class Morpheus::Cli::Apps
1565
1570
 
1566
1571
  def get_available_blueprints(refresh=false)
1567
1572
  if !@available_blueprints || refresh
1568
- results = @options_interface.options_for_source('appTemplates',{}) # still exists
1569
- #results = @options_interface.options_for_source('blueprints',{})
1573
+ #results = @options_interface.options_for_source('appTemplates',{}) # still exists
1574
+ results = @options_interface.options_for_source('blueprints',{})
1570
1575
  @available_blueprints = results['data'].collect {|it|
1571
1576
  {"id" => it["value"], "name" => it["name"], "value" => it["value"]}
1572
1577
  }
@@ -76,7 +76,7 @@ class Morpheus::Cli::ArchivesCommand
76
76
  [:phrase, :offset, :max, :sort, :direction].each do |k|
77
77
  params[k] = options[k] unless options[k].nil?
78
78
  end
79
-
79
+ @archive_buckets_interface.setopts(options)
80
80
  if options[:dry_run]
81
81
  print_dry_run @archive_buckets_interface.dry.list(params)
82
82
  return
@@ -170,6 +170,7 @@ class Morpheus::Cli::ArchivesCommand
170
170
  bucket_id, search_file_path = parse_bucket_id_and_file_path(args[0])
171
171
  connect(options)
172
172
  begin
173
+ @archive_buckets_interface.setopts(options)
173
174
  if options[:dry_run]
174
175
  if args[0].to_s =~ /\A\d{1,}\Z/
175
176
  print_dry_run @archive_buckets_interface.dry.get(bucket_id.to_i)
@@ -292,7 +293,7 @@ class Morpheus::Cli::ArchivesCommand
292
293
  return 1 if !archive_bucket_payload
293
294
  payload = {'archiveBucket' => archive_bucket_payload}
294
295
  end
295
-
296
+ @archive_buckets_interface.setopts(options)
296
297
  if options[:dry_run]
297
298
  print_dry_run @archive_buckets_interface.dry.create(payload)
298
299
  return
@@ -371,7 +372,7 @@ class Morpheus::Cli::ArchivesCommand
371
372
  return 1 if !archive_bucket_payload
372
373
  payload = {'archiveBucket' => archive_bucket_payload}
373
374
  end
374
-
375
+ @archive_buckets_interface.setopts(options)
375
376
  if options[:dry_run]
376
377
  print_dry_run @archive_buckets_interface.dry.update(archive_bucket["id"], payload)
377
378
  return
@@ -422,6 +423,7 @@ class Morpheus::Cli::ArchivesCommand
422
423
  unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the archive bucket: #{archive_bucket['name']}?")
423
424
  return 9, "aborted command"
424
425
  end
426
+ @archive_buckets_interface.setopts(options)
425
427
  if options[:dry_run]
426
428
  print_dry_run @archive_buckets_interface.dry.destroy(archive_bucket['id'], query_params), full_command_string
427
429
  return 0
@@ -565,6 +567,7 @@ class Morpheus::Cli::ArchivesCommand
565
567
  upload_file_list << {file: file, destination: destination}
566
568
  end
567
569
 
570
+ @archive_buckets_interface.setopts(options)
568
571
  if options[:dry_run]
569
572
  # print_h1 "DRY RUN"
570
573
  print "\n",cyan, bold, "Uploading #{upload_file_list.size} Files...", reset, "\n"
@@ -627,6 +630,7 @@ class Morpheus::Cli::ArchivesCommand
627
630
  return 9, "aborted command"
628
631
  end
629
632
 
633
+ @archive_buckets_interface.setopts(options)
630
634
  if options[:dry_run]
631
635
  #print cyan,bold, " - Uploading #{file} to #{bucket_id}:#{destination} DRY RUN", reset, "\n"
632
636
  # print_h1 "DRY RUN"
@@ -685,6 +689,7 @@ class Morpheus::Cli::ArchivesCommand
685
689
  if params[:phrase]
686
690
  params[:fullTree] = true # these are not exclusively supported by api yet
687
691
  end
692
+ @archive_buckets_interface.setopts(options)
688
693
  if options[:dry_run]
689
694
  print_dry_run @archive_buckets_interface.dry.list_files(bucket_id, search_file_path, params)
690
695
  return
@@ -766,6 +771,7 @@ class Morpheus::Cli::ArchivesCommand
766
771
  [:phrase, :offset, :max, :sort, :direction, :fullTree].each do |k|
767
772
  params[k] = options[k] unless options[k].nil?
768
773
  end
774
+ @archive_buckets_interface.setopts(options)
769
775
  if options[:dry_run]
770
776
  print_dry_run @archive_buckets_interface.dry.list_files(bucket_id, search_file_path, params)
771
777
  return 0
@@ -930,6 +936,8 @@ class Morpheus::Cli::ArchivesCommand
930
936
  # archive_bucket = find_archive_bucket_by_name_or_id(bucket_id)
931
937
  # return 1 if archive_bucket.nil?
932
938
  params = {}
939
+ @archive_buckets_interface.setopts(options)
940
+ @archive_files_interface.setopts(options)
933
941
  if options[:dry_run]
934
942
  if file_id
935
943
  print_dry_run @archive_files_interface.dry.get(file_id, params), full_command_string
@@ -1065,7 +1073,7 @@ class Morpheus::Cli::ArchivesCommand
1065
1073
  return 9, "aborted command"
1066
1074
  end
1067
1075
  end
1068
-
1076
+ @archive_files_interface.setopts(options)
1069
1077
  if options[:dry_run]
1070
1078
  print_dry_run @archive_files_interface.dry.destroy(archive_file['id'], query_params)
1071
1079
  return 0
@@ -1112,6 +1120,7 @@ class Morpheus::Cli::ArchivesCommand
1112
1120
  [:phrase, :offset, :max, :sort, :direction].each do |k|
1113
1121
  params[k] = options[k] unless options[k].nil?
1114
1122
  end
1123
+ @archive_files_interface.setopts(options)
1115
1124
  if options[:dry_run]
1116
1125
  print_dry_run @archive_files_interface.dry.history(archive_file['id'], params)
1117
1126
  return
@@ -1174,6 +1183,7 @@ class Morpheus::Cli::ArchivesCommand
1174
1183
  [:phrase, :offset, :max, :sort, :direction].each do |k|
1175
1184
  params[k] = options[k] unless options[k].nil?
1176
1185
  end
1186
+ @archive_files_interface.setopts(options)
1177
1187
  if options[:dry_run]
1178
1188
  print_dry_run @archive_files_interface.dry.list_links(archive_file['id'], params)
1179
1189
  return
@@ -1287,6 +1297,7 @@ class Morpheus::Cli::ArchivesCommand
1287
1297
  end
1288
1298
  end
1289
1299
  begin
1300
+ @archive_files_interface.setopts(options)
1290
1301
  if options[:dry_run]
1291
1302
  # print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path), full_command_string
1292
1303
  if use_public_url
@@ -1372,6 +1383,7 @@ class Morpheus::Cli::ArchivesCommand
1372
1383
  archive_file = find_archive_file_by_bucket_and_path(bucket_id, file_path)
1373
1384
  return 1 if archive_file.nil?
1374
1385
  full_file_path = "#{bucket_id}/#{file_path}".squeeze('/')
1386
+ @archive_files_interface.setopts(options)
1375
1387
  if options[:dry_run]
1376
1388
  print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path), full_command_string
1377
1389
  return 1
@@ -1421,6 +1433,7 @@ class Morpheus::Cli::ArchivesCommand
1421
1433
  if expiration_seconds.to_i > 0
1422
1434
  params['expireSeconds'] = expiration_seconds.to_i
1423
1435
  end
1436
+ @archive_files_interface.setopts(options)
1424
1437
  if options[:dry_run]
1425
1438
  print_dry_run @archive_files_interface.dry.create_file_link(archive_file['id'], params)
1426
1439
  return
@@ -1474,6 +1487,7 @@ class Morpheus::Cli::ArchivesCommand
1474
1487
  return 1
1475
1488
  end
1476
1489
  params = {}
1490
+ @archive_files_interface.setopts(options)
1477
1491
  if options[:dry_run]
1478
1492
  print_dry_run @archive_files_interface.dry.destroy_file_link(archive_file['id'], link_id, params)
1479
1493
  return
@@ -1561,7 +1575,7 @@ class Morpheus::Cli::ArchivesCommand
1561
1575
  return 1
1562
1576
  end
1563
1577
  end
1564
-
1578
+ @archive_files_interface.setopts(options)
1565
1579
  if options[:dry_run]
1566
1580
  # print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path), full_command_string
1567
1581
  print_dry_run @archive_files_interface.dry.download_file_by_link_chunked(link_key, outfile), full_command_string
@@ -1681,7 +1695,7 @@ class Morpheus::Cli::ArchivesCommand
1681
1695
  return 1
1682
1696
  end
1683
1697
  end
1684
-
1698
+ @archive_buckets_interface.setopts(options)
1685
1699
  if options[:dry_run]
1686
1700
  print_dry_run @archive_buckets_interface.dry.download_bucket_zip_chunked(bucket_id, outfile), full_command_string
1687
1701
  return 1
@@ -46,7 +46,7 @@ class Morpheus::Cli::BootScriptsCommand
46
46
  [:phrase, :offset, :max, :sort, :direction].each do |k|
47
47
  params[k] = options[k] unless options[k].nil?
48
48
  end
49
-
49
+ @boot_scripts_interface.setopts(options)
50
50
  if options[:dry_run]
51
51
  print_dry_run @boot_scripts_interface.dry.list(params)
52
52
  return
@@ -105,6 +105,7 @@ class Morpheus::Cli::BootScriptsCommand
105
105
  end
106
106
  connect(options)
107
107
  begin
108
+ @boot_scripts_interface.setopts(options)
108
109
  if options[:dry_run]
109
110
  if args[0].to_s =~ /\A\d{1,}\Z/
110
111
  print_dry_run @boot_scripts_interface.dry.get(args[0].to_i)
@@ -183,6 +184,7 @@ class Morpheus::Cli::BootScriptsCommand
183
184
  payload['bootScript']['content'] = File.read(script_file)
184
185
  end
185
186
  payload['bootScript'].merge!(params)
187
+ @boot_scripts_interface.setopts(options)
186
188
  if options[:dry_run]
187
189
  print_dry_run @boot_scripts_interface.dry.create(payload)
188
190
  return
@@ -253,7 +255,7 @@ class Morpheus::Cli::BootScriptsCommand
253
255
  payload['bootScript']['content'] = File.read(script_file)
254
256
  end
255
257
  payload['bootScript'].merge!(params)
256
-
258
+ @boot_scripts_interface.setopts(options)
257
259
  if options[:dry_run]
258
260
  print_dry_run @boot_scripts_interface.dry.update(boot_script["id"], payload)
259
261
  return
@@ -296,6 +298,7 @@ class Morpheus::Cli::BootScriptsCommand
296
298
  unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the boot script: #{boot_script['fileName']}?")
297
299
  return 9, "aborted command"
298
300
  end
301
+ @boot_scripts_interface.setopts(options)
299
302
  if options[:dry_run]
300
303
  print_dry_run @boot_scripts_interface.dry.destroy(boot_script['id'])
301
304
  return 0
@@ -117,7 +117,7 @@ class Morpheus::Cli::ChangePasswordCommand
117
117
  'password' => new_password
118
118
  }
119
119
  }
120
-
120
+ @users_interface.setopts(options)
121
121
  if options[:dry_run]
122
122
  print_dry_run @users_interface.dry.update(account_id, user['id'], payload)
123
123
  return 0
@@ -567,12 +567,10 @@ module Morpheus
567
567
  options[:dry_run] = true
568
568
  options[:curl] = true
569
569
  end
570
- # hide until fully supported
571
- opts.add_hidden_option('--curl') if opts.is_a?(Morpheus::Cli::OptionParser)
572
- opts.on(nil,'--scrub', "Mask secrets in output, such as the Authorization header. For use with --curl") do
570
+ opts.on(nil,'--scrub', "Mask secrets in output, such as the Authorization header. For use with --curl and --dry-run.") do
573
571
  options[:scrub] = true
574
572
  end
575
- opts.add_hidden_option('--scrub') if opts.is_a?(Morpheus::Cli::OptionParser)
573
+ #opts.add_hidden_option('--scrub') if opts.is_a?(Morpheus::Cli::OptionParser)
576
574
  when :quiet
577
575
  opts.on('-q','--quiet', "No Output, do not print to stdout") do
578
576
  options[:quiet] = true
@@ -54,6 +54,7 @@ class Morpheus::Cli::CloudDatastoresCommand
54
54
  return 1 if cloud.nil?
55
55
 
56
56
  params.merge!(parse_list_options(options))
57
+ @cloud_datastores_interface.setopts(options)
57
58
  if options[:dry_run]
58
59
  print_dry_run @cloud_datastores_interface.dry.list(cloud['id'], params)
59
60
  return
@@ -137,7 +138,7 @@ class Morpheus::Cli::CloudDatastoresCommand
137
138
  end
138
139
  cloud = find_cloud_by_name_or_id(cloud_id)
139
140
  return 1 if cloud.nil?
140
-
141
+ @cloud_datastores_interface.setopts(options)
141
142
  if options[:dry_run]
142
143
  if args[0].to_s =~ /\A\d{1,}\Z/
143
144
  print_dry_run @cloud_datastores_interface.dry.get(cloud['id'], args[0].to_i)
@@ -325,7 +326,7 @@ class Morpheus::Cli::CloudDatastoresCommand
325
326
  end
326
327
 
327
328
  end
328
-
329
+ @cloud_datastores_interface.setopts(options)
329
330
  if options[:dry_run]
330
331
  print_dry_run @cloud_datastores_interface.dry.update(cloud['id'], datastore["id"], payload)
331
332
  return
@@ -50,7 +50,7 @@ class Morpheus::Cli::AliasCommand
50
50
  opts.footer = <<-EOT
51
51
  Define a new alias.
52
52
  [name] is required. This is the alias name. It should be one word.
53
- [command] is required. This is the full command or or expression wrapped in quotes.
53
+ [command] is required. This is the full command wrapped in quotes.
54
54
  Aliases can be exported for future use with the -e option.
55
55
  The `alias add` command can be invoked with `alias [name]=[command]`
56
56
 
@@ -58,9 +58,6 @@ Examples:
58
58
  alias cloud=clouds
59
59
  alias ij='instances get -j'
60
60
  alias new-hosts='hosts list -S id -D'
61
- alias infra='clouds list -m 5; networks list -m 5; hosts list -m 5'
62
- alias find-answer='(instances get 42 || instances add) || echo "oh dear..."' -e
63
-
64
61
  For more information, see https://github.com/gomorpheus/morpheus-cli/wiki/Alias
65
62
  EOT
66
63
 
@@ -210,9 +207,8 @@ EOT
210
207
  end
211
208
  optparse.parse!(args)
212
209
 
213
- #my_aliases = Morpheus::Cli::CliRegistry.all_aliases
214
210
  my_aliases = Morpheus::Cli::CliRegistry.all_aliases.collect {|k,v|
215
- {name: k, command_string: v}
211
+ {name: k, command: v}
216
212
  }
217
213
 
218
214
  # todo: generic support :list options on a local Array
@@ -220,7 +216,7 @@ EOT
220
216
  # my_aliases = my_aliases.grep(/^#{Regexp.escape(options[:phrase])}/)
221
217
  match_regex = /#{Regexp.escape(options[:phrase])}/
222
218
  my_aliases = my_aliases.select {|it|
223
- it[:name].to_s =~ match_regex || it[:command_string].to_s =~ match_regex
219
+ it[:name].to_s =~ match_regex || it[:command].to_s =~ match_regex
224
220
  }
225
221
  end
226
222
 
@@ -228,11 +224,11 @@ EOT
228
224
  options[:direction] ||= 'asc'
229
225
 
230
226
  if options[:sort]
231
- if options[:sort].to_s == 'name'
227
+ if options[:sort].to_s == 'name' || options[:sort].to_s == 'alias'
232
228
  my_aliases = my_aliases.sort {|x,y| x[:name].to_s.downcase <=> y[:name].to_s.downcase }
233
- elsif options[:sort].to_s == 'ts'
229
+ elsif options[:sort].to_s == 'command' || options[:sort].to_s == 'command_string'
234
230
  # just relies on the order they were registered in, heh...
235
- my_aliases = my_aliases.sort {|x,y| x[:command_string].to_s.downcase <=> y[:command_string].to_s.downcase }
231
+ my_aliases = my_aliases.sort {|x,y| x[:command].to_s.downcase <=> y[:command].to_s.downcase }
236
232
  else
237
233
  # a-z is the default, and the best
238
234
  end
@@ -255,7 +251,7 @@ EOT
255
251
  if options[:format] == 'json' || options[:json]
256
252
  alias_json = {}
257
253
  my_aliases.each do |it|
258
- alias_json[it[:name]] = it[:command_string]
254
+ alias_json[it[:name]] = it[:command]
259
255
  end
260
256
  out << JSON.pretty_generate({aliases: alias_json})
261
257
  out << "\n"
@@ -263,7 +259,7 @@ EOT
263
259
  # out << "# morpheus aliases for #{`whoami`}\n" # windows!
264
260
  #out << "# morpheus aliases\n"
265
261
  my_aliases.each do |it|
266
- out << "alias #{it[:name]}='#{it[:command_string]}'"
262
+ out << "alias #{it[:name]}='#{it[:command]}'"
267
263
  if do_export
268
264
  out << " -e"
269
265
  end
@@ -271,7 +267,7 @@ EOT
271
267
  end
272
268
  elsif options[:format] == 'list'
273
269
  my_aliases.each do |it|
274
- out << "#{cyan}#{it[:name]}#{reset}='#{it[:command_string]}'"
270
+ out << "#{cyan}#{it[:name]}#{reset}='#{it[:command]}'"
275
271
  out << "\n"
276
272
  end
277
273
  out << reset
@@ -279,7 +275,7 @@ EOT
279
275
  # table (default)
280
276
  alias_columns = {
281
277
  "ALIAS" => lambda {|it| it[:name] },
282
- "COMMAND" => lambda {|it| it[:command_string] }
278
+ "COMMAND" => lambda {|it| it[:command] }
283
279
  }
284
280
  out << "\n"
285
281
  out << cyan