vas 0.4.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/README.md +1 -1
  2. data/lib/vas.rb +44 -1
  3. data/lib/vas/gemfire/agent_instances.rb +4 -3
  4. data/lib/vas/gemfire/agent_live_configurations.rb +3 -3
  5. data/lib/vas/gemfire/agent_node_instances.rb +2 -2
  6. data/lib/vas/gemfire/agent_node_live_configurations.rb +39 -0
  7. data/lib/vas/gemfire/application_code.rb +13 -12
  8. data/lib/vas/gemfire/application_code_images.rb +13 -11
  9. data/lib/vas/gemfire/cache_server_instances.rb +20 -12
  10. data/lib/vas/gemfire/cache_server_live_configurations.rb +3 -3
  11. data/lib/vas/gemfire/cache_server_node_instances.rb +16 -9
  12. data/lib/vas/gemfire/cache_server_node_live_configurations.rb +39 -0
  13. data/lib/vas/gemfire/disk_stores.rb +19 -11
  14. data/lib/vas/gemfire/gemfire.rb +4 -4
  15. data/lib/vas/gemfire/groups.rb +17 -10
  16. data/lib/vas/gemfire/installations.rb +12 -3
  17. data/lib/vas/gemfire/live_application_codes.rb +2 -2
  18. data/lib/vas/gemfire/locator_instances.rb +23 -13
  19. data/lib/vas/gemfire/locator_live_configurations.rb +3 -3
  20. data/lib/vas/gemfire/locator_node_instances.rb +22 -14
  21. data/lib/vas/gemfire/locator_node_live_configurations.rb +39 -0
  22. data/lib/vas/gemfire/nodes.rb +27 -6
  23. data/lib/vas/gemfire/pending_application_codes.rb +7 -2
  24. data/lib/vas/gemfire/statistics.rb +18 -11
  25. data/lib/vas/rabbitmq/groups.rb +6 -4
  26. data/lib/vas/rabbitmq/installations.rb +14 -6
  27. data/lib/vas/rabbitmq/instances.rb +9 -6
  28. data/lib/vas/rabbitmq/live_configurations.rb +3 -3
  29. data/lib/vas/rabbitmq/node_instances.rb +2 -2
  30. data/lib/vas/rabbitmq/node_live_configurations.rb +39 -0
  31. data/lib/vas/rabbitmq/nodes.rb +11 -8
  32. data/lib/vas/rabbitmq/plugin_images.rb +14 -7
  33. data/lib/vas/rabbitmq/plugins.rb +29 -20
  34. data/lib/vas/rabbitmq/rabbitmq.rb +4 -4
  35. data/lib/vas/shared/collection.rb +34 -11
  36. data/lib/vas/shared/configuration.rb +16 -9
  37. data/lib/vas/shared/deletable.rb +34 -0
  38. data/lib/vas/shared/groups.rb +26 -15
  39. data/lib/vas/shared/installation_images.rb +18 -10
  40. data/lib/vas/shared/installations.rb +22 -22
  41. data/lib/vas/shared/instance.rb +40 -19
  42. data/lib/vas/shared/live_configuration.rb +42 -0
  43. data/lib/vas/shared/logs.rb +27 -14
  44. data/lib/vas/shared/mutable_collection.rb +13 -5
  45. data/lib/vas/shared/node_configuration.rb +74 -0
  46. data/lib/vas/shared/node_instances.rb +32 -14
  47. data/lib/vas/shared/nodes.rb +37 -14
  48. data/lib/vas/shared/{pending_configuration.rb → pending_configurations.rb} +4 -2
  49. data/lib/vas/shared/resource.rb +12 -2
  50. data/lib/vas/shared/security.rb +11 -4
  51. data/lib/vas/shared/state_resource.rb +1 -1
  52. data/lib/vas/sqlfire/agent_instances.rb +98 -0
  53. data/lib/vas/sqlfire/agent_live_configurations.rb +39 -0
  54. data/lib/vas/sqlfire/agent_logs.rb +39 -0
  55. data/lib/vas/sqlfire/agent_node_instances.rb +54 -0
  56. data/lib/vas/sqlfire/agent_node_live_configurations.rb +39 -0
  57. data/lib/vas/sqlfire/agent_pending_configurations.rb +39 -0
  58. data/lib/vas/sqlfire/groups.rb +58 -0
  59. data/lib/vas/sqlfire/installation_images.rb +39 -0
  60. data/lib/vas/sqlfire/installations.rb +61 -0
  61. data/lib/vas/sqlfire/locator_instances.rb +210 -0
  62. data/lib/vas/sqlfire/locator_live_configurations.rb +39 -0
  63. data/lib/vas/sqlfire/locator_logs.rb +39 -0
  64. data/lib/vas/sqlfire/locator_node_instances.rb +91 -0
  65. data/lib/vas/sqlfire/locator_node_live_configurations.rb +39 -0
  66. data/lib/vas/sqlfire/locator_pending_configurations.rb +39 -0
  67. data/lib/vas/sqlfire/nodes.rb +73 -0
  68. data/lib/vas/sqlfire/server_instances.rb +192 -0
  69. data/lib/vas/sqlfire/server_live_configurations.rb +39 -0
  70. data/lib/vas/sqlfire/server_logs.rb +39 -0
  71. data/lib/vas/sqlfire/server_node_instances.rb +86 -0
  72. data/lib/vas/sqlfire/server_node_live_configurations.rb +39 -0
  73. data/lib/vas/sqlfire/server_pending_configurations.rb +39 -0
  74. data/lib/vas/sqlfire/sqlfire.rb +44 -0
  75. data/lib/vas/tc_server/applications.rb +32 -21
  76. data/lib/vas/tc_server/configuration.rb +1 -1
  77. data/lib/vas/tc_server/groups.rb +7 -4
  78. data/lib/vas/tc_server/installations.rb +16 -6
  79. data/lib/vas/tc_server/instances.rb +25 -13
  80. data/lib/vas/tc_server/live_configurations.rb +11 -1
  81. data/lib/vas/tc_server/logs.rb +4 -2
  82. data/lib/vas/tc_server/node_applications.rb +21 -17
  83. data/lib/vas/tc_server/node_instances.rb +23 -9
  84. data/lib/vas/tc_server/node_live_configurations.rb +39 -0
  85. data/lib/vas/tc_server/node_revisions.rb +15 -10
  86. data/lib/vas/tc_server/nodes.rb +15 -8
  87. data/lib/vas/tc_server/revision_images.rb +16 -10
  88. data/lib/vas/tc_server/revisions.rb +20 -16
  89. data/lib/vas/tc_server/tc_server.rb +5 -5
  90. data/lib/vas/tc_server/template_images.rb +13 -7
  91. data/lib/vas/tc_server/templates.rb +21 -13
  92. data/lib/vas/util/client.rb +15 -6
  93. data/lib/vas/vfabric/agent_image.rb +1 -1
  94. data/lib/vas/vfabric/nodes.rb +4 -11
  95. data/lib/vas/vfabric/v_fabric.rb +2 -2
  96. data/lib/vas/vfabric_administration_server.rb +37 -6
  97. data/lib/vas/web_server/configuration.rb +29 -0
  98. data/lib/vas/web_server/groups.rb +44 -0
  99. data/lib/vas/web_server/installation_images.rb +54 -0
  100. data/lib/vas/web_server/installations.rb +52 -0
  101. data/lib/vas/web_server/instances.rb +65 -0
  102. data/lib/vas/web_server/live_configurations.rb +39 -0
  103. data/lib/vas/web_server/logs.rb +37 -0
  104. data/lib/vas/web_server/node_instances.rb +39 -0
  105. data/lib/vas/web_server/node_live_configurations.rb +39 -0
  106. data/lib/vas/web_server/nodes.rb +53 -0
  107. data/lib/vas/web_server/pending_configurations.rb +39 -0
  108. data/lib/vas/web_server/web_server.rb +43 -0
  109. metadata +137 -76
