heirloom 0.6.1 → 0.7.0rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. data/CHANGELOG +11 -1
  2. data/lib/heirloom/acl/s3.rb +1 -1
  3. data/lib/heirloom/archive/authorizer.rb +1 -1
  4. data/lib/heirloom/archive/builder.rb +1 -3
  5. data/lib/heirloom/archive/destroyer.rb +2 -19
  6. data/lib/heirloom/archive/lister.rb +1 -1
  7. data/lib/heirloom/archive/reader.rb +1 -1
  8. data/lib/heirloom/archive/teardowner.rb +48 -0
  9. data/lib/heirloom/archive/verifier.rb +2 -2
  10. data/lib/heirloom/archive.rb +16 -3
  11. data/lib/heirloom/aws/s3.rb +8 -4
  12. data/lib/heirloom/aws/simpledb.rb +6 -1
  13. data/lib/heirloom/catalog/add.rb +31 -0
  14. data/lib/heirloom/catalog/delete.rb +37 -0
  15. data/lib/heirloom/catalog/list.rb +22 -0
  16. data/lib/heirloom/catalog/setup.rb +30 -0
  17. data/lib/heirloom/catalog/show.rb +35 -0
  18. data/lib/heirloom/catalog/verify.rb +39 -0
  19. data/lib/heirloom/catalog.rb +65 -0
  20. data/lib/heirloom/cli/authorize.rb +4 -4
  21. data/lib/heirloom/cli/catalog.rb +62 -0
  22. data/lib/heirloom/cli/destroy.rb +4 -4
  23. data/lib/heirloom/cli/download.rb +24 -13
  24. data/lib/heirloom/cli/list.rb +2 -2
  25. data/lib/heirloom/cli/setup.rb +21 -6
  26. data/lib/heirloom/cli/shared.rb +12 -3
  27. data/lib/heirloom/cli/show.rb +3 -3
  28. data/lib/heirloom/cli/tag.rb +3 -3
  29. data/lib/heirloom/cli/teardown.rb +75 -0
  30. data/lib/heirloom/cli/upload.rb +17 -26
  31. data/lib/heirloom/cli.rb +7 -1
  32. data/lib/heirloom/directory/directory.rb +1 -1
  33. data/lib/heirloom/version.rb +1 -1
  34. data/lib/heirloom.rb +7 -6
  35. data/spec/acl/s3_spec.rb +2 -7
  36. data/spec/archive/destroyer_spec.rb +4 -17
  37. data/spec/archive/lister_spec.rb +1 -1
  38. data/spec/archive/reader_spec.rb +9 -9
  39. data/spec/archive/teardowner_spec.rb +42 -0
  40. data/spec/archive_spec.rb +23 -3
  41. data/spec/aws/s3_spec.rb +5 -0
  42. data/spec/aws/simpledb_spec.rb +13 -3
  43. data/spec/catalog/add_spec.rb +28 -0
  44. data/spec/catalog/delete_spec.rb +35 -0
  45. data/spec/catalog/list_spec.rb +21 -0
  46. data/spec/catalog/setup_spec.rb +29 -0
  47. data/spec/catalog/show_spec.rb +32 -0
  48. data/spec/catalog/verify_spec.rb +47 -0
  49. data/spec/catalog_spec.rb +63 -0
  50. data/spec/cli/catalog_spec.rb +42 -0
  51. data/spec/cli/destroy_spec.rb +1 -1
  52. data/spec/cli/download_spec.rb +68 -26
  53. data/spec/cli/setup_spec.rb +11 -4
  54. data/spec/cli/shared_spec.rb +23 -0
  55. data/spec/cli/teardown_spec.rb +52 -0
  56. data/spec/cli/upload_spec.rb +6 -5
  57. metadata +44 -17
