vas 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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