data/README.md CHANGED
@@ -37,7 +37,7 @@ A number of [examples](https://github.com/vFabric/vas-ruby-api/tree/master/examp
37
37
 
38
38
  ### Documentation
39
39
 
40
- You may also like to look at the [API documentation](http://rubydoc.info/gems/vas/0.3.0/frames).
40
+ You may also like to look at the [API documentation](http://rubydoc.info/gems/vas/frames).
41
41
 
42
42
  ##Licence
43
43
 
data/lib/vas.rb CHANGED
@@ -20,12 +20,15 @@ require 'net/https'
20
20
  require 'net/http/post/multipart'
21
21
  require 'vas/shared/resource'
22
22
  require 'vas/shared/collection'
23
+ require 'vas/shared/deletable'
23
24
  require 'vas/shared/mutable_collection'
24
25
  require 'vas/shared/configuration'
25
26
  require 'vas/shared/groups'
26
27
  require 'vas/shared/installations'
27
28
  require 'vas/shared/installation_images'
28
- require 'vas/shared/pending_configuration'
29
+ require 'vas/shared/live_configuration'
30
+ require 'vas/shared/node_configuration'
31
+ require 'vas/shared/pending_configurations'
29
32
  require 'vas/shared/security'
30
33
  require 'vas/shared/state_resource'
31
34
  require 'vas/shared/instance'
@@ -36,6 +39,7 @@ require 'vas/gemfire/agent_instances'
36
39
  require 'vas/gemfire/agent_live_configurations'
37
40
  require 'vas/gemfire/agent_logs'
38
41
  require 'vas/gemfire/agent_node_instances'
42
+ require 'vas/gemfire/agent_node_live_configurations'
39
43
  require 'vas/gemfire/agent_pending_configurations'
40
44
  require 'vas/gemfire/application_code_images'
41
45
  require 'vas/gemfire/application_code'
@@ -43,6 +47,7 @@ require 'vas/gemfire/cache_server_instances'
43
47
  require 'vas/gemfire/cache_server_live_configurations'
44
48
  require 'vas/gemfire/cache_server_logs'
45
49
  require 'vas/gemfire/cache_server_node_instances'
50
+ require 'vas/gemfire/cache_server_node_live_configurations'
46
51
  require 'vas/gemfire/cache_server_pending_configurations'
47
52
  require 'vas/gemfire/disk_stores'
48
53
  require 'vas/gemfire/gemfire'
@@ -54,6 +59,7 @@ require 'vas/gemfire/locator_instances'
54
59
  require 'vas/gemfire/locator_live_configurations'
55
60
  require 'vas/gemfire/locator_logs'
56
61
  require 'vas/gemfire/locator_node_instances'
62
+ require 'vas/gemfire/locator_node_live_configurations'
57
63
  require 'vas/gemfire/locator_pending_configurations'
58
64
  require 'vas/gemfire/nodes'
59
65
  require 'vas/gemfire/pending_application_codes'
@@ -67,9 +73,33 @@ require 'vas/rabbitmq/instances'
67
73
  require 'vas/rabbitmq/live_configurations'
68
74
  require 'vas/rabbitmq/logs'
69
75
  require 'vas/rabbitmq/node_instances'
76
+ require 'vas/rabbitmq/node_live_configurations'
70
77
  require 'vas/rabbitmq/nodes'
71
78
  require 'vas/rabbitmq/pending_configurations'
72
79
  require 'vas/rabbitmq/rabbitmq'
80
+ require 'vas/sqlfire/agent_instances'
81
+ require 'vas/sqlfire/agent_live_configurations'
82
+ require 'vas/sqlfire/agent_logs'
83
+ require 'vas/sqlfire/agent_node_instances'
84
+ require 'vas/sqlfire/agent_node_live_configurations'
85
+ require 'vas/sqlfire/agent_pending_configurations'
86
+ require 'vas/sqlfire/groups'
87
+ require 'vas/sqlfire/installation_images'
88
+ require 'vas/sqlfire/installations'
89
+ require 'vas/sqlfire/locator_instances'
90
+ require 'vas/sqlfire/locator_live_configurations'
91
+ require 'vas/sqlfire/locator_logs'
92
+ require 'vas/sqlfire/locator_node_instances'
93
+ require 'vas/sqlfire/locator_node_live_configurations'
94
+ require 'vas/sqlfire/locator_pending_configurations'
95
+ require 'vas/sqlfire/nodes'
96
+ require 'vas/sqlfire/server_instances'
97
+ require 'vas/sqlfire/server_live_configurations'
98
+ require 'vas/sqlfire/server_logs'
99
+ require 'vas/sqlfire/server_node_instances'
100
+ require 'vas/sqlfire/server_node_live_configurations'
101
+ require 'vas/sqlfire/server_pending_configurations'
102
+ require 'vas/sqlfire/sqlfire'
73
103
  require 'vas/tc_server/applications'
74
104
  require 'vas/tc_server/configuration'
75
105
  require 'vas/tc_server/groups'
@@ -80,6 +110,7 @@ require 'vas/tc_server/live_configurations'
80
110
  require 'vas/tc_server/logs'
81
111
  require 'vas/tc_server/node_applications'
82
112
  require 'vas/tc_server/node_instances'
113
+ require 'vas/tc_server/node_live_configurations'
83
114
  require 'vas/tc_server/node_revisions'
84
115
  require 'vas/tc_server/nodes'
85
116
  require 'vas/tc_server/pending_configurations'
@@ -95,4 +126,16 @@ require 'vas/vfabric/agent_image'
95
126
  require 'vas/vfabric/nodes'
96
127
  require 'vas/vfabric/v_fabric'
97
128
  require 'vas/vfabric_administration_server'
129
+ require 'vas/web_server/configuration'
130
+ require 'vas/web_server/groups'
131
+ require 'vas/web_server/installation_images'
132
+ require 'vas/web_server/installations'
133
+ require 'vas/web_server/instances'
134
+ require 'vas/web_server/live_configurations'
135
+ require 'vas/web_server/logs'
136
+ require 'vas/web_server/node_instances'
137
+ require 'vas/web_server/node_live_configurations'
138
+ require 'vas/web_server/nodes'
139
+ require 'vas/web_server/pending_configurations'
140
+ require 'vas/web_server/web_server'
98
141
  require 'zip/zipfilesystem'
@@ -21,7 +21,7 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "agent-group-instances", AgentInstance)
24
+ super(location, client, 'agent-group-instances', AgentInstance)
25
25
  end
26
26
 
27
27
  # Creates a new agent instance
@@ -32,7 +32,7 @@ module Gemfire
32
32
  # @return [AgentInstance] the new agent instance
33
33
  def create(installation, name)
34
34
  payload = { :installation => installation.location, :name => name }
35
- AgentInstance.new(client.post(location, payload, "agent-group-instance"), client)
35
+ super(payload, 'agent-group-instance')
36
36
  end
37
37
 
38
38
  end
@@ -51,7 +51,8 @@ module Gemfire
51
51
  #
52
52
  # @return [void]
53
53
  def update(installation)
54
- client.post(location, { :installation => installation.location });
54
+ client.post(location, { :installation => installation.location })
55
+ reload
55
56
  end
56
57
 
57
58
  end
@@ -21,17 +21,17 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "live-configurations", AgentLiveConfiguration)
24
+ super(location, client, 'live-configurations', AgentLiveConfiguration)
25
25
  end
26
26
 
27
27
  end
28
28
 
29
29
  # A live configuration file in an agent instance
30
- class AgentLiveConfiguration < Shared::Configuration
30
+ class AgentLiveConfiguration < Shared::LiveConfiguration
31
31
 
32
32
  # @private
33
33
  def initialize(location, client)
34
- super(location, client, "agent-group-instance", AgentInstance)
34
+ super(location, client, 'agent-group-instance', AgentInstance, AgentNodeLiveConfiguration)
35
35
  end
36
36
 
37
37
  end
@@ -21,7 +21,7 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "agent-node-instances", AgentNodeInstance)
24
+ super(location, client, 'agent-node-instances', AgentNodeInstance)
25
25
  end
