morpheus-cli 2.10.0 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
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