data/CHANGELOG CHANGED
@@ -1,4 +1,14 @@
1
- ## v0.6.1:
1
+ ## HEAD:
2
+
3
+ * Adding catalog which will contain all heirloom regions & bases.
4
+ * CLI will lookup base & region from catalog.
5
+ * Removing base requirement for all subcmds outside download & setup.
6
+ * Added teardown command to delete domains & buckets.
7
+ * Enclosing simpledb domains in `s
8
+ * Added catalog subcommand to list available Heirlooms from catalog.
9
+ * Reducing log levels
10
+
11
+ ### v0.6.1:
2
12
 
3
13
  * Allowing engineer to specify region for metadata
4
14
  * Ensuring metadata is in an upload region
@@ -28,7 +28,7 @@ module Heirloom
28
28
  :accounts => accounts
29
29
 
30
30
  accounts.each do |a|
31
- logger.info "Authorizing #{a} to s3://#{bucket}/#{key}."
31
+ logger.debug "Authorizing #{a} to s3://#{bucket}/#{key}."
32
32
  end
33
33
  s3.put_object_acl bucket, key, grants
34
34
  end
@@ -15,7 +15,7 @@ module Heirloom
15
15
 
16
16
  return false unless validate_format_of_accounts
17
17
 
18
- @logger.info "Authorizing access to artifact."
18
+ @logger.info "Authorizing #{@accounts.join(', ')}."
19
19
 
20
20
  regions.each do |region|
21
21
  bucket = reader.get_bucket :region => region
@@ -34,8 +34,6 @@ module Heirloom
34
34
 
35
35
  add_git_commit if args[:git]
36
36
 
37
- @logger.info "Build complete."
38
-
39
37
  @local_build
40
38
  end
41
39
 
@@ -70,7 +68,7 @@ module Heirloom
70
68
  'encrypted' => encrypted?,
71
69
  'base' => @base,
72
70
  'id' => @id }
73
- @logger.info "Create artifact record #{@id}."
71
+ @logger.info "Adding entry #{@id}."
74
72
  sdb.put_attributes @domain, @id, attributes
75
73
  end
76
74
 
@@ -12,9 +12,8 @@ module Heirloom
12
12
 
13
13
  def destroy(args)
14
14
  regions = args[:regions]
15
- keep_domain = args[:keep_domain]
16
15
 
17
- @logger.info "Destroying #{@name} - #{@id}"
16
+ @logger.info "Destroying #{@name} #{@id}"
18
17
 
19
18
  regions.each do |region|
20
19
  bucket = reader.get_bucket :region => region
@@ -22,7 +21,7 @@ module Heirloom
22
21
  key = "#{@id}.tar.gz"
23
22
 
24
23
  if bucket
25
- @logger.info "Destroying 's3://#{bucket}/#{@name}/#{key}'."
24
+ @logger.debug "Destroying 's3://#{bucket}/#{@name}/#{key}'."
26
25
 
27
26
  s3_destroyer = Destroyer::S3.new :config => @config,
28
27
  :region => region
@@ -34,26 +33,10 @@ module Heirloom
34
33
  end
35
34
 
36
35
  sdb.delete @domain, @id
37
-
38
- destroy_domain unless keep_domain
39
36
  end
40
37
 
41
38
  private
42
39
 
43
- def destroy_domain
44
-
45
- # Simple DB is eventually consisten
46
- # Sleep for 3 sec for changes to reflect
47
- Kernel.sleep 3
48
-
49
- if sdb.domain_empty? @domain
50
- @logger.info "Domain #{@domain} empty. Destroying."
51
- sdb.delete_domain @domain
52
- end
53
-
54
- @logger.info "Destroy complete."
55
- end
56
-
57
40
  def sdb
58
41
  @sdb ||= AWS::SimpleDB.new :config => @config
59
42
  end
@@ -9,7 +9,7 @@ module Heirloom
9
9
  end
10
10
 
11
11
  def list(limit=10)
12
- sdb.select("select * from #{@domain} where built_at > '2000-01-01T00:00:00.000Z'\
12
+ sdb.select("select * from `#{@domain}` where built_at > '2000-01-01T00:00:00.000Z'\
13
13
  order by built_at desc limit #{limit}").keys
14
14
  end
15
15
 
@@ -57,7 +57,7 @@ module Heirloom
57
57
  end
58
58
 
59
59
  def show
60
- query = sdb.select "select * from #{@domain} where itemName() = '#{@id}'"
60
+ query = sdb.select "select * from `#{@domain}` where itemName() = '#{@id}'"
61
61
  items = query[@id] ? query[@id] : {}