26
26
 
27
27
  end
@@ -31,7 +31,7 @@ module Gemfire
31
31
 
32
32
  # @private
33
33
  def initialize(location, client)
34
- super(location, client, Node, AgentLogs, AgentInstance, 'agent-group-instance')
34
+ super(location, client, Node, AgentLogs, AgentInstance, 'agent-group-instance', AgentNodeLiveConfigurations)
35
35
  end
36
36
 
37
37
  end
@@ -0,0 +1,39 @@
1
+ # vFabric Administration Server Ruby API
2
+ # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
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 Gemfire
18
+
19
+ # Used to enumerate an agent node instance's live configuration
20
+ class AgentNodeLiveConfigurations < Shared::Collection
21
+
22
+ # @private
23
+ def initialize(location, client)
24
+ super(location, client, 'node-live-configurations', AgentNodeLiveConfiguration)
25
+ end
26
+
27
+ end
28
+
29
+ # A live configuration file in an agent node instance
30
+ class AgentNodeLiveConfiguration < Shared::NodeConfiguration
31
+
32
+ # @private
33
+ def initialize(location, client)
34
+ super(location, client, 'agent-node-instance', AgentNodeInstance, AgentLiveConfiguration)
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -25,24 +25,25 @@ module Gemfire
25
25
  # @return [String] the version of the application code
