morpheus-cli 2.10.0 → 2.10.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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/bin/morpheus +27 -32
  3. data/lib/morpheus/api/accounts_interface.rb +36 -47
  4. data/lib/morpheus/api/api_client.rb +141 -110
  5. data/lib/morpheus/api/app_templates_interface.rb +56 -72
  6. data/lib/morpheus/api/apps_interface.rb +111 -132
  7. data/lib/morpheus/api/auth_interface.rb +30 -0
  8. data/lib/morpheus/api/clouds_interface.rb +71 -76
  9. data/lib/morpheus/api/custom_instance_types_interface.rb +21 -46
  10. data/lib/morpheus/api/dashboard_interface.rb +10 -17
  11. data/lib/morpheus/api/deploy_interface.rb +60 -72
  12. data/lib/morpheus/api/deployments_interface.rb +53 -71
  13. data/lib/morpheus/api/groups_interface.rb +55 -45
  14. data/lib/morpheus/api/instance_types_interface.rb +19 -23
  15. data/lib/morpheus/api/instances_interface.rb +179 -177
  16. data/lib/morpheus/api/key_pairs_interface.rb +11 -17
  17. data/lib/morpheus/api/license_interface.rb +18 -23
  18. data/lib/morpheus/api/load_balancers_interface.rb +54 -69
  19. data/lib/morpheus/api/logs_interface.rb +25 -29
  20. data/lib/morpheus/api/options_interface.rb +13 -17
  21. data/lib/morpheus/api/provision_types_interface.rb +19 -22
  22. data/lib/morpheus/api/roles_interface.rb +75 -94
  23. data/lib/morpheus/api/security_group_rules_interface.rb +28 -37
  24. data/lib/morpheus/api/security_groups_interface.rb +39 -51
  25. data/lib/morpheus/api/servers_interface.rb +113 -115
  26. data/lib/morpheus/api/setup_interface.rb +31 -0
  27. data/lib/morpheus/api/task_sets_interface.rb +36 -38
  28. data/lib/morpheus/api/tasks_interface.rb +56 -69
  29. data/lib/morpheus/api/users_interface.rb +67 -76
  30. data/lib/morpheus/api/virtual_images_interface.rb +61 -61
  31. data/lib/morpheus/api/whoami_interface.rb +12 -15
  32. data/lib/morpheus/cli.rb +71 -60
  33. data/lib/morpheus/cli/accounts.rb +254 -315
  34. data/lib/morpheus/cli/alias_command.rb +219 -0
  35. data/lib/morpheus/cli/app_templates.rb +264 -272
  36. data/lib/morpheus/cli/apps.rb +608 -671
  37. data/lib/morpheus/cli/cli_command.rb +259 -21
  38. data/lib/morpheus/cli/cli_registry.rb +99 -14
  39. data/lib/morpheus/cli/clouds.rb +599 -372
  40. data/lib/morpheus/cli/config_file.rb +126 -0
  41. data/lib/morpheus/cli/credentials.rb +141 -117
  42. data/lib/morpheus/cli/dashboard_command.rb +48 -56
  43. data/lib/morpheus/cli/deployments.rb +254 -268
  44. data/lib/morpheus/cli/deploys.rb +150 -142
  45. data/lib/morpheus/cli/error_handler.rb +38 -0
  46. data/lib/morpheus/cli/groups.rb +551 -179
  47. data/lib/morpheus/cli/hosts.rb +862 -617
  48. data/lib/morpheus/cli/instance_types.rb +103 -95
  49. data/lib/morpheus/cli/instances.rb +1335 -1009
  50. data/lib/morpheus/cli/key_pairs.rb +82 -90
  51. data/lib/morpheus/cli/library.rb +498 -499
  52. data/lib/morpheus/cli/license.rb +83 -101
  53. data/lib/morpheus/cli/load_balancers.rb +314 -300
  54. data/lib/morpheus/cli/login.rb +66 -44
  55. data/lib/morpheus/cli/logout.rb +47 -46
  56. data/lib/morpheus/cli/mixins/accounts_helper.rb +69 -31
  57. data/lib/morpheus/cli/mixins/infrastructure_helper.rb +106 -0
  58. data/lib/morpheus/cli/mixins/print_helper.rb +181 -17
  59. data/lib/morpheus/cli/mixins/provisioning_helper.rb +535 -458
  60. data/lib/morpheus/cli/mixins/whoami_helper.rb +2 -2
  61. data/lib/morpheus/cli/option_parser.rb +35 -0
  62. data/lib/morpheus/cli/option_types.rb +232 -192
  63. data/lib/morpheus/cli/recent_activity_command.rb +61 -65
  64. data/lib/morpheus/cli/remote.rb +446 -199
  65. data/lib/morpheus/cli/roles.rb +884 -906
  66. data/lib/morpheus/cli/security_group_rules.rb +213 -203
  67. data/lib/morpheus/cli/security_groups.rb +237 -192
  68. data/lib/morpheus/cli/shell.rb +338 -231
  69. data/lib/morpheus/cli/tasks.rb +326 -308
  70. data/lib/morpheus/cli/users.rb +457 -462
  71. data/lib/morpheus/cli/version.rb +1 -1
  72. data/lib/morpheus/cli/version_command.rb +16 -18
  73. data/lib/morpheus/cli/virtual_images.rb +526 -345
  74. data/lib/morpheus/cli/whoami.rb +125 -111
  75. data/lib/morpheus/cli/workflows.rb +338 -185
  76. data/lib/morpheus/formatters.rb +8 -1
  77. data/lib/morpheus/logging.rb +1 -1
  78. data/lib/morpheus/rest_client.rb +17 -8
  79. metadata +9 -3
  80. data/lib/morpheus/api/custom_instance_types.rb +0 -55