62
62
  Hash.new.tap do |hash|
63
63
  items.each_pair.map do |key,value|
@@ -0,0 +1,48 @@
1
+ module Heirloom
2
+
3
+ class Teardowner
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ @name = args[:name]
8
+ @domain = "heirloom_#{@name}"
9
+ @logger = @config.logger
10
+ @region = @config.metadata_region
11
+ end
12
+
13
+ def delete_buckets(args)
14
+ regions = args[:regions]
15
+ bucket_prefix = args[:bucket_prefix]
16
+
17
+ regions.each do |region|
18
+ bucket = "#{bucket_prefix}-#{region}"
19
+
20
+ if verifier.bucket_exists? :region => region,
21
+ :bucket_prefix => bucket_prefix
22
+ @logger.info "Destroying bucket #{bucket} in #{region}."
23
+ s3 = AWS::S3.new :config => @config,
24
+ :region => region
25
+ s3.delete_bucket bucket
26
+ end
27
+ end
28
+ end
29
+
30
+ def delete_domain
31
+ if verifier.domain_exists?
32
+ @logger.info "Destroying domain #{@name} in #{@region}."
33
+ sdb.delete_domain @domain
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def verifier
40
+ @verifier ||= Verifier.new :config => @config,
41
+ :name => @name
42
+ end
43
+
44
+ def sdb
45
+ @sdb ||= AWS::SimpleDB.new :config => @config
46
+ end
47
+ end
48
+ end
@@ -36,7 +36,7 @@ module Heirloom
36
36
  @logger.debug "Bucket '#{bucket}' exists in '#{region}'."
37
37
  true
38
38
  else
39
- @logger.info "Bucket '#{bucket}' does not exist in '#{region}'."
39
+ @logger.debug "Bucket '#{bucket}' does not exist in '#{region}'."
40
40
  false
41
41
  end
42
42
  end
@@ -48,7 +48,7 @@ module Heirloom
48
48
  @logger.debug "Domain '#{@name}' exists in '#{region}'."
49
49
  true
50
50
  else
51
- @logger.info "Domain '#{@name}' does not exist in '#{region}'."
51
+ @logger.debug "Domain '#{@name}' does not exist in '#{region}'."
52
52
  false
53
53
  end
54
54
  end
@@ -5,6 +5,7 @@ require 'heirloom/archive/updater.rb'
5
5
  require 'heirloom/archive/uploader.rb'
6
6
  require 'heirloom/archive/downloader.rb'
7
7
  require 'heirloom/archive/setuper.rb'
8
+ require 'heirloom/archive/teardowner.rb'
8
9
  require 'heirloom/archive/writer.rb'
9
10
  require 'heirloom/archive/authorizer.rb'
10
11
  require 'heirloom/archive/destroyer.rb'
@@ -41,6 +42,14 @@ module Heirloom
41
42
  setuper.setup args
42
43
  end
43
44
 
45
+ def delete_buckets(args)
46
+ teardowner.delete_buckets args
47
+ end
48
+
49
+ def delete_domain
50
+ teardowner.delete_domain
51
+ end
52
+
44
53
  def update(args)
45
54
  updater.update args
46
55
  end
@@ -61,9 +70,8 @@ module Heirloom
61
70
  verifier.domain_exists?
62
71
  end
63
72
 
64
- def destroy(args)
65
- destroyer.destroy :regions => regions,
66
- :keep_domain => args[:keep_domain]
73
+ def destroy
74
+ destroyer.destroy :regions => regions
67
75
  end
68
76
 
69
77
  def show
@@ -132,6 +140,11 @@ module Heirloom
132
140
  :name => @name
133
141
  end
134
142
 
143
+ def teardowner
144
+ @teardowner ||= Teardowner.new :config => @config,
145
+ :name => @name
146
+ end
147
+
135
148
  def verifier
136
149
  @verifier ||= Verifier.new :config => @config,
137
150
  :name => @name
@@ -8,10 +8,10 @@ module Heirloom
8
8
  @config = args[:config]
9
9
  @region = args[:region]
10
10
 
