class Bosh::Director::DeploymentPlan::ManifestValidator

Constants

CLOUD_MANIFEST_KEYS

Public Instance Methods

validate(manifest, cloud_config) click to toggle source
# File lib/bosh/director/deployment_plan/manifest_validator.rb, line 8
def validate(manifest, cloud_config)
  raise_if_has_key(manifest, 'vm_types')
  raise_if_has_key(manifest, 'azs')
  raise_if_has_key(manifest, 'disk_types')

  if cloud_config.nil?
    if manifest.has_key?('jobs')
      manifest['jobs'].each do |job|
        if job.has_key?('migrated_from')
          raise Bosh::Director::DeploymentInvalidProperty,
            "Deployment manifest instance groups contain 'migrated_from', but it can only be used with cloud-config."
        end
      end
    end

    raise_if_has_key(manifest, 'stemcells')
  else
    deployment_cloud_properties = manifest.keys & CLOUD_MANIFEST_KEYS
    if deployment_cloud_properties.any?
      raise(
        Bosh::Director::DeploymentInvalidProperty,
        "Deployment manifest should not contain cloud config properties: #{deployment_cloud_properties}"
      )
    end
  end
end

Private Instance Methods

raise_if_has_key(manifest, property) click to toggle source
# File lib/bosh/director/deployment_plan/manifest_validator.rb, line 37
def raise_if_has_key(manifest, property)
  if manifest.has_key?(property)
    raise Bosh::Director::DeploymentInvalidProperty,
      "Deployment manifest contains '#{property}' section, but it can only be used in cloud-config."
  end
end