vas 0.3.0 → 0.4.0

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.
Files changed (84) hide show
  1. data/README.md +25 -5
  2. data/lib/vas.rb +2 -7
  3. data/lib/vas/gemfire/agent_instances.rb +16 -6
  4. data/lib/vas/gemfire/agent_live_configurations.rb +14 -4
  5. data/lib/vas/gemfire/agent_logs.rb +5 -4
  6. data/lib/vas/gemfire/agent_node_instances.rb +5 -4
  7. data/lib/vas/gemfire/agent_pending_configurations.rb +5 -4
  8. data/lib/vas/gemfire/application_code.rb +7 -6
  9. data/lib/vas/gemfire/application_code_images.rb +19 -11
  10. data/lib/vas/gemfire/cache_server_instances.rb +18 -8
  11. data/lib/vas/gemfire/cache_server_live_configurations.rb +14 -4
  12. data/lib/vas/gemfire/cache_server_logs.rb +5 -4
  13. data/lib/vas/gemfire/cache_server_node_instances.rb +7 -6
  14. data/lib/vas/gemfire/cache_server_pending_configurations.rb +6 -5
  15. data/lib/vas/gemfire/disk_stores.rb +23 -13
  16. data/lib/vas/gemfire/gemfire.rb +8 -7
  17. data/lib/vas/gemfire/groups.rb +9 -8
  18. data/lib/vas/gemfire/installation_images.rb +5 -4
  19. data/lib/vas/gemfire/installations.rb +11 -10
  20. data/lib/vas/gemfire/live_application_codes.rb +3 -3
  21. data/lib/vas/gemfire/locator_instances.rb +25 -20
  22. data/lib/vas/gemfire/locator_live_configurations.rb +14 -4
  23. data/lib/vas/gemfire/locator_logs.rb +5 -4
  24. data/lib/vas/gemfire/locator_node_instances.rb +7 -6
  25. data/lib/vas/gemfire/locator_pending_configurations.rb +6 -5
  26. data/lib/vas/gemfire/nodes.rb +20 -21
  27. data/lib/vas/gemfire/pending_application_codes.rb +8 -4
  28. data/lib/vas/gemfire/statistics.rb +21 -13
  29. data/lib/vas/rabbitmq/groups.rb +8 -7
  30. data/lib/vas/rabbitmq/installation_images.rb +7 -6
  31. data/lib/vas/rabbitmq/installations.rb +8 -7
  32. data/lib/vas/rabbitmq/instances.rb +20 -10
  33. data/lib/vas/rabbitmq/live_configurations.rb +15 -5
  34. data/lib/vas/rabbitmq/logs.rb +7 -6
  35. data/lib/vas/rabbitmq/node_instances.rb +7 -6
  36. data/lib/vas/rabbitmq/nodes.rb +13 -15
  37. data/lib/vas/rabbitmq/pending_configurations.rb +7 -6
  38. data/lib/vas/rabbitmq/plugin_images.rb +14 -8
  39. data/lib/vas/rabbitmq/plugins.rb +24 -23
  40. data/lib/vas/rabbitmq/rabbitmq.rb +10 -7
  41. data/lib/vas/shared/collection.rb +12 -6
  42. data/lib/vas/shared/configuration.rb +16 -8
  43. data/lib/vas/shared/groups.rb +28 -10
  44. data/lib/vas/shared/installation_images.rb +20 -8
  45. data/lib/vas/shared/installations.rb +23 -12
  46. data/lib/vas/shared/{instances.rb → instance.rb} +11 -12
  47. data/lib/vas/shared/logs.rb +30 -21
  48. data/lib/vas/shared/mutable_collection.rb +5 -3
  49. data/lib/vas/shared/node_instances.rb +12 -7
  50. data/lib/vas/shared/nodes.rb +14 -12
  51. data/lib/vas/shared/pending_configuration.rb +12 -5
  52. data/lib/vas/shared/resource.rb +10 -6
  53. data/lib/vas/shared/security.rb +15 -11
  54. data/lib/vas/shared/state_resource.rb +12 -6
  55. data/lib/vas/tc_server/applications.rb +24 -21
  56. data/lib/vas/tc_server/configuration.rb +3 -3
  57. data/lib/vas/tc_server/groups.rb +7 -6
  58. data/lib/vas/tc_server/installation_images.rb +5 -4
  59. data/lib/vas/tc_server/installations.rb +11 -12
  60. data/lib/vas/tc_server/instances.rb +28 -20
  61. data/lib/vas/tc_server/live_configurations.rb +3 -3
  62. data/lib/vas/tc_server/logs.rb +1 -2
  63. data/lib/vas/tc_server/node_applications.rb +19 -19
  64. data/lib/vas/tc_server/node_instances.rb +9 -8
  65. data/lib/vas/tc_server/node_revisions.rb +12 -10
  66. data/lib/vas/tc_server/nodes.rb +11 -9
  67. data/lib/vas/tc_server/pending_configurations.rb +5 -4
  68. data/lib/vas/tc_server/revision_images.rb +19 -11
  69. data/lib/vas/tc_server/revisions.rb +22 -18
  70. data/lib/vas/tc_server/tc_server.rb +9 -8
  71. data/lib/vas/tc_server/template_images.rb +19 -11
  72. data/lib/vas/tc_server/templates.rb +19 -17
  73. data/lib/vas/util/client.rb +4 -3
  74. data/lib/vas/util/link_utils.rb +4 -3
  75. data/lib/vas/vas_exception.rb +6 -6
  76. data/lib/vas/vfabric/agent_image.rb +14 -3
  77. data/lib/vas/vfabric/nodes.rb +16 -10
  78. data/lib/vas/vfabric/v_fabric.rb +6 -3
  79. data/lib/vas/vfabric_administration_server.rb +11 -11
  80. metadata +13 -17
  81. data/lib/vas/gemfire/agent_configuration.rb +0 -28
  82. data/lib/vas/gemfire/cache_server_configuration.rb +0 -28
  83. data/lib/vas/gemfire/locator_configuration.rb +0 -28
  84. data/lib/vas/rabbitmq/configuration.rb +0 -28
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,12 +12,15 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
18
+
19
+ # @abstract A collection that allows items to be deleted from it
19
20
  class MutableCollection < Collection
