morpheus-cli 4.2.21 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/lib/morpheus/api/api_client.rb +30 -0
  4. data/lib/morpheus/api/billing_interface.rb +34 -0
  5. data/lib/morpheus/api/catalog_item_types_interface.rb +9 -0
  6. data/lib/morpheus/api/deploy_interface.rb +1 -1
  7. data/lib/morpheus/api/deployments_interface.rb +20 -1
  8. data/lib/morpheus/api/forgot_password_interface.rb +17 -0
  9. data/lib/morpheus/api/instances_interface.rb +16 -2
  10. data/lib/morpheus/api/rest_interface.rb +0 -6
  11. data/lib/morpheus/api/roles_interface.rb +14 -0
  12. data/lib/morpheus/api/search_interface.rb +13 -0
  13. data/lib/morpheus/api/servers_interface.rb +14 -0
  14. data/lib/morpheus/api/service_catalog_interface.rb +89 -0
  15. data/lib/morpheus/api/usage_interface.rb +18 -0
  16. data/lib/morpheus/cli.rb +7 -3
  17. data/lib/morpheus/cli/apps.rb +6 -27
  18. data/lib/morpheus/cli/backup_jobs_command.rb +3 -0
  19. data/lib/morpheus/cli/backups_command.rb +3 -0
  20. data/lib/morpheus/cli/catalog_item_types_command.rb +622 -0
  21. data/lib/morpheus/cli/cli_command.rb +70 -21
  22. data/lib/morpheus/cli/commands/standard/curl_command.rb +26 -12
  23. data/lib/morpheus/cli/commands/standard/history_command.rb +3 -1
  24. data/lib/morpheus/cli/commands/standard/man_command.rb +74 -40
  25. data/lib/morpheus/cli/commands/standard/source_command.rb +1 -1
  26. data/lib/morpheus/cli/commands/standard/update_command.rb +76 -0
  27. data/lib/morpheus/cli/containers_command.rb +14 -24
  28. data/lib/morpheus/cli/cypher_command.rb +6 -2
  29. data/lib/morpheus/cli/deploy.rb +199 -90
  30. data/lib/morpheus/cli/deployments.rb +341 -28
  31. data/lib/morpheus/cli/deploys.rb +206 -41
  32. data/lib/morpheus/cli/error_handler.rb +7 -0
  33. data/lib/morpheus/cli/forgot_password.rb +133 -0
  34. data/lib/morpheus/cli/groups.rb +1 -1
  35. data/lib/morpheus/cli/health_command.rb +59 -2
  36. data/lib/morpheus/cli/hosts.rb +265 -34
  37. data/lib/morpheus/cli/instances.rb +186 -100
  38. data/lib/morpheus/cli/invoices_command.rb +33 -16
  39. data/lib/morpheus/cli/jobs_command.rb +28 -6
  40. data/lib/morpheus/cli/library_option_lists_command.rb +15 -7
  41. data/lib/morpheus/cli/library_option_types_command.rb +5 -2
  42. data/lib/morpheus/cli/logs_command.rb +9 -6
  43. data/lib/morpheus/cli/mixins/accounts_helper.rb +12 -7
  44. data/lib/morpheus/cli/mixins/backups_helper.rb +2 -4
  45. data/lib/morpheus/cli/mixins/deployments_helper.rb +31 -3
  46. data/lib/morpheus/cli/mixins/option_source_helper.rb +1 -1
  47. data/lib/morpheus/cli/mixins/print_helper.rb +46 -21
  48. data/lib/morpheus/cli/mixins/provisioning_helper.rb +100 -4
  49. data/lib/morpheus/cli/network_pools_command.rb +14 -6
  50. data/lib/morpheus/cli/option_types.rb +271 -22
  51. data/lib/morpheus/cli/ping.rb +0 -1
  52. data/lib/morpheus/cli/remote.rb +35 -12
  53. data/lib/morpheus/cli/reports_command.rb +99 -30
  54. data/lib/morpheus/cli/roles.rb +453 -113
  55. data/lib/morpheus/cli/search_command.rb +182 -0
  56. data/lib/morpheus/cli/service_catalog_command.rb +1474 -0
  57. data/lib/morpheus/cli/service_plans_command.rb +2 -2
  58. data/lib/morpheus/cli/setup.rb +1 -1
  59. data/lib/morpheus/cli/shell.rb +33 -11
  60. data/lib/morpheus/cli/storage_providers_command.rb +40 -56
  61. data/lib/morpheus/cli/tasks.rb +29 -32
  62. data/lib/morpheus/cli/usage_command.rb +203 -0
  63. data/lib/morpheus/cli/user_settings_command.rb +1 -0
  64. data/lib/morpheus/cli/users.rb +12 -1
  65. data/lib/morpheus/cli/version.rb +1 -1
  66. data/lib/morpheus/cli/virtual_images.rb +429 -254
  67. data/lib/morpheus/cli/whoami.rb +6 -6
  68. data/lib/morpheus/cli/workflows.rb +34 -41
  69. data/lib/morpheus/formatters.rb +75 -7
  70. data/lib/morpheus/terminal.rb +6 -2
  71. metadata +14 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e42e74a1ee8d23e7b91134313dbcb6ba8b42857973c8b33057e8bb433a1d5f3
