Class: Bosh::Director::DeploymentPlan::PlannerFactory
- Defined in:
- lib/bosh/director/deployment_plan/planner_factory.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(canonicalizer, deployment_manifest_migrator, deployment_repo, event_log, logger) ⇒ PlannerFactory
constructor
A new instance of PlannerFactory.
- #planner(manifest_hash, cloud_config, plan_options) ⇒ Object
- #planner_without_vm_binding(manifest_hash, cloud_config, options) ⇒ Object
Constructor Details
#initialize(canonicalizer, deployment_manifest_migrator, deployment_repo, event_log, logger) ⇒ PlannerFactory
Returns a new instance of PlannerFactory.
19 20 21 22 23 24 25 |
# File 'lib/bosh/director/deployment_plan/planner_factory.rb', line 19 def initialize(canonicalizer, deployment_manifest_migrator, deployment_repo, event_log, logger) @canonicalizer = canonicalizer @deployment_manifest_migrator = deployment_manifest_migrator @deployment_repo = deployment_repo @event_log = event_log @logger = logger end |
Class Method Details
.create(event_log, logger) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/bosh/director/deployment_plan/planner_factory.rb', line 5 def self.create(event_log, logger) deployment_manifest_migrator = Bosh::Director::DeploymentPlan::ManifestMigrator.new canonicalizer = Class.new { include Bosh::Director::DnsHelper }.new deployment_repo = Bosh::Director::DeploymentPlan::DeploymentRepo.new(canonicalizer) new( canonicalizer, deployment_manifest_migrator, deployment_repo, event_log, logger ) end |
Instance Method Details
#planner(manifest_hash, cloud_config, plan_options) ⇒ Object
27 28 29 30 |
# File 'lib/bosh/director/deployment_plan/planner_factory.rb', line 27 def planner(manifest_hash, cloud_config, ) planner = planner_without_vm_binding(manifest_hash, cloud_config, ) bind_vms(planner) end |
#planner_without_vm_binding(manifest_hash, cloud_config, options) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/bosh/director/deployment_plan/planner_factory.rb', line 32 def planner_without_vm_binding(manifest_hash, cloud_config, ) deployment_manifest, cloud_manifest = @deployment_manifest_migrator.migrate(manifest_hash, cloud_config) name = deployment_manifest['name'] deployment_model = nil @event_log.track('Binding deployment') do @logger.info('Binding deployment') deployment_model = @deployment_repo.find_or_create_by_name(name) end attrs = { name: name, properties: deployment_manifest.fetch('properties', {}), } assemble_without_vm_binding(attrs, deployment_manifest, cloud_manifest, deployment_model, cloud_config, ) end |