rboss 0.2.3 → 0.2.4
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.
- data/README.md +40 -18
- data/bin/jboss-profile +10 -4
- data/bin/twiddle +86 -19
- data/lib/rboss/components/datasource.rb +1 -20
- data/lib/rboss/jboss_path.rb +19 -1
- data/lib/rboss/twiddle.rb +1 -1
- data/lib/rboss/twiddle/base_monitor.rb +11 -1
- data/lib/rboss/twiddle/mbean.rb +26 -15
- data/lib/rboss/twiddle/monitor.rb +33 -50
- data/lib/rboss/twiddle/twiddle.rb +13 -13
- data/lib/rboss/version.rb +1 -1
- metadata +2 -5
- data/examples/jboss_profile/jbb_profile_1.yaml +0 -32
- data/examples/jboss_profile/jbb_profile_2.yaml +0 -32
- data/examples/jboss_profile/jboss_profile.yaml +0 -7
data/README.md
CHANGED
@@ -35,7 +35,7 @@ Combine with "watch" to get a simple and instantly monitoring:
|
|
35
35
|
Retrieve property values with --get:
|
36
36
|
|
37
37
|
twiddle --get webapp:jmx-console,maxSessions
|
38
|
-
twiddle --get
|
38
|
+
twiddle --get server-info,FreeMemory
|
39
39
|
|
40
40
|
Set values with --set:
|
41
41
|
|
@@ -44,11 +44,11 @@ Set values with --set:
|
|
44
44
|
Execute commands with --invoke:
|
45
45
|
|
46
46
|
twiddle --invoke server,shutdown
|
47
|
-
twiddle --invoke
|
47
|
+
twiddle --invoke web-deployment:jmx-console,stop
|
48
48
|
|
49
49
|
Extending mbeans
|
50
50
|
|
51
|
-
You can use a file in ~/.rboss.
|
51
|
+
You can use a file in ~/.rboss/twiddle.rb for mapping new mbeans or overriding the defaults
|
52
52
|
|
53
53
|
JBoss::Twiddle::Monitor.defaults[:http_request] = {
|
54
54
|
:description => 'Request for http protocol',
|
@@ -62,7 +62,15 @@ And use it normally
|
|
62
62
|
|
63
63
|
You can do every action using custom mbeans
|
64
64
|
|
65
|
-
twiddle --invoke
|
65
|
+
twiddle --invoke http-request,resetCounters
|
66
|
+
|
67
|
+
Configurations can be saved using --save
|
68
|
+
|
69
|
+
twiddle --save jon --port 2099
|
70
|
+
|
71
|
+
And used with -c or --config
|
72
|
+
|
73
|
+
twiddle -c jon --server-config
|
66
74
|
|
67
75
|
Using jboss-profile
|
68
76
|
-----------
|
@@ -152,26 +160,40 @@ For saving the file, the configuration :name will be used in the form "${name}-d
|
|
152
160
|
Example:
|
153
161
|
|
154
162
|
- datasource:
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
163
|
+
:type: postgres
|
164
|
+
:attributes:
|
165
|
+
:user_name: postgres
|
166
|
+
:password: postgres
|
167
|
+
:connection_url: jdbc:postgresql://localhost:5432/sample_database
|
168
|
+
:min_pool_size: 5
|
169
|
+
:max_pool_size: 15
|
162
170
|
|
163
171
|
### Replacing hypersonic
|
164
172
|
|
165
173
|
The same as Datasouce, but use the "default_ds" component instead.
|
166
174
|
|
167
175
|
- default_ds:
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
176
|
+
:type: postgres
|
177
|
+
:attributes:
|
178
|
+
:user_name: postgres
|
179
|
+
:password: postgres
|
180
|
+
:connection_url: jdbc:postgresql://localhost:5432/jboss_db
|
181
|
+
:min_pool_size: 5
|
182
|
+
:max_pool_size: 15
|
183
|
+
|
184
|
+
This will change the DefaultDS mapping to the desired datasource. Since JBoss SOA-Platform
|
185
|
+
already have a tool to do the work, it will be called with the correct mapped options
|
186
|
+
(see the file $SOAP_HOME/tools/schema/build.properties for the supported options)
|
187
|
+
|
188
|
+
- default_ds:
|
189
|
+
source.dir: postgresql84
|
190
|
+
db.name: jboss_soap_db
|
191
|
+
db.hostname: localhost
|
192
|
+
db.port: 5432
|
193
|
+
db.username: postgres
|
194
|
+
db.password: postgres
|
195
|
+
db.minpoolsize: 5
|
196
|
+
db.maxpoolsize: 15
|
175
197
|
|
176
198
|
### Installing mod_cluster
|
177
199
|
|
data/bin/jboss-profile
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
23
|
# THE SOFTWARE.
|
24
24
|
|
25
|
-
|
25
|
+
require_relative '../lib/rboss'
|
26
26
|
require 'optparse'
|
27
27
|
require 'yaml'
|
28
28
|
require 'logger'
|
@@ -50,9 +50,7 @@ end
|
|
50
50
|
opts.on('-u', '--update', 'Just update the profile folder') do
|
51
51
|
create = false
|
52
52
|
end
|
53
|
-
opts.on('-c', '--config-file FILE',
|
54
|
-
'Defines the configuration file for the instance
|
55
|
-
(see the examples for more details)') do |yaml|
|
53
|
+
opts.on('-c', '--config-file FILE', 'Defines the configuration file for the instance') do |yaml|
|
56
54
|
config_file = File.expand_path(yaml)
|
57
55
|
config = YAML::load File.open(config_file)
|
58
56
|
config.each do |c|
|
@@ -67,6 +65,9 @@ opts.on('-d', '--debug', '--verbose', 'Displays shell commands') do
|
|
67
65
|
include FileUtils::Verbose
|
68
66
|
params[:log_level] = Logger::DEBUG
|
69
67
|
end
|
68
|
+
opts.on("--encrypt PASSWORD", "Encrypts the given password for using with a SecureIdentityLoginModule") do |password|
|
69
|
+
params[:encrypt] = password
|
70
|
+
end
|
70
71
|
opts.on("-h", "--help", "Shows this help message") { puts opts; exit }
|
71
72
|
opts.parse!(ARGV) rescue abort 'Invalid Option! Use --help or -h for usage help.'
|
72
73
|
|
@@ -78,6 +79,11 @@ end
|
|
78
79
|
params[:jboss_home] ||= Dir.pwd unless ENV["JBOSS_HOME"]
|
79
80
|
profile = JBoss::Profile::new params
|
80
81
|
|
82
|
+
if params[:encrypt]
|
83
|
+
puts "Encrypted password: " + profile.jboss.encrypt(params.delete :encrypt)
|
84
|
+
exit
|
85
|
+
end
|
86
|
+
|
81
87
|
if config
|
82
88
|
config.each do |var|
|
83
89
|
if var.is_a? Hash
|
data/bin/twiddle
CHANGED
@@ -25,31 +25,47 @@
|
|
25
25
|
require_relative '../lib/rboss'
|
26
26
|
require 'optparse'
|
27
27
|
require 'yaml'
|
28
|
+
require 'fileutils'
|
28
29
|
|
29
30
|
params = {}
|
30
31
|
mbeans = {}
|
31
32
|
commands = {}
|
32
33
|
no_details = false
|
34
|
+
servers_file = "~/.rboss/twiddle.yaml"
|
35
|
+
@servers_file = File.expand_path(servers_file)
|
36
|
+
save = false
|
33
37
|
params[:jboss_home] = (ENV["JBOSS_HOME"] or ENV["TWIDDLE_HOME"] or Dir.pwd)
|
34
|
-
|
38
|
+
|
35
39
|
defaults = JBoss::Twiddle::Monitor::defaults
|
36
40
|
|
41
|
+
def load_yaml
|
42
|
+
return Hash::new unless File.exist?(@servers_file)
|
43
|
+
YAML::load_file(@servers_file)
|
44
|
+
end
|
45
|
+
|
37
46
|
opts = OptionParser::new
|
38
47
|
opts.on('-j', '--jboss-home PATH', 'Defines the JBOSS_HOME variable') do |home|
|
39
48
|
params[:jboss_home] = home
|
40
49
|
end
|
41
|
-
opts.on('-s
|
42
|
-
params[:
|
50
|
+
opts.on('-s URL', 'Defines the JBoss server') do |server|
|
51
|
+
params[:server] = server
|
43
52
|
end
|
44
53
|
opts.on('--host HOST', 'Defines the JBoss host') do |host|
|
45
|
-
params[:
|
54
|
+
params[:host] = host
|
46
55
|
end
|
47
56
|
opts.on('--port PORT', 'Defines the JBoss jnp port') do |port|
|
48
|
-
params[:
|
57
|
+
params[:port] = port
|
58
|
+
end
|
59
|
+
opts.on('-c', '--config SERVER_NAME',
|
60
|
+
"Uses a configured server in #{servers_file}") do |server|
|
61
|
+
config = load_yaml[server]
|
62
|
+
abort "No configuration for #{server}" unless config
|
63
|
+
config.each do |key, value|
|
64
|
+
params[key.to_sym] = value
|
65
|
+
end
|
49
66
|
end
|
50
|
-
opts.on('
|
51
|
-
|
52
|
-
exec_file = File.expand_path path
|
67
|
+
opts.on('--save SERVER_NAME', "Saves the server configuration in #{servers_file}") do |server|
|
68
|
+
save = server
|
53
69
|
end
|
54
70
|
|
55
71
|
opts.on('--all', "Detail all mapped mbeans") do
|
@@ -62,7 +78,7 @@ opts.on('--all', "Detail all mapped mbeans") do
|
|
62
78
|
end
|
63
79
|
end
|
64
80
|
|
65
|
-
(defaults.sort_by {|k,v| k}).each do |mbean_id, mbean|
|
81
|
+
(defaults.sort_by { |k, v| k }).each do |mbean_id, mbean|
|
66
82
|
command = mbean_id.to_s.gsub /_/, '-'
|
67
83
|
if mbean[:scan]
|
68
84
|
opts.on("--#{command} [name_a,name_b,...]", Array,
|
@@ -84,13 +100,21 @@ opts.on('--get mbean_id[:resource_name],property', Array,
|
|
84
100
|
'Gets a value to a resource that the monitor knows') do |get|
|
85
101
|
commands[:get] = get
|
86
102
|
end
|
103
|
+
opts.on('--query mbean_id[:resource_name],[arguments]', Array,
|
104
|
+
'Queries the mbean') do |query|
|
105
|
+
commands[:query] = query
|
106
|
+
end
|
107
|
+
opts.on('--info mbean_id[:resource_name],[arguments]', Array,
|
108
|
+
'List mbean info') do |info|
|
109
|
+
commands[:info] = info
|
110
|
+
end
|
87
111
|
opts.on('--invoke mbean_id[:resource_name],method,[,args...]', Array,
|
88
112
|
'Invokes a resoruce method') do |invoke|
|
89
113
|
commands[:invoke] = invoke
|
90
114
|
end
|
91
115
|
opts.on("-l", "--list", "List the mbeans mappings") do
|
92
|
-
(defaults.sort_by {|k,v| k}).each do |mbean_id, mbean|
|
93
|
-
puts " - #{mbean_id}"
|
116
|
+
(defaults.sort_by { |k, v| k }).each do |mbean_id, mbean|
|
117
|
+
puts " - #{mbean_id.to_s.gsub(/_/, '-')}"
|
94
118
|
[:description, :pattern].each do |detail|
|
95
119
|
puts " - #{detail} : #{mbean[detail]}"
|
96
120
|
end
|
@@ -101,11 +125,11 @@ end
|
|
101
125
|
opts.on('--no-detail', 'Do not detail mbeans that needs a name') do
|
102
126
|
no_details = true
|
103
127
|
end
|
104
|
-
opts.on('-u', '--
|
105
|
-
params[:
|
128
|
+
opts.on('-u', '--user USER', 'Defines the JMX User') do |user|
|
129
|
+
params[:user] = user
|
106
130
|
end
|
107
|
-
opts.on('-p', '--
|
108
|
-
params[:
|
131
|
+
opts.on('-p', '--password PASSWORD', 'Defines the JMX Password') do |password|
|
132
|
+
params[:password] = password
|
109
133
|
end
|
110
134
|
opts.on("-h", "--help", "Shows this help message") do
|
111
135
|
puts opts; exit
|
@@ -115,15 +139,42 @@ opts.parse!(ARGV) rescue abort 'Invalid Option! Use --help or -h for usage help.
|
|
115
139
|
twiddle = JBoss::Twiddle::Invoker::new params
|
116
140
|
monitor = twiddle.monitor
|
117
141
|
|
118
|
-
|
142
|
+
no_process = mbeans.empty? and commands.empty?
|
143
|
+
|
144
|
+
if save
|
145
|
+
config = load_yaml
|
146
|
+
config[save] ||= {}
|
147
|
+
server_config = config[save]
|
148
|
+
params.delete :jboss_home
|
149
|
+
params.each do |key, value|
|
150
|
+
server_config[key.to_s] = value
|
151
|
+
end
|
152
|
+
FileUtils::mkdir_p File.expand_path("~/.rboss")
|
153
|
+
FileUtils::touch @servers_file
|
154
|
+
f = File.open(@servers_file, 'w')
|
155
|
+
YAML::dump(config, f)
|
156
|
+
f.close
|
157
|
+
if no_process
|
158
|
+
puts "Configuration saved!"
|
159
|
+
exit
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
if no_process
|
119
164
|
puts opts
|
120
165
|
exit
|
121
166
|
end
|
122
167
|
|
123
|
-
eval File.read(exec_file), binding, exec_file if exec_file
|
124
|
-
|
125
168
|
def extract resource
|
126
169
|
mbean, name = resource.split(/:/)
|
170
|
+
mbean.gsub! /-/, '_'
|
171
|
+
[mbean, name]
|
172
|
+
end
|
173
|
+
|
174
|
+
def normalize args
|
175
|
+
args.collect do |arg|
|
176
|
+
"\"#{arg}\""
|
177
|
+
end
|
127
178
|
end
|
128
179
|
|
129
180
|
if commands[:set]
|
@@ -150,9 +201,25 @@ if commands[:invoke]
|
|
150
201
|
puts twiddle.invoke :mbean => mbean.to_sym,
|
151
202
|
:name => name,
|
152
203
|
:method => array[1],
|
153
|
-
:args => array[2..-1]
|
204
|
+
:args => normalize(array[2..-1])
|
205
|
+
end
|
206
|
+
if commands[:query]
|
207
|
+
array = commands[:query]
|
208
|
+
mbean, name = extract array[0]
|
209
|
+
puts twiddle.query :mbean => mbean.to_sym,
|
210
|
+
:name => name,
|
211
|
+
:args => normalize(array[1..-1])
|
154
212
|
end
|
155
213
|
|
214
|
+
if commands[:info]
|
215
|
+
array = commands[:info]
|
216
|
+
mbean, name = extract array[0]
|
217
|
+
puts twiddle.info :mbean => mbean.to_sym,
|
218
|
+
:name => name,
|
219
|
+
:args => normalize(array[1..-1])
|
220
|
+
end
|
221
|
+
|
222
|
+
|
156
223
|
mbeans.each do |mbean_id, resources|
|
157
224
|
puts " - #{defaults[mbean_id][:description]}"
|
158
225
|
if resources.is_a? TrueClass
|
@@ -86,7 +86,7 @@ module JBoss
|
|
86
86
|
if @encrypt
|
87
87
|
@user = @attributes.delete :user
|
88
88
|
@user = @attributes.delete :user_name unless @user
|
89
|
-
@password = encrypt @attributes.delete
|
89
|
+
@password = @jboss.encrypt @attributes.delete(:password)
|
90
90
|
end
|
91
91
|
processor = new_file_processor
|
92
92
|
processor.with "#{@jboss.home}/docs/examples/jca/#{@type}-ds.xml", :xml do |action|
|
@@ -173,25 +173,6 @@ module JBoss
|
|
173
173
|
XML
|
174
174
|
end
|
175
175
|
|
176
|
-
def jboss_logging_lib_path
|
177
|
-
%W{#{@jboss.home}/client/jboss-logging-spi.jar #{@jboss.home}/client/jboss-logging.jar}.each do |path|
|
178
|
-
return path if File.exist? path
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
def jbosssx_lib_path
|
183
|
-
%W{#{@jboss.home}/lib/jbosssx.jar #{@jboss.home}/common/lib/jbosssx.jar}.each do |path|
|
184
|
-
return path if File.exist? path
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
# Encrypts the given password using the SecureIdentityLoginModule
|
189
|
-
def encrypt password
|
190
|
-
cmd = "java -cp #{jboss_logging_lib_path}:#{jbosssx_lib_path} org.jboss.resource.security.SecureIdentityLoginModule #{password}"
|
191
|
-
@logger.debug cmd
|
192
|
-
encrypted = `#{cmd}`
|
193
|
-
encrypted.chomp.split(/:/)[1].strip
|
194
|
-
end
|
195
176
|
|
196
177
|
end
|
197
178
|
|
data/lib/rboss/jboss_path.rb
CHANGED
@@ -39,7 +39,7 @@ module JBoss
|
|
39
39
|
}.merge params
|
40
40
|
@home = jboss_home
|
41
41
|
@profile ="#{@home}/server/#{params[:profile]}"
|
42
|
-
@profile_name =
|
42
|
+
@profile_name = params[:profile].to_s
|
43
43
|
@type = params[:type]
|
44
44
|
@version = params[:version]
|
45
45
|
end
|
@@ -48,6 +48,24 @@ module JBoss
|
|
48
48
|
@home
|
49
49
|
end
|
50
50
|
|
51
|
+
def jboss_logging_lib_path
|
52
|
+
%W{#{@home}/client/jboss-logging-spi.jar #{@home}/client/jboss-logging.jar}.each do |path|
|
53
|
+
return path if File.exist? path
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def jbosssx_lib_path
|
58
|
+
%W{#{@home}/lib/jbosssx.jar #{@home}/common/lib/jbosssx.jar}.each do |path|
|
59
|
+
return path if File.exist? path
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Encrypts the given password using the SecureIdentityLoginModule
|
64
|
+
def encrypt password
|
65
|
+
encrypted = `java -cp #{jboss_logging_lib_path}:#{jbosssx_lib_path} org.jboss.resource.security.SecureIdentityLoginModule #{password}`
|
66
|
+
encrypted.chomp.split(/:/)[1].strip
|
67
|
+
end
|
68
|
+
|
51
69
|
end
|
52
70
|
|
53
71
|
end
|
data/lib/rboss/twiddle.rb
CHANGED
@@ -24,6 +24,6 @@ require_relative 'twiddle/base_monitor'
|
|
24
24
|
require_relative 'twiddle/mbean'
|
25
25
|
require_relative 'twiddle/monitor'
|
26
26
|
|
27
|
-
file = ENV["RBOSS_TWIDDLE"] || File.expand_path("~/.rboss.
|
27
|
+
file = ENV["RBOSS_TWIDDLE"] || File.expand_path("~/.rboss/twiddle.rb")
|
28
28
|
|
29
29
|
eval File.read(file), binding, file if File.exist? file
|
@@ -61,7 +61,17 @@ module JBoss
|
|
61
61
|
|
62
62
|
def invoke params
|
63
63
|
mbean = extract params
|
64
|
-
mbean.
|
64
|
+
mbean.invoke params[:method], *params[:args]
|
65
|
+
end
|
66
|
+
|
67
|
+
def query params
|
68
|
+
mbean = extract params
|
69
|
+
execute :query, mbean.name, *params[:args]
|
70
|
+
end
|
71
|
+
|
72
|
+
def info params
|
73
|
+
mbean = extract params
|
74
|
+
execute :info, mbean.name, *params[:args]
|
65
75
|
end
|
66
76
|
|
67
77
|
private
|
data/lib/rboss/twiddle/mbean.rb
CHANGED
@@ -28,8 +28,8 @@ module JBoss
|
|
28
28
|
attr_reader :pattern
|
29
29
|
attr_accessor :resource, :twiddle, :description
|
30
30
|
|
31
|
-
@@
|
32
|
-
resouces =
|
31
|
+
@@__detail__resourced__ = proc do |resources, &block|
|
32
|
+
resouces = parse_resource resources
|
33
33
|
details = {}
|
34
34
|
resouces.each do |resource|
|
35
35
|
with resource do
|
@@ -43,7 +43,7 @@ module JBoss
|
|
43
43
|
details
|
44
44
|
end
|
45
45
|
|
46
|
-
@@
|
46
|
+
@@__detail__ = proc do |&block|
|
47
47
|
details = {}
|
48
48
|
@properties.each do |property|
|
49
49
|
details[property] = self[property].value
|
@@ -58,22 +58,25 @@ module JBoss
|
|
58
58
|
@properties = params[:properties]
|
59
59
|
@description = params[:description]
|
60
60
|
if params[:scan]
|
61
|
-
(
|
61
|
+
(
|
62
|
+
class << self
|
62
63
|
self
|
63
64
|
end).send :define_method, :scan, ¶ms[:scan]
|
64
|
-
(
|
65
|
+
(
|
66
|
+
class << self
|
65
67
|
self
|
66
68
|
end).send :define_method, :each do |&block|
|
67
69
|
scan.each &block
|
68
70
|
end
|
69
71
|
end
|
70
72
|
if params[:properties]
|
71
|
-
(
|
73
|
+
(
|
74
|
+
class << self
|
72
75
|
self
|
73
76
|
end).send :define_method,
|
74
77
|
:detail,
|
75
78
|
&(params[:scan] ?
|
76
|
-
|
79
|
+
@@__detail__resourced__ : @@__detail__)
|
77
80
|
end
|
78
81
|
end
|
79
82
|
|
@@ -86,13 +89,25 @@ module JBoss
|
|
86
89
|
self
|
87
90
|
end
|
88
91
|
|
92
|
+
def name
|
93
|
+
if pattern['#{resource}'] and not @resource
|
94
|
+
domain,name = pattern.split ':'
|
95
|
+
name.gsub! /[^,]+\{resource\}/, ''
|
96
|
+
name << "," if name.empty?
|
97
|
+
name << "*"
|
98
|
+
return "#{domain}:#{name}"
|
99
|
+
end
|
100
|
+
resource = @resource
|
101
|
+
eval("\"#{pattern}\"")
|
102
|
+
end
|
103
|
+
|
89
104
|
def [] property
|
90
105
|
resource = @resource
|
91
106
|
query = eval("\"#{pattern}\"")
|
92
107
|
result = @twiddle.execute(:get, query, property)
|
93
108
|
|
94
109
|
def result.value
|
95
|
-
self.split(/=/)[1]
|
110
|
+
self.split(/=/)[1..-1].join "="
|
96
111
|
end
|
97
112
|
|
98
113
|
result
|
@@ -104,11 +119,7 @@ module JBoss
|
|
104
119
|
@twiddle.execute :set, query, property, value
|
105
120
|
end
|
106
121
|
|
107
|
-
def
|
108
|
-
_invoke_ method, args, block
|
109
|
-
end
|
110
|
-
|
111
|
-
def _invoke_ method, *args, &block
|
122
|
+
def invoke method, *args, &block
|
112
123
|
resource = @resource
|
113
124
|
query = eval("\"#{pattern} #{method}\"")
|
114
125
|
return_value = @twiddle.execute :invoke, query, args
|
@@ -118,14 +129,14 @@ module JBoss
|
|
118
129
|
return_value
|
119
130
|
end
|
120
131
|
|
121
|
-
def
|
132
|
+
def query query, &block
|
122
133
|
result = @twiddle.execute(:query, query)
|
123
134
|
return [] unless result
|
124
135
|
result = result.split /\s+/
|
125
136
|
block ? result.collect(&block) : result
|
126
137
|
end
|
127
138
|
|
128
|
-
def
|
139
|
+
def parse_resource resources
|
129
140
|
return scan if resources == :all
|
130
141
|
return [resources] unless resources.respond_to? :each
|
131
142
|
resources
|
@@ -34,7 +34,7 @@ module JBoss
|
|
34
34
|
:pattern => 'jboss.web:type=Manager,host=localhost,path=/#{resource}',
|
35
35
|
:properties => %W(activeSessions maxActive),
|
36
36
|
:scan => proc do
|
37
|
-
|
37
|
+
query "jboss.web:type=Manager,*" do |path|
|
38
38
|
path.gsub! "jboss.web:type=Manager,path=/", ""
|
39
39
|
path.gsub! /,host=.+/, ''
|
40
40
|
path
|
@@ -50,26 +50,46 @@ module JBoss
|
|
50
50
|
:pattern => 'jboss.web:type=ThreadPool,name=#{resource}',
|
51
51
|
:properties => %W(maxThreads currentThreadCount currentThreadsBusy),
|
52
52
|
:scan => proc do
|
53
|
-
|
53
|
+
query "jboss.web:type=ThreadPool,*" do |path|
|
54
54
|
path.gsub "jboss.web:type=ThreadPool,name=", ""
|
55
55
|
end
|
56
56
|
end
|
57
57
|
},
|
58
|
+
:cached_connection_manager => {
|
59
|
+
:description => 'JBoss JCA cached connections',
|
60
|
+
:pattern => 'jboss.jca:service=CachedConnectionManager',
|
61
|
+
:properties => %W(InUseConnections)
|
62
|
+
},
|
63
|
+
:main_deployer => {
|
64
|
+
:description => 'Main Deployer',
|
65
|
+
:pattern => 'jboss.system:service=MainDeployer'
|
66
|
+
},
|
58
67
|
:engine => {
|
59
68
|
:description => 'JBossWeb engine',
|
60
69
|
:pattern => 'jboss.web:type=Engine',
|
61
70
|
:properties => %W(jvmRoute name defaultHost)
|
62
71
|
},
|
72
|
+
:log4j => {
|
73
|
+
:description => 'JBoss Log4J Service',
|
74
|
+
:pattern => 'jboss.system:service=Logging,type=Log4jService',
|
75
|
+
:properties => %W(DefaultJBossServerLogThreshold)
|
76
|
+
},
|
77
|
+
:server => {
|
78
|
+
:description => 'JBoss Server specifications',
|
79
|
+
:pattern => 'jboss.system:type=Server',
|
80
|
+
:properties => %W(VersionName VersionNumber Version)
|
81
|
+
},
|
63
82
|
:server_info => {
|
64
|
-
:description => 'JBoss
|
83
|
+
:description => 'JBoss Server runtime info',
|
65
84
|
:pattern => 'jboss.system:type=ServerInfo',
|
66
85
|
:properties => %W(ActiveThreadCount MaxMemory FreeMemory AvailableProcessors
|
67
|
-
HostAddress JavaVendor JavaVersion
|
86
|
+
HostAddress JavaVendor JavaVersion JavaVMVersion
|
87
|
+
JavaVMVendor JavaVMName OSName OSArch)
|
68
88
|
},
|
69
|
-
:
|
70
|
-
:description => 'JBoss
|
71
|
-
:pattern => 'jboss.system:type=
|
72
|
-
:properties => %W(
|
89
|
+
:server_config => {
|
90
|
+
:description => 'JBoss Server configuration',
|
91
|
+
:pattern => 'jboss.system:type=ServerConfig',
|
92
|
+
:properties => %W(ServerName HomeDir ServerLogDir ServerHomeURL)
|
73
93
|
},
|
74
94
|
:system_properties => {
|
75
95
|
:description => 'System properties',
|
@@ -80,7 +100,7 @@ module JBoss
|
|
80
100
|
:pattern => 'jboss.web:type=GlobalRequestProcessor,name=#{resource}',
|
81
101
|
:properties => %W(requestCount errorCount maxTime),
|
82
102
|
:scan => proc do
|
83
|
-
|
103
|
+
query "jboss.web:type=ThreadPool,*" do |path|
|
84
104
|
path.gsub "jboss.web:type=ThreadPool,name=", ""
|
85
105
|
end
|
86
106
|
end
|
@@ -91,7 +111,7 @@ module JBoss
|
|
91
111
|
:properties => %W(MinSize MaxSize AvailableConnectionCount
|
92
112
|
InUseConnectionCount ConnectionCount),
|
93
113
|
:scan => proc do
|
94
|
-
|
114
|
+
query "jboss.jca:service=ManagedConnectionPool,*" do |path|
|
95
115
|
path.gsub "jboss.jca:service=ManagedConnectionPool,name=", ""
|
96
116
|
end
|
97
117
|
end
|
@@ -102,7 +122,7 @@ module JBoss
|
|
102
122
|
:properties => %W(Name JNDIName MessageCount DeliveringCount
|
103
123
|
ScheduledMessageCount MaxSize FullSize Clustered ConsumerCount),
|
104
124
|
:scan => proc do
|
105
|
-
|
125
|
+
query "jboss.messaging.destination:service=Queue,*" do |path|
|
106
126
|
path.gsub "jboss.messaging.destination:service=Queue,name=", ""
|
107
127
|
end
|
108
128
|
end
|
@@ -112,9 +132,9 @@ module JBoss
|
|
112
132
|
:pattern => 'jboss.j2ee:#{resource},service=EJB3',
|
113
133
|
:properties => %W(CreateCount RemoveCount CurrentSize AvailableCount),
|
114
134
|
:scan => proc do
|
115
|
-
result =
|
135
|
+
result = query "jboss.j2ee:*"
|
116
136
|
(result.find_all do |path|
|
117
|
-
path["service=EJB3"] && path["name="] && path["jar="]
|
137
|
+
path["service=EJB3"] && path["name="] && path["jar="] && !path["ear="]
|
118
138
|
end).collect do |path|
|
119
139
|
path.gsub("jboss.j2ee:", '').gsub(/,?service=EJB3/, '')
|
120
140
|
end
|
@@ -131,40 +151,10 @@ module JBoss
|
|
131
151
|
@mbeans
|
132
152
|
end
|
133
153
|
|
134
|
-
def resources mbean_id = nil, *resources
|
135
|
-
@resources ||= {}
|
136
|
-
return @resources unless mbean_id
|
137
|
-
return @resources[mbean_id] unless resources
|
138
|
-
if mbean_id.is_a? Array
|
139
|
-
mbean_id.each do |id|
|
140
|
-
@resources[id] = resources
|
141
|
-
end
|
142
|
-
else
|
143
|
-
@resources[mbean_id] = resources
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
154
|
def monitor mbean_id, params
|
148
155
|
mbeans[mbean_id] = JBoss::MBean::new params.merge(:twiddle => @twiddle)
|
149
156
|
end
|
150
157
|
|
151
|
-
def with resource
|
152
|
-
resource = send resource if resource.is_a? Symbol
|
153
|
-
if block_given?
|
154
|
-
if resource.kind_of? Array
|
155
|
-
resource.each do |res|
|
156
|
-
@current_resource = res
|
157
|
-
yield res
|
158
|
-
@current_resource = nil
|
159
|
-
end
|
160
|
-
else
|
161
|
-
@current_resource = resource
|
162
|
-
yield
|
163
|
-
@current_resource = nil
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
158
|
def mbean mbean_id
|
169
159
|
mbean = mbeans[mbean_id]
|
170
160
|
if @current_resource
|
@@ -173,13 +163,6 @@ module JBoss
|
|
173
163
|
mbean
|
174
164
|
end
|
175
165
|
|
176
|
-
def method_missing method, *args, &block
|
177
|
-
mbean_id = method
|
178
|
-
mbean = mbeans[mbean_id]
|
179
|
-
resource = args[0] || @current_resource
|
180
|
-
mbean.with resource
|
181
|
-
end
|
182
|
-
|
183
166
|
end
|
184
167
|
|
185
168
|
end
|
@@ -24,29 +24,29 @@ module JBoss
|
|
24
24
|
module Twiddle
|
25
25
|
class Invoker
|
26
26
|
|
27
|
-
attr_reader :
|
27
|
+
attr_reader :server, :host, :port, :home, :user, :password
|
28
28
|
attr_accessor :command
|
29
29
|
|
30
30
|
def initialize params = {}
|
31
31
|
params = {
|
32
32
|
:jboss_home => ENV["JBOSS_HOME"],
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
33
|
+
:server => nil,
|
34
|
+
:host => '127.0.0.1',
|
35
|
+
:port => 1099,
|
36
|
+
:user => "admin",
|
37
|
+
:password => "admin"
|
38
38
|
}.merge! params
|
39
39
|
@jboss_home = params[:jboss_home]
|
40
40
|
|
41
|
-
@
|
42
|
-
@
|
43
|
-
@
|
44
|
-
@
|
41
|
+
@server = params[:server]
|
42
|
+
@host = params[:host]
|
43
|
+
@port = params[:port]
|
44
|
+
@server ||= [@host, @port].join ':'
|
45
45
|
|
46
|
-
@
|
47
|
-
@
|
46
|
+
@user = params[:user]
|
47
|
+
@password = params[:password]
|
48
48
|
|
49
|
-
@command = "#{@jboss_home}/bin/twiddle.sh -s #{@
|
49
|
+
@command = "#{@jboss_home}/bin/twiddle.sh -s #{@server} -u '#{@user}' -p '#{@password}'"
|
50
50
|
end
|
51
51
|
|
52
52
|
def home
|
data/lib/rboss/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rboss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ataxexe
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-09-06 00:00:00 Z
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: |-
|
@@ -32,9 +32,6 @@ files:
|
|
32
32
|
- Rakefile
|
33
33
|
- bin/jboss-profile
|
34
34
|
- bin/twiddle
|
35
|
-
- examples/jboss_profile/jbb_profile_1.yaml
|
36
|
-
- examples/jboss_profile/jbb_profile_2.yaml
|
37
|
-
- examples/jboss_profile/jboss_profile.yaml
|
38
35
|
- lib/rboss.rb
|
39
36
|
- lib/rboss/component_processor.rb
|
40
37
|
- lib/rboss/components/component.rb
|
@@ -1,32 +0,0 @@
|
|
1
|
-
- :params:
|
2
|
-
:type: org
|
3
|
-
:version: 5.1
|
4
|
-
:base_profile: all
|
5
|
-
:profile: jbb1
|
6
|
-
- mod_cluster
|
7
|
-
- jms:
|
8
|
-
:peer_id: 1
|
9
|
-
- deploy_folder: deploy/datasources
|
10
|
-
- deploy_folder: deploy/apps
|
11
|
-
- resource:
|
12
|
-
lib: ~/jdbc/postgresql/postgresql.jar
|
13
|
-
- jmx:
|
14
|
-
:password: jbb
|
15
|
-
- default_ds:
|
16
|
-
:type: postgres
|
17
|
-
:attributes:
|
18
|
-
:user_name: postgres
|
19
|
-
:password: postgres
|
20
|
-
:connection_url: jdbc:postgresql://localhost:5432/jboss_org_db
|
21
|
-
:min_pool_size: 5
|
22
|
-
:max_pool_size: 15
|
23
|
-
- jboss_web:
|
24
|
-
:connectors:
|
25
|
-
ajp:
|
26
|
-
:max_threads: 600
|
27
|
-
- run_conf:
|
28
|
-
:heap_size: 1024m
|
29
|
-
:perm_size: 512m
|
30
|
-
:stack_size: 128k
|
31
|
-
- slimming:
|
32
|
-
- web_console
|
@@ -1,32 +0,0 @@
|
|
1
|
-
- :params:
|
2
|
-
:type: org
|
3
|
-
:version: 5.1
|
4
|
-
:base_profile: all
|
5
|
-
:profile: jbb1
|
6
|
-
- mod_cluster
|
7
|
-
- jms:
|
8
|
-
:peer_id: 2
|
9
|
-
- deploy_folder: deploy/datasources
|
10
|
-
- deploy_folder: deploy/apps
|
11
|
-
- resource:
|
12
|
-
lib: ~/jdbc/postgresql/postgresql.jar
|
13
|
-
- jmx:
|
14
|
-
:password: jbb
|
15
|
-
- default_ds:
|
16
|
-
:type: postgres
|
17
|
-
:attributes:
|
18
|
-
:user_name: postgres
|
19
|
-
:password: postgres
|
20
|
-
:connection_url: jdbc:postgresql://localhost:5432/jboss_org_db
|
21
|
-
:min_pool_size: 5
|
22
|
-
:max_pool_size: 15
|
23
|
-
- jboss_web:
|
24
|
-
:connectors:
|
25
|
-
ajp:
|
26
|
-
:max_threads: 600
|
27
|
-
- run_conf:
|
28
|
-
:heap_size: 1024m
|
29
|
-
:perm_size: 512m
|
30
|
-
:stack_size: 128k
|
31
|
-
- slimming:
|
32
|
-
- web_console
|