class AcquiaToolbelt::CLI::Domains

Public Instance Methods

add() click to toggle source
# File lib/acquia_toolbelt/cli/domain.rb, line 69
def add
  if options[:environment].nil?
    ui.say "No value provided for required options '--environment'"
    return
  end

  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  environment = options[:environment]
  domain      = options[:domain]
  add_domain  = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/domains/#{domain}", 'POST'

  if add_domain['id']
    ui.success "Domain #{domain} has been successfully added to #{environment}."
  else
    ui.fail AcquiaToolbelt::CLI::API.display_error(add_domain)
  end
end
delete() click to toggle source
# File lib/acquia_toolbelt/cli/domain.rb, line 98
def delete
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  environment   = options[:environment]
  domain        = options[:domain]
  delete_domain = AcquiaToolbelt::CLI::API.request "/sites/#{subscription}/envs/#{environment}/domains/#{domain}", 'DELETE'

  if delete_domain["id"]
    ui.success "Domain #{domain} has been successfully deleted from #{environment}."
  else
    ui.fail AcquiaToolbelt::CLI::API.display_error(delete_domain)
  end
end
list() click to toggle source
# File lib/acquia_toolbelt/cli/domain.rb, line 29
def list
  # Set the subscription if it has been passed through, otherwise use the
  # default.
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  # Get all the environments to loop over unless the environment is set.
  if options[:environment]
    environments = []
    environments << options[:environment]
  else
    environments = AcquiaToolbelt::CLI::API.environments
  end

  ui.say

  rows = []
  headings = ['Domain']

  environments.each do |environment|
    domains = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/domains"
    domains.each do |domain|
      row_data = []
      row_data << domain['name']
      rows << row_data
    end
  end

  ui.output_table('', headings, rows)
end
move() click to toggle source
# File lib/acquia_toolbelt/cli/domain.rb, line 162
def move
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  domains = options[:domains].split(',')
  origin  = options[:origin]
  target  = options[:target]
  data    = { :domains => domains }

  move_domain = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/domain-move/#{origin}/#{target}", 'POST', data
  if move_domain['id']
    ui.success "Domain move from #{origin} to #{target} has been successfully completed."
  else
    ui.fail AcquiaToolbelt::CLI::API.display_error(move_domain)
  end
end
purge() click to toggle source
# File lib/acquia_toolbelt/cli/domain.rb, line 122
def purge
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  domain      = options[:domain]
  environment = options[:environment]

  # If the domain is not defined, we are going to clear a whole
  # environment. This can have severe performance impacts on your
  # environments. We need to be sure this is definitely what you want to
  # do.
  if domain
    purge_domain(subscription, environment, domain)
  else
    all_env_clear = ui.ask "You are about to clear all domains in the #{environment} environment. Are you sure? (y/n)"
    # Last chance to bail out.
    if all_env_clear == "y"
      domains = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/domains"
      domains.each do |domain|
        purge_domain("#{subscription}", "#{environment}", "#{domain['name']}")
      end
    else
      ui.info 'Ok, no action has been taken.'
    end
  end
end
purge_domain(subscription, environment, domain) click to toggle source

Internal: Purge a web cache for a domain.

Returns a status message.

# File lib/acquia_toolbelt/cli/domain.rb, line 8
def purge_domain(subscription, environment, domain)
  # Ensure all the required fields are available.
  if subscription.nil? || environment.nil? || domain.nil?
    ui.fail 'Purge request is missing a required parameter.'
    return
  end

  purge_request = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/domains/#{domain}/cache", 'DELETE'

  if purge_request['id']
    ui.success "#{domain} has been successfully purged."
  else
    ui.fail AcquiaToolbelt::CLI::API.display_error(purge_request)
  end
end