Class: Heirloom::Archive

Inherits:
Object
  • Object
show all
Defined in:
lib/heirloom/archive.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Archive

Returns a new instance of Archive.



19
20
21
22
23
# File 'lib/heirloom/archive.rb', line 19

def initialize(args)
  @config = args[:config]
  @name   = args[:name]
  @id     = args[:id]
end

Instance Method Details

#authorize(accounts) ⇒ Object



25
26
27
28
# File 'lib/heirloom/archive.rb', line 25

def authorize(accounts)
  authorizer.authorize :accounts => accounts,
                       :regions  => regions
end

#buckets_exist?(args) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/heirloom/archive.rb', line 66

def buckets_exist?(args)
  verifier.buckets_exist? args
end

#build(args) ⇒ Object



30
31
32
# File 'lib/heirloom/archive.rb', line 30

def build(args)
  builder.build args
end

#countObject



34
35
36
# File 'lib/heirloom/archive.rb', line 34

def count
  reader.count
end

#delete_buckets(args) ⇒ Object



46
47
48
# File 'lib/heirloom/archive.rb', line 46

def delete_buckets(args)
  teardowner.delete_buckets args
end

#delete_domainObject



50
51
52
# File 'lib/heirloom/archive.rb', line 50

def delete_domain
  teardowner.delete_domain
end

#destroyObject



74
75
76
# File 'lib/heirloom/archive.rb', line 74

def destroy
  destroyer.destroy :regions => regions
end

#domain_exists?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/heirloom/archive.rb', line 70

def domain_exists?
  verifier.domain_exists?
end

#download(args) ⇒ Object



38
39
40
# File 'lib/heirloom/archive.rb', line 38

def download(args)
  downloader.download args
end

#exists?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/heirloom/archive.rb', line 62

def exists?
  reader.exists?
end

#list(limit = 10) ⇒ Object



99
100
101
# File 'lib/heirloom/archive.rb', line 99

def list(limit=10)
  lister.list(limit)
end

#regionsObject



103
104
105
# File 'lib/heirloom/archive.rb', line 103

def regions
  reader.regions
end

#rotate(args) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/heirloom/archive.rb', line 82

def rotate(args)
  temp_dir = Dir.mktmpdir
  temp_file = Tempfile.new('archive.tar.gz')

  unless download({ :output => temp_dir, :secret => args[:old_secret], :extract => true }.merge(args))
    raise Heirloom::Exceptions::RotateFailed.new "Download failed - aborting rotation"
  end
  unless build({ :directory => temp_dir, :secret => args[:new_secret], :file => temp_file.path }.merge(args))
    raise Heirloom::Exceptions::RotateFailed.new "Build failed - aborting rotation"
  end
  destroy
  upload({ :file => temp_file.path, :secret => args[:new_secret] }.merge(args))
ensure
  temp_file.close!
  FileUtils.remove_entry temp_dir
end

#setup(args) ⇒ Object



42
43
44
# File 'lib/heirloom/archive.rb', line 42

def setup(args)
  setuper.setup args
end

#showObject



78
79
80
# File 'lib/heirloom/archive.rb', line 78

def show
  reader.show.merge reader.object_acls
end

#update(args) ⇒ Object



54
55
56
# File 'lib/heirloom/archive.rb', line 54

def update(args)
  updater.update args
end

#upload(args) ⇒ Object



58
59
60
# File 'lib/heirloom/archive.rb', line 58

def upload(args)
  uploader.upload({ :regions => regions }.merge(args))
end