rboss 0.8.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -10,13 +10,13 @@ Installation
10
10
 
11
11
  gem install rboss
12
12
 
13
- ### Dependencies
13
+ ### Direct Dependencies
14
14
 
15
15
  * yummi
16
16
 
17
17
  ### Configuration
18
18
 
19
- Set a RBOSS_CLI_JBOSS_HOME variable pointing to your JBoss AS home location that has jboss-cli
19
+ Set a RBOSS_CLI_HOME variable pointing to your JBoss AS home location that has jboss-cli
20
20
  for using rboss-cli, for using twiddle, set a RBOSS_TWIDDLE_HOME variable pointing to you JBoss AS
21
21
  that has twiddle.
22
22
 
@@ -40,29 +40,35 @@ You can scan resources, detail information and execute operations.
40
40
 
41
41
  ### Invoking Operations
42
42
 
43
- To see the operations for a resource, use the option "--list-operations"
43
+ To see the operations for a resource, use the "--list-operations" or "-l" option:
44
44
 
45
45
  rboss-cli --server --list-operations
46
46
 
47
- To detail an operation, use the option "--detail-operation"
47
+ To detail an operation, use the "--detail-operation" or "-d" option:
48
48
 
49
49
  rboss-cli --server --detail-operation shutdown
50
50
 
51
51
  This will print a table showing both request and response parameters. To invoke the
52
- operation, use the "--operation" (or "-o") option
52
+ operation, use the "--operation" or "-o" option:
53
53
 
54
54
  rboss-cli --server --operation shutdown
55
55
  rboss-cli --server -o shutdown
56
56
 
57
57
  Since this operation requires a parameter, rboss-cli will ask you to input them. If you
58
- want to pass the required parameters, use the "--arguments" (or "-a") option
58
+ want to pass the required parameters, use the "--arguments" or "-a" option:
59
59
 
60
60
  rboss-cli --server --operation shutdown --arguments restart=true
61
61
  rboss-cli --server -o shutdown -a restart=true
62
+
63
+ Multiple arguments are supported using commas:
64
+
65
+ rboss-cli --some-resource -o operation -a arg1=value1,arg2=value
62
66
 
63
67
  If you want to skip optional arguments, use the "--skip-optional". rboss-cli will not ask
64
68
  you to input the arguments, leaving "--arguments" as the only way to set them.
65
69
 
70
+ See rboss-cli --help for a complete list of commands.
71
+
66
72
  ### Known Issues
67
73
 
68
74
  The datasource mapping (--datasource) retrieves incorrect information if you call either
@@ -75,7 +81,7 @@ leaving the '--datasource any' as a workaround.
75
81
  rboss-cli --datasource --detail-operation add
76
82
  rboss-cli --datasource a --detail-operation add
77
83
 
78
- ### Configuring mappings
84
+ ### Configuring CLI mappings
79
85
 
80
86
  To create and override mappings, just put a yaml file in "~/.rboss/rboss-cli/resources". The filename will
81
87
  be used to identify the operation. Example: placing a file named datasource.yaml will override the
@@ -88,12 +94,112 @@ The yaml must contain the given definitions:
88
94
  * scan (optional): a command to scan resources (by using this, the option may take an array of resource names)
89
95
  * print (optional): an array of table definitions to print with "read-resource" operation.
90
96
 