4
- data.tar.gz: 05e7210bcd6a08b00feb395c04ea3b109c0c58c54b95c163d5c5ef84505dddc5
3
+ metadata.gz: 4f4b5a29dcfa1a915ab2d3fed9ad07197d2a760758b2bc3b76e72cf6899c4372
4
+ data.tar.gz: 59c981a5aede057b69e08f5c717d27c884bdd64aed84fb81361b35291b3aaf72
5
5
  SHA512:
6
- metadata.gz: 6206a6bfdada390d10a4b7202794fdde6a0f0edafc5df7025e053c991d23b576be989f73d2cc95d51927600d5fb11f9393951659097c9038ce3d9a038a64b344
7
- data.tar.gz: a08c1b2a452b868e15f30cae19d56ae4fd817fcf441cee05ab87fed718e7b933211430dd41dfb3060714526fe1d318865844d57bf2e8dea2cd0a489d7cec58f1
6
+ metadata.gz: 678ff7f73923c9883968ee8bba29b8d75d5464a4899ca812477ce943b25f758c74f187a481c781500928206c4d540d5153f858ee4e2242cfb24cc2604be1602d
7
+ data.tar.gz: c27881081abb71b05eceb4857280f51a4f838e9a568658baa34385afe7fc2b86be61eb31a070a4e3a9381000337ceb9b11f58fe8572fff8066882225133742ba
data/Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
1
  FROM ruby:2.5.1
2
2
 
3
- RUN gem install morpheus-cli -v 4.2.21
3
+ RUN gem install morpheus-cli -v 5.2.0
4
4
 
5
5
  ENTRYPOINT ["morpheus"]
@@ -342,10 +342,18 @@ class Morpheus::APIClient
342
342
  Morpheus::AuthInterface.new({url: @base_url, client_id: @client_id}).setopts(@options)
343
343
  end
344
344
 
345
+ def forgot
346
+ Morpheus::ForgotPasswordInterface.new(common_interface_options).setopts(@options)
347
+ end
348
+
345
349
  def whoami
346
350
  Morpheus::WhoamiInterface.new(common_interface_options).setopts(@options)
347
351
  end
348
352
 
353
+ def search
354
+ Morpheus::SearchInterface.new(common_interface_options).setopts(@options)
355
+ end
356
+
349
357
  def user_settings
350
358
  Morpheus::UserSettingsInterface.new(common_interface_options).setopts(@options)
351
359
  end
@@ -764,6 +772,28 @@ class Morpheus::APIClient
764
772
  Morpheus::BackupJobsInterface.new(common_interface_options).setopts(@options)
765
773
  end
766
774
 
775
+ def catalog_item_types
776
+ Morpheus::CatalogItemTypesInterface.new(common_interface_options).setopts(@options)
777
+ end
778
+
779
+ def catalog
780
+ Morpheus::ServiceCatalogInterface.new(common_interface_options).setopts(@options)
781
+ end
782
+
783
+ def usage
784
+ Morpheus::UsageInterface.new(common_interface_options).setopts(@options)
785
+ end
786
+
787
+ def billing
788
+ Morpheus::BillingInterface.new(common_interface_options).setopts(@options)
789
+ end
790
+
767
791
  # add new interfaces here
768
792
 