26
26
  attr_reader :version
27
27
 
28
- # @return [ApplicationCodeImage] the image that was used to create the application code
29
- attr_reader :application_code_image
30
-
31
- # @return [CacheServerInstance] the cache server instance that contains the application code
32
- attr_reader :instance
33
-
34
28
  # @private
35
29
  def initialize(location, client)
36
30
  super(location, client)
37
31
 
38
- @name = details["name"]
39
- @version = details["version"]
32
+ @name = details['name']
33
+ @version = details['version']
40
34
 
41
- @application_code_image = ApplicationCodeImage.new(
42
- Util::LinkUtils.get_link_href(details, 'application-code-image'), client)
35
+ @application_code_image_location = Util::LinkUtils.get_link_href(details, 'application-code-image')
36
+ @instance_location = Util::LinkUtils.get_link_href(details, 'cache-server-group-instance')
37
+ end
43
38
 
44
- @instance = CacheServerInstance.new(
45
- Util::LinkUtils.get_link_href(details, 'cache-server-group-instance'), client)
39
+ # @return [ApplicationCodeImage] the image that was used to create the application code
40
+ def application_code_image
41
+ @application_code_image ||= ApplicationCodeImage.new(@application_code_image_location, client)
42
+ end
43
+
44
+ # @return [CacheServerInstance] the cache server instance that contains the application code
45
+ def instance
46
+ @instance ||= CacheServerInstance.new(@instance_location, client)
46
47
  end