11
- @s3 = Fog::Storage.new :provider => 'AWS',
12
- :aws_access_key_id => @config.access_key,
13
- :aws_secret_access_key => @config.secret_key,
14
- :region => @region
11
+ @s3 = Fog::Storage.new :provider => 'AWS',
12
+ :aws_access_key_id => @config.access_key,
13
+ :aws_secret_access_key => @config.secret_key,
14
+ :region => @region
15
15
  end
16
16
 
17
17
  def delete_object(bucket_name, object_name, options = {})
@@ -22,6 +22,10 @@ module Heirloom
22
22
  @s3.directories.get bucket
23
23
  end
24
24
 
25
+ def delete_bucket(bucket)
26
+ @s3.delete_bucket bucket
27
+ end
28
+
25
29
  def get_object(bucket_name, object_name)
26
30
  @s3.get_object(bucket_name, object_name).body
27
31
  end
@@ -44,10 +44,15 @@ module Heirloom
44
44
  end
45
45
 
46
46
  def count(domain)
47
- body = @sdb.select("SELECT count(*) FROM #{domain}").body
47
+ body = @sdb.select("SELECT count(*) FROM `#{domain}`").body
48
48
  body['Items']['Domain']['Count'].first.to_i
49
49
  end
50
50
 
51
+ def item_count(domain, item)
52
+ query = "SELECT count(*) FROM `#{domain}` WHERE itemName() = '#{item}'"
53
+ @sdb.select(query).body['Items']['Domain']['Count'].first.to_i
54
+ end
55
+
51
56
  end
52
57
  end
53
58
 
