Class: AcquiaToolbelt::CLI::Domains

Inherits:
Thor
  • Object
show all
Defined in:
lib/acquia_toolbelt/cli/domain.rb

Constant Summary

Constants inherited from Thor

Thor::AmbiguousTaskError, Thor::DynamicTask, Thor::HELP_MAPPINGS, Thor::HiddenTask, Thor::THOR_RESERVED_WORDS, Thor::UndefinedTaskError, Thor::VERSION

Instance Attribute Summary

Attributes included from Thor::Base

#args, #options, #parent_options

Instance Method Summary collapse

Methods inherited from Thor

check_unknown_options!, check_unknown_options?, command_help, default_command, desc, #help, help, long_desc, map, method_option, method_options, package_name, printable_commands, register, stop_on_unknown_option!, stop_on_unknown_option?, subcommand, subcommands

Methods included from Thor::Base

included, #initialize, register_klass_file, shell, shell=, subclass_files, subclasses

Instance Method Details

#addObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/acquia_toolbelt/cli/domain.rb', line 63

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

#deleteObject



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/acquia_toolbelt/cli/domain.rb', line 92

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

#listObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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

  environments.each do |environment|
    domains = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/domains"
    ui.say
    ui.say "Environment: #{environment}" unless options[:environment]

    domains.each do |domain|
      ui.say "> #{domain['name']}"
    end
  end
end

#moveObject



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/acquia_toolbelt/cli/domain.rb', line 156

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

#purgeObject



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# File 'lib/acquia_toolbelt/cli/domain.rb', line 116

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