Class: VCAP::Services::ServiceAdvertiser

Inherits:
Object
  • Object
show all
Defined in:
lib/base/service_advertiser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ServiceAdvertiser

Returns a new instance of ServiceAdvertiser.



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/base/service_advertiser.rb', line 5

def initialize(options)
  @catalog_services = options.fetch(:current_catalog)
  @registered_services = options.fetch(:catalog_in_ccdb)
  @http_handler = options.fetch(:http_handler)
  @logger = options.fetch(:logger)
  @active = options.fetch(:active, true)
  @offering_uri = "/v2/services"
  @service_plans_uri = "/v2/service_plans"

  build_service_lists_and_prepare_guids
end

Instance Attribute Details

#activeObject (readonly)

Returns the value of attribute active.



3
4
5
# File 'lib/base/service_advertiser.rb', line 3

def active
  @active
end

#catalog_servicesObject (readonly)

Returns the value of attribute catalog_services.



3
4
5
# File 'lib/base/service_advertiser.rb', line 3

def catalog_services
  @catalog_services
end

#loggerObject (readonly)

Returns the value of attribute logger.



3
4
5
# File 'lib/base/service_advertiser.rb', line 3

def logger
  @logger
end

#registered_servicesObject (readonly)

Returns the value of attribute registered_services.



3
4
5
# File 'lib/base/service_advertiser.rb', line 3

def registered_services
  @registered_services
end

Instance Method Details

#active_countObject



46
47
48
# File 'lib/base/service_advertiser.rb', line 46

def active_count
  active ? @catalog_services.size : 0
end

#active_servicesObject



54
55
56
# File 'lib/base/service_advertiser.rb', line 54

def active_services
  @active_services
end


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/base/service_advertiser.rb', line 17

def advertise_services
  logger.debug("CCNG Catalog Manager: Registered in ccng: #{registered_services.inspect}")
  logger.debug("CCNG Catalog Manager: Current catalog: #{catalog_services.inspect}")

  active_services.each do |active_service|
    service_in_ccdb = registered_services.find do |registered_service|
      active_service.guid == registered_service.guid
    end

    service_change_set = active_service.create_change_set(service_in_ccdb)
    logger.debug("CCNG Catalog Manager:  service_change_set = #{service_change_set.inspect}")
    advertise_service_to_cc(active_service,
                            active_service.guid,
                            service_change_set.plans_to_add,
                            service_change_set.plans_to_update)
  end

  new_services.each do |service|
    service_plan_change_set = service.create_change_set(nil)
    logger.debug("CCNG Catalog Manager: plans_to_add = #{service_plan_change_set.plans_to_add.inspect}")

    logger.debug("CCNG Catalog Manager: Add new offering: #{service.inspect}")
    advertise_service_to_cc(service, nil, service_plan_change_set.plans_to_add, {}) # nil guid => new service, so add all plans
  end

  logger.info("CCNG Catalog Manager: Found #{active_services.size} active, #{disabled_count} disabled and #{new_services.size} new service offerings")

end

#disabled_countObject



50
51
52
# File 'lib/base/service_advertiser.rb', line 50

def disabled_count
  active ? inactive_services.size : registered_services.size
end

#inactive_servicesObject



58
59
60
# File 'lib/base/service_advertiser.rb', line 58

def inactive_services
  @inactive_services
end

#new_servicesObject



62
63
64
# File 'lib/base/service_advertiser.rb', line 62

def new_services
  @new_services
end