module Bosh::Workspace::ProjectDeploymentHelper

Public Instance Methods

build_project_deployment() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 51
def build_project_deployment
  resolve_director_uuid

  say("Generating deployment manifest")
  ManifestBuilder.build(project_deployment, work_dir)

  if domain_name = project_deployment.domain_name
    say("Transforming to dynamic networking (dns)")
    DnsHelper.transform(project_deployment.merged_file, domain_name)
  end
end
create_placeholder_deployment() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 35
def create_placeholder_deployment
  resolve_director_uuid

  File.open(project_deployment.merged_file, "w") do |file|
    file.write(placeholder_deployment_content)
  end
end
no_deployment_err() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 27
def no_deployment_err
  err "No deployment set"
end
not_a_bosh_workspace_deployment() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 31
def not_a_bosh_workspace_deployment
  err "Deployment is not a bosh-workspace deployment: #{deployment}"
end
offline!() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 67
def offline!
  @offline = true
end
offline?() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 71
def offline?
  @offline
end
project_deployment() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 9
def project_deployment
  @project_deployment ||= ProjectDeployment.new(project_deployment_file)
end
project_deployment=(deployment) click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 13
def project_deployment=(deployment)
  @project_deployment = ProjectDeployment.new(deployment)
end
project_deployment?() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 4
def project_deployment?
  File.exists?(project_deployment_file) &&
    project_deployment_file?(project_deployment_file)
end
project_deployment_file?(deployment) click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 17
def project_deployment_file?(deployment)
  ProjectDeployment.new(deployment).manifest.has_key?("templates")
end
require_project_deployment() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 21
def require_project_deployment
  no_deployment_err unless deployment
  not_a_bosh_workspace_deployment unless project_deployment?
  validate_project_deployment
end
resolve_director_uuid() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 63
def resolve_director_uuid
  use_targeted_director_uuid if director_uuid_current?
end
validate_project_deployment() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 43
def validate_project_deployment
  unless project_deployment.valid?
    say("Validation errors:".make_red)
    project_deployment.errors.each { |error| say("- #{error}") }
    err("'#{project_deployment.file}' is not valid".make_red)
  end
end

Private Instance Methods

bosh_status() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 115
def bosh_status
  @bosh_status ||= director.get_status
end
bosh_uuid() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 119
def bosh_uuid
  bosh_status["uuid"]
end
deployment_basename() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 106
def deployment_basename
  File.basename(deployment)
end
deployment_dir() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 102
def deployment_dir
  File.dirname(deployment)
end
director_uuid_current?() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 87
def director_uuid_current?
  project_deployment.director_uuid == "current"
end
no_warden_error() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 82
def no_warden_error
  say("Please put 'director_uuid: #{bosh_uuid}' in '#{deployment}'")
  err("'director_uuid: current' may not be used in production")
end
placeholder_deployment_content() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 110
def placeholder_deployment_content
  { "director_uuid" => project_deployment.director_uuid }.to_yaml +
    "# Don't edit; placeholder deployment for: #{project_deployment.file}"
end
project_deployment_file() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 95
def project_deployment_file
  @project_deployment_file ||= begin
    path = File.join(deployment_dir, "../deployments", deployment_basename)
    File.expand_path path
  end
end
use_targeted_director_uuid() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 77
def use_targeted_director_uuid
  no_warden_error unless warden_cpi?
  project_deployment.director_uuid = bosh_uuid
end
warden_cpi?() click to toggle source
# File lib/bosh/workspace/helpers/project_deployment_helper.rb, line 91
def warden_cpi?
  bosh_status["cpi"] == "warden" || bosh_status["name"] =~ /Bosh Lite/i
end