@@ -37,8 +37,15 @@ def format_local_date(dt, options={})
37
37
  format_dt(dt, {local: true, format: "%x"}.merge(options))
38
38
  end
39
39
 
40
- # returns
41
40
  def format_dt_as_param(dt)
42
41
  dt = dt.getutc
43
42
  format_dt(dt, {format: "%Y-%m-%d %X"})
44
43
  end
44
+
45
+ def display_appliance(name, url)
46
+ "#{name} - #{url}"
47
+ end
48
+
49
+ def iso8601(dt)
50
+ dt.instance_of(Time) ? dt.iso8601 : "#{dt}"
51
+ end
@@ -5,7 +5,7 @@ require 'logger'
5
5
  #
6
6
  module Morpheus::Logging
7
7
 
8
- DEFAULT_LOG_LEVEL = ENV['DEBUG'] ? Logger::DEBUG : Logger::INFO
8
+ DEFAULT_LOG_LEVEL = ENV['DEBUG'] ? Logger::DEBUG : Logger::INFO
9
9
 
10
10
  @@log_level = DEFAULT_LOG_LEVEL
11
11
  @@logger = nil
@@ -6,16 +6,28 @@ module Morpheus
6
6
 
7
7
  class << self
8
8
 
9
- def execute(options)
10
- opts = options.merge({})
9
+ def user_agent
10
+ if !@user_agent
11
+ begin
12
+ @user_agent = "morpheus-cli #{Morpheus::Cli::VERSION}"
13
+ @user_agent = "#{@user_agent} (#{::RestClient::Platform.architecture}) #{::RestClient::Platform.ruby_agent_version}"
14
+ rescue => e
15
+ end
16
+ end
17
+ return @user_agent
18
+ end
11
19
 
20
+ def execute(options)
21
+ opts = {timeout: 30}.merge(options)
12
22
  unless ssl_verification_enabled?
