torquebox-backstage 0.4.3 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
+ * 0.5 - 2011-07-28
2
+ * Added Cluster Properties to dashboard (from Penumbra)
3
+ * Added Infinispan cache links to dashboard (from Penumbra)
4
+ * Added Caches tab view (from Penumbra)
5
+
1
6
  * 0.4.3 - 2011-07-14
2
7
  * Updated to use TorqueBox 1.1 gems
3
-
8
+
4
9
  * 0.4.2 - 2011-06-20
5
10
  * Locked gemspec gem versions to match Gemfile.lock versions (issue #5)
6
11
  * Restored Rakefile to repo
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'torquebox-rake-support'
data/TORQUEBOX_VERSION CHANGED
@@ -1 +1,2 @@
1
1
  1.1
2
+
data/VERSION CHANGED
@@ -1 +1,2 @@
1
- 0.4.3
1
+ 0.5
2
+
data/backstage.rb CHANGED
@@ -36,7 +36,8 @@ require 'message_processors'
36
36
  require 'jobs'
37
37
  require 'logs'
38
38
  require 'services'
39
-
39
+ require 'caches'
40
+ require 'groups'
40
41
 
41
42
  Backstage.logger.warn "ENV['REQUIRE_AUTHENTICATION'] is not set, *disabling* authentication" unless ENV['REQUIRE_AUTHENTICATION']
42
43
 
@@ -0,0 +1,70 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ module Backstage
18
+ class Cache
19
+ include HasMBean
20
+ include Resource
21
+
22
+ def self.filter
23
+ "org.infinispan:component=CacheManager,*"
24
+ end
25
+
26
+ def self.to_hash_attributes
27
+ super + [:name, :cache_manager_status, :created_cache_count, :defined_cache_count, :running_cache_count, :version, :defined_cache_names]
28
+ end
29
+
30
+ # for use with show.haml
31
+ alias_method :cache_manager_name, :name
32
+
33
+ # reformat the defined_cache_names string
34
+ def cache_names
35
+ names = {}
36
+ dcns = self.defined_cache_names.sub('[', '')
37
+
38
+ list = dcns.split(')')
39
+ list.each do |cache_name|
40
+ unless cache_name == "]"
41
+ if cache_name.include? "(not created"
42
+ names.store(cache_name.sub("(not created", ""), "not created")
43
+ else
44
+ names.store(cache_name.sub("(created", ""), "created")
45
+ end
46
+ end
47
+ end
48
+
49
+ names
50
+ end
51
+
52
+ def rpc_caches
53
+ rpc = JMX::MBeanServer.new
54
+ manager = self.name
55
+ rpc_caches = [] # JMX::MBeans::Org::Infinispan::Remoting::Rpc::RpcManagerImpl
56
+
57
+ # find the name of the cluster connection control
58
+ filter_str = 'org.infinispan:component=RpcManager,manager="' + manager + '",*'
59
+
60
+ rpc.query_names( filter_str ).collect do |name|
61
+ data = name.to_s.split(',')
62
+ cache_name = data[1].sub('name=', '')
63
+
64
+ rpc_caches << [ cache_name, JMX::MBeanServer.new[ name ] ]
65
+ end
66
+
67
+ rpc_caches
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,17 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ Backstage::Application.resource :cache
data/lib/caches.rb ADDED
@@ -0,0 +1,18 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require 'caches/models/cache'
18
+ require 'caches/routes'
@@ -0,0 +1,45 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ module Backstage
18
+ class Group
19
+ include HasMBean
20
+ include Resource
21
+
22
+ def self.filter
23
+ "jboss.jgroups:cluster=*,type=channel"
24
+ end
25
+
26
+ def self.to_hash_attributes
27
+ super + [:name, :received_messages, :received_bytes, :connected, :num_messages, :receive_local_msgs, :view, :sent_bytes, :timer_threads, :cluster_name, :receive_blocks, :address, :number_of_tasks_in_timer, :stats, :version, :sent_messages]
28
+ end
29
+
30
+ def protocols
31
+ mbean = JMX::MBeanServer.new
32
+ cluster = self.cluster_name
33
+ protocols = []
34
+
35
+ # find the protocols used by 'cluster'
36
+ filter_str = 'jboss.jgroups:cluster=' + cluster + ',protocol=*,*'
37
+
38
+ mbean.query_names( filter_str ).collect do |name|
39
+ protocols << JMX::MBeanServer.new[ name ]
40
+ end
41
+
42
+ protocols
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,17 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ Backstage::Application.resource :group
data/lib/groups.rb ADDED
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require 'groups/models/group'
18
+ require 'groups/routes'
19
+
data/lib/helpers.rb CHANGED
@@ -66,6 +66,7 @@ module Backstage
66
66
  paths << collection_or_action if collection_or_action
67
67
  '/' + paths.join( '/' )
68
68
  end
69
+
69
70
  alias_method :object_action_path, :object_action_or_collection_path
70
71
  alias_method :collection_path, :object_action_or_collection_path
71
72
 
@@ -216,6 +217,50 @@ module Backstage
216
217
  versions << ['Version', jboss.version]
217
218
  versions
218
219
  end
220
+
221
+ def infinispan_version_info
222
+ versions = []
223
+ infinispan = JMX::MBeanServer.new
224
+ cm = nil # JMX::MBeans::Org::Infinispan::Manager::DefaultCacheManager
225
+
226
+ infinispan.query_names( 'org.infinispan:component=CacheManager,name=*,type=CacheManager' ).collect {|name| cm = JMX::MBeanServer.new[ name ] }
227
+
228
+ if cm
229
+ versions << ['Version', cm.version ]
230
+ else
231
+ versions << ['Version', 'disabled']
232
+ end
233
+ versions
234
+ end
235
+
236
+ def hornetq_cluster_info
237
+ info = []
238
+ ccc = nil # JMX::MBeans::Org::Hornetq::Core::Management::Impl::ClusterConnectionControlImpl
239
+ hornetq = JMX::MBeanServer.new
240
+
241
+ # find the name of the cluster connection control
242
+ hornetq.query_names( 'org.hornetq:module=Core,name=*,type=ClusterConnection,*' ).collect {|name| ccc = JMX::MBeanServer.new[ name ] }
243
+
244
+ if ccc
245
+ ccc.attributes.each do |attr|
246
+ info << [ attr, ccc[attr] ] unless ((attr == "StaticConnectorNamePairs") || (attr == "StaticConnectorNamePairsAsJSON"))
247
+ end
248
+ end
249
+
250
+ if info.size == 0
251
+ info << ['Cluster', 'disabled']
252
+ end
253
+ info
254
+ end
255
+
256
+ #def jgroups_cluster_channels
257
+ # mux_channels = []
258
+ # jgroups = JMX::MBeanServer.new
259
+
260
+ # find the name of the jgroups channels
261
+ # jgroups.query_names( 'jboss.jgroups:cluster=*,type=channel' ).collect {|name| mux_channels << JMX::MBeanServer.new[ name ] }
262
+ # mux_channels
263
+ #end
219
264
  end
220
265
  end
221
266
  end
@@ -0,0 +1,18 @@
1
+ #caches-index
2
+ %table
3
+ %tr
4
+ %th Name
5
+ %th Status
6
+ %th Created
7
+ %th Defined
8
+ %th Running
9
+ %th Version
10
+ %th
11
+ - @collection.each do |cache|
12
+ %tr
13
+ %td= link_to( object_path( cache ), cache.name )
14
+ %td= cache.cache_manager_status.downcase
15
+ %td= cache.created_cache_count
16
+ %td= cache.defined_cache_count
17
+ %td= cache.running_cache_count
18
+ %td= cache.version
@@ -0,0 +1,18 @@
1
+ #caches-show
2
+ %h2
3
+ == Infinispan Cache: #{@object.name}
4
+
5
+ %table.data-table
6
+ - %w{ cache_manager_name cache_manager_status created_cache_count defined_cache_count running_cache_count version cache_names }.each do |method|
7
+ = data_row( method.humanize, @object.send( method ) )
8
+
9
+ - @object.rpc_caches.each do |cache_name, rpc_cache|
10
+ %h3== RPC Cache: #{cache_name}
11
+ .rpc-cache
12
+ %table.data-table
13
+ .element
14
+ - rpc_cache.attributes.each do |attr|
15
+ = data_row( attr, rpc_cache[ attr ] )
16
+
17
+ .controls
18
+ = link_to collection_path( :caches ), '<< Back'
data/views/css/style.sass CHANGED
@@ -149,6 +149,20 @@ th
149
149
  position: absolute
150
150
  top: 1px
151
151
 
152
+ #groups-show
153
+ h3
154
+ font-weight: bold
155
+ margin: 10px 0
156
+ .protocol
157
+ padding-left: 10px
158
+
159
+ #caches-show
160
+ h3
161
+ font-weight: bold
162
+ margin: 10px 0
163
+ .rpc-cache
164
+ padding-left: 10px
165
+
152
166
  #dashboard
153
167
  @include clearfix
154
168
  #left_column, #right_column
@@ -195,4 +209,8 @@ th
195
209
  @include selected-tab('service', 'services')
196
210
  @include selected-tab('pools')
197
211
  @include selected-tab('pool', 'pools')
212
+ @include selected-tab('caches')
213
+ @include selected-tab('cache', 'caches')
214
+ @include selected-tab('groups')
215
+ @include selected-tab('group', 'groups')
198
216
 
@@ -22,18 +22,48 @@
22
22
  - jboss_version_info.each do |key, value|
23
23
  - unless value.blank?
24
24
  %li== #{key}: #{value}
25
- %li
25
+ %li
26
26
  HornetQ:
27
27
  %ul
28
28
  - hornetq_version_info.each do |key, value|
29
29
  - unless value.blank?
30
30
  %li== #{key}: #{value}
31
+ %li
32
+ Infinispan:
33
+ %ul
34
+ - infinispan_version_info.each do |key, value|
35
+ - unless value.blank?
36
+ %li== #{key}: #{value}
31
37
  /
32
38
  %li
33
- Quartz:
39
+ Quartz:
34
40
  %ul
35
41
  %li== Version: ???
36
42
 
43
+ #cluster_properties.list
44
+ %h3 HornetQ Cluster
45
+ .element
46
+ %ul
47
+ - hornetq_cluster_info.each do |key, value|
48
+ %li== #{key}: #{value}
49
+
50
+ #caches.list
51
+ %h3 Infinispan Caches
52
+ .actions
53
+ = link_to( collection_path( :caches ), 'View All Caches' )
54
+ - Backstage::Cache.all.each do |cache|
55
+ .element
56
+ = link_to object_path( cache ), "#{cache.name}"
57
+
58
+ #groups.list
59
+ %h3 JGroups
60
+ .actions
61
+ = link_to( collection_path( :groups ), 'View All Groups' )
62
+ - Backstage::Group.all.each do |group|
63
+ .element
64
+ = link_to object_path( group ), "#{group.cluster_name}"
65
+
66
+ #right_column
37
67
  #apps.list
38
68
  %h3 Apps
39
69
  .actions
@@ -58,7 +88,6 @@
58
88
  .element
59
89
  = link_to object_path( topic ), "#{topic.display_name} - #{topic.app_name}"
60
90
 
61
- #right_column
62
91
  #message_processors.list
63
92
  %h3 Message Processors
64
93
  .actions
@@ -91,6 +120,3 @@
91
120
  .element
92
121
  = link_to object_path( pool ), "#{pool.name} - #{pool.app_name}"
93
122
 
94
-
95
-
96
-
@@ -0,0 +1,24 @@
1
+ #groups-index
2
+ %table
3
+ %tr
4
+ %th ClusterName
5
+ %th ReceivedMessages
6
+ %th ReceivedBytes
7
+ %th Open
8
+ %th Connected
9
+ %th Address
10
+ %th NumMessages
11
+ %th ReceiveLocalMsgs
12
+ %th View
13
+ %th
14
+ - @collection.each do |group|
15
+ %tr
16
+ %td= link_to( object_path( group ), group.cluster_name )
17
+ %td= group.received_messages
18
+ %td= group.received_bytes
19
+ %td= group.open
20
+ %td= group.connected
21
+ %td= group.address
22
+ %td= group.num_messages
23
+ %td= group.receive_local_msgs
24
+ %td= group.view
@@ -0,0 +1,17 @@
1
+ #groups-show
2
+ %h2
3
+ == JGroups: #{@object.cluster_name}
4
+
5
+ %table.data-table
6
+ - %w{ name received_messages received_bytes connected num_messages receive_local_msgs view address sent_bytes sent_messages timer_threads receive_blocks number_of_tasks_in_timer stats version }.each do |method|
7
+ = data_row( method.humanize, @object.send( method ) )
8
+
9
+ - @object.protocols.each do |protocol|
10
+ %h3== Protocol: #{protocol.name}
11
+ .protocol
12
+ %table.data-table
13
+ - protocol.attributes.each do |attr|
14
+ = data_row( attr, protocol[attr] )
15
+
16
+ .controls
17
+ = link_to collection_path( :groups ), '<< Back'
data/views/layout.haml CHANGED
@@ -17,7 +17,8 @@
17
17
  = link_to collection_path( :jobs ), 'Jobs', :class => 'jobs'
18
18
  = link_to collection_path( :services ), 'Services', :class => 'services'
19
19
  = link_to collection_path( :pools ), 'Runtime Pools', :class => 'pools'
20
-
20
+ = link_to collection_path( :caches ), 'Caches', :class => 'caches'
21
+ = link_to collection_path( :groups ), 'JGroups', :class => 'groups'
21
22
  #content-wrapper
22
23
  - if flash_msg = flash[:notice]
23
24
  #flash
metadata CHANGED
@@ -1,335 +1,301 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torquebox-backstage
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 3
9
- version: 0.4.3
4
+ prerelease:
5
+ version: "0.5"
10
6
  platform: ruby
11
7
  authors:
12
- - Tobias Crawley
8
+ - Tobias Crawley
9
+ - David Glassborow
10
+ - Penumbra Shadow
13
11
  autorequire:
14
12
  bindir: bin
15
13
  cert_chain: []
16
14
 
17
- date: 2011-07-14 00:00:00 -04:00
18
- default_executable: backstage
15
+ date: 2011-07-28 00:00:00 -04:00
16
+ default_executable:
19
17
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: sinatra
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 2
30
- - 6
31
- version: 1.2.6
32
- type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rack-flash
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 1
44
- - 1
45
- version: 0.1.1
46
- type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: haml
50
- prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "="
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 3
57
- - 1
58
- - 1
59
- version: 3.1.1
60
- type: :runtime
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: sass
64
- prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "="
68
- - !ruby/object:Gem::Version
69
- segments:
70
- - 3
71
- - 1
72
- - 2
73
- version: 3.1.2
74
- type: :runtime
75
- version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
77
- name: tobias-jmx
78
- prerelease: false
79
- requirement: &id005 !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "="
82
- - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
- - 8
86
- version: "0.8"
87
- type: :runtime
88
- version_requirements: *id005
89
- - !ruby/object:Gem::Dependency
90
- name: json
91
- prerelease: false
92
- requirement: &id006 !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "="
95
- - !ruby/object:Gem::Version
96
- segments:
97
- - 1
98
- - 5
99
- - 1
100
- version: 1.5.1
101
- type: :runtime
102
- version_requirements: *id006
103
- - !ruby/object:Gem::Dependency
104
- name: torquebox
105
- prerelease: false
106
- requirement: &id007 !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "="
109
- - !ruby/object:Gem::Version
110
- segments:
111
- - 1
112
- - 1
113
- version: "1.1"
114
- type: :runtime
115
- version_requirements: *id007
116
- - !ruby/object:Gem::Dependency
117
- name: tobias-sinatra-url-for
118
- prerelease: false
119
- requirement: &id008 !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "="
122
- - !ruby/object:Gem::Version
123
- segments:
124
- - 0
125
- - 2
126
- - 1
127
- version: 0.2.1
128
- type: :runtime
129
- version_requirements: *id008
130
- - !ruby/object:Gem::Dependency
131
- name: rack-accept
132
- prerelease: false
133
- requirement: &id009 !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "="
136
- - !ruby/object:Gem::Version
137
- segments:
138
- - 0
139
- - 4
140
- - 4
141
- version: 0.4.4
142
- type: :runtime
143
- version_requirements: *id009
144
- - !ruby/object:Gem::Dependency
145
- name: thor
146
- prerelease: false
147
- requirement: &id010 !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "="
150
- - !ruby/object:Gem::Version
151
- segments:
152
- - 0
153
- - 14
154
- - 6
155
- version: 0.14.6
156
- type: :development
157
- version_requirements: *id010
158
- - !ruby/object:Gem::Dependency
159
- name: watchr
160
- prerelease: false
161
- requirement: &id011 !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ~>
164
- - !ruby/object:Gem::Version
165
- segments:
166
- - 0
167
- - 7
168
- version: "0.7"
169
- type: :development
170
- version_requirements: *id011
171
- - !ruby/object:Gem::Dependency
172
- name: rspec
173
- prerelease: false
174
- requirement: &id012 !ruby/object:Gem::Requirement
175
- requirements:
176
- - - ~>
177
- - !ruby/object:Gem::Version
178
- segments:
179
- - 2
180
- - 6
181
- - 0
182
- version: 2.6.0
183
- type: :development
184
- version_requirements: *id012
185
- - !ruby/object:Gem::Dependency
186
- name: rack-test
187
- prerelease: false
188
- requirement: &id013 !ruby/object:Gem::Requirement
189
- requirements:
190
- - - ~>
191
- - !ruby/object:Gem::Version
192
- segments:
193
- - 0
194
- - 6
195
- - 0
196
- version: 0.6.0
197
- type: :development
198
- version_requirements: *id013
199
- - !ruby/object:Gem::Dependency
200
- name: thor
201
- prerelease: false
202
- requirement: &id014 !ruby/object:Gem::Requirement
203
- requirements:
204
- - - "="
205
- - !ruby/object:Gem::Version
206
- segments:
207
- - 0
208
- - 14
209
- - 6
210
- version: 0.14.6
211
- type: :runtime
212
- version_requirements: *id014
213
- - !ruby/object:Gem::Dependency
214
- name: bundler
215
- prerelease: false
216
- requirement: &id015 !ruby/object:Gem::Requirement
217
- requirements:
218
- - - "="
219
- - !ruby/object:Gem::Version
220
- segments:
221
- - 1
222
- - 0
223
- - 12
224
- version: 1.0.12
225
- type: :runtime
226
- version_requirements: *id015
18
+ - !ruby/object:Gem::Dependency
19
+ name: sinatra
20
+ prerelease: false
21
+ requirement: &id001 !ruby/object:Gem::Requirement
22
+ none: false
23
+ requirements:
24
+ - - "="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.2.6
27
+ type: :runtime
28
+ version_requirements: *id001
29
+ - !ruby/object:Gem::Dependency
30
+ name: rack-flash
31
+ prerelease: false
32
+ requirement: &id002 !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - "="
36
+ - !ruby/object:Gem::Version
37
+ version: 0.1.1
38
+ type: :runtime
39
+ version_requirements: *id002
40
+ - !ruby/object:Gem::Dependency
41
+ name: haml
42
+ prerelease: false
43
+ requirement: &id003 !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - "="
47
+ - !ruby/object:Gem::Version
48
+ version: 3.1.1
49
+ type: :runtime
50
+ version_requirements: *id003
51
+ - !ruby/object:Gem::Dependency
52
+ name: sass
53
+ prerelease: false
54
+ requirement: &id004 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - "="
58
+ - !ruby/object:Gem::Version
59
+ version: 3.1.2
60
+ type: :runtime
61
+ version_requirements: *id004
62
+ - !ruby/object:Gem::Dependency
63
+ name: tobias-jmx
64
+ prerelease: false
65
+ requirement: &id005 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - "="
69
+ - !ruby/object:Gem::Version
70
+ version: "0.8"
71
+ type: :runtime
72
+ version_requirements: *id005
73
+ - !ruby/object:Gem::Dependency
74
+ name: json
75
+ prerelease: false
76
+ requirement: &id006 !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - "="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.5.1
82
+ type: :runtime
83
+ version_requirements: *id006
84
+ - !ruby/object:Gem::Dependency
85
+ name: torquebox
86
+ prerelease: false
87
+ requirement: &id007 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - "="
91
+ - !ruby/object:Gem::Version
92
+ version: "1.1"
93
+ type: :runtime
94
+ version_requirements: *id007
95
+ - !ruby/object:Gem::Dependency
96
+ name: tobias-sinatra-url-for
97
+ prerelease: false
98
+ requirement: &id008 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - "="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.1
104
+ type: :runtime
105
+ version_requirements: *id008
106
+ - !ruby/object:Gem::Dependency
107
+ name: rack-accept
108
+ prerelease: false
109
+ requirement: &id009 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - "="
113
+ - !ruby/object:Gem::Version
114
+ version: 0.4.4
115
+ type: :runtime
116
+ version_requirements: *id009
117
+ - !ruby/object:Gem::Dependency
118
+ name: thor
119
+ prerelease: false
120
+ requirement: &id010 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - "="
124
+ - !ruby/object:Gem::Version
125
+ version: 0.14.6
126
+ type: :development
127
+ version_requirements: *id010
128
+ - !ruby/object:Gem::Dependency
129
+ name: watchr
130
+ prerelease: false
131
+ requirement: &id011 !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ~>
135
+ - !ruby/object:Gem::Version
136
+ version: "0.7"
137
+ type: :development
138
+ version_requirements: *id011
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ prerelease: false
142
+ requirement: &id012 !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ~>
146
+ - !ruby/object:Gem::Version
147
+ version: 2.6.0
148
+ type: :development
149
+ version_requirements: *id012
150
+ - !ruby/object:Gem::Dependency
151
+ name: rack-test
152
+ prerelease: false
153
+ requirement: &id013 !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: 0.6.0
159
+ type: :development
160
+ version_requirements: *id013
161
+ - !ruby/object:Gem::Dependency
162
+ name: thor
163
+ prerelease: false
164
+ requirement: &id014 !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - "="
168
+ - !ruby/object:Gem::Version
169
+ version: 0.14.6
170
+ type: :runtime
171
+ version_requirements: *id014
172
+ - !ruby/object:Gem::Dependency
173
+ name: bundler
174
+ prerelease: false
175
+ requirement: &id015 !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - "="
179
+ - !ruby/object:Gem::Version
180
+ version: 1.0.12
181
+ type: :runtime
182
+ version_requirements: *id015
227
183
  description: BackStage allows you to look behind the TorqueBox curtain, and view information about all of the components you have running. It includes support for remote code execution and log tailing to aid in debugging.
228
184
  email: tcrawley@redhat.com
229
185
  executables:
230
- - backstage
186
+ - backstage
231
187
  extensions: []
232
188
 
233
189
  extra_rdoc_files:
234
- - README.md
235
- - TODO
190
+ - README.md
191
+ - TODO
236
192
  files:
237
- - CHANGELOG.md
238
- - Gemfile
239
- - Gemfile.lock
240
- - README.md
241
- - TODO
242
- - TORQUEBOX_VERSION
243
- - VERSION
244
- - backstage.rb
245
- - config.ru
246
- - config/torquebox.yml
247
- - lib/apps.rb
248
- - lib/apps/models/app.rb
249
- - lib/apps/routes.rb
250
- - lib/authentication.rb
251
- - lib/destinations.rb
252
- - lib/destinations/models/destination.rb
253
- - lib/destinations/models/message.rb
254
- - lib/destinations/models/queue.rb
255
- - lib/destinations/models/topic.rb
256
- - lib/destinations/routes.rb
257
- - lib/has_mbean.rb
258
- - lib/helpers.rb
259
- - lib/jobs.rb
260
- - lib/jobs/models/job.rb
261
- - lib/jobs/routes.rb
262
- - lib/logs.rb
263
- - lib/logs/models/log.rb
264
- - lib/logs/routes.rb
265
- - lib/message_processors.rb
266
- - lib/message_processors/models/message_processor.rb
267
- - lib/message_processors/routes.rb
268
- - lib/pools.rb
269
- - lib/pools/models/pool.rb
270
- - lib/pools/routes.rb
271
- - lib/resource.rb
272
- - lib/resource_helpers.rb
273
- - lib/runtimes.rb
274
- - lib/runtimes/models/job.rb
275
- - lib/runtimes/routes.rb
276
- - lib/services.rb
277
- - lib/services/models/service.rb
278
- - lib/services/routes.rb
279
- - lib/torquebox_managed.rb
280
- - lib/util.rb
281
- - public/ajax-loader.gif
282
- - public/app.js
283
- - public/jquery.min.js
284
- - views/apps/index.haml
285
- - views/apps/show.haml
286
- - views/css/_mixins.sass
287
- - views/css/html5reset.sass
288
- - views/css/style.sass
289
- - views/dashboard/index.haml
290
- - views/destinations/index.haml
291
- - views/destinations/show.haml
292
- - views/jobs/index.haml
293
- - views/jobs/show.haml
294
- - views/layout.haml
295
- - views/logs/index.haml
296
- - views/logs/show.haml
297
- - views/message_processors/index.haml
298
- - views/message_processors/show.haml
299
- - views/messages/index.haml
300
- - views/messages/properties.haml
301
- - views/messages/show.haml
302
- - views/pools/index.haml
303
- - views/pools/show.haml
304
- - views/services/index.haml
305
- - views/services/show.haml
193
+ - backstage.rb
194
+ - config.ru
195
+ - README.md
196
+ - Gemfile
197
+ - TORQUEBOX_VERSION
198
+ - CHANGELOG.md
199
+ - TODO
200
+ - Gemfile.lock
201
+ - VERSION
202
+ - Rakefile
203
+ - config/torquebox.yml
204
+ - lib/helpers.rb
205
+ - lib/services.rb
206
+ - lib/resource.rb
207
+ - lib/caches.rb
208
+ - lib/message_processors.rb
209
+ - lib/resource_helpers.rb
210
+ - lib/destinations.rb
211
+ - lib/pools.rb
212
+ - lib/runtimes.rb
213
+ - lib/groups.rb
214
+ - lib/torquebox_managed.rb
215
+ - lib/apps.rb
216
+ - lib/authentication.rb
217
+ - lib/jobs.rb
218
+ - lib/util.rb
219
+ - lib/has_mbean.rb
220
+ - lib/logs.rb
221
+ - lib/pools/routes.rb
222
+ - lib/pools/models/pool.rb
223
+ - lib/logs/routes.rb
224
+ - lib/logs/models/log.rb
225
+ - lib/jobs/routes.rb
226
+ - lib/jobs/models/job.rb
227
+ - lib/caches/routes.rb
228
+ - lib/caches/models/cache.rb
229
+ - lib/message_processors/routes.rb
230
+ - lib/message_processors/models/message_processor.rb
231
+ - lib/destinations/routes.rb
232
+ - lib/destinations/models/message.rb
233
+ - lib/destinations/models/topic.rb
234
+ - lib/destinations/models/destination.rb
235
+ - lib/destinations/models/queue.rb
236
+ - lib/services/routes.rb
237
+ - lib/services/models/service.rb
238
+ - lib/groups/routes.rb
239
+ - lib/groups/models/group.rb
240
+ - lib/runtimes/routes.rb
241
+ - lib/runtimes/models/job.rb
242
+ - lib/apps/routes.rb
243
+ - lib/apps/models/app.rb
244
+ - public/ajax-loader.gif
245
+ - public/app.js
246
+ - public/jquery.min.js
247
+ - views/layout.haml
248
+ - views/pools/index.haml
249
+ - views/pools/show.haml
250
+ - views/messages/properties.haml
251
+ - views/messages/index.haml
252
+ - views/messages/show.haml
253
+ - views/logs/index.haml
254
+ - views/logs/show.haml
255
+ - views/css/style.sass
256
+ - views/css/_mixins.sass
257
+ - views/css/html5reset.sass
258
+ - views/jobs/index.haml
259
+ - views/jobs/show.haml
260
+ - views/caches/index.haml
261
+ - views/caches/show.haml
262
+ - views/message_processors/index.haml
263
+ - views/message_processors/show.haml
264
+ - views/destinations/index.haml
265
+ - views/destinations/show.haml
266
+ - views/services/index.haml
267
+ - views/services/show.haml
268
+ - views/groups/index.haml
269
+ - views/groups/show.haml
270
+ - views/apps/index.haml
271
+ - views/apps/show.haml
272
+ - views/dashboard/index.haml
273
+ - bin/backstage
306
274
  has_rdoc: true
307
275
  homepage: http://github.com/torquebox/backstage
308
276
  licenses:
309
- - MIT
277
+ - AL
310
278
  post_install_message:
311
279
  rdoc_options: []
312
280
 
313
281
  require_paths:
314
- - lib
282
+ - lib
315
283
  required_ruby_version: !ruby/object:Gem::Requirement
284
+ none: false
316
285
  requirements:
317
- - - ">="
318
- - !ruby/object:Gem::Version
319
- segments:
320
- - 0
321
- version: "0"
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: "0"
322
289
  required_rubygems_version: !ruby/object:Gem::Requirement
290
+ none: false
323
291
  requirements:
324
- - - ">="
325
- - !ruby/object:Gem::Version
326
- segments:
327
- - 0
328
- version: "0"
292
+ - - ">="
293
+ - !ruby/object:Gem::Version
294
+ version: "0"
329
295
  requirements: []
330
296
 
331
297
  rubyforge_project:
332
- rubygems_version: 1.3.6
298
+ rubygems_version: 1.5.1
333
299
  signing_key:
334
300
  specification_version: 3
335
301
  summary: BackStage - Queue/Topic/Job/etc viewer for TorqueBox