rightscale-cli 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9731067ddae5d72c5f362abb7e0b35b51a549978
4
- data.tar.gz: 9fc0433996190ff469911813204e89ecdadfb792
3
+ metadata.gz: cff866f57fce9ced5a2dd94da17a19047c963e9f
4
+ data.tar.gz: 3649dc2421f581ecf8f2a4ae807a18732014501c
5
5
  SHA512:
6
- metadata.gz: 598196162d973d27e094c94c19d71a703970e4bc48c3bdb1853cc19c198650f5ef218ca183679e63875c73761b525dc62801a82e028b33d5d0e6cb6a08f5df52
7
- data.tar.gz: bb671f3665f19f82302535a930c6358386a5b1d2b4d438ce9d1b4e4cd0da6ffc8103a9fa7ef0495686cad6261f409f125c28a76e70107ad4083a5d9933982ceb
6
+ metadata.gz: ca0028e8910348c4be6c24f8b860908f44646646c67220dcf63478a7252f499ae7517918d44759634c8dbbc127d3883fb99e4ee2e29087f9fbbffe30038a52e8
7
+ data.tar.gz: a49994234187dca2298bb12218a4fbccc2c46ea20867719965de0c8440e3fe194555a20ddb1494527558eb35290a69eb173aed779d346dc160937e6b9693a738
@@ -18,7 +18,6 @@ require 'thor'
18
18
  require 'yaml'
19
19
  require 'json'
20
20
  require "active_support/core_ext"
21
- require 'rightscale_cli/logger'
22
21
 
23
22
  class RightScaleCLI
24
23
  class Clouds < Thor
@@ -28,6 +27,9 @@ class RightScaleCLI
28
27
  def list()
29
28
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
30
29
  clouds = []
30
+
31
+ $log.info "Retrieving all clouds from #{rightscale.account_id}."
32
+
31
33
  rightscale.clouds.index.each { |cloud|
32
34
  clouds.push(cloud.raw)
33
35
  }
@@ -46,14 +48,13 @@ class RightScaleCLI
46
48
  option :cloud_type, :type => :string, :required => false
47
49
  option :description, :type => :string, :required => false
48
50
  def search()
49
- log = CLILogger.new
50
51
 
51
52
  filter = []
52
53
  filter.push("name==#{options[:name]}") if options[:name]
53
54
  filter.push("cloud_type==#{options[:cloud_type]}") if options[:cloud_type]
54
55
  filter.push("description==#{options[:cloud]}") if options[:description]
55
56
 
56
- log.info("Searching for clouds!")
57
+ $log.info "Searching for clouds!"
57
58
 
58
59
  puts "filter: #{filter}" if options[:debug]
59
60
 
@@ -22,10 +22,8 @@ class RightScaleCLI
22
22
  class Deployments < Thor
23
23
  namespace :deployments
24
24
 
25
- desc "show", "Lists all deployments."
26
- def show()
27
- option :xml, :type => :boolean, :default => false, :aliases => '-X', :desc => 'Return XML.'
28
-
25
+ desc "list", "Lists all deployments."
26
+ def list()
29
27
  deployments = Array.new
