class RHC::Rest::Domain

Public Instance Methods

add_application(name, options) click to toggle source

Add Application to this domain

options
cartridge
template
scale
gear_profile
# File lib/rhc/rest/domain.rb, line 38
def add_application(name, options)
  debug "Adding application #{name} to domain #{id}"

  payload = {:name => name}
  options.each{ |key, value| payload[key.to_sym] = value }

  cartridges = Array(payload.delete(:cartridge)).concat(Array(payload.delete(:cartridges))).map do |cart|
      if cart.is_a? String or cart.respond_to? :[]
        cart
      else
        cart.url ? {:url => cart.url} : cart.name
      end
    end.compact.uniq

  if cartridges.any?{ |c| c.is_a?(Hash) and c[:url] } and !has_param?('ADD_APPLICATION', 'cartridges[][url]')
    raise RHC::Rest::DownloadingCartridgesNotSupported, "The server does not support downloading cartridges."
  end

  if client.api_version_negotiated >= 1.3
    payload[:cartridges] = cartridges
  else
    raise RHC::Rest::MultipleCartridgeCreationNotSupported, "The server only supports creating an application with a single web cartridge." if cartridges.length > 1
    payload[:cartridge] = cartridges.first
  end

  if payload[:initial_git_url] and !has_param?('ADD_APPLICATION', 'initial_git_url')
    raise RHC::Rest::InitialGitUrlNotSupported, "The server does not support creating applications from a source repository."
  end

  options = {:timeout => options[:scale] && 0 || nil}
  rest_method "ADD_APPLICATION", payload, options
end
applications(options = {}) click to toggle source
# File lib/rhc/rest/domain.rb, line 71
def applications(options = {})
  debug "Getting all applications for domain #{id}"
  rest_method "LIST_APPLICATIONS", options
end
configure(payload, options={}) click to toggle source
# File lib/rhc/rest/domain.rb, line 83
def configure(payload, options={})
  self.attributes = rest_method("UPDATE", payload, options).attributes
  self
end
delete(force=false)
Alias for: destroy
destroy(force=false) click to toggle source
# File lib/rhc/rest/domain.rb, line 88
def destroy(force=false)
  debug "Deleting domain #{id}"
  rest_method "DELETE", :force => force
end
Also aliased as: delete
id() click to toggle source
# File lib/rhc/rest/domain.rb, line 12
def id
  id_and_name.first
end
id_and_name() click to toggle source
# File lib/rhc/rest/domain.rb, line 18
def id_and_name
  id = @id || attributes['id']
  name = @name || attributes['name']
  if name.present?
    if id == name
      [nil, name]
    else
      [id, name]
    end
  else
    [nil, id]
  end
end
name() click to toggle source
# File lib/rhc/rest/domain.rb, line 15
def name
  id_and_name.last
end
rename(new_id) click to toggle source
# File lib/rhc/rest/domain.rb, line 76
def rename(new_id)
  debug "Updating domain #{id} to #{new_id}"
  # 5 minute timeout as this may take time if there are a lot of apps
  rest_method "UPDATE", {:id => new_id}, {:timeout => 0}
end
Also aliased as: update
supports_add_application_with_env_vars?() click to toggle source
# File lib/rhc/rest/domain.rb, line 94
def supports_add_application_with_env_vars?
  has_param?('ADD_APPLICATION', 'environment_variables')
end
update(new_id)
Alias for: rename