47
48
 
48
49
  # @return [String] a string representation of the application code
@@ -21,7 +21,7 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "application-code-images", ApplicationCodeImage)
24
+ super(location, client, 'application-code-images', ApplicationCodeImage)
25
25
  end
26
26
 
27
27
  # Creates a new application code image by uploading a file and assigning it a name and version
@@ -32,13 +32,15 @@ module Gemfire
32
32
  #
33
33
  # @return [ApplicationCodeImage] the new application code image
34
34
  def create(path, name, version)
35
- ApplicationCodeImage.new(client.post_image(location, path, { :name => name, :version => version }), client)
35
+ create_image(path, { :name => name, :version => version })
36
36
  end
37
37
 
38
38
  end
39
39
 
40
40
  # An application code image
41
41
  class ApplicationCodeImage < Shared::Resource
42
+
43
+ include Shared::Deletable
42
44
 
43
45
  # @return [String] the application code image's name
44
46
  attr_reader :name
@@ -60,23 +62,23 @@ module Gemfire
60
62
 
61
63
  # @return [ApplicationCode[]] the live application code that has been created from this application code image
62
64
  def live_application_code
63
- application_codes = []
64
- Util::LinkUtils.get_link_hrefs(client.get(location), "live-application-code").each {
65
- |application_code_location| application_codes << ApplicationCode.new(application_code_location, client)}
66
- application_codes
65
+ @live_application_codes ||= create_resources_from_links('live-application-code', ApplicationCode)
67
66
  end