793
+ protected
794
+
795
+ def validate_id!(id)
796
+ raise "#{self.class} passed a blank id!" if id.to_s.strip.empty?
797
+ end
798
+
769
799
  end
@@ -0,0 +1,34 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ class Morpheus::BillingInterface < Morpheus::APIClient
4
+
5
+ def base_path
6
+ "/api/billing"
7
+ end
8
+
9
+ # this is an alias for /usage
10
+ def list(params={})
11
+ execute(method: :get, url: "#{base_path}", params: params)
12
+ end
13
+
14
+ def list_account(params={})
15
+ execute(method: :get, url: "#{base_path}/account", params: params)
16
+ end
17
+
18
+ def list_zones(params={})
19
+ execute(method: :get, url: "#{base_path}/zones", params: params)
20
+ end
21
+
22
+ def list_instances(params={})
23
+ execute(method: :get, url: "#{base_path}/instances", params: params)
24
+ end
25
+
26
+ def list_servers(params={})
27
+ execute(method: :get, url: "#{base_path}/servers", params: params)
28
+ end
29
+
30
+ def list_discovered_servers(params={})
31
+ execute(method: :get, url: "#{base_path}/discoveredServers", params: params)
32
+ end
33
+
34
+ end
@@ -0,0 +1,9 @@
1
+ require 'morpheus/api/rest_interface'
2
+
3
+ class Morpheus::CatalogItemTypesInterface < Morpheus::RestInterface
4
+
5
+ def base_path
6
+ "/api/catalog-item-types"
7
+ end
8
+
9
+ end
@@ -18,7 +18,7 @@ class Morpheus::DeployInterface < Morpheus::APIClient
18
18
  execute(method: :get, url: "#{base_path}", params: params)
19
19
  end
20
20
 
21
- def get(instance_id, id, params={})
21
+ def get(id, params={})
22
22
  validate_id!(id)
23
23
  execute(method: :get, url: "#{base_path}/#{id}", params: params)
24
24
  end
@@ -40,7 +40,8 @@ class Morpheus::DeploymentsInterface < Morpheus::RestInterface
40
40
  if destination.empty? || destination == "/" || destination == "." || destination.include?("../")
41
41
  raise "#{self.class}.upload_file() passed a bad destination: '#{destination}'"
42
42
  end
43
- url = "#{@base_url}/#{base_path}/#{deployment_id}/versions/#{id}/files"
43
+ # url = "#{@base_url}/#{base_path}/#{deployment_id}/versions/#{id}/files"
44
+ url = "#{base_path}/#{deployment_id}/versions/#{id}/files"
44
45
  if !destination.to_s.empty?
45
46
  url += "/#{destination}"
46
47
  end
@@ -57,4 +58,22 @@ class Morpheus::DeploymentsInterface < Morpheus::RestInterface
57
58
  execute(method: :post, url: url, headers: headers, payload: payload, params: params, timeout: 172800)
58
59
  end
59
60
 
61
+ # upload a file without multipart
62
+ # local_file is the full absolute local filename
63
+ # destination should be the full remote file path, including the file name.
64
+ def destroy_file(deployment_id, id, destination, params={})
65
+ if destination.empty? || destination == "/" || destination == "." || destination.include?("../")
66
+ raise "#{self.class}.upload_file() passed a bad destination: '#{destination}'"
67
+ end
68
+ # url = "#{@base_url}/#{base_path}/#{deployment_id}/versions/#{id}/files"
69
+ url = "#{base_path}/#{deployment_id}/versions/#{id}/files"
70
+ if !destination.to_s.empty?
71
+ url += "/#{destination}"
72
+ end
73
+ # use URI to escape path
74
+ uri = URI.parse(url)
75
+ url = uri.path
76
+ execute(method: :delete, url: url, params: params)
77
+ end
78
+
60
79
  end
@@ -0,0 +1,17 @@
1
+ require 'morpheus/api/api_client'
2
+ # There is no Authorization required for this API.
3
+ class Morpheus::ForgotPasswordInterface < Morpheus::APIClient
4
+
5
+ def authorization_required?
6
+ false
7
+ end
8
+
9
+ def send_email(payload, params={})
10
+ execute(method: :post, url: "/api/forgot/send-email", params: params, payload: payload.to_json)
11
+ end
12
+
13
+ def reset_password(payload, params={})
14
+ execute(method: :post, url: "/api/forgot/reset-password", params: params, payload: payload.to_json)
15
+ end
16
+
17
+ end
@@ -169,10 +169,10 @@ class Morpheus::InstancesInterface < Morpheus::APIClient
169
169
  execute(opts)
