vas 0.4.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/lib/vas.rb +44 -1
- data/lib/vas/gemfire/agent_instances.rb +4 -3
- data/lib/vas/gemfire/agent_live_configurations.rb +3 -3
- data/lib/vas/gemfire/agent_node_instances.rb +2 -2
- data/lib/vas/gemfire/agent_node_live_configurations.rb +39 -0
- data/lib/vas/gemfire/application_code.rb +13 -12
- data/lib/vas/gemfire/application_code_images.rb +13 -11
- data/lib/vas/gemfire/cache_server_instances.rb +20 -12
- data/lib/vas/gemfire/cache_server_live_configurations.rb +3 -3
- data/lib/vas/gemfire/cache_server_node_instances.rb +16 -9
- data/lib/vas/gemfire/cache_server_node_live_configurations.rb +39 -0
- data/lib/vas/gemfire/disk_stores.rb +19 -11
- data/lib/vas/gemfire/gemfire.rb +4 -4
- data/lib/vas/gemfire/groups.rb +17 -10
- data/lib/vas/gemfire/installations.rb +12 -3
- data/lib/vas/gemfire/live_application_codes.rb +2 -2
- data/lib/vas/gemfire/locator_instances.rb +23 -13
- data/lib/vas/gemfire/locator_live_configurations.rb +3 -3
- data/lib/vas/gemfire/locator_node_instances.rb +22 -14
- data/lib/vas/gemfire/locator_node_live_configurations.rb +39 -0
- data/lib/vas/gemfire/nodes.rb +27 -6
- data/lib/vas/gemfire/pending_application_codes.rb +7 -2
- data/lib/vas/gemfire/statistics.rb +18 -11
- data/lib/vas/rabbitmq/groups.rb +6 -4
- data/lib/vas/rabbitmq/installations.rb +14 -6
- data/lib/vas/rabbitmq/instances.rb +9 -6
- data/lib/vas/rabbitmq/live_configurations.rb +3 -3
- data/lib/vas/rabbitmq/node_instances.rb +2 -2
- data/lib/vas/rabbitmq/node_live_configurations.rb +39 -0
- data/lib/vas/rabbitmq/nodes.rb +11 -8
- data/lib/vas/rabbitmq/plugin_images.rb +14 -7
- data/lib/vas/rabbitmq/plugins.rb +29 -20
- data/lib/vas/rabbitmq/rabbitmq.rb +4 -4
- data/lib/vas/shared/collection.rb +34 -11
- data/lib/vas/shared/configuration.rb +16 -9
- data/lib/vas/shared/deletable.rb +34 -0
- data/lib/vas/shared/groups.rb +26 -15
- data/lib/vas/shared/installation_images.rb +18 -10
- data/lib/vas/shared/installations.rb +22 -22
- data/lib/vas/shared/instance.rb +40 -19
- data/lib/vas/shared/live_configuration.rb +42 -0
- data/lib/vas/shared/logs.rb +27 -14
- data/lib/vas/shared/mutable_collection.rb +13 -5
- data/lib/vas/shared/node_configuration.rb +74 -0
- data/lib/vas/shared/node_instances.rb +32 -14
- data/lib/vas/shared/nodes.rb +37 -14
- data/lib/vas/shared/{pending_configuration.rb → pending_configurations.rb} +4 -2
- data/lib/vas/shared/resource.rb +12 -2
- data/lib/vas/shared/security.rb +11 -4
- data/lib/vas/shared/state_resource.rb +1 -1
- data/lib/vas/sqlfire/agent_instances.rb +98 -0
- data/lib/vas/sqlfire/agent_live_configurations.rb +39 -0
- data/lib/vas/sqlfire/agent_logs.rb +39 -0
- data/lib/vas/sqlfire/agent_node_instances.rb +54 -0
- data/lib/vas/sqlfire/agent_node_live_configurations.rb +39 -0
- data/lib/vas/sqlfire/agent_pending_configurations.rb +39 -0
- data/lib/vas/sqlfire/groups.rb +58 -0
- data/lib/vas/sqlfire/installation_images.rb +39 -0
- data/lib/vas/sqlfire/installations.rb +61 -0
- data/lib/vas/sqlfire/locator_instances.rb +210 -0
- data/lib/vas/sqlfire/locator_live_configurations.rb +39 -0
- data/lib/vas/sqlfire/locator_logs.rb +39 -0
- data/lib/vas/sqlfire/locator_node_instances.rb +91 -0
- data/lib/vas/sqlfire/locator_node_live_configurations.rb +39 -0
- data/lib/vas/sqlfire/locator_pending_configurations.rb +39 -0
- data/lib/vas/sqlfire/nodes.rb +73 -0
- data/lib/vas/sqlfire/server_instances.rb +192 -0
- data/lib/vas/sqlfire/server_live_configurations.rb +39 -0
- data/lib/vas/sqlfire/server_logs.rb +39 -0
- data/lib/vas/sqlfire/server_node_instances.rb +86 -0
- data/lib/vas/sqlfire/server_node_live_configurations.rb +39 -0
- data/lib/vas/sqlfire/server_pending_configurations.rb +39 -0
- data/lib/vas/sqlfire/sqlfire.rb +44 -0
- data/lib/vas/tc_server/applications.rb +32 -21
- data/lib/vas/tc_server/configuration.rb +1 -1
- data/lib/vas/tc_server/groups.rb +7 -4
- data/lib/vas/tc_server/installations.rb +16 -6
- data/lib/vas/tc_server/instances.rb +25 -13
- data/lib/vas/tc_server/live_configurations.rb +11 -1
- data/lib/vas/tc_server/logs.rb +4 -2
- data/lib/vas/tc_server/node_applications.rb +21 -17
- data/lib/vas/tc_server/node_instances.rb +23 -9
- data/lib/vas/tc_server/node_live_configurations.rb +39 -0
- data/lib/vas/tc_server/node_revisions.rb +15 -10
- data/lib/vas/tc_server/nodes.rb +15 -8
- data/lib/vas/tc_server/revision_images.rb +16 -10
- data/lib/vas/tc_server/revisions.rb +20 -16
- data/lib/vas/tc_server/tc_server.rb +5 -5
- data/lib/vas/tc_server/template_images.rb +13 -7
- data/lib/vas/tc_server/templates.rb +21 -13
- data/lib/vas/util/client.rb +15 -6
- data/lib/vas/vfabric/agent_image.rb +1 -1
- data/lib/vas/vfabric/nodes.rb +4 -11
- data/lib/vas/vfabric/v_fabric.rb +2 -2
- data/lib/vas/vfabric_administration_server.rb +37 -6
- data/lib/vas/web_server/configuration.rb +29 -0
- data/lib/vas/web_server/groups.rb +44 -0
- data/lib/vas/web_server/installation_images.rb +54 -0
- data/lib/vas/web_server/installations.rb +52 -0
- data/lib/vas/web_server/instances.rb +65 -0
- data/lib/vas/web_server/live_configurations.rb +39 -0
- data/lib/vas/web_server/logs.rb +37 -0
- data/lib/vas/web_server/node_instances.rb +39 -0
- data/lib/vas/web_server/node_live_configurations.rb +39 -0
- data/lib/vas/web_server/nodes.rb +53 -0
- data/lib/vas/web_server/pending_configurations.rb +39 -0
- data/lib/vas/web_server/web_server.rb +43 -0
- metadata +137 -76
@@ -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 Sqlfire
|
18
|
+
|
19
|
+
# Used to enumerate a server instance's live configuration
|
20
|
+
class ServerLiveConfigurations < Shared::Collection
|
21
|
+
|
22
|
+
# @private
|
23
|
+
def initialize(location, client)
|
24
|
+
super(location, client, 'live-configurations', ServerLiveConfiguration)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# A live configuration file in a server instance
|
30
|
+
class ServerLiveConfiguration < Shared::LiveConfiguration
|
31
|
+
|
32
|
+
# @private
|
33
|
+
def initialize(location, client)
|
34
|
+
super(location, client, 'server-group-instance', ServerInstance, ServerNodeLiveConfiguration)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
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 Sqlfire
|
18
|
+
|
19
|
+
# Used to enumerate a server node instance's logs
|
20
|
+
class ServerLogs < Shared::Logs
|
21
|
+
|
22
|
+
# @private
|
23
|
+
def initialize(location, client)
|
24
|
+
super(location, client, ServerLog)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# A log file in a server node instance
|
30
|
+
class ServerLog < Shared::Log
|
31
|
+
|
32
|
+
# @private
|
33
|
+
def initialize(location, client)
|
34
|
+
super(location, client, 'server-node-instance', ServerNodeInstance)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,86 @@
|
|
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 Sqlfire
|
18
|
+
|
19
|
+
# Used to enumerate server instances on an individual node
|
20
|
+
class ServerNodeInstances < Shared::NodeInstances
|
21
|
+
|
22
|
+
# @private
|
23
|
+
def initialize(location, client)
|
24
|
+
super(location, client, 'server-node-instances', ServerNodeInstance)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# A server node instance
|
30
|
+
class ServerNodeInstance < Shared::NodeInstance
|
31
|
+
|
32
|
+
# @return [String] the property in a node's metadata used to determine the address that the server binds to for
|
33
|
+
# peer-to-peer communication. If +nil+, the server uses the node's hostname
|
34
|
+
attr_reader :bind_address
|
35
|
+
|
36
|
+
# @return [String] the property in a node's metadata used to determine the address that the server binds to for
|
37
|
+
# client communication. If +nil+, the server uses localhost. Only takes effect if +run_netserver+ is +true+
|
38
|
+
attr_reader :client_bind_address
|
39
|
+
|
40
|
+
# @return [Integer] the port that the server listens on for client connections. Only takes effect if +run_netserver+
|
41
|
+
# is +true+
|
42
|
+
attr_reader :client_port
|
43
|
+
|
44
|
+
# @return [Integer] critical heap percentage as a percentage of the old generation heap. +nil+ if the server uses
|
45
|
+
# the default
|
46
|
+
attr_reader :critical_heap_percentage
|
47
|
+
|
48
|
+
# @return [String] The initial heap size of the server's JVM. +nil+ if the default is used
|
49
|
+
attr_reader :initial_heap
|
50
|
+
|
51
|
+
# @return [String[]] The JVM options that are passed to the server's JVM when it is started
|
52
|
+
attr_reader :jvm_options
|
53
|
+
|
54
|
+
# @return [String] The max heap size of the server's JVM. +nil+ if the default is used
|
55
|
+
attr_reader :max_heap
|
56
|
+
|
57
|
+
# @return [Boolean] +true+ if the server runs a netserver that can service thin clients, otherwise +false+
|
58
|
+
attr_reader :run_netserver
|
59
|
+
|
60
|
+
# @private
|
61
|
+
def initialize(location, client)
|
62
|
+
super(location, client, Node, ServerLogs, ServerInstance, 'server-group-instance', ServerNodeLiveConfigurations)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Reloads the instance's details from the server
|
66
|
+
# @return [void]
|
67
|
+
def reload
|
68
|
+
super
|
69
|
+
@bind_address = details['bind-address']
|
70
|
+
@client_bind_address = details['client-bind-address']
|
71
|
+
@client_port = details['client-port']
|
72
|
+
@critical_heap_percentage = details['critical-heap-percentage']
|
73
|
+
@initial_heap = details['initial-heap']
|
74
|
+
@jvm_options = details['jvm-options']
|
75
|
+
@max_heap = details['max-heap']
|
76
|
+
@run_netserver = details['run-netserver']
|
77
|
+
end
|
78
|
+
|
79
|
+
# @return [String] a string representation of the instance
|
80
|
+
def to_s
|
81
|
+
"#<#{self.class} name='#{name}' bind_address='#@bind_address' client_bind_address='#@client_bind_address' client_port='#@client_port' critical_heap_percentage='#@critical_heap_percentage' initial_heap='#@initial_heap' jvm_options='#@jvm_options' max_heap='#@max_heap' run_netserver='#@run_netserver'>"
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
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 Sqlfire
|
18
|
+
|
19
|
+
# Used to enumerate a server node instance's live configuration
|
20
|
+
class ServerNodeLiveConfigurations < Shared::Collection
|
21
|
+
|
22
|
+
# @private
|
23
|
+
def initialize(location, client)
|
24
|
+
super(location, client, 'node-live-configurations', ServerNodeLiveConfiguration)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# A live configuration file in a server node instance
|
30
|
+
class ServerNodeLiveConfiguration < Shared::NodeConfiguration
|
31
|
+
|
32
|
+
# @private
|
33
|
+
def initialize(location, client)
|
34
|
+
super(location, client, 'server-node-instance', ServerNodeInstance, ServerLiveConfiguration)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
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 Sqlfire
|
18
|
+
|
19
|
+
# Used to enumerate a server instance's pending configuration
|
20
|
+
class ServerPendingConfigurations < Shared::PendingConfigurations
|
21
|
+
|
22
|
+
# @private
|
23
|
+
def initialize(location, client)
|
24
|
+
super(location, client, 'pending-configurations', ServerPendingConfiguration)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# A server configuration file that is pending
|
30
|
+
class ServerPendingConfiguration < Shared::PendingConfiguration
|
31
|
+
|
32
|
+
# @private
|
33
|
+
def initialize(location, client)
|
34
|
+
super(location, client, 'server-group-instance', ServerInstance)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,44 @@
|
|
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
|
+
# API for administering SQLFire
|
18
|
+
module Sqlfire
|
19
|
+
|
20
|
+
# The entry point to the API for administering SQLFire
|
21
|
+
class Sqlfire
|
22
|
+
|
23
|
+
# @return [Groups] the SQLFire groups
|
24
|
+
attr_reader :groups
|
25
|
+
|
26
|
+
# @return [InstallationImages] the SQLFire installation images
|
27
|
+
attr_reader :installation_images
|
28
|
+
|
29
|
+
# @return [Nodes] the SQLFire nodes
|
30
|
+
attr_reader :nodes
|
31
|
+
|
32
|
+
# @private
|
33
|
+
def initialize(location, client)
|
34
|
+
|
35
|
+
json = client.get(location)
|
36
|
+
|
37
|
+
@groups = Groups.new(Util::LinkUtils.get_link_href(json, 'groups'), client)
|
38
|
+
@installation_images = InstallationImages.new(Util::LinkUtils.get_link_href(json, 'installation-images'), client)
|
39
|
+
@nodes = Nodes.new(Util::LinkUtils.get_link_href(json, 'nodes'), client)
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -32,18 +32,20 @@ module TcServer
|
|
32
32
|
#
|
33
33
|
# @return [Application] the new application
|
34
34
|
def create(name, context_path, service, host)
|
35
|
-
|
35
|
+
payload = {'context-path' => context_path,
|
36
|
+
:name => name,
|
37
|
+
:host => host,
|
38
|
+
:service => service}
|
39
|
+
super(payload, 'group-application')
|
36
40
|
end
|
37
41
|
|
38
|
-
private
|
39
|
-
def create_entry(json)
|
40
|
-
Application.new(Util::LinkUtils.get_self_link_href(json), client)
|
41
|
-
end
|
42
42
|
end
|
43
43
|
|
44
44
|
# An application
|
45
45
|
class Application < Shared::Resource
|
46
46
|
|
47
|
+
include Shared::Deletable
|
48
|
+
|
47
49
|
# @return [String] the application's context path
|
48
50
|
attr_reader :context_path
|
49
51
|
|
@@ -56,30 +58,39 @@ module TcServer
|
|
56
58
|
# @return [String] the host the application will deploy its revisions to
|
57
59
|
attr_reader :host
|
58
60
|
|
59
|
-
# @return [Revisions] the application's revisions
|
60
|
-
attr_reader :revisions
|
61
|
-
|
62
|
-
# @return [Instance] the instance that contains the application
|
63
|
-
attr_reader :instance
|
64
|
-
|
65
61
|
# @private
|
66
62
|
def initialize(location, client)
|
67
63
|
super(location, client)
|
68
64
|
|
69
|
-
@
|
70
|
-
@
|
71
|
-
|
72
|
-
@
|
73
|
-
@
|
74
|
-
@
|
65
|
+
@revisions_location = Util::LinkUtils.get_link_href(details, 'group-revisions')
|
66
|
+
@instance_location = Util::LinkUtils.get_link_href(details, 'group-instance')
|
67
|
+
|
68
|
+
@context_path = details['context-path']
|
69
|
+
@name = details['name']
|
70
|
+
@service = details['service']
|
71
|
+
@host = details['host']
|
72
|
+
end
|
73
|
+
|
74
|
+
# Reloads the application's details from the server
|
75
|
+
# @return [void]
|
76
|
+
def reload
|
77
|
+
super
|
78
|
+
@node_applications = nil
|
75
79
|
end
|
76
80
|
|
77
81
|
# @return [NodeApplication[]] the application's individual node applications
|
78
82
|
def node_applications
|
79
|
-
node_applications
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
+
@node_applications ||= create_resources_from_links('node-application', NodeApplication)
|
84
|
+
end
|
85
|
+
|
86
|
+
# @return [Instance] the instance that contains the application
|
87
|
+
def instance
|
88
|
+
@instance ||= Instance.new(@instance_location, client)
|
89
|
+
end
|
90
|
+
|
91
|
+
# @return [Revisions] the application's revisions
|
92
|
+
def revisions
|
93
|
+
@revisions ||= Revisions.new(@revisions_location, client)
|
83
94
|
end
|
84
95
|
|
85
96
|
# @return [String] a string representation of the application
|
data/lib/vas/tc_server/groups.rb
CHANGED
@@ -29,13 +29,16 @@ module TcServer
|
|
29
29
|
# A tc Server group
|
30
30
|
class Group < Shared::MutableGroup
|
31
31
|
|
32
|
-
# The group's instances
|
33
|
-
attr_reader :instances
|
34
|
-
|
35
32
|
# @private
|
36
33
|
def initialize(location, client)
|
37
34
|
super(location, client, Node, Installations)
|
38
|
-
|
35
|
+
|
36
|
+
@instances_location = Util::LinkUtils.get_link_href(details, 'group-instances')
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [Instances] the group's instances
|
40
|
+
def instances
|
41
|
+
@instances ||= Instances.new(@instances_location, client)
|
39
42
|
end
|
40
43
|
|
41
44
|
end
|
@@ -31,21 +31,31 @@ module TcServer
|
|
31
31
|
|
32
32
|
# @return [String[]] the versions of the tc Server runtime that are supported by the installation
|
33
33
|
attr_reader :runtime_versions
|
34
|
-
|
35
|
-
# @return [Templates] the installation's templates
|
36
|
-
attr_reader :templates
|
37
34
|
|
38
35
|
# @private
|
39
36
|
def initialize(location, client)
|
40
37
|
super(location, client, InstallationImage, Group)
|
41
38
|
|
42
|
-
@runtime_versions = details[
|
43
|
-
@
|
39
|
+
@runtime_versions = details['runtime-versions']
|
40
|
+
@templates_location = Util::LinkUtils.get_link_href(details, 'templates')
|
41
|
+
end
|
42
|
+
|
43
|
+
# Reloads the installation's details from the server
|
44
|
+
#
|
45
|
+
# @return [void]
|
46
|
+
def reload
|
47
|
+
super
|
48
|
+
@instances = nil
|
44
49
|
end
|
45
50
|
|
46
51
|
# @return [Instance[]] the instances that are using the installation
|
47
52
|
def instances
|
48
|
-
|
53
|
+
@instances ||= create_resources_from_links('group-instance', Instance)
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Templates] the installation's templates
|
57
|
+
def templates
|
58
|
+
@templates ||= Templates.new(@templates_location, client)
|
49
59
|
end
|
50
60
|
|
51
61
|
end
|