Class: Runcible::Extensions::ConsumerGroup

Inherits:
Resources::ConsumerGroup show all
Defined in:
lib/runcible/extensions/consumer_group.rb

Class Method Summary collapse

Methods inherited from Resources::ConsumerGroup

associate, create, delete, install_units, path, retrieve, unassociate, uninstall_units, update_units

Methods inherited from Base

add_http_auth_header, add_oauth_header, call, combine_get_params, config, config=, generate_log_message, generate_payload, get_response, log_debug, log_exception, process_response, required_params

Class Method Details

.add_consumers_by_id(id, consumer_ids) ⇒ RestClient::Response

Add consumers by ID to a consumer group



34
35
36
# File 'lib/runcible/extensions/consumer_group.rb', line 34

def self.add_consumers_by_id(id, consumer_ids)
  self.associate(id, make_consumer_criteria(consumer_ids))
end

.generate_content(type_id, units) ⇒ Array

Generate the content units used by other functions



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/runcible/extensions/consumer_group.rb', line 96

def self.generate_content(type_id, units)
  content = []

  case type_id
    when 'rpm', 'package_group'
      unit_key = :name
    when 'erratum'
      unit_key = :id
    else
      unit_key = :id
  end

  units.each do |unit|
    content_unit = {}
    content_unit[:type_id] = type_id
    content_unit[:unit_key] = { unit_key => unit }
    content.push(content_unit)
  end
  content
end

.install_content(id, type_id, units, options = {}) ⇒ RestClient::Response

Install content to a consumer group



66
67
68
# File 'lib/runcible/extensions/consumer_group.rb', line 66

def self.install_content(id, type_id, units, options={})
  self.install_units(id, generate_content(type_id, units), options)
end

.make_consumer_criteria(consumer_ids) ⇒ Hash

Generates consumer criteria query



51
52
53
54
55
56
57
# File 'lib/runcible/extensions/consumer_group.rb', line 51

def self.make_consumer_criteria(consumer_ids)
  {:criteria =>
        {:filters =>
          {:id =>{"$in" =>consumer_ids}}
        }
  }
end

.remove_consumers_by_id(id, consumer_ids) ⇒ RestClient::Response

Remove consumers by ID from a consumer group



43
44
45
# File 'lib/runcible/extensions/consumer_group.rb', line 43

def self.remove_consumers_by_id(id, consumer_ids)
  self.unassociate(id, make_consumer_criteria(consumer_ids))
end

.uninstall_content(id, type_id, units) ⇒ RestClient::Response

Uninstall content from a consumer group



87
88
89
# File 'lib/runcible/extensions/consumer_group.rb', line 87

def self.uninstall_content(id, type_id, units)
  self.uninstall_units(id, generate_content(type_id, units))
end

.update_content(id, type_id, units, options = {}) ⇒ RestClient::Response

Update content on a consumer group



77
78
79
# File 'lib/runcible/extensions/consumer_group.rb', line 77

def self.update_content(id, type_id, units, options={})
  self.update_units(id, generate_content(type_id, units), options)
end