Class: Bosh::Director::DeploymentPlan::DeploymentRepo
- Defined in:
- lib/bosh/director/deployment_plan/deployment_repo.rb
Instance Method Summary collapse
- #find_or_create_by_name(name) ⇒ Object
-
#initialize(canonicalizer) ⇒ DeploymentRepo
constructor
A new instance of DeploymentRepo.
Constructor Details
#initialize(canonicalizer) ⇒ DeploymentRepo
Returns a new instance of DeploymentRepo.
6 7 8 |
# File 'lib/bosh/director/deployment_plan/deployment_repo.rb', line 6 def initialize(canonicalizer) @canonicalizer = canonicalizer end |
Instance Method Details
#find_or_create_by_name(name) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/bosh/director/deployment_plan/deployment_repo.rb', line 10 def find_or_create_by_name(name) deployment = Models::Deployment.find(name: name) return deployment if deployment canonical_name = @canonicalizer.canonical(name) Models::Deployment.db.transaction do Models::Deployment.each do |other| if @canonicalizer.canonical(other.name) == canonical_name raise DeploymentCanonicalNameTaken, "Invalid deployment name `#{name}', canonical name already taken (`#{canonical_name}')" end end Models::Deployment.create(name: name) end end |