20
21
 
21
- # Deletes the item
22
+ # Deletes the item from the collection
23
+ # @return [void]
22
24
  def delete(entry)
23
25
  client.delete(entry.location)
24
26
  end
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,32 +12,37 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
19
18
 
19
+ # @abstract A collection of node instances
20
20
  class NodeInstances < Shared::Collection
21
21
 
22
- def initialize(location, client, type, entry_class) #:nodoc:
22
+ private
23
+
24
+ def initialize(location, client, type, entry_class)
23
25
  super(location, client, type, entry_class)
24
26
  end
25
27
 
26
28
  end
27
29
 
30
+ # @abstract A node instance, i.e. an instance on an individual node
28
31
  class NodeInstance < Shared::StateResource
29
32
 
30
- # The instance's name
33
+ # @return [String] the instance's name
31
34
  attr_reader :name
32
35
 
33
- # The node that contains this instance
36
+ # @return [GroupableNode] the node that contains this instance
34
37
  attr_reader :node
35
38
 
36
- # The instance's Logs
39
+ # @return [Logs] the instance's Logs
37
40
  attr_reader :logs
38
41
 
39
- # The node instance's group instance
42
+ # @return [Instance] the node instance's group instance
40
43
  attr_reader :group_instance
41
44
 
45
+ # @private
42
46
  def initialize(location, client, node_class, logs_class, group_instance_class, group_instance_type) #:nodoc:
43
47
  super(location, client)
44
48
 
@@ -49,6 +53,7 @@ module Shared
49
53
  @group_instance = group_instance_class.new(Util::LinkUtils.get_link_href(details, group_instance_type), client)
50
54
  end
51
55
 
56
+ # @return [String] a string representation of the node instance
52
57
  def to_s #:nodoc:
53
58
  "#<#{self.class} name='#@name'>"
54
59
  end
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,32 +12,33 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
19
18
 
20
- # A node
19
+ # @abstract A node, i.e. a machine with the vFabric Administration agent installed on it
21
20
  class Node < Shared::Resource
22
21
 
23
- # The location of the vFabric Administration agent
22
+ # @return [String] the location of the vFabric Administration agent
24
23
  attr_reader :agent_home
25
24
 
26
- # The architecture of the node's operating system
25
+ # @return [String] the architecture of the node's operating system
27
26
  attr_reader :architecture
28
27
 
29
- # The node's host names
28
+ # @return [String] the node's host names
30
29
  attr_reader :host_names
31
30
 
32
- # The node's IP addresses
31
+ # @return [String[]] the node's IP addresses
33
32
  attr_reader :ip_addresses
34
33
 
35
- # The node's metadata
34
+ # @return [Hash] the node's metadata
36
35
  attr_reader :metadata
37
36
 
38
- # The node's operating system
37
+ # @return [String] the node's operating system
39
38
  attr_reader :operating_system