97
+ Examples:
98
+
99
+ ---
100
+ description: Datasource Information
101
+ path: /subsystem=datasources/data-source=${NAME}
102
+ scan: ls /subsystem=datasources/data-source
103
+ print:
104
+ - id: config
105
+ title: Datasource Details
106
+ layout: vertical
107
+ properties:
108
+ - jndi-name
109
+ - connection-url
110
+ - driver-name
111
+ - user-name
112
+ - enabled
113
+ header:
114
+ - JNDI Name
115
+ - Connection URL
116
+ - Driver Name
117
+ - User Name
118
+ - Enabled
119
+ format:
120
+ enabled: boolean
121
+
122
+ color:
123
+ jndi_name:
124
+ with: magenta
125
+ enabled: boolean
126
+ connection_url:
127
+ with: yellow
128
+
129
+ - id: pool
130
+ title: Datasource Pool Statistics
131
+ path: ${PATH}/statistics=pool
132
+ layout: vertical
133
+ properties:
134
+ - ActiveCount
135
+ - AvailableCount
136
+ - AverageBlockingTime
137
+ - AverageCreationTime
138
+ - CreatedCount
139
+ - DestroyedCount
140
+ - MaxCreationTime
141
+ - MaxUsedCount
142
+ - MaxWaitTime
143
+ - TimedOut
144
+ - TotalBlockingTime
145
+ - TotalCreationTime
146
+
147
+ header:
148
+ - Active
149
+ - Available
150
+ - Average Blocking
151
+ - Average Creation
152
+ - Created
153
+ - Destroyed
154
+ - Max Creation
155
+ - Max Wait
156
+ - Timed Out
157
+ - Total Blocking
158
+ - Total Creation
159
+
160
+ health:
161
+ active:
162
+ percentage:
163
+ max: available
164
+ using: active
165
+
166
+ ---
167
+ description: Detail Server Information
168
+ path: /core-service=
169
+ print:
170
+ - id: platform
171
+ title: Operating System Information
172
+ path: ${PATH}platform-mbean/type=operating-system
173
+ properties:
174
+ - name
175
+ - arch
176
+ - version
177
+ - available-processors
178
+ - system-load-average
179
+ header:
180
+ - Name
181
+ - Arch
182
+ - Version
183
+ - Processors
184
+ - System Load
185
+ format:
186
+ system_load: percentage
187
+ color:
188
+ name:
189
+ with: bold.white
190
+ system_load:
191
+ threshold:
192
+ 0.8: bold.red
193
+ 0.7: red
194
+ 0.5: yellow
195
+ 0: green
196
+
91
197
  To configure a table to print, just use the following parameters:
92
198
 
93
- * id: a name that will be joined to the file name to allow print only this table
199
+ * id (required for multiple tables): a name that will be joined to the file name to allow print only this table
94
200
  * title: the table title
95
201
  * layout (horizontal | vertical): how the table must be printed. Use vertical for large number of properties
96
- * properties: an array with the properties (returned by "read-resource") to print in this table
202
+ * properties: an array with the properties (returned by "read-resource") to print in this table, you can use a " -> " to navigate into nested properties (example: heap-memory-usage -> init)
97
203
  * header: an array that maps a header text to the properties
98
204
  * format: a hash that maps formatters to the table columns
99
205
  * color: a hash that maps colors to the table columns
@@ -133,7 +239,7 @@ Examples:
133
239
 
134
240
  ### Adding new components
135
241
 
136
- To add new Colorizers, Formatters or HealthCheckers, just put the code in the "~/.rboss/rboss.rb".
242
+ To add new Colorizers, Formatters or HealthCheckers, just put the code in the "~/.rboss/rboss.rb" file.
137
243
 
138
244
  Example:
139
245
 
@@ -204,7 +310,7 @@ You can use a file in ~/.rboss/twiddle.rb for mapping new mbeans or overriding t
204
310
 
205
311
  And use it normally
206
312
 
207
- rboss- twiddle --http-request
313
+ rboss-twiddle --http-request
208
314
 
209
315
  You can do every action using custom mbeans
210
316
 
@@ -29,6 +29,8 @@ require 'yaml'
29
29
  require 'fileutils'
30
30
  require 'yummi'
31
31
 
32
+ include RBoss::Platform
33
+
32
34
  params = {}
33
35
  @conf_dir = File.expand_path "~/.rboss"
34
36
  servers_file = "#@conf_dir/jboss-cli-servers.yaml"
@@ -36,7 +38,7 @@ servers_file = "#@conf_dir/jboss-cli-servers.yaml"
36
38
  @parameters = {}
37
39
  @servers_file = File.expand_path(servers_file)
38
40
  save = false
39
- params[:jboss_home] = (ENV["RBOSS_CLI_JBOSS_HOME"] or Dir.pwd)
41
+ params[:jboss_home] = (ENV["RBOSS_CLI_HOME"] or Dir.pwd)
40
42
  params[:host] = '127.0.0.1'
41
43
  params[:port] = '9999'
42
44
 
@@ -46,9 +48,15 @@ def load_yaml
46
48
  end
47
49
 
48
50
  opts = OptionParser::new
51
+
52
+ opts.separator "Environment Options".bold.white
53
+
49
54
  opts.on('-j', '--jboss-home PATH', 'Defines the JBOSS_HOME variable') do |home|