13
23
  opts[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
14
24
  end
15
25
 
26
+ opts[:headers] ||= {}
27
+ opts[:headers][:user_agent] ||= self.user_agent
28
+
16
29
  ::RestClient::Request.execute opts
17
30
  end
18
-
19
31
  def post(url, payload)
20
32
  execute url: url, payload: payload, method: :post
21
33
  end
@@ -34,15 +46,12 @@ module Morpheus
34
46
 
35
47
  private
36
48
 
49
+ # unused eh?
37
50
  def build_request_args(url, method, payload)
38
- args = {url: url,
39
- method: method,
40
- payload: payload}
41
-
51
+ args = {url: url, method: method, payload: payload}
42
52
  unless ssl_verification_enabled?
43
53
  args[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
44
54
  end
45
-
46
55
  args
47
56
  end
48
57
  end
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: 2.10.0
4
+ version: 2.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Estes
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-02-13 00:00:00.000000000 Z
13
+ date: 2017-02-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -143,8 +143,8 @@ files:
143
143
  - lib/morpheus/api/api_client.rb
144
144
  - lib/morpheus/api/app_templates_interface.rb
145
145
  - lib/morpheus/api/apps_interface.rb
146
+ - lib/morpheus/api/auth_interface.rb
146
147
  - lib/morpheus/api/clouds_interface.rb
147
- - lib/morpheus/api/custom_instance_types.rb
148
148
  - lib/morpheus/api/custom_instance_types_interface.rb
149
149
  - lib/morpheus/api/dashboard_interface.rb
150
150
  - lib/morpheus/api/deploy_interface.rb
@@ -162,6 +162,7 @@ files:
162
162
  - lib/morpheus/api/security_group_rules_interface.rb
163
163
  - lib/morpheus/api/security_groups_interface.rb
164
164
  - lib/morpheus/api/servers_interface.rb
165
+ - lib/morpheus/api/setup_interface.rb
165
166
  - lib/morpheus/api/task_sets_interface.rb
166
167
  - lib/morpheus/api/tasks_interface.rb
167
168
  - lib/morpheus/api/users_interface.rb
@@ -169,15 +170,18 @@ files:
169
170
  - lib/morpheus/api/whoami_interface.rb
170
171
  - lib/morpheus/cli.rb
171
172
  - lib/morpheus/cli/accounts.rb
173
+ - lib/morpheus/cli/alias_command.rb
172
174
  - lib/morpheus/cli/app_templates.rb
173
175
  - lib/morpheus/cli/apps.rb
174
176
  - lib/morpheus/cli/cli_command.rb
175
177
  - lib/morpheus/cli/cli_registry.rb
176
178
  - lib/morpheus/cli/clouds.rb
179
+ - lib/morpheus/cli/config_file.rb
177
180
  - lib/morpheus/cli/credentials.rb
178
181
  - lib/morpheus/cli/dashboard_command.rb
179
182
  - lib/morpheus/cli/deployments.rb
180
183
  - lib/morpheus/cli/deploys.rb
184
+ - lib/morpheus/cli/error_handler.rb
181
185
  - lib/morpheus/cli/groups.rb
182
186
  - lib/morpheus/cli/hosts.rb
183
187
  - lib/morpheus/cli/instance_types.rb
@@ -189,9 +193,11 @@ files:
189
193
  - lib/morpheus/cli/login.rb
190
194
  - lib/morpheus/cli/logout.rb
191
195
  - lib/morpheus/cli/mixins/accounts_helper.rb
196
+ - lib/morpheus/cli/mixins/infrastructure_helper.rb
192
197
  - lib/morpheus/cli/mixins/print_helper.rb
193
198
  - lib/morpheus/cli/mixins/provisioning_helper.rb
194
199
  - lib/morpheus/cli/mixins/whoami_helper.rb
200
+ - lib/morpheus/cli/option_parser.rb
195
201
  - lib/morpheus/cli/option_types.rb
196
202
  - lib/morpheus/cli/recent_activity_command.rb
197
203
  - lib/morpheus/cli/remote.rb
@@ -1,55 +0,0 @@
1
- require 'json'
2
- require 'morpheus/rest_client'
3
-
4
- class Morpheus::CustomInstanceTypesInterface < Morpheus::APIClient
5
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
6
- @access_token = access_token
7
- @refresh_token = refresh_token
8
- @base_url = base_url
9
- @expires_at = expires_at
10
- end
11
-
12
- def get(id)
13
- url = "#{@base_url}/api/custom-instance-types"
14
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
- response = Morpheus::RestClient.execute(method: :get, url: url,
16
- timeout: 10, headers: headers, verify_ssl:false)
17
- JSON.parse(response.to_s)
18
- end
19
-
20
- def list(options={})
21
- url = "#{@base_url}/api/custom-instance-types"
22
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
23
- headers[:params].merge!(options)
24
- response = Morpheus::RestClient.execute(method: :get, url: url,
25
- timeout: 10, headers: headers, verify_ssl:false)
26
- JSON.parse(response.to_s)
27
- end
28
-
29
- def create(options)
30
- url = "#{@base_url}/api/custom-instance-types"
31
- headers = { :params => {}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
32
- payload = options
33
- response = Morpheus::RestClient.execute(method: :post, url: url,
34
- timeout: 10, headers: headers, payload: payload.to_json, verify_ssl:false)
35
- JSON.parse(response.to_s)
36
- end
37
-
38
- def update(id, options)
39
- url = "#{@base_url}/api/custom-instance-types/#{id}"
40
- headers = { :params => {}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
41
- payload = options
42
- response = Morpheus::RestClient.execute(method: :put, url: url,
43
- timeout: 10, headers: headers, payload: payload.to_json, verify_ssl:false)
44
- JSON.parse(response.to_s)
45
- end
46
-
47
- def destroy(id)
48
- url = "#{@base_url}/api/custom-instance-types/#{id}"
49
- headers = { :params => {}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
50
- response = Morpheus::RestClient.execute(method: :delete, url: url,
51
- timeout: 10, headers: headers, verify_ssl:false)
52
- JSON.parse(response.to_s)
53
- end
54
-
55
- end