40
39
 
41
- def initialize(location, client) #:nodoc:
40
+ # @private
41
+ def initialize(location, client)
42
42
  super(location, client)
43
43
 
44
44
  @agent_home = details["agent-home"]
@@ -51,14 +51,16 @@ module Shared
51
51
 
52
52
  end
53
53
 
54
+ # @abstract A node that can be grouped
54
55
  class GroupableNode < Node
55
-
56
+
57
+ # @private
56
58
  def initialize(location, client, group_class)
57
59
  super(location, client)
58
60
  @group_class = group_class
59
61
  end
60
62
 
61
- # An array of the groups which contain this node
63
+ # @return [Group[]] the groups that contain this node
62
64
  def groups
63
65
  groups = []
64
66
  Util::LinkUtils.get_link_hrefs(client.get(location), 'group').each {
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,23 +12,31 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
19
18
 
19
+ # @abstract A collection of an instance's pending configurations
20
20
  class PendingConfigurations < MutableCollection
21
21
 
22
- # Creates a configuration with the given +path+ in the instance and the given +content+
22
+ # Creates a new configuration. The configuration will be pending until its instance is started at which point the configuration will become live
23
+ #
24
+ # @param path [String] the configuration's path
25
+ # @param content [String] the configuration's content
26
+ #
27
+ # @return [PendingConfiguration] the new configuration
23
28
  def create(path, content)
24
29
  entry_class.new(client.post_image(location, content, { :path => path }), client)
25
30
  end
26
31
 
27
32
  end
28
33
 
29
- # A configuration file that is pending and will be made live the next time its instance is started
34
+ # @abstract A configuration file that is pending and will be made live the next time its instance is started
30
35
  class PendingConfiguration < Configuration
31
36
 
32
- # Updates the configuration to contain +new_content+
37
+ # Updates the contents of the configuration
38
+ #
39
+ # @param new_content [String] the new content
33
40
  def content=(new_content)
34
41
  client.post(content_location, new_content)
35
42
  @size = client.get(location)['size']
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,23 +12,28 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
19
18
 
19
+ # @abstract The base of all types that interact with the REST API. A resource should map to a
20
+ # specific URI in the REST API
20
21
  class Resource
21
22
 
22
- attr_reader :location #:nodoc:
23
+ # @private
24
+ attr_reader :location
23
25
 
24
- # The Resource's Security
26
+ # @return [Security] the resource's security
25
27
  attr_reader :security
26
-
28
+
27
29
  private
30
+
28
31
  attr_reader :client
29
32
 
30
33
  attr_reader :details
31
34
 
32
- def initialize(location, client) #:nodoc:
35
+ # @private
36
+ def initialize(location, client)
33
37
  @location = location
34
38
  @client = client
35
39
 
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,36 +12,41 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
19
18
 
20
19
  # The security configuration for a resource
21
20
  class Security
22
21
 
23
- # The permissions of the resource
22
+ # @return [Hash] The permissions of the resource
24
23
  attr_reader :permissions
25
24
 
26
- # The owner of the resource
25
+ # @return [String] the owner of the resource
27
26
  attr_reader :owner
28
27
 
29
- # The group of the resource
28
+ # @return [String] the group of the resource
30
29
  attr_reader :group
31
-
32
- attr_reader :location #:nodoc:
33
-
30
+
31
+ # @private
32
+ attr_reader :location
33
+
34
34
  private
35
35
  attr_reader :client
36
36
 
37
- def initialize(location, client) #:nodoc:
37
+ # @private
38
+ def initialize(location, client)
38
39
  json = client.get(location)
39
40
  @location = location;
40
41
  @owner = json["owner"]
41
42
  @group = json["group"]
42
43
  @permissions = json["permissions"]
43
44
  end
44
-
45
- def to_s #:nodoc:
45
+
46
+ public
47
+
48
+ # @return [String] a string representation of this security object
49
+ def to_s
46
50
  "#<#{self.class} owner='#@owner' group='#@group' permissions='#@permissions'>"
47
51
  end
48
52
 
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,28 +12,35 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module Shared
19
18
 
19
+ # @abstract A resource that has state, i.e. it can be started and stopped and its state can
20
+ # be queried
20
21
  class StateResource < Resource
21
-
22
- def initialize(location, client) #:nodoc:
22
+
23
+ # @private
24
+ def initialize(location, client)
23
25
  super(location, client)
24
26
  @state_location = Util::LinkUtils.get_link_href(details, 'state')
25
27
  end
26
28
 
27
29
  # Starts the resource
30
+ #
31
+ # @return [void]
28
32
  def start
29
33
  client.post(@state_location, { :status => 'STARTED' })
30
34
  end
31
-
35
+
32
36
  # Stops the resource
37
+ #
38
+ # @return [void]
33
39
  def stop
34
40
  client.post(@state_location, { :status => 'STOPPED' })
35
41
  end
36
42
 
37
- # The state of the resource
43
+ # @return [String] the state of the resource
38
44
  def state
39
45
  client.get(@state_location)['status']
40
46
  end
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,19 +12,25 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module TcServer
19
18
 
20
- # Used to enumerate, create, and delete applications.
19
+ # Used to enumerate, create, and delete applications
21
20
  class Applications < Shared::MutableCollection
22
21
 
23
22
  def initialize(location, client) #:nodoc:
24
23
  super(location, client, "applications", Application)
25
24
  end
26
25
 
27
- # Creates an Application named +name+ with the given +context_path+. The application will deploy its revisions to the given
28
- # +service+ and +host+.
26
+ # Creates an new application
27
+ #
28
+ # @param name [String] the name of the application
29
+ # @param context_path [String] the context path of the application
30
+ # @param service [String] the service that the application will deploy its revisions to
31
+ # @param host [String] the host that the application will deploy its revisions to
32
+ #
33
+ # @return [Application] the new application
29
34
  def create(name, context_path, service, host)
30
35
  Application.new(client.post(location, {"context-path" => context_path, :name => name, :host => host, :service => service}, "group-application"), client)
31
36
  end
@@ -39,40 +44,37 @@ module TcServer
39
44
  # An application
40
45
  class Application < Shared::Resource
41
46
 
42
- # The application's context path
47
+ # @return [String] the application's context path
43
48
  attr_reader :context_path
44
49
 
45
- # The application's name
50
+ # @return [String] the application's name
46
51
  attr_reader :name
47
52
 
48
- # The service the application will deploy its revisions to
53
+ # @return [String] the service the application will deploy its revisions to
49
54
  attr_reader :service
50
55
 
51
- # The host the application will deploy its revisions to
56
+ # @return [String] the host the application will deploy its revisions to
52
57
  attr_reader :host
53
58
 
54
- # The application's Revisions
59
+ # @return [Revisions] the application's revisions
55
60
  attr_reader :revisions
61
+
62
+ # @return [Instance] the instance that contains the application
63
+ attr_reader :instance
56
64
 
57
- def initialize(location, client) #:nodoc:
65
+ # @private
66
+ def initialize(location, client)
58
67
  super(location, client)
59
68
 
60
69
  @revisions = Revisions.new(Util::LinkUtils.get_link_href(details, "group-revisions"), client)
61
-
62
70
  @context_path = details["context-path"]
63
71
  @name = details["name"]
64
72
  @service = details["service"]
65
73
  @host = details["host"]
66
-
67
- @instance_location = Util::LinkUtils.get_link_href(details, "group-instance")
68
- end
69
-
70
- # The instance that contains the application
71
- def instance
72
- Instance.new(@instance_location, client)
74
+ @instance = Instance.new(Util::LinkUtils.get_link_href(details, "group-instance"), client)
73
75
  end
74
76
 
75
- # An array of the application's individual node applications
77
+ # @return [NodeApplication[]] the application's individual node applications
76
78
  def node_applications
77
79
  node_applications = []
78
80
  Util::LinkUtils.get_link_hrefs(client.get(location), 'node-application').each {
@@ -80,7 +82,8 @@ module TcServer
80
82
  node_applications
81
83
  end
82
84
 
83
- def to_s #:nodoc:
85
+ # @return [String] a string representation of the application
86
+ def to_s
84
87
  "#<#{self.class} name='#@name' context_path='#@context_path' service='#@service' host='#@host'>"
85
88
  end
86
89
 
@@ -1,4 +1,3 @@
1
- #--
2
1
  # vFabric Administration Server Ruby API
3
2
  # Copyright (c) 2012 VMware, Inc. All Rights Reserved.
4
3
  #
@@ -13,14 +12,15 @@
13
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
13
  # See the License for the specific language governing permissions and
15
14
  # limitations under the License.
16
- #++
15
+
17
16
 
18
17
  module TcServer
19
18
 
20
19
  # A configuration file in a tc Server instance
21
20
  class Configuration < Shared::Configuration
22
21
 
23
- def initialize(location, client) #:nodoc:
22
+ # @private
23
+ def initialize(location, client)
24
24
  super(location, client, "group-instance", Instance)
25
25
  end
26
26