50
55
  params[:jboss_home] = home
51
56
  end
57
+
58
+ opts.separator "\nServer Options".bold.white
59
+
52
60
  opts.on('-s URL', 'Defines the JBoss server') do |server|
53
61
  params[:server] = server
54
62
  end
@@ -58,58 +66,38 @@ end
58
66
  opts.on('--port PORT', 'Defines the JBoss admin port') do |port|
59
67
  params[:port] = port
60
68
  end
61
- opts.on('-c', '--connect SERVER_NAME',
62
- "Uses a configured server in #{servers_file}") do |server|
63
- config = load_yaml[server]
64
- abort "No configuration for #{server}" unless config
65
- config.each do |key, value|
66
- params[key.to_sym] = value
67
- end
68
- end
69
- opts.on('--save SERVER_NAME', "Saves the server configuration in #{servers_file}") do |server|
70
- save = server
71
- end
72
- opts.on('--loop INTERVAL', Float, 'Run inside a loop') do |interval|
73
- @loop = true
74
- @interval = interval
75
- end
76
-
77
- opts.on('--no-color', 'Do not colorize output') do
78
- require 'yummi/no_colors'
79
- end
80
69
  opts.on('-u', '--user USER', 'Defines the Admin User') do |user|
81
70
  params[:user] = user
82
71
  end
83
72
  opts.on('-p', '--password PASSWORD', 'Defines the Admin Password') do |password|
84
73
  params[:password] = password
85
74
  end
86
- opts.on('-v', '--verbose', 'Displays jboss-cli commands before execution') do
87
- params[:log_level] = Logger::DEBUG
75
+ opts.on('--save SERVER_NAME', "Saves the server configuration in #{servers_file}") do |server|
76
+ save = server
88
77
  end
89
78
 
90
- opts.on('-o', '--operation NAME',
91
- 'Sets the operation to invoke (Defaults to "read-resource")') do |name|
92
- @operation = name
93
- end
79
+ opts.separator "\nCLI Options".bold.white
94
80
 
95
- opts.on('-l', '--list-operations', 'Lists the available operations for a resource') do
96
- @operation = 'read-operation-names'
81
+ opts.on('--start-cli', 'Starts the JBoss Management CLI connected to the configured server in interactive mode') do
82
+ @start = true
97
83
  end
98
-
99
- opts.on('-d', '--detail-operation NAME', 'Shows the operation details') do |operation_name|
100
- @operation = 'read-operation-description'
101
- @parameters = {'name' => operation_name}
84
+ opts.on('-c', '--connect SERVER_NAME',
85
+ "Uses a configured server in #{servers_file}") do |server|
86
+ config = load_yaml[server]
87
+ abort "No configuration for #{server}" unless config
88
+ config.each do |key, value|
89
+ params[key.to_sym] = value
90
+ end
102
91
  end
103
-
104
- opts.on('--skip-optional', 'Skips optional parameters while invoking a command ') do
105
- params[:skip_optional] = true
92
+ opts.on('--native COMMANDS', Array, 'Executes the given commands using cli interface (each command must be comma separated)') do |commands|
93
+ @native = commands
106
94
  end
107
-
108
- opts.on('-a', '--args PARAMETERS', Array,
109
- 'Specifies parameters in form of (name=value) for use with operation') do |parameters|
110
- @parameters = Hash[(parameters.collect { |p| p.split( /=/, 2) })]
95
+ opts.on('--script FILE', 'Executes the script in the cli interface') do |file|
96
+ @script = file
111
97
  end
112
98
 
99
+ opts.separator "\nMapped Resources".bold.white
100
+
113
101
  RBoss::Cli::Mappings.resource_mappings.each do |name, config|
114
102
  if config[:description]
115
103
  if config[:scan]
@@ -124,17 +112,53 @@ RBoss::Cli::Mappings.resource_mappings.each do |name, config|
124
112
  end
125
113
  end
126
114
 
115
+ opts.separator ""
116
+
127
117
  opts.on('--all', 'Display all available info') do
128
118
  RBoss::Cli::Mappings.resource_mappings.each do |name, config|
129
119
  @resources[name] = nil unless config[:derived]
130
120
  end
131
121
  end
132
122
 
