class Bosh::Director::Api::PropertyManager

Public Instance Methods

create_property(deployment, property_name, value) click to toggle source
# File lib/bosh/director/api/property_manager.rb, line 7
def create_property(deployment, property_name, value)
  property = Models::DeploymentProperty.new
  property.deployment = deployment
  property.name = property_name
  property.value = value
  property.save

rescue Sequel::ValidationFailed => e

  if e.errors[[:name, :deployment_id]] && e.errors[[:name, :deployment_id]].include?(:unique)
    raise PropertyAlreadyExists,
          "Property '#{property_name}' already exists " +
          "for deployment '#{deployment.name}'"
  end
  invalid_property(e.errors)
end
delete_property(deployment, property_name) click to toggle source
# File lib/bosh/director/api/property_manager.rb, line 33
def delete_property(deployment, property_name)
  get_property(deployment, property_name).destroy
end
get_properties(deployment) click to toggle source
# File lib/bosh/director/api/property_manager.rb, line 48
def get_properties(deployment)
  filters = {:deployment_id => deployment.id}
  Models::DeploymentProperty.filter(filters).all
end
get_property(deployment, property_name) click to toggle source
# File lib/bosh/director/api/property_manager.rb, line 37
def get_property(deployment, property_name)
  filters = {:deployment_id => deployment.id, :name => property_name}
  property = Models::DeploymentProperty.find(filters)
  if property.nil?
    raise PropertyNotFound,
          "Property '#{property_name}' not found " +
          "for deployment '#{deployment.name}'"
  end
  property
end
update_property(deployment, property_name, value) click to toggle source
# File lib/bosh/director/api/property_manager.rb, line 24
def update_property(deployment, property_name, value)
  property = get_property(deployment, property_name)
  property.value = value
  property.save

rescue Sequel::ValidationFailed => e
  invalid_property(e.errors)
end

Private Instance Methods

invalid_property(errors) click to toggle source
# File lib/bosh/director/api/property_manager.rb, line 55
def invalid_property(errors)
  raise PropertyInvalid,
        "Property is invalid: #{errors.full_messages.sort.join(", ")}"
end