@@ -0,0 +1,31 @@
1
+ module Heirloom
2
+ class Catalog
3
+ class Add
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ @name = args[:name]
8
+ @logger = @config.logger
9
+ end
10
+
11
+ def add_to_catalog(args)
12
+ regions = args[:regions]
13
+ base = args[:base]
14
+
15
+ @logger.info "Adding #{@name} to catalog."
16
+
17
+ sdb.put_attributes 'heirloom',
18
+ "heirloom_#{@name}",
19
+ { "regions" => regions, "base" => base }
20
+
21
+ end
22
+
23
+ private
24
+
25
+ def sdb
26
+ @sdb ||= AWS::SimpleDB.new :config => @config
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,37 @@
1
+ module Heirloom
2
+ class Catalog
3
+ class Delete
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ @name = args[:name]
8
+ @logger = @config.logger
9
+ end
10
+
11
+ def delete_from_catalog
12
+ domain = "heirloom_#{@name}"
13
+
14
+ return false unless catalog_domain_exists?
15
+
16
+ @logger.info "Deleting #{@name} from catalog."
17
+
18
+ sdb.delete 'heirloom', domain
19
+ end
20
+
21
+ private
22
+
23
+ def catalog_domain_exists?
24
+ verify.catalog_domain_exists?
25
+ end
26
+
27
+ def sdb
28
+ @sdb ||= AWS::SimpleDB.new :config => @config
29
+ end
30
+
31
+ def verify
32
+ @verify ||= Catalog::Verify.new :config => @config
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,22 @@
1
+ module Heirloom
2
+ class Catalog
3
+ class List
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ end
8
+
9
+ def all
10
+ query = "SELECT * FROM heirloom"
11
+ sdb.select query
12
+ end
13
+
14
+ private
15
+
16
+ def sdb
17
+ @sdb ||= AWS::SimpleDB.new :config => @config
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ module Heirloom
2
+ class Catalog
3
+ class Setup
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ @logger = @config.logger
8
+ @region = @config.metadata_region
9
+ end
10
+
11
+ def create_catalog_domain
12
+ unless verify.catalog_domain_exists?
13
+ @logger.info "Creating catalog in #{@region}."
14
+ sdb.create_domain "heirloom"
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def sdb
21
+ @sdb ||= AWS::SimpleDB.new :config => @config
22
+ end
23
+
24
+ def verify
25
+ @verify ||= Catalog::Verify.new :config => @config
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ module Heirloom
2
+ class Catalog
3
+ class Show
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ @name = args[:name]
8
+ end
9
+
10
+ def regions
11
+ lookup :name => @name, :attribute => 'regions'
12
+ end
13
+
14
+ def base
15
+ lookup(:name => @name, :attribute => 'base').first
16
+ end
17
+
18
+ private
19
+
20
+ def lookup(args)
21
+ name = args[:name]
22
+ attribute = args[:attribute]
23
+ domain = "heirloom_#{name}"
24
+ query = "select #{attribute} from heirloom where itemName() = '#{domain}'"
25
+ result = sdb.select(query)
26
+ result[domain][attribute]
27
+ end
28
+
29
+ def sdb
30
+ @sdb ||= AWS::SimpleDB.new :config => @config
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,39 @@
1
+ module Heirloom
2
+ class Catalog
3
+ class Verify
4
+
5
+ def initialize(args)
6
+ @config = args[:config]
7
+ @logger = @config.logger
8
+ @region = @config.metadata_region
9
+ end
10
+
11
+ def catalog_domain_exists?
12
+ if sdb.domain_exists? 'heirloom'
13
+ @logger.debug "Catalog exists in #{@region}."
14
+ true
15
+ else
16
+ @logger.debug "Catalog does not exist in #{@region}."
17
+ false
18
+ end
19
+ end
20
+
21
+ def entry_exists_in_catalog?(entry)
22
+ if sdb.item_count('heirloom', "heirloom_#{entry}").zero?
23
+ @logger.debug "#{entry} does not exist in catalog."
24
+ false
25
+ else
26
+ @logger.debug "#{entry} exists in catalog."
27
+ true
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def sdb
34
+ @sdb ||= AWS::SimpleDB.new :config => @config
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,65 @@
1
+ require 'heirloom/catalog/add.rb'
2
+ require 'heirloom/catalog/delete.rb'
3
+ require 'heirloom/catalog/list.rb'
4
+ require 'heirloom/catalog/setup.rb'
5
+ require 'heirloom/catalog/show.rb'
6
+ require 'heirloom/catalog/verify.rb'
7
+
8
+ module Heirloom
9
+ class Catalog
10
+
11
+ def initialize(args)
12
+ @config = args[:config]
13
+ @name = args[:name]
14
+ end
15
+
16
+ def create_catalog_domain
17
+ setup.create_catalog_domain
18
+ end
19
+
20
+ def delete_from_catalog
21
+ delete.delete_from_catalog
22
+ end
23
+
24
+ def add_to_catalog(args)
25
+ add.add_to_catalog args
26
+ end
27
+
28
+ def regions
29
+ show.regions
30
+ end
31
+
32
+ def base
33
+ show.base
34
+ end
35
+
36
+ def all
37
+ list.all
38
+ end
39
+
40
+ private
41
+
42
+ def add
43
+ @add ||= Catalog::Add.new :config => @config,
44
+ :name => @name
45
+ end
46
+
47
+ def delete
48
+ @delete ||= Catalog::Delete.new :config => @config,
49
+ :name => @name
50
+ end
51
+
52
+ def list
53
+ @list ||= Catalog::List.new :config => @config
54
+ end
55
+
56
+ def setup
57
+ @setup ||= Catalog::Setup.new :config => @config
58
+ end
59
+
60
+ def show
61
+ @show ||= Catalog::Show.new :config => @config,
62
+ :name => @name
63
+ end
64
+ end
65
+ end
@@ -37,24 +37,24 @@ module Heirloom
37
37
  version Heirloom::VERSION
38
38
  banner <<-EOS
39
39
 
40
- Authorize access from another AWS account to an archive.
40
+ Authorize access from another AWS account to an Heirloom.
41
41
 
42
42
  Usage:
43
43
 
44
44
  heirloom authorize -n NAME -i ID -a AWS_ACCOUNT1 -a AWS_ACCOUNT2
45
45
 
46
- Note: This will replace all current authorizations with those specified and make the archive private.
46
+ Note: This will replace all current authorizations with those specified and make the Heirloom private.
47
47
 
48
48
  EOS
49
49
  opt :accounts, "AWS Account(s) email to authorize. Can be specified multiple times.", :type => :string,
50
50
  :multi => true