123
+ opts.separator "\nResource Options".bold.white
124
+
125
+ opts.on('-l', '--list-operations', 'Lists the available operations for a resource') do
126
+ @operation = 'read-operation-names'
127
+ end
128
+ opts.on('-d', '--detail-operation NAME', 'Shows the operation details') do |operation_name|
129
+ @operation = 'read-operation-description'
130
+ @parameters = {'name' => operation_name}
131
+ end
132
+ opts.on('-a', '--args PARAMETERS', Array,
133
+ 'Specifies parameters in form of (name=value) for use with operation') do |parameters|
134
+ @parameters = Hash[(parameters.collect { |p| p.split( /=/, 2) })]
135
+ end
136
+ opts.on('-o', '--operation NAME',
137
+ 'Sets the operation to invoke (Defaults to "read-resource")') do |name|
138
+ @operation = name
139
+ end
140
+ opts.on('--skip-optional', 'Skips optional parameters while invoking a command ') do
141
+ params[:skip_optional] = true
142
+ end
143
+
144
+ opts.separator "\nCommon Options".bold.white
145
+
146
+ opts.on('--loop INTERVAL', Float, 'Run inside a loop') do |interval|
147
+ @loop = true
148
+ @interval = interval
149
+ end
150
+ opts.on('--no-color', 'Do not colorize output') do
151
+ require 'yummi/no_colors'
152
+ end
153
+ opts.on('-v', '--verbose', 'Displays jboss-cli commands before execution') do
154
+ params[:log_level] = Logger::DEBUG
155
+ end
133
156
  opts.on("-h", "--help", "Shows this help message") do
134
157
  puts opts; exit
135
158
  end
136
- opts.parse!(ARGV) rescue abort 'Invalid Option! Use --help or -h for usage help.'
159
+ opts.parse!(ARGV) rescue abort 'Invalid Option! Use --help or -h for usage help.'.red
137
160
 
161
+ @jboss_home = params[:jboss_home]
138
162
  @jboss_cli = RBoss::Cli::Invoker::new params
139
163
 
140
164
  if save
@@ -150,7 +174,25 @@ if save
150
174
  f = File.open(@servers_file, 'w')
151
175
  YAML::dump(config, f)
152
176
  f.close
153
- puts "Configuration saved!"
177
+ puts "Configuration saved!".green
178
+ exit 0
179
+ end
180
+
181
+ if @start
182
+ puts "Starting JBoss Management CLI connecting to ".bold.white << "#{@jboss_cli.server}".bold.green
183
+ system "#{@jboss_cli.command} --connect"
184
+ exit 0
185
+ end
186
+
187
+ if @native
188
+ result = @jboss_cli.execute(@native)
189
+ puts result.on_box
190
+ exit 0
191
+ end
192
+
193
+ if @script
194
+ system "#{@jboss_cli.command} --connect --file #{@script}"
195
+ exit 0
154
196
  end
155
197
 
156
198
  if @resources.empty? and not @operation
@@ -164,11 +206,11 @@ end
164
206
  def execute_actions
165
207
  begin
166
208
  content = @jboss_cli.invoke(@operation, @resources, @parameters)
167
- system "clear" if @loop
209
+ system clear if @loop
168
210
  puts Yummi.colorize(Time.now.strftime("At %H:%M:%S%n"), :white) if @loop
169
211
  puts content.chomp
170
212
  rescue RBoss::Cli::InvocationFailed => e
171
- puts Yummi::colorize e.message, :intense_red
213
+ puts e.message.red
172
214
  end
173
215
  end
174
216
 
@@ -182,5 +224,5 @@ begin
182
224
  execute_actions
183
225
 
184
226
  rescue Interrupt
185
- puts Yummi::colorize("Aborted!", :red)
227
+ puts "Aborted!".colorize(:red)
186
228
  end
@@ -89,11 +89,11 @@ end
89
89
  command = mbean_id.to_s.gsub(/_/, '-')
90
90
  if mbean[:scan]
91
91
  opts.on("--#{command} [name_a,name_b,...]", Array,
92
- "Detail \"#{mbean[:description]}\" based on the given names (no names for scan)") do |names|
92
+ "Detail \"#{mbean[:title]}\" based on the given names (no names for scan)") do |names|
93
93
  @mbeans[mbean_id] = names || :all
94
94
  end
95
95
  elsif mbean[:properties]