68
67
 
69
68
  # @return [ApplicationCode[]] the pending application code that has been created from this application code image
70
69
  def pending_application_code
71
- application_codes = []
72
- Util::LinkUtils.get_link_hrefs(client.get(location), "pending-application-code").each {
73
- |application_code_location| application_codes << ApplicationCode.new(application_code_location, client)}
74
- application_codes
70
+ @pending_application_codes ||= create_resources_from_links('pending-application-code', ApplicationCode)
71
+ end
72
+
73
+ def reload
74
+ super
75
+ @live_application_codes = nil
76
+ @pending_application_codes = nil
75
77
  end
76
78
 
77
79
  # @return [String] a string representation of the application code image
78
80
  def to_s
79
- "#<#{self.class} name='#@name' version='#@version'>"
81
+ "#<#{self.class} name='#@name' version='#@version' size='#@size'>"
80
82
  end
81
83
 
82
84
  end
@@ -21,7 +21,7 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "cache-server-group-instances", CacheServerInstance)
24
+ super(location, client, 'cache-server-group-instances', CacheServerInstance)
25
25
  end
26
26
 
27
27
  # Creates a new cache server instance
@@ -32,7 +32,7 @@ module Gemfire
32
32
  # @return [CacheServerInstance] the new cache server instance
33
33
  def create(installation, name)
34
34
  payload = { :installation => installation.location, :name => name }
35
- CacheServerInstance.new(client.post(location, payload, "cache-server-group-instance"), client)
35
+ super(payload, 'cache-server-group-instance')
36
36
  end
37
37
 
38
38
  end
@@ -40,17 +40,14 @@ module Gemfire
40
40
  # A cache server instance
41
41
  class CacheServerInstance < Shared::Instance
42
42
 
43
- # @return [LiveApplicationCodes] the instance's live application code
44
- attr_reader :live_application_code
45
-
46
- # @return [PendingApplicationCodes] the instance's pending application code
47
- attr_reader :pending_application_code
48
-
49
43
  # @private
50
44
  def initialize(location, client)
51
- super(location, client, Group, Installation, CacheServerLiveConfigurations, CacheServerPendingConfigurations, CacheServerNodeInstance, 'cache-server-node-instance')
52
- @live_application_code = LiveApplicationCodes.new(Util::LinkUtils.get_link_href(details, 'live-application-code'), client)
53
- @pending_application_code = PendingApplicationCodes.new(Util::LinkUtils.get_link_href(details, 'pending-application-code'), client)
45
+ super(location, client, Group, Installation, CacheServerLiveConfigurations, CacheServerPendingConfigurations,
46
+ CacheServerNodeInstance, 'cache-server-node-instance')
47
+
48
+ @live_application_code_location = Util::LinkUtils.get_link_href(details, 'live-application-code')
49
+ @pending_application_code_location = Util::LinkUtils.get_link_href(details, 'pending-application-code')
50
+
54
51
  end
55
52
 
56
53
  # Updates the instance to use a different installation
@@ -59,7 +56,18 @@ module Gemfire
59
56
  #
60
57
  # @return [void]
61
58
  def update(installation)
