Class: Bosh::Director::DeploymentPlan::CloudManifestParser

Inherits:
Object
  • Object
show all
Includes:
ValidationHelper
Defined in:
lib/bosh/director/deployment_plan/cloud_manifest_parser.rb

Instance Method Summary collapse

Methods included from ValidationHelper

#safe_property

Constructor Details

#initialize(logger) ⇒ CloudManifestParser

Returns a new instance of CloudManifestParser.



6
7
8
# File 'lib/bosh/director/deployment_plan/cloud_manifest_parser.rb', line 6

def initialize(logger)
  @logger = logger
end

Instance Method Details

#parse(cloud_manifest, global_network_resolver, ip_provider_factory) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/bosh/director/deployment_plan/cloud_manifest_parser.rb', line 10

def parse(cloud_manifest, global_network_resolver, ip_provider_factory)
  azs = parse_availability_zones(cloud_manifest)
  az_list = CloudPlanner.index_by_name(azs)
  networks = parse_networks(cloud_manifest, global_network_resolver, azs)
  resource_pools = parse_resource_pools(cloud_manifest)
  vm_types = parse_vm_types(cloud_manifest)
  vm_extensions = parse_vm_extensions(cloud_manifest)
  disk_types = parse_disk_types(cloud_manifest)
  compilation_config = parse_compilation(cloud_manifest, networks, az_list, vm_types, vm_extensions)

  CloudPlanner.new({
    availability_zones_list: az_list,
    networks: networks,
    global_network_resolver: global_network_resolver,
    ip_provider_factory: ip_provider_factory,
    compilation: compilation_config,
    resource_pools: resource_pools,
    vm_types: vm_types,
    vm_extensions: vm_extensions,
    disk_types: disk_types,
    logger: @logger,
  })
end