96
- opts.on("--#{command}", "Detail \"#{mbean[:description]}\"") do
96
+ opts.on("--#{command}", "Detail \"#{mbean[:title]}\"") do
97
97
  @mbeans[mbean_id] = true
98
98
  end
99
99
  end
@@ -95,7 +95,7 @@ module RBoss
95
95
  help_printed = false
96
96
  info = Yummi::colorize("Please input the requested parameters", :yellow)
97
97
  props.each do |name, detail|
98
- next if (@skip_optional and not detail['required'] or detail['default'])
98
+ next if (@skip_optional and (not detail['required'] or detail['default']))
99
99
  parameter_type = detail['type']
100
100
  input = parameters[name]
101
101
  unless input
@@ -107,8 +107,8 @@ module RBoss
107
107
  input_message << ' | ' << RBoss::Colorizers.type(parameter_type).colorize(parameter_type)
108
108
  input_message << ' | ' << Yummi::colorize("Required", :red) if required
109
109
  input_message << ' | ' << Yummi::colorize("Optional", :cyan) unless required
110
- input_message << ' | ' << Yummi::colorize("Default: #{default_value}", :blue) if default_value
111
- input_message << "\n" << Yummi::colorize(detail['description'], :intense_gray)
110
+ input_message << ' | ' << Yummi::colorize("[#{default_value}]", :blue) if default_value
111
+ input_message << "\n" << Yummi::colorize(detail['description'], "bold.black")
112
112
  puts input_message
113
113
  input = get_input
114
114
  while required and input.empty?
@@ -131,18 +131,18 @@ module RBoss
131
131
  end
132
132
  end
133
133
  result = result("#{path}:#{builder}")
134
- puts Yummi::colorize("Result:", :intense_yellow)
135
134
  #TODO print a table using the returned parameters
136
- puts YAML::dump(result)
135
+ YAML::dump(result).on_box
137
136
  end
138
137
 
139
- def execute(*commands)
138
+ def execute(commands)
139
+ commands = [commands] if commands.is_a? String
140
140
  exec = "#{command} --command#{commands.size > 1 ? 's' : ''}=\"#{commands.join ','}\""
141
141
  @logger.debug exec
142
142
  `#{exec}`.chomp
143
143
  end
144
144
 
145
- def result(*commands)
145
+ def result(commands)
146
146
  eval_result(execute commands)
147
147
  end
148
148
 
@@ -45,6 +45,6 @@ print:
45
45
 
46
46
  color:
47
47
  scheme:
48
- with: purple
48
+ with: magenta
49
49
  enabled: boolean
50
50
  secure: boolean
@@ -32,7 +32,7 @@ print:
32
32
 
33
33
  color:
34
34
  jndi_name:
35
- with: purple
35
+ with: magenta
36
36
  enabled: boolean
37
37
  using_jta: boolean
38
38
  connection_url:
@@ -0,0 +1,35 @@
1
+ ---
2
+ description: Details Deployment Scanner
3
+ path: /subsystem=deployment-scanner/scanner=${NAME}
4
+ scan: ls /subsystem=deployment-scanner/scanner
5
+ print:
6
+ - title: Scanner
7
+ layout: vertical
8
+ properties:
9
+ - auto-deploy-exploded
10
+ - auto-deploy-xml
11
+ - auto-deploy-zipped
12
+ - deployment-timeout
13
+ - path
14
+ - relative-to
15
+ - scan-enabled
16
+ - scan-interv
17
+ header:
18
+ - Auto Deploy Exploded
19
+ - Auto Deploy XML
20
+ - Auto Deploy Zipped
21
+ - Deployment Timeout
22
+ - Path
23
+ - Relative To
24
+ - Scan Enabled
25
+ - Scan Interval
26
+ format:
27
+ auto_deploy_exploded: boolean
28
+ auto_deploy_xml: boolean
29
+ auto_deploy_zipped: boolean
30
+ scan_enabled: boolean
31
+ color:
32
+ auto_deploy_exploded: boolean
33
+ auto_deploy_xml: boolean
34
+ auto_deploy_zipped: boolean
35
+ scan_enabled: boolean
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Details Interfaces
3
+ path: /interface=${NAME}
4
+ scan: ls /interface
5
+ print:
6
+ - title: Interfaces
7
+ layout: vertical
8
+ properties:
9
+ - any
10
+ - any-address
11
+ - any-ipv4-address
12
+ - any-ipv6-address
13
+ - inet-address
14
+ - link-local-address
15
+ - loopback
16
+ - loopback-address
17
+ - multicast
18
+ - nic
19
+ - nic-match
20
+ - not
21
+ - point-to-point
22
+ - public-address
23
+ - resolved-address
24
+ - site-local-address
25
+ - subnet-match
26
+ - up
27
+ - virtual
28
+ header:
29
+ - Any
30
+ - Any address
31
+ - Any IPv4 address
32
+ - Any IPv6 Address
33
+ - Inet Address
34
+ - Link Local Address
35
+ - Loopback
36
+ - Loopback Address
37
+ - Multicast
38
+ - NIC
39
+ - NIC Match
40
+ - Not
41
+ - Point-to-point
42
+ - Public Address
43
+ - Resolved Address
44
+ - Site Local Address
45
+ - Subnet Match
46
+ - Up
47
+ - Virtual
@@ -21,10 +21,10 @@ print:
21
21
  system_load: percentage
