lib/runcible/extensions/consumer_group.rb in runcible-0.2.1 vs lib/runcible/extensions/consumer_group.rb in runcible-0.3
- old
+ new
@@ -24,37 +24,74 @@
module Runcible
module Extensions
class ConsumerGroup < Runcible::Resources::ConsumerGroup
+ # Add consumers by ID to a consumer group
+ #
+ # @param [String] id the consumer group ID
+ # @param [Array] consumer_ids array of consumer IDs to add to the group
+ # @return [RestClient::Response] list of consumer IDs
def self.add_consumers_by_id(id, consumer_ids)
self.associate(id, make_consumer_criteria(consumer_ids))
end
+ # Remove consumers by ID from a consumer group
+ #
+ # @param [String] id the consumer group ID
+ # @param [Array] consumer_ids array of consumer IDs to remove from the group
+ # @return [RestClient::Response] list of consumer IDs
def self.remove_consumers_by_id(id, consumer_ids)
self.unassociate(id, make_consumer_criteria(consumer_ids))
end
+ # Generates consumer criteria query
+ #
+ # @param [Array] consumer_ids array of consumer IDs
+ # @return [Hash] the formatted query for consumers
def self.make_consumer_criteria(consumer_ids)
{:criteria =>
{:filters =>
{:id =>{"$in" =>consumer_ids}}
}
}
end
+ # Install content to a consumer group
+ #
+ # @param [String] id the consumer group ID
+ # @param [String] type_id the type of content to install (e.g. rpm, errata)
+ # @param [Array] units array of units to install
+ # @return [RestClient::Response] task representing the install operation
def self.install_content(id, type_id, units)
self.install_units(id, generate_content(type_id, units))
end
+ # Update content on a consumer group
+ #
+ # @param [String] id the consumer group ID
+ # @param [String] type_id the type of content to update (e.g. rpm, errata)
+ # @param [Array] units array of units to update
+ # @return [RestClient::Response] task representing the update operation
def self.update_content(id, type_id, units)
self.update_units(id, generate_content(type_id, units))
end
+ # Uninstall content from a consumer group
+ #
+ # @param [String] id the consumer group ID
+ # @param [String] type_id the type of content to uninstall (e.g. rpm, errata)
+ # @param [Array] units array of units to uninstall
+ # @return [RestClient::Response] task representing the uninstall operation
def self.uninstall_content(id, type_id, units)
self.uninstall_units(id, generate_content(type_id, units))
end
+ # Generate the content units used by other functions
+ #
+ # @param [String] type_id the type of content (e.g. rpm, errata)
+ # @param [Array] units array of units
+ # @return [Array] array of formatted content units
def self.generate_content(type_id, units)
content = []
units.each do |unit|
content_unit = {}
content_unit[:type_id] = type_id