Class: Heirloom::CLI::Teardown

Inherits:
Object
  • Object
show all
Includes:
Shared
Defined in:
lib/heirloom/cli/teardown.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Shared

#ensure_archive_domain_empty, #ensure_archive_exists, #ensure_buckets_available, #ensure_buckets_exist, #ensure_catalog_domain_exists, #ensure_directory_is_writable, #ensure_domain_exists, #ensure_entry_does_not_exist_in_catalog, #ensure_entry_exists_in_catalog, #ensure_metadata_in_upload_region, #ensure_path_is_directory, #ensure_valid_bucket_prefix, #ensure_valid_name, #ensure_valid_options, #ensure_valid_region, #ensure_valid_regions, #ensure_valid_secret, #latest_id, #load_config, #read_secret

Constructor Details

#initializeTeardown



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/heirloom/cli/teardown.rb', line 11

def initialize
  @opts = read_options
  @logger = HeirloomLogger.new :log_level => @opts[:level]
  @config = load_config :logger => @logger,
                        :opts   => @opts

  ensure_valid_options :provided => @opts, 
                       :required => [:name],
                       :config   => @config

  @catalog = Heirloom::Catalog.new :name    => @opts[:name],
                                   :config  => @config
  @archive = Archive.new :name   => @opts[:name],
                         :config => @config

  ensure_catalog_domain_exists :config  => @config,
                               :catalog => @catalog
  ensure_entry_exists_in_catalog :config  => @config,
                                 :catalog => @catalog,
                                 :entry   => @opts[:name]
end

Class Method Details

.command_summaryObject



7
8
9
# File 'lib/heirloom/cli/teardown.rb', line 7

def self.command_summary
  'Teardown S3 buckets and SimpleDB domain for Heirloom name'
end

Instance Method Details

#teardownObject



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/heirloom/cli/teardown.rb', line 33

def teardown
  ensure_domain_exists :name => @opts[:name], :config => @config

  if @opts[:force]
    Heirloom.log.info "Removing any existing archives..."
    @catalog.cleanup :num_to_keep => 0, :remove_preserved => true
  else
    ensure_archive_domain_empty(
      :archive => @archive,
      :config  => @config
    )
  end

  unless @opts[:keep_buckets]
    @archive.delete_buckets(
      :regions       => @catalog.regions,
      :bucket_prefix => @catalog.bucket_prefix
    )
  end

  @archive.delete_domain
  @catalog.delete_from_catalog
end