30
28
  RightApi::Client.new(RightScaleCLI::Config::API).deployments.index.each { |deployment|
31
29
  deployments.push(deployment.raw)
@@ -0,0 +1,115 @@
1
+ # Author:: Chris Fordham (<chris@fordham-nagy.id.au>)
2
+ # Copyright:: Copyright (c) 2013 Chris Fordham
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'thor'
18
+ require 'yaml'
19
+ require 'right_api_client'
20
+ require 'rightscale_cli/logger'
21
+
22
+ class RightScaleCLI
23
+ class Instances < Thor
24
+ namespace :instances
25
+
26
+ desc "list", "Lists all instances for a given cloud."
27
+ option :cloud, :desc => 'The cloud to filter on.', :type => :string, :required => true
28
+ option :datacenter, :desc => 'The href of the datacenter to filter on', :type => :string, :required => false
29
+ option :deployment, :desc => 'The href of the deployment to filter on.', :type => :string, :required => false
30
+ option :name, :desc => 'Name of the Instance to filter on.', :type => :string, :required => false
31
+ option :os, :desc => 'The OS platform to filter on.', :type => :string, :required => false
32
+ option :parent, :desc => 'The href of the parent to filter on.', :type => :string, :required => false
33
+ option :private_dns => 'The private dns name to filter on.', :type => :string, :required => false
34
+ option :private_ip, :desc => 'The private ip address to filter on.', :type => :string, :required => false
35
+ option :public_dns, :desc => 'The public dns name to filter on.', :type => :string, :required => false
36
+ option :public_ip, :desc => 'The public ip address to filter on.', :type => :string, :required => false
37
+ option :resource_uid, :desc => 'Resource Unique IDentifier for the Instance to filter on.', :type => :string, :required => false
38
+ option :server_template, :desc => 'The href of the ServerTemplate to filter on.', :type => :string, :required => false
39
+ option :state, :desc => 'The state of Instances to filter on.', :type => :string, :required => false
40
+ def list()
41
+ instances = []
42
+ filter = []
43
+
44
+ filter.push("datacenter_href==#{options[:datacenter]}") if options[:datacenter]
45
+ filter.push("deployment_href==#{options[:deployment]}") if options[:deployment]
46
+ filter.push("name==#{options[:private_ip]}") if options[:name]
47
+ filter.push("os_platform==#{options[:os]}") if options[:os]
48
+ filter.push("parent_href==#{options[:parent]}") if options[:parent]
49
+ filter.push("private_dns_name==#{options[:private_dns]}") if options[:private_dns]
50
+ filter.push("private_ip_address==#{options[:private_ip]}") if options[:private_ip]
51
+ filter.push("public_dns==#{options[:public_dns]}") if options[:public_dns]
52
+ filter.push("public_ip_address==#{options[:public_ip]}") if options[:public_ip]
53
+ filter.push("resource_uid==#{options[:resource_uid]}") if options[:resource_uid]
54
+ filter.push("server_template_href==#{options[:server_template]}") if options[:server_template]
55
+ filter.push("state==#{options[:state]}") if options[:state]
56
+
57
+ $log.debug "filter: #{filter}" if options[:debug]
58
+
59
+ RightApi::Client.new(RightScaleCLI::Config::API).clouds(:id => options[:cloud]).show.instances(:filter => filter).index.each { |instance|
60
+ instances.push(instance.raw)
61
+ }
62
+ puts instances.to_yaml
63
+ end
64
+
65
+ desc "run-exec", "Runs a chef recipe or rightscript on instances of a given cloud."
66
+ option :cloud, :desc => 'The cloud to filter on.', :type => :string, :required => true
67
+ option :datacenter, :desc => 'The href of the datacenter to filter on', :type => :string, :required => false
68
+ option :deployment, :desc => 'The href of the deployment to filter on.', :type => :string, :required => false
69
+ option :name, :desc => 'Name of the Instance to filter on.', :type => :string, :required => false
70
+ option :os, :desc => 'The OS platform to filter on.', :type => :string, :required => false
71
+ option :parent, :desc => 'The href of the parent to filter on.', :type => :string, :required => false
72
+ option :private_dns => 'The private dns name to filter on.', :type => :string, :required => false
73
+ option :private_ip, :desc => 'The private ip address to filter on.', :type => :string, :required => false
74
+ option :public_dns, :desc => 'The public dns name to filter on.', :type => :string, :required => false
75
+ option :public_ip, :desc => 'The public ip address to filter on.', :type => :string, :required => false
76
+ option :resource_uid, :desc => 'Resource Unique IDentifier for the Instance to filter on.', :type => :string, :required => false
77
+ option :server_template, :desc => 'The href of the ServerTemplate to filter on.', :type => :string, :required => false
78
+ option :state, :desc => 'The state of Instances to filter on.', :type => :string, :required => false
79
+ def run_exec(exec_type, exec_identifier)
80
+ params = {}
81
+ filter = []
82
+
83
+ if exec_type == 'recipe'
84
+ params['recipe_name'] = exec_identifier
85
+ elsif exec_type == 'rightscript'
86
+ params['right_script_href'] = "/api/right_scripts/#{exec_identifier}"
87
+ end
88
+
89
+ filter.push("datacenter_href==#{options[:datacenter]}") if options[:datacenter]
90
+ filter.push("deployment_href==#{options[:deployment]}") if options[:deployment]
91
+ filter.push("name==#{options[:private_ip]}") if options[:name]
92
+ filter.push("os_platform==#{options[:os]}") if options[:os]
93
+ filter.push("parent_href==#{options[:parent]}") if options[:parent]
94
+ filter.push("private_dns_name==#{options[:private_dns]}") if options[:private_dns]
95
+ filter.push("private_ip_address==#{options[:private_ip]}") if options[:private_ip]
96
+ filter.push("public_dns==#{options[:public_dns]}") if options[:public_dns]
97
+ filter.push("public_ip_address==#{options[:public_ip]}") if options[:public_ip]
98
+ filter.push("resource_uid==#{options[:resource_uid]}") if options[:resource_uid]
99
+ filter.push("server_template_href==#{options[:server_template]}") if options[:server_template]
100
+ filter.push("state==#{options[:state]}") if options[:state]
101
+
102
+ params['filter'] = filter
103
+ $log.debug "filter: #{filter}" if options[:debug]
104
+ $log.debug "params: #{params}" if options[:debug]
105
+
106
+ rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
107
+
108
+ rightscale.clouds(:id => options[:cloud]).show.instances.multi_run_executable(params)
109
+ end
110
+
111
+ def self.banner(task, namespace = true, subcommand = false)
112
+ "#{basename} #{task.formatted_usage(self, true, subcommand)}"
113
+ end
114
+ end
115
+ end
@@ -16,124 +16,19 @@
16
16
 
17
17
  require 'logger'
18
18
 
19
- class RightScaleCLI
20
- # A Logger instance that gives better control of messaging the user
21
- # and logging app activity. At it's most basic, you would use <tt>info</tt>
22
- # as a replacement for +puts+ and <tt>error</tt> as a replacement
23
- # for <tt>STDERR.puts</tt>. Since this is a logger, however, you
24
- # can also use #debug, #warn, and #fatal, and you can control
25
- # the format and "logging level" as such.
26
- #
27
- # So, by default:
28
- # * debug messages do not appear anywhere
29
- # * info messages appear on the standard output
30
- # * warn, error, and fatal messagse appear on the standard error
31
- # * The default format of messages is simply the message, no logging cruft, however if your output
32
- # is redirected to a file, a better timestamped logging format is used
33
- #
34
- # You can customize this in several ways:
35
- #
36
- # * You can override the devices used by passing different devices to the constructor
37
- # * You can adjust the level of message that goes to the error logger via error_level=
38
- # * You can adjust the format for messages to the error logger separately via error_formatter=
39
- #
40
- # === Example
41
- #
42
- # logger = CLILogger.new
43
- # logger.debug("Starting up") # => only the standard output gets this
44
- # logger.warn("careful!") # => only the standard error gets this
45
- # logger.error("Something went wrong!") # => only the standard error gets this
46
- #
47
- # logger = CLILogger.new
48
- # logger.error_level = Logger::ERROR
49
- # logger.debug("Starting up") # => only the standard output gets this
50
- # logger.warn("careful!") # => only the standard OUTPUT gets this
51
- # logger.error("Something went wrong!") # => only the standard error gets this
52
- #
53
- # logger = CLILogger.new('logfile.txt')
54
- # logger.debug("Starting up") # => logfile.txt gets this
55
- # logger.error("Something went wrong!") # => BOTH logfile.txt AND the standard error get this
56
- class CLILogger < Logger
57
- BLANK_FORMAT = proc { |severity,datetime,progname,msg|
58
- msg + "\n"
59
- }
60
-
61
- # Helper to proxy methods to the super class AND to the internal error logger
62
- #
63
- # +symbol+:: Symbol for name of the method to proxy
64
- def self.proxy_method(symbol) #:nodoc:
65
- old_name = "old_#{symbol}".to_sym
66
- alias_method old_name,symbol
67
- define_method symbol do |*args,&block|
68
- send(old_name,*args,&block)
69
- @stderr_logger.send(symbol,*args,&block)
70
- end
71
- end
72
-
73
- proxy_method :'formatter='
74
- proxy_method :'datetime_format='
75
-
76
- def add(severity, message = nil, progname = nil, &block) #:nodoc:
77
- if @split_logs
78
- unless severity >= @stderr_logger.level
79
- super(severity,message,progname,&block)
80
- end
81
- else
82
- super(severity,message,progname,&block)
83
- end
84
- @stderr_logger.add(severity,message,progname,&block)
85
- end
86
-
87
- DEFAULT_ERROR_LEVEL = Logger::Severity::WARN
88
-
89
- # A logger that logs error-type messages to a second device; useful
90
- # for ensuring that error messages go to standard error. This should be
91
- # pretty smart about doing the right thing. If both log devices are
92
- # ttys, e.g. one is going to standard error and the other to the standard output,
93
- # messages only appear once in the overall output stream. In other words,
94
- # an ERROR logged will show up *only* in the standard error. If either
95
- # log device is NOT a tty, then all messages go to +log_device+ and only
96
- # errors go to +error_device+
97
- #
98
- # +log_device+:: device where all log messages should go, based on level
99
- # +error_device+:: device where all error messages should go. By default, this is Logger::Severity::WARN
100
- def initialize(log_device=$stdout,error_device=$stderr)
101
- super(log_device)
102
- @stderr_logger = Logger.new(error_device)
103
-
104
- @split_logs = log_device.tty? && error_device.tty?
105
-
106
- self.level = Logger::Severity::INFO
107
- @stderr_logger.level = DEFAULT_ERROR_LEVEL
108
-
109
- self.formatter = BLANK_FORMAT if log_device.tty?
110
- @stderr_logger.formatter = BLANK_FORMAT if error_device.tty?
111
- end
112
-
113
- def level=(level)
114
- super(level)
115
- current_error_level = @stderr_logger.level
116
- if (level > DEFAULT_ERROR_LEVEL) && @split_logs
117
- @stderr_logger.level = level
118
- end
119
- end
120
-
121
- # Set the threshold for what messages go to the error device. Note that calling
122
- # #level= will *not* affect the error logger *unless* both devices are TTYs.
123
- #
124
- # +level+:: a constant from Logger::Severity for the level of messages that should go
125
- # to the error logger
126
- def error_level=(level)
127
- @stderr_logger.level = level
128
- end
129
-
130
- # Overrides the formatter for the error logger. A future call to #formatter= will
131
- # affect both, so the order of the calls matters.
132
- #
133
- # +formatter+:: Proc that handles the formatting, the same as for #formatter=
134
- def error_formatter=(formatter)
135
- @stderr_logger.formatter=formatter
19
+ unless defined? $log
20
+ log_init_msg = 'Initializing Logging using '
21
+ if ENV['RIGHT_API_CLIENT_LOG']
22
+ if File.exists?(ENV['RIGHT_API_CLIENT_LOG'])
23
+ file = File.open(ENV['RIGHT_API_CLIENT_LOG'], File::WRONLY | File::APPEND)
24
+ else
25
+ file = ENV['RIGHT_API_CLIENT_LOG']
136
26
  end
137
-
27
+ $log = Logger.new(file)
28
+ log_init_msg += ENV['RIGHT_API_CLIENT_LOG']
29
+ else
30
+ $log = Logger.new(STDOUT)
31
+ log_init_msg += 'STDOUT'
138
32
  end
139
- end
33
+ $log.info log_init_msg
34
+ end
@@ -19,6 +19,7 @@ require 'rightscale_cli/output'
19
19
  require 'rightscale_cli/clouds'
20
20
  require 'rightscale_cli/dashboard'
21
21
  require 'rightscale_cli/deployments'
22
+ require 'rightscale_cli/instances'
22
23
  require 'rightscale_cli/servers'
23
24
  require 'rightscale_cli/server_arrays'
24
25
  require 'rightscale_cli/server_templates'
@@ -37,6 +38,7 @@ class RightScaleCLI
37
38
  register(Dashboard, 'dashboard', 'dashboard <command>', 'RightScale Dashboard (HTTP hax).')
38
39
  register(ServerArrays, 'arrays', 'arrays <command>', 'Manage server arrays.')
39
40
  register(Deployments, 'deployments', 'deployments <command>', 'Manage deployments.')
41
+ register(Instances, 'instances', 'instances <command>', 'Manage instances.')
40
42
  register(Servers, 'servers', 'servers <command>', 'Manage servers.')
41
43
  register(ServerTemplates, 'server_templates', 'server-templates <command>', 'Manage ServerTemplates.')
42
44
  end
@@ -39,7 +39,6 @@ class RightScaleCLI
39
39
  option :deployment, :type => :string, :required => false
40
40
  option :name, :type => :string, :required => false
41
41
  def list()
42
- log = CLILogger.new
43
42
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
44
43
 
45
44
  filter = []
@@ -47,7 +46,7 @@ class RightScaleCLI
47
46
  filter.push("deployment_href==/api/deployments/#{options[:cloud]}") if options[:deployment]
48
47
  filter.push("name==#{options[:name]}") if options[:name]
49
48
 
50
- log.info "filter: #{filter}" if options[:debug]
49
+ $log.debug "filter: #{filter}" if options[:debug]
51
50
 
52
51
  server_arrays = []
53
52
  rightscale.server_arrays.index(:filter => filter).each { |server_array|
@@ -65,7 +64,6 @@ class RightScaleCLI
65
64
 
66
65
  desc "show", "Shows a server array."
67
66
  def show(server_array_id)
68
- log = CLILogger.new
69
67
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
70
68
 
71
69
  server_array = rightscale.server_arrays(:id => server_array_id).show.raw
@@ -81,40 +79,35 @@ class RightScaleCLI
81
79
 
82
80
  desc "state", "Shows the state of a server array."
83
81
  def state(server_array_id)
84
- log = CLILogger.new
85
- log.info "Retrieving state for server array, #{server_array_id}."
82
+ $log.info "Retrieving state for server array, #{server_array_id}."
86
83
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
87
84
  puts rightscale.server_arrays(:id => server_array_id).show.state
88
85
  end
89
86
 
90
87
  desc "instances_count", "Shows the instances count of a server array."
91
88
  def instances_count(server_array_id)
92
- log = CLILogger.new
93
- log.info "Retrieving instances count for server array, #{server_array_id}."
89
+ $log.info "Retrieving instances count for server array, #{server_array_id}."
94
90
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
95
91
  puts rightscale.server_arrays(:id => server_array_id).show.instances_count
96
92
  end
97
93
 
98
94
  desc "desc", "Shows the description of a server array."
99
95
  def desc(server_array_id)
100
- log = CLILogger.new
101
- log.info "Retrieving description for server array, #{server_array_id}."
96
+ $log.info "Retrieving description for server array, #{server_array_id}."
102
97
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
103
98
  puts rightscale.server_arrays(:id => server_array_id).show.description
104
99
  end
105
100
 
106
101
  desc "name", "Shows the name of a server array."
107
102
  def name(server_array_id)
108
- log = CLILogger.new
109
- log.info "Retrieving name for server array, #{server_array_id}."
103
+ $log.info "Retrieving name for server array, #{server_array_id}."
110
104
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
111
105
  puts rightscale.server_arrays(:id => server_array_id).show.name
112
106
  end
113
107
 
114
108
  desc "api_methods", "Lists the API methods available to a server array."
115
109
  def api_methods(server_array_id)
116
- log = CLILogger.new
117
- log.info "Retrieving API methods for server array, #{server_array_id}."
110
+ $log.info "Retrieving API methods for server array, #{server_array_id}."
118
111
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
119
112
  server_array = rightscale.server_arrays(:id => server_array_id).show.api_methods
120
113
  puts server_array
@@ -35,7 +35,6 @@ class RightScaleCLI
35
35
  option :state, :desc => 'The state of Instances to filter on.', :type => :string, :required => false
36
36
 
37
37
  def instances(server_array_id)
38
- log = CLILogger.new
39
38
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
40
39
 
41
40
  array_instances = []
@@ -54,7 +53,7 @@ class RightScaleCLI
54
53
  filter.push("server_template_href==#{options[:server_template]}") if options[:server_template]
55
54
  filter.push("state==#{options[:state]}") if options[:state]
56
55
 
57
- log.info "filter: #{filter}" if options[:debug]
56
+ $log.debug "filter: #{filter}" if options[:debug]
58
57
 
59
58
  rightscale.server_arrays(:id => server_array_id).show.current_instances(:filter => filter).index.each { |array_instance|
60
59
  array_instances.push(array_instance.raw)
@@ -20,8 +20,7 @@ class RightScaleCLI
20
20
  desc "params", "Lists the elasticity parameters for a server array."
21
21
 
22
22
  def params(server_array_id)
23
- log = CLILogger.new
24
- log.info "Retrieving elasticity parameters for server array, #{server_array_id}."
23
+ $log.info "Retrieving elasticity parameters for server array, #{server_array_id}."
25
24
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
26
25
  puts rightscale.server_arrays(:id => server_array_id).show.elasticity_params.to_yaml
27
26
  end
@@ -14,14 +14,15 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
 
17
+ require 'rightscale_cli/logger'
18
+
17
19
  class RightScaleCLI
18
20
  class ServerArrays < Thor
19
21
 
20
22
  desc "links", "Lists the links for a server array."
21
23
 
22
24
  def links(server_array_id)
23
- log = CLILogger.new
24
- log.info "Retrieving links for server array, #{server_array_id}."
25
+ $log.info "Retrieving links for server array, #{server_array_id}."
25
26
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
26
27
  puts rightscale.server_arrays(:id => server_array_id).show.links.to_yaml
27
28
  end
@@ -20,7 +20,6 @@ class RightScaleCLI
20
20
  desc "run_exec", "Runs a RightScript or Chef recipe on the array instances."
21
21
 
22
22
  def run_exec(server_array_id, exec_type, exec_identifier)
23
- log = CLILogger.new
24
23
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
25
24
 
26
25
  params = {}
@@ -33,8 +32,8 @@ class RightScaleCLI
33
32
 
34
33
  server_array = rightscale.server_arrays(:id => server_array_id)
35
34
 
36
- log.info "params: #{params}" if options[:debug]
37
- log.info "Running executable on server array."
35
+ $log.info "params: #{params}" if options[:debug]
36
+ $log.info "Running executable on server array."
38
37
 
39
38
  server_array.multi_run_executable(params)
40
39
  end
@@ -30,7 +30,6 @@ class RightScaleCLI
30
30
 
31
31
  desc "list", "Lists ServerTemplates."
32
32
  def list()
33
- log = CLILogger.new
34
33
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
35
34
  server_templates = []
36
35
  rightscale.server_templates.index.each { |server_template|
@@ -48,7 +47,6 @@ class RightScaleCLI
48
47
 
49
48
  desc "show", "Shows a ServerTemplate."
50
49
  def show(server_template_id)
51
- log = CLILogger.new
52
50
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
53
51
 
54
52
  server_template = rightscale.server_templates(:id => server_template_id).show.raw
@@ -64,7 +62,6 @@ class RightScaleCLI
64
62
 
65
63
  desc "inputs", "Shows a ServerTemplate's inputs."
66
64
  def inputs(server_template_id)
67
- log = CLILogger.new
68
65
  rightscale = RightApi::Client.new(RightScaleCLI::Config::API)
69
66
 
70
67
  server_template_inputs = []
@@ -15,5 +15,5 @@
15
15
  # limitations under the License.
16
16
 
17
17
  class RightScaleCLI
18
- VERSION = '0.1.0'
18
+ VERSION = '0.3.0'
19
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rightscale-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Fordham
@@ -107,6 +107,7 @@ files:
107
107
  - lib/rightscale_cli/rightscale_cli.rb
108
108
  - lib/rightscale_cli/monkey_patches/client_attributes.rb
109
109
  - lib/rightscale_cli/output.rb
110
+ - lib/rightscale_cli/instances.rb
110
111
  - lib/rightscale_cli/client.rb
111
112
  - lib/rightscale_cli/version.rb
112
113
  - lib/rightscale_cli/server_templates.rb