22
22
  color:
23
23
  name:
24
- with: bold_white
24
+ with: bold.white
25
25
  system_load:
26
26
  threshold:
27
- 0.8: intense_red
27
+ 0.8: bold.red
28
28
  0.7: red
29
29
  0.5: yellow
30
30
  0: green
@@ -47,7 +47,7 @@ print:
47
47
  - Launch Type
48
48
  color:
49
49
  server_name:
50
- with: bold_white
50
+ with: bold.white
51
51
 
52
52
  - id: memory
53
53
  title: Server Memory Usage
@@ -92,10 +92,10 @@ print:
92
92
 
93
93
  color:
94
94
  max_heap:
95
- with: bold_white
95
+ with: bold.white
96
96
 
97
97
  max_non_heap:
98
- with: bold_white
98
+ with: bold.white
99
99
 
100
100
  health:
101
101
  used_heap:
@@ -187,4 +187,4 @@ print:
187
187
  - Temp Directory
188
188
  color:
189
189
  server_name:
190
- with: bold_white
190
+ with: bold.white
@@ -30,7 +30,7 @@ module RBoss
30
30
  @invoker = invoker
31
31
  @context = {
32
32
  :name => '',
33
- :read_resource => 'read-resource(include-runtime=true,recursive=true)'
33
+ :read_resource => 'read-resource(include-runtime=true,recursive=true,include-defaults=true,proxies=true)'
34
34
  }
35
35
  @context[:path] = parse(@config[:path])
36
36
  @tables = []
@@ -42,7 +42,6 @@ module RBoss
42
42
  send operation.to_key, resource_names, arguments
43
43
  else
44
44
  interact_to_invoke operation, resource_names, arguments
45
- Yummi.colorize('Operation Executed!', :green)
46
45
  end
47
46
  end
48
47
 
@@ -62,25 +61,29 @@ module RBoss
62
61
  add_row(p)
63
62
  end
64
63
  end
65
- result = ""
64
+ box = Yummi::TextBox::new
65
+ box.style.border[:color] = "bold.black"
66
+ width = 0
66
67
  @tables.each do |table|
67
- result << table.to_s
68
- result << $/
68
+ width = [width, table.width].max
69
69
  end
70
- result
70
+ @tables.each do |table|
71
+ box << table.to_s
72
+ box.add("-" * width, :color => "bold.black") unless table == @tables.last
73
+ end
74
+ box.to_s
71
75
  end
72
76
 
73
77
  def read_operation_names(resource_name, arguments)
74
- operations = Yummi::colorize('Operations:', :intense_yellow)
75
- operations << $/
78
+ operations = ""
76
79
  with resource_name do
77
80
  result = @invoker.result("#{@context[:path]}:read-operation-names")
78
81
  result.each do |operation|
79
- operations << Yummi::colorize('- ', :intense_purple)
80
- operations << Yummi::colorize(operation, :intense_blue) << $/
82
+ operations << '- '.bold.magenta
83
+ operations << operation.bold.blue << $/
81
84
  end
82
85
  end
83
- operations
86
+ operations.on_box
84
87
  end
85
88
 
86
89
  def read_operation_description (resource_name, arguments)
@@ -88,11 +91,11 @@ module RBoss
88
91
  with resource_name do
89
92
  operation_name = arguments['name']
90
93
  table = Yummi::Table::new