62
- client.post(location, { :installation => installation.location });
59
+ client.post(location, { :installation => installation.location })
60
+ reload
61
+ end
62
+
63
+ # @return [LiveApplicationCodes] the instance's live application code
64
+ def live_application_code
65
+ @live_application_code ||= LiveApplicationCodes.new(@live_application_code_location, client)
66
+ end
67
+
68
+ # @return [PendingApplicationCodes] the instance's pending application code
69
+ def pending_application_code
70
+ @pending_application_code ||= PendingApplicationCodes.new(@pending_application_code_location, client)
63
71
  end
64
72
 
65
73
  end
@@ -21,17 +21,17 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "live-configurations", CacheServerLiveConfiguration)
24
+ super(location, client, 'live-configurations', CacheServerLiveConfiguration)
25
25
  end
26
26
 
27
27
  end
28
28
 
29
29
  # A live configuration file in a cache server instance
30
- class CacheServerLiveConfiguration < Shared::Configuration
30
+ class CacheServerLiveConfiguration < Shared::LiveConfiguration
31
31
 
32
32
  # @private
33
33
  def initialize(location, client)
34
- super(location, client, "cache-server-group-instance", CacheServerInstance)
34
+ super(location, client, 'cache-server-group-instance', CacheServerInstance, CacheServerNodeLiveConfiguration)
35
35
  end
36
36
 
37
37
  end
@@ -21,7 +21,7 @@ module Gemfire
21
21
 
22
22
  # @private
23
23
  def initialize(location, client)
24
- super(location, client, "cache-server-node-instances", CacheServerNodeInstance)
24
+ super(location, client, 'cache-server-node-instances', CacheServerNodeInstance)
25
25
  end
26
26
 
27
27
  end
@@ -29,17 +29,24 @@ module Gemfire
29
29
  # A cache server node instance
30
30
  class CacheServerNodeInstance < Shared::NodeInstance
31
31
 
32
+ # @private
33
+ def initialize(location, client)
34
+ super(location, client, Node, CacheServerLogs, CacheServerInstance, 'cache-server-group-instance',
35
+ CacheServerNodeLiveConfigurations)
36
+
37
+ @disk_stores_location = Util::LinkUtils.get_link_href(details, 'disk-stores')
38
+ @statistics_location = Util::LinkUtils.get_link_href(details, 'statistics')
39
+
40
+ end
41
+
32
42
  # @return [DiskStores] the instance's disk stores
33
- attr_reader :disk_stores
43
+ def disk_stores
44
+ @disk_stores ||= DiskStores.new(@disk_stores_location, client)
45
+ end
34
46
 
35
47
  # @return [Statistics] the instance's statistics
36
- attr_reader :statistics
37
-
38
- # @private
39
- def initialize(location, client)
40
- super(location, client, Node, CacheServerLogs, CacheServerInstance, 'cache-server-group-instance')
41
- @disk_stores = DiskStores.new(Util::LinkUtils.get_link_href(details, 'disk-stores'), client)
42
- @statistics = Statistics.new(Util::LinkUtils.get_link_href(details, 'statistics'), client)
48
+ def statistics
49
+ @statistics ||= Statistics.new(@statistics_location, client)
43
50
  end
44
51
 
45
52
  end
@@ -0,0 +1,39 @@
1
+ # vFabric Administration Server Ruby API
2
+ # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
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 Gemfire
18
+
19
+ # Used to enumerate a cache server node instance's live configuration
20
+ class CacheServerNodeLiveConfigurations < Shared::Collection
21
+
22
+ # @private
23
+ def initialize(location, client)
24
+ super(location, client, 'node-live-configurations', CacheServerNodeLiveConfiguration)
25
+ end
26
+
27
+ end
28
+
29
+ # A live configuration file in a cache server node instance
30
+ class CacheServerNodeLiveConfiguration < Shared::NodeConfiguration
31
+
32
+ # @private
33
+ def initialize(location, client)
34
+ super(location, client, 'cache-server-node-instance', CacheServerNodeInstance, CacheServerLiveConfiguration)
35
+ end
36
+
37
+ end
38
+
39
+ end