170
170
  end
171
171
 
172
- def backup(id,server=true)
172
+ def backup(id, payload={})
173
173
  url = "#{@base_url}/api/instances/#{id}/backup"
174
174
  headers = {:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
175
- opts = {method: :put, url: url, headers: headers}
175
+ opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
176
176
  execute(opts)
177
177
  end
178
178
 
@@ -218,6 +218,20 @@ class Morpheus::InstancesInterface < Morpheus::APIClient
218
218
  execute(opts)
219
219
  end
220
220
 
221
+ def snapshot(id, payload={})
222
+ url = "#{@base_url}/api/instances/#{id}/snapshot"
223
+ headers = {:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
224
+ opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
225
+ execute(opts)
226
+ end
227
+
228
+ def snapshots(instance_id, params={})
229
+ url = "#{@base_url}/api/instances/#{instance_id}/snapshots"
230
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
231
+ opts = {method: :get, url: url, headers: headers}
232
+ execute(opts)
233
+ end
234
+
221
235
  def import_snapshot(id, params={}, payload={})
222
236
  url = "#{@base_url}/api/instances/#{id}/import-snapshot"
223
237
  headers = {:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
@@ -31,10 +31,4 @@ class Morpheus::RestInterface < Morpheus::APIClient
31
31
  execute(method: :delete, url: "#{base_path}/#{id}", params: params)
32
32
  end
33
33
 
34
- protected
35
-
36
- def validate_id!(id)
37
- raise "#{self.class} passed a blank id!" if id.to_s.strip.empty?
38
- end
39
-
40
34
  end
@@ -77,6 +77,20 @@ class Morpheus::RolesInterface < Morpheus::APIClient
77
77
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
78
78
  end
79
79
 
80
+ def update_catalog_item_type(account_id, id, options)
81
+ url = build_url(account_id, id) + "/update-catalog-item-type"
82
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
83
+ payload = options
84
+ execute(method: :put, url: url, headers: headers, payload: payload.to_json)
85
+ end
86
+
87
+ def update_persona(account_id, id, options)
88
+ url = build_url(account_id, id) + "/update-persona"
89
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
90
+ payload = options
91
+ execute(method: :put, url: url, headers: headers, payload: payload.to_json)
92
+ end
93
+
80
94
  private
81
95
 
82
96
  def build_url(account_id=nil, role_id=nil)
@@ -0,0 +1,13 @@
1
+ require 'morpheus/api/rest_interface'
2
+
3
+ class Morpheus::SearchInterface < Morpheus::APIClient
4
+
5
+ def base_path
6
+ "/api/search"
7
+ end
8
+
9
+ def list(params={})
10
+ execute(method: :get, url: "#{base_path}", params: params)
11
+ end
12
+
13
+ end
@@ -169,4 +169,18 @@ class Morpheus::ServersInterface < Morpheus::APIClient
169
169
  execute(opts)
170
170
  end
171
171
 
172
+ def snapshots(id, params={})
173
+ url = "#{@base_url}/api/servers/#{id}/snapshots"
174
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
175
+ opts = {method: :get, url: url, headers: headers}
176
+ execute(opts)
177
+ end
178
+
179
+ def software(id, params={})
180
+ url = "#{@base_url}/api/servers/#{id}/software"
181
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
182
+ opts = {method: :get, url: url, headers: headers}
183
+ execute(opts)
184
+ end
185
+
172
186
  end
@@ -0,0 +1,89 @@
1
+ require 'morpheus/api/api_client'
2
+ # Service Catalog Persona interface
3
+ class Morpheus::ServiceCatalogInterface < Morpheus::APIClient
4
+
5
+ def base_path
6
+ # "/api/service-catalog"
7
+ "/api/catalog"
8
+ end
9
+
10
+ # dashboard
11
+ def dashboard(params={})
12
+ execute(method: :get, url: "#{base_path}/dashboard", params: params)
13
+ end
14
+
15
+ # list catalog types available for ordering
16
+ def list_types(params={})
17
+ execute(method: :get, url: "#{base_path}/types", params: params)
18
+ end
19
+
20
+ # get specific catalog type
21
+ def get_type(id, params={})
22
+ validate_id!(id)
23
+ execute(method: :get, url: "#{base_path}/types/#{id}", params: params)
24
+ end
25
+
26
+ # list catalog inventory (items)
27
+ def list_inventory(params={})
28
+ execute(method: :get, url: "#{base_path}/items", params: params)
29
+ end
30
+
31
+ # get catalog inventory item
32
+ def get_inventory(id, params={})
33
+ validate_id!(id)
34
+ execute(method: :get, url: "#{base_path}/items/#{id}", params: params)
35
+ end
36
+
37
+ # delete a catalog inventory item
38
+ def destroy_inventory(id, params = {})
39
+ validate_id!(id)
40
+ execute(method: :delete, url: "#{base_path}/items/#{id}", params: params)
41
+ end
42
+
43
+ # get cart (one per user)
44
+ def get_cart(params={})
45
+ execute(method: :get, url: "#{base_path}/cart", params: params)
46
+ end
47
+
48
+ # update cart (set cart name)
49
+ def update_cart(payload, params={})
50
+ execute(method: :put, url: "#{base_path}/cart", params: params, payload: payload.to_json)
51
+ end
52
+
53
+ # validate a new item, can be used before before adding it
54
+ def validate_cart_item(payload, params={})
55
+ execute(method: :post, url: "#{base_path}/cart/items/validate", params: params, payload: payload.to_json)
56
+ end
57
+
58
+ # add item to cart
59
+ def create_cart_item(payload, params={})
60
+ execute(method: :post, url: "#{base_path}/cart/items", params: params, payload: payload.to_json)
61
+ end
62
+
63
+ # update item in the cart
64
+ def update_cart_item(id, payload, params={})
65
+ validate_id!(id)
66
+ execute(method: :put, url: "#{base_path}/cart/items/#{id}", params: params, payload: payload.to_json)
67
+ end
68
+
69
+ # remove item from the cart
70
+ def destroy_cart_item(id, params={})
71
+ validate_id!(id)
72
+ execute(method: :delete, url: "#{base_path}/cart/items/#{id}", params: params)
73
+ end
74
+
75
+ # place order with cart
76
+ def checkout(payload, params={})
77
+ execute(method: :post, url: "#{base_path}/checkout", params: params, payload: payload.to_json)
78
+ end
79
+
80
+ # remove all items from cart and reset name
81
+ def clear_cart(params={})
82
+ execute(method: :delete, url: "#{base_path}/cart", params: params)
83
+ end
84
+
85
+ # create an order from scratch, without using a cart
86
+ def create_order(payload, params={})
87
+ execute(method: :post, url: "#{base_path}/orders", params: params, payload: payload.to_json)
88
+ end
89
+ end
@@ -0,0 +1,18 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ class Morpheus::UsageInterface < Morpheus::APIClient
4
+
5
+ def base_path
6
+ "/api/usage" # not /usages ?
7
+ end
8
+
9
+ def list(params={})
10
+ execute(method: :get, url: "#{base_path}", params: params)
11
+ end
12
+
13
+ def get(id, params={})
14
+ validate_id!(id)
15
+ execute(method: :get, url: "#{base_path}/#{id}", params: params)
16
+ end
17
+
18
+ end
@@ -67,8 +67,6 @@ module Morpheus
67
67
  # all standard commands
68
68
  Dir[File.dirname(__FILE__) + "/cli/commands/standard/**/*.rb"].each {|file| load file }
69
69
 
70
- # shell scripting commands
71
-
72
70
  # all the known commands
73
71
  load 'morpheus/cli/remote.rb'
74
72
  load 'morpheus/cli/doc.rb'
@@ -76,9 +74,11 @@ module Morpheus
76
74
  load 'morpheus/cli/setup.rb'
77
75
  load 'morpheus/cli/login.rb'
78
76
  load 'morpheus/cli/logout.rb'
77
+ load 'morpheus/cli/forgot_password.rb'
79
78
  load 'morpheus/cli/whoami.rb'
80
79
  load 'morpheus/cli/access_token_command.rb'
81
80
  load 'morpheus/cli/user_settings_command.rb'
81
+ load 'morpheus/cli/search_command.rb'
82
82
  load 'morpheus/cli/dashboard_command.rb'
83
83
  load 'morpheus/cli/recent_activity_command.rb' # deprecated, removing soon
84
84
  load 'morpheus/cli/activity_command.rb'
@@ -96,11 +96,12 @@ module Morpheus
96
96
  load 'morpheus/cli/tasks.rb'
97
97
  load 'morpheus/cli/workflows.rb'
98
98
  load 'morpheus/cli/deployments.rb'
99
+ load 'morpheus/cli/deploy.rb'
100
+ load 'morpheus/cli/deploys.rb'
99
101
  load 'morpheus/cli/instances.rb'
100
102
  load 'morpheus/cli/containers_command.rb'
101
103
  load 'morpheus/cli/apps.rb'
102
104
  load 'morpheus/cli/blueprints_command.rb'
103
- load 'morpheus/cli/deploys.rb'
104
105
  load 'morpheus/cli/license.rb'
105
106
  load 'morpheus/cli/instance_types.rb'
106
107
  load 'morpheus/cli/jobs_command.rb'
@@ -174,6 +175,9 @@ module Morpheus
174
175
  load 'morpheus/cli/projects_command.rb'
175
176
  load 'morpheus/cli/backups_command.rb'
176
177
  load 'morpheus/cli/backup_jobs_command.rb'
178
+ load 'morpheus/cli/catalog_item_types_command.rb' # catalog-types
179
+ load 'morpheus/cli/service_catalog_command.rb' # catalog
180
+ load 'morpheus/cli/usage_command.rb'
177
181
  # add new commands here...
178
182
 
179
183
  end
@@ -72,9 +72,6 @@ class Morpheus::Cli::Apps
72
72
  options[:owner] = val
73
73
  end
74
74
  opts.add_hidden_option('--created-by')
75
- opts.on('--details', "Display more details: memory and storage usage used / max values." ) do
76
- options[:details] = true
77
- end
78
75
  opts.on('--pending-removal', "Include apps pending removal.") do
79
76
  options[:showDeleted] = true
80
77
  end
@@ -88,14 +85,16 @@ class Morpheus::Cli::Apps
88
85
  opts.on('--status STATUS', "Filter by status.") do |val|
89
86
  params['status'] = (params['status'] || []) + val.to_s.split(',').collect {|s| s.strip }.select {|s| s != "" }
90
87
  end
88
+ opts.on('-a', '--details', "Display all details: memory and storage usage used / max values." ) do
89
+ options[:details] = true
90
+ end
91
91
  build_common_options(opts, options, [:list, :query, :json, :yaml, :csv, :fields, :dry_run, :remote])
92
92
  opts.footer = "List apps."
93
93
  end
94
94
  optparse.parse!(args)
95
- if args.count != 0
96
- print_error Morpheus::Terminal.angry_prompt
97
- puts_error "#{command_name} list expects 0 arguments and received #{args.count}: #{args}\n#{optparse}"
98
- return 1
95
+ # verify_args!(args:args, optparse:optparse, count:0)
96
+ if args.count > 0
97
+ options[:phrase] = args.join(" ")
99
98
  end
100
99
  connect(options)
101
100
  begin
@@ -2186,26 +2185,6 @@ EOT
2186
2185
  print reset
2187
2186
  end
2188
2187
 
2189
- def format_app_status(app, return_color=cyan)
2190
- out = ""
2191
- status_string = app['status'] || app['appStatus'] || ''
2192
- if status_string == 'running'
2193
- out = "#{green}#{status_string.upcase}#{return_color}"
2194
- elsif status_string == 'provisioning'
2195
- out = "#{cyan}#{status_string.upcase}#{cyan}"
2196
- elsif status_string == 'stopped' or status_string == 'failed'
2197
- out = "#{red}#{status_string.upcase}#{return_color}"
2198
- elsif status_string == 'unknown'
2199
- out = "#{yellow}#{status_string.upcase}#{return_color}"
2200
- elsif status_string == 'warning' && app['instanceCount'].to_i == 0
2201
- # show this instead of WARNING
2202
- out = "#{cyan}EMPTY#{return_color}"
2203
- else
2204
- out = "#{yellow}#{status_string.upcase}#{return_color}"
2205
- end
2206
- out
2207
- end
2208
-
2209
2188
  def format_app_tiers(app)
2210
2189
  out = ""
2211
2190
  begin