91
- buff << Yummi::colorize(operation_name, :intense_green) << $/
94
+ buff << operation_name.bold.green << $/
92
95
  result = @invoker.result(
93
96
  "#{@context[:path]}:read-operation-description(name=#{operation_name})"
94
97
  )
95
- buff << Yummi::colorize(result['description'], :intense_gray) << $/ * 2
98
+ buff << result['description'].bold.black << $/ * 2
96
99
  table.title = 'Request'
97
100
  table.header = %w(Parameter Type Required Default)
98
101
  table.aliases = %w(name type required default)
@@ -137,13 +140,13 @@ module RBoss
137
140
  buff << table.to_s << $/
138
141
  end
139
142
  end
140
- buff
143
+ buff.chomp.on_box
141
144
  end
142
145
 
143
146
  private
144
147
 
145
148
  def build_nested(detail, parent_name = '', result = [])
146
- if detail['value-type']
149
+ if detail['value-type'].respond_to? :each
147
150
  detail['value-type'].each do |name, _detail|
148
151
  name = "#{parent_name}#{name}"
149
152
  _detail['name'] = name
@@ -156,7 +159,7 @@ module RBoss
156
159
 
157
160
  def interact_to_invoke(operation, resource_name, arguments)
158
161
  with resource_name do
159
- @invoker.gets_and_invoke(@context[:path], operation, arguments)
162
+ return @invoker.gets_and_invoke(@context[:path], operation, arguments)
160
163
  end
161
164
  end
162
165
 
@@ -70,6 +70,7 @@ module RBoss
70
70
  def eval_result(result)
71
71
  undefined = nil #prevents error because undefined means nil in result object
72
72
  result = result.gsub(/(\d+)L/, '\1') #removes the long type mark
73
+ result = result.gsub(/expression\s/, '') #removes the expression indicator
73
74
  result = eval(result)
74
75
  raise InvocationFailed::new(result["failure-description"]) if result["outcome"] == "failed"
75
76
  result["result"]
@@ -40,6 +40,10 @@ module RBoss
40
40
  def run_conf
41
41
  "#{@jboss.profile}/run.conf.bat"
42
42
  end
43
+
44
+ def clear
45
+ "cls"
46
+ end
43
47
  end
44
48
  else
45
49
  module Platform
@@ -58,6 +62,10 @@ module RBoss
58
62
  def run_conf
59
63
  "#{@jboss.profile}/run.conf"
60
64
  end
65
+
66
+ def clear
67
+ "clear"
68
+ end
61
69
  end
62
70
  end
63
71
 
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module RBoss
24
- VERSION = "0.8.3"
24
+ VERSION = "0.9.0"
25
25
  end
@@ -22,7 +22,7 @@ module RBoss
22
22
  RBoss::Cli::ResultParser::LONG then
23
23
  :blue
24
24
  when RBoss::Cli::ResultParser::BOOLEAN then
25
- :purple
25
+ :magenta
26
26
  else
27
27
  :cyan
28
28
  end
@@ -38,6 +38,7 @@ module RBoss
38
38
 
39
39
  def build_table
40
40
  if @name_column
41
+ @config[:header] ||= []
41
42
  @config[:header] = [] if @only_name
42
43
  @config[:header] = [@name_column] + @config[:header]
43
44
  end
@@ -59,7 +60,7 @@ module RBoss
59
60
  table.format_null :with => 'undefined'
60
61
  table.colorize_null :with => :red
61
62
 
62
- table.colorize :name, :with => :bold_white if @name_column
63
+ table.colorize :name, :with => "bold.white" if @name_column
63
64
 
64
65
  table
65
66
  end
@@ -2,22 +2,22 @@
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
  require "rboss/version"
4
4
 
