class Nurego::Cf::BrokerUtility
Constants
- PROVIDER
Attributes
external_ids[RW]
Public Class Methods
deprovision(params)
click to toggle source
# File lib/nurego/cf/broker_utility.rb, line 32 def self.deprovision(params) return nil if nurego_notified(params) raise InvalidRequestError.new('Invalid parameter instance_id', 'instance_id') unless params['instance_id'] sub = Subscription.retrieve(params['instance_id']) sub.cancel({ provider: PROVIDER, skip_service_webhook: true }) end
get_service_catalog(service_id)
click to toggle source
# File lib/nurego/cf/broker_utility.rb, line 43 def self.get_service_catalog(service_id) service = Service.retrieve(service_id) plans = service.plans service_to_cloud_foundry_catalog(service, plans) end
nurego_notified(params)
click to toggle source
# File lib/nurego/cf/broker_utility.rb, line 39 def self.nurego_notified(params) params['nurego_notified'] == true end
provision(params)
click to toggle source
# File lib/nurego/cf/broker_utility.rb, line 11 def self.provision(params) return nil if nurego_notified(params) raise InvalidRequestError.new('Invalid parameter instance_id', 'instance_id') unless params['instance_id'] create_params = { provider: PROVIDER, external_subscription_id: params['instance_id'], plan_id: params['plan_id'], skip_service_webhook: true } Subscription.create(params['organization_guid'], create_params) end
update(params)
click to toggle source
# File lib/nurego/cf/broker_utility.rb, line 22 def self.update(params) return nil if nurego_notified(params) raise InvalidRequestError.new('Invalid parameter instance_id', 'instance_id') unless params['instance_id'] sub = Subscription.retrieve(params['instance_id']) sub.plan_id = params['plan_id'] sub.provider = PROVIDER sub.skip_service_webhook = true sub.save end
Private Class Methods
service_to_cloud_foundry_catalog(service, plans)
click to toggle source
# File lib/nurego/cf/broker_utility.rb, line 51 def self.service_to_cloud_foundry_catalog(service, plans) cf_catalog = { services: [] } cf_service = { # required id: service['id'], name: service['name'], description: service['description'], bindable: true, plans: [] ## possible # tags: [], # metadata: Object, # requires: [], # plan_updateable: true, # dashboard_client: Object {id,secret,redirect_uri} } plans.each do | nurego_plan | cf_plan = { # required id: nurego_plan['id'], name: nurego_plan['name'], description: nurego_plan['description'] || nurego_plan['name'], ## possible # metadata: Object, # free: true, } recurring = nurego_plan['features']['data'].find { | feature | feature['element_type'] == 'recurring' } cf_plan[:free] = !(recurring && recurring['price'] > 0) cf_service[:plans] << cf_plan # Add plans to the service end cf_catalog[:services] << cf_service # Add service to offer cf_catalog.to_json end