51
51
  opt :help, "Display Help"
52
- opt :id, "ID of the archive to authorize.", :type => :string
52
+ opt :id, "ID of the Heirloom to authorize.", :type => :string
53
53
  opt :level, "Log level [debug|info|warn|error].", :type => :string,
54
54
  :default => 'info'
55
55
  opt :metadata_region, "AWS region to store Heirloom metadata.", :type => :string,
56
56
  :default => 'us-west-1'
57
- opt :name, "Name of archive.", :type => :string
57
+ opt :name, "Name of Heirloom.", :type => :string
58
58
  opt :aws_access_key, "AWS Access Key ID", :type => :string,
59
59
  :short => :none
60
60
  opt :aws_secret_key, "AWS Secret Access Key", :type => :string,
@@ -0,0 +1,62 @@
1
+ module Heirloom
2
+ module CLI
3
+ class Catalog
4
+
5
+ include Heirloom::CLI::Shared
6
+
7
+ def initialize
8
+ @opts = read_options
9
+ @logger = HeirloomLogger.new :log_level => @opts[:level]
10
+ @config = load_config :logger => @logger,
11
+ :opts => @opts
12
+
13
+ ensure_valid_options :provided => @opts,
14
+ :required => [],
15
+ :config => @config
16
+ ensure_valid_region :region => @opts[:metadata_region],
17
+ :config => @config
18
+ @catalog = Heirloom::Catalog.new :config => @config
19
+ end
20
+
21
+ def list
22
+ if @opts[:details]
23
+ jj catalog_with_heirloom_prefix_removed
24
+ else
25
+ jj catalog_with_heirloom_prefix_removed.keys
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def catalog_with_heirloom_prefix_removed
32
+ Hash[@catalog.all.map { |k, v| [k.sub(/heirloom_/, ''), v] }]
33
+ end
34
+
35
+ def read_options
36
+ Trollop::options do
37
+ version Heirloom::VERSION
38
+ banner <<-EOS
39
+
40
+ Show catalog of Heirlooms.
41
+
42
+ Usage:
43
+
44
+ heirloom catalog
45
+
46
+ EOS
47
+ opt :help, "Display Help"
48
+ opt :level, "Log level [debug|info|warn|error].", :type => :string,
49
+ :default => 'info'
50
+ opt :details, "Include details."
51
+ opt :metadata_region, "AWS region to store Heirloom metadata.", :type => :string,
52
+ :default => 'us-west-1'
53
+ opt :aws_access_key, "AWS Access Key ID", :type => :string,
54
+ :short => :none
55
+ opt :aws_secret_key, "AWS Secret Access Key", :type => :string,
56
+ :short => :none
57
+ end
58
+ end
59
+
60
+ end
61
+ end
62
+ end
@@ -27,7 +27,7 @@ module Heirloom
27
27
  end
28
28
 
29
29
  def destroy
30
- @archive.destroy :keep_domain => false
30
+ @archive.destroy
31
31
  end
32
32
 
33
33
  private
@@ -37,7 +37,7 @@ module Heirloom
37
37
  version Heirloom::VERSION
38
38
  banner <<-EOS
39
39
 
40
- Destroy an archive.
40
+ Destroy an Heirloom.
41
41
 
42
42
  Usage:
43
43
 
@@ -45,12 +45,12 @@ heirloom destroy -n NAME -i ID
45
45
 
46
46
  EOS
47
47
  opt :help, "Display Help"
48
- opt :id, "ID of the archive to display.", :type => :string
48
+ opt :id, "ID of the Heirloom to display.", :type => :string
49
49
  opt :level, "Log level [debug|info|warn|error].", :type => :string,
50
50
  :default => 'info'
51
51
  opt :metadata_region, "AWS region to store Heirloom metadata.", :type => :string,
52
52
  :default => 'us-west-1'
53
- opt :name, "Name of archive.", :type => :string
53
+ opt :name, "Name of Heirloom.", :type => :string
54
54
  opt :aws_access_key, "AWS Access Key ID", :type => :string,
55
55
  :short => :none
56
56
  opt :aws_secret_key, "AWS Secret Access Key", :type => :string,