5
- Gem::Specification.new do |s|
6
- s.name = "rboss"
7
- s.version = RBoss::VERSION
8
- s.authors = ["Ataxexe"]
9
- s.email = ["ataxexe@gmail.com"]
10
- s.homepage = "https://github.com/ataxexe/rboss"
11
- s.summary = %q{Manage your JBoss from your command line.}
12
- s.description = %q{Rboss gives you a set of command line tools to configure a JBoss instance
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "rboss"
7
+ gem.version = RBoss::VERSION
8
+ gem.authors = ["Ataxexe"]
9
+ gem.email = ["ataxexe@gmail.com"]
10
+ gem.homepage = "https://github.com/ataxexe/rboss"
11
+ gem.summary = %q{Manage your JBoss from your command line.}
12
+ gem.description = %q{Rboss gives you a set of command line tools to configure a JBoss instance
13
13
  and use jboss-cli and twiddle wrapped by an elegant interface}
14
14
 
15
- s.rubyforge_project = "rboss"
15
+ gem.rubyforge_project = "rboss"
16
16
 
17
- s.add_dependency 'yummi', '>=0.7.1'
17
+ gem.add_dependency 'yummi', '>=0.9.0'
18
18
 
19
- s.files = `git ls-files`.split("\n")
20
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
- s.require_paths = ["lib"]
19
+ gem.files = `git ls-files`.split("\n")
20
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ gem.require_paths = ["lib"]
23
23
  end
data/rboss.iml CHANGED
@@ -8,10 +8,9 @@
8
8
  <sourceFolder url="file://$MODULE_DIR$/bin" isTestSource="false" />
9
9
  <excludeFolder url="file://$MODULE_DIR$/pkg" />
10
10
  </content>
11
- <orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-p194" jdkType="RUBY_SDK" />
11
+ <orderEntry type="inheritedJdk" />
12
12
  <orderEntry type="sourceFolder" forTests="false" />
13
- <orderEntry type="library" scope="PROVIDED" name="bundler (v1.1.4, RVM: ruby-1.9.3-p194) [gem]" level="application" />
14
- <orderEntry type="library" scope="PROVIDED" name="yummi (v0.6.2, RVM: ruby-1.9.3-p194) [gem]" level="application" />
13
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.2.3, RVM: ruby-1.9.3-p374) [gem]" level="application" />
15
14
  </component>
16
15
  <component name="org.twodividedbyzero.idea.findbugs">
17
16
  <option name="_basePreferences">
data/rboss.ipr CHANGED
@@ -86,7 +86,11 @@
86
86
  <entry name="?*.ftl" />
87
87
  <entry name="trace.info" />
88
88
  </wildcardResourcePatterns>
89
- <annotationProcessing enabled="false" useClasspath="true" />
89
+ <annotationProcessing>
90
+ <profile default="true" name="Default" enabled="false">
91
+ <processorPath useClasspath="true" />
92
+ </profile>
93
+ </annotationProcessing>
90
94
  </component>
91
95
  <component name="CopyrightManager" default="">
92
96
  <copyright>
@@ -157,6 +161,11 @@
157
161
  <option name="LOCALE" />
158
162
  <option name="OPEN_IN_BROWSER" value="true" />
159
163
  </component>
164
+ <component name="Jenkins.Application.Settings">
165
+ <option name="rssSettings">
166
+ <RssSettings />
167
+ </option>
168
+ </component>
160
169
  <component name="Palette2">
161
170
  <group name="Swing">
162
171
  <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
@@ -314,7 +323,7 @@
314
323
  <component name="ProjectResources">
315
324
  <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
316
325
  </component>
317
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="RVM: ruby-1.9.3-p194" project-jdk-type="RUBY_SDK">
326
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="RVM: ruby-1.9.3-p374" project-jdk-type="RUBY_SDK">
318
327
  <output url="file://$PROJECT_DIR$/out" />
319
328
  </component>
320
329
  <component name="ResourceManagerContainer">
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rboss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-10 00:00:00.000000000 Z
12
+ date: 2013-05-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yummi
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.7.1
21
+ version: 0.9.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.7.1
29
+ version: 0.9.0
30
30
  description: ! "Rboss gives you a set of command line tools to configure a JBoss instance\n
31
31
  \ and use jboss-cli and twiddle wrapped by an elegant interface"
32
32
  email:
@@ -51,6 +51,8 @@ files:
51
51
  - lib/rboss/cli/mappings.rb
52
52
  - lib/rboss/cli/mappings/resources/connector.yaml
53
53
  - lib/rboss/cli/mappings/resources/datasource.yaml
54
+ - lib/rboss/cli/mappings/resources/deployment-scanner.yaml
55
+ - lib/rboss/cli/mappings/resources/interface.yaml
54
56
  - lib/rboss/cli/mappings/resources/jdbc_driver.yaml
55
57
  - lib/rboss/cli/mappings/resources/server.yaml
56
58
  - lib/rboss/cli/resource.rb