heirloom 0.12.1 → 0.12.2

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +1 -0
  4. data/CHANGELOG.md +6 -0
  5. data/README.md +12 -6
  6. data/heirloom.gemspec +3 -5
  7. data/lib/heirloom/catalog/verify.rb +2 -2
  8. data/lib/heirloom/cli/authorize.rb +1 -2
  9. data/lib/heirloom/cli/catalog.rb +62 -19
  10. data/lib/heirloom/cli/cleanup.rb +1 -2
  11. data/lib/heirloom/cli/destroy.rb +1 -2
  12. data/lib/heirloom/cli/download.rb +2 -3
  13. data/lib/heirloom/cli/formatter/catalog.rb +25 -11
  14. data/lib/heirloom/cli/list.rb +1 -3
  15. data/lib/heirloom/cli/rotate.rb +1 -2
  16. data/lib/heirloom/cli/setup.rb +1 -2
  17. data/lib/heirloom/cli/shared.rb +3 -0
  18. data/lib/heirloom/cli/show.rb +1 -3
  19. data/lib/heirloom/cli/tag.rb +1 -2
  20. data/lib/heirloom/cli/teardown.rb +1 -2
  21. data/lib/heirloom/cli/upload.rb +1 -2
  22. data/lib/heirloom/version.rb +1 -1
  23. data/spec/acl/s3_spec.rb +11 -11
  24. data/spec/archive/authorizer_spec.rb +20 -20
  25. data/spec/archive/builder_spec.rb +13 -13
  26. data/spec/archive/checker_spec.rb +24 -24
  27. data/spec/archive/destroyer_spec.rb +20 -20
  28. data/spec/archive/downloader_spec.rb +30 -30
  29. data/spec/archive/lister_spec.rb +7 -7
  30. data/spec/archive/reader_spec.rb +65 -65
  31. data/spec/archive/setup_spec.rb +27 -27
  32. data/spec/archive/teardowner_spec.rb +19 -19
  33. data/spec/archive/updater_spec.rb +10 -10
  34. data/spec/archive/uploader_spec.rb +26 -26
  35. data/spec/archive/verifier_spec.rb +25 -25
  36. data/spec/archive/writer_spec.rb +11 -11
  37. data/spec/archive_spec.rb +91 -93
  38. data/spec/aws/s3_spec.rb +102 -102
  39. data/spec/aws/simpledb_spec.rb +33 -63
  40. data/spec/catalog/add_spec.rb +12 -12
  41. data/spec/catalog/delete_spec.rb +14 -14
  42. data/spec/catalog/list_spec.rb +8 -8
  43. data/spec/catalog/setup_spec.rb +11 -11
  44. data/spec/catalog/show_spec.rb +13 -13
  45. data/spec/catalog/verify_spec.rb +16 -16
  46. data/spec/catalog_spec.rb +36 -36
  47. data/spec/cipher/data_spec.rb +19 -19
  48. data/spec/cipher/file_spec.rb +11 -11
  49. data/spec/cli/authorize_spec.rb +16 -16
  50. data/spec/cli/catalog_spec.rb +18 -34
  51. data/spec/cli/destroy_spec.rb +13 -13
  52. data/spec/cli/download_spec.rb +31 -31
  53. data/spec/cli/formatter/catalog_spec.rb +19 -17
  54. data/spec/cli/list_spec.rb +14 -14
  55. data/spec/cli/rotate_spec.rb +9 -9
  56. data/spec/cli/setup_spec.rb +29 -29
  57. data/spec/cli/shared_spec.rb +119 -119
  58. data/spec/cli/show_spec.rb +20 -20
  59. data/spec/cli/tag_spec.rb +18 -18
  60. data/spec/cli/teardown_spec.rb +28 -28
  61. data/spec/cli/upload_spec.rb +38 -38
  62. data/spec/config_spec.rb +21 -21
  63. data/spec/destroyer/s3_spec.rb +6 -6
  64. data/spec/directory/directory_spec.rb +19 -19
  65. data/spec/downloader/s3_spec.rb +18 -18
  66. data/spec/logger_spec.rb +9 -9
  67. data/spec/spec_helper.rb +4 -80
  68. data/spec/uploader/s3_spec.rb +35 -35
  69. metadata +23 -56
  70. data/spec/integration/authorize_spec.rb +0 -79
  71. data/spec/integration/cleanup_spec.rb +0 -77
  72. data/watchr.rb +0 -101
@@ -1,79 +0,0 @@
1
- require 'spec_helper'
2
- require 'heirloom/cli'
3
- require 'heirloom/logger'
4
-
5
- describe "authorize", :integration => true do
6
-
7
- before do
8
- @bucket_prefix = ENV['HEIRLOOM_INTEGRATION_BUCKET_PREFIX']
9
- @name = @bucket_prefix
10
- @domain = "heirloom_#{@name}"
11
- end
12
-
13
- it "should require accounts, id, and name" do
14
- reset_env
15
-
16
- @output = capture(:stdout) do
17
-
18
- expect {
19
- Heirloom::CLI::Authorize.new.authorize
20
- }.to raise_error SystemExit
21
-
22
- end
23
-
24
- @output.should =~ /Option 'accounts' required but not specified./
25
- @output.should =~ /Option 'id' required but not specified./
26
- @output.should =~ /Option 'name' required but not specified./
27
- end
28
-
29
- context "performing authorization of non-existent account" do
30
-
31
- before do
32
- @tmp_dir = create_temp_heirloom_content
33
- reset_env(
34
- :bucket_prefix => @bucket_prefix,
35
- :force => true,
36
- :metadata_region => 'us-west-1',
37
- :name => @name,
38
- :region => ['us-west-1']
39
- )
40
- Heirloom::CLI::Setup.new.setup
41
- # give the bucket a chance to propagate
42
- wait_for_aws
43
-
44
- reset_env(
45
- :name => @name,
46
- :id => "v1",
47
- :directory => @tmp_dir
48
- )
49
- Heirloom::CLI::Upload.new.upload
50
- end
51
-
52
- after do
53
- reset_env(
54
- :name => @name,
55
- :force => true,
56
- :keep_buckets => true
57
- )
58
- Heirloom::CLI::Teardown.new.teardown
59
- FileUtils.remove_entry @tmp_dir
60
- end
61
-
62
- it "should try to authorize but fail" do
63
- reset_env(
64
- :name => @name,
65
- :id => "v1",
66
- :accounts => ["X" * 64]
67
- )
68
- expect {
69
- Heirloom::CLI::Authorize.new.authorize
70
- }.to raise_error(Excon::Errors::BadRequest) { |err|
71
- err.response.status.should == 400
72
- err.response.body.should =~ /InvalidArgument/
73
- err.response.body.should =~ /Invalid id/
74
- }
75
- end
76
-
77
- end
78
-
79
- end
@@ -1,77 +0,0 @@
1
- require 'spec_helper'
2
- require 'heirloom/cli'
3
- require 'heirloom/logger'
4
-
5
- describe "cleanup", :integration => true do
6
-
7
- before do
8
- @bucket_prefix = ENV['HEIRLOOM_INTEGRATION_BUCKET_PREFIX']
9
- @name = @bucket_prefix
10
- @domain = "heirloom_#{@name}"
11
- end
12
-
13
- it "should require name" do
14
- reset_env
15
-
16
- Heirloom.log.should_receive(:error)
17
- .with("Option 'name' required but not specified.")
18
-
19
- expect {
20
- Heirloom::CLI::Cleanup.new.cleanup
21
- }.to raise_error SystemExit
22
-
23
- end
24
-
25
- context "setting up and tearing down" do
26
-
27
- before do
28
- @tmp_dir = create_temp_heirloom_content
29
-
30
- reset_env(
31
- :bucket_prefix => @bucket_prefix,
32
- :force => true,
33
- :metadata_region => 'us-west-1',
34
- :name => @name,
35
- :region => ['us-west-1']
36
- )
37
- Heirloom::CLI::Setup.new.setup
38
- # give the bucket a chance to propagate
39
- wait_for_aws
40
-
41
- @sdb = Heirloom::AWS::SimpleDB.new :config => (Heirloom::Config.new :environment => 'integration')
42
- end
43
-
44
- after do
45
- reset_env(
46
- :name => @name,
47
- :force => true,
48
- :keep_buckets => true
49
- )
50
- Heirloom::CLI::Teardown.new.teardown
51
- FileUtils.remove_entry @tmp_dir
52
- end
53
-
54
- it "should delete some number of archives from an heirloom" do
55
- (1..3).each do |i|
56
- reset_env(
57
- :id => "v#{i}",
58
- :name => @name,
59
- :directory => @tmp_dir,
60
- :metadata_region => 'us-west-1'
61
- )
62
- Heirloom::CLI::Upload.new.upload
63
- end
64
-
65
- reset_env(
66
- :name => @name,
67
- :keep => 2
68
- )
69
- Heirloom::CLI::Cleanup.new.cleanup
70
- wait_for_aws
71
-
72
- @sdb.count(@domain).should == 2
73
- end
74
-
75
- end
76
-
77
- end
data/watchr.rb DELETED
@@ -1,101 +0,0 @@
1
- # Derived from:
2
- # https://gist.github.com/darylf/1175908
3
-
4
- # Combined from:
5
- # [1] http://www.rubyinside.com/how-to-rails-3-and-rspec-2-4336.html
6
- # [2] https://gist.github.com/600976
7
-
8
- unless defined?(GROWL)
9
- $stderr.sync=true
10
- $stdout.sync=true
11
- ENV["WATCHR"] = "1"
12
- GROWL=`which growlnotify`.chomp
13
- IMAGE_DIR=File.expand_path("~/.watchr_images/")
14
- end
15
-
16
- def growl(message,title=nil,image=nil)
17
- return if GROWL.empty?
18
- title ||= "Watchr Test Results"
19
- message.gsub! /\[[0-9]+?m/, ''
20
- image ||= message =~ /^0 failure/ ? "#{IMAGE_DIR}/pass.png" : "#{IMAGE_DIR}/fail.png"
21
- options = "-n Watchr --image '#{image}' -m '#{message}' '#{title}'"
22
- puts "#{GROWL} #{options}"
23
- run "#{GROWL} #{options}"
24
- end
25
-
26
- def run(cmd,verbose=true)
27
- puts("# #{cmd}")
28
- ret=[]
29
- IO.popen(cmd) do |output|
30
- while line = output.gets do
31
- puts line if verbose
32
- ret << line
33
- end
34
- end
35
- ret #join("\n")
36
- end
37
-
38
- def generate_message(result)
39
- message = "Error finding results..."
40
- if result.join("\n") =~ /.*(\d+) example(s?), (\d+) failure(s?).*/
41
- message = "#{$3} failure"
42
- message += "s" unless $3 == "1"
43
- end
44
- message
45
- end
46
-
47
- def run_suite
48
- system("clear")
49
- results = run "rake spec"
50
- growl generate_message(results)
51
- puts
52
- end
53
-
54
- def run_spec(file)
55
- unless File.exist?(file)
56
- puts "#{file} does not exist"
57
- return
58
- end
59
-
60
- puts "Running #{file}"
61
- results = run "bundle exec rspec #{file}"
62
- growl generate_message(results)
63
- puts
64
- end
65
-
66
- watch("spec/.*/*_spec.rb") do |match|
67
- run_spec match[0]
68
- end
69
-
70
- watch("spec/.*/.*/*_spec.rb") do |match|
71
- run_spec match[0]
72
- end
73
-
74
- watch("lib/(.*).rb") do |match|
75
- run_spec %{spec/#{match[1]}_spec.rb}
76
- end
77
-
78
- watch("lib/heirloom/(.*).rb") do |match|
79
- run_spec %{spec/#{match[1]}_spec.rb}
80
- end
81
-
82
-
83
- # Ctrl-\
84
- Signal.trap 'QUIT' do
85
- puts " --- Running all tests ---\n\n"
86
- run_suite
87
- end
88
-
89
- # Ctrl-C
90
- Signal.trap 'INT' do
91
- if @interrupted then
92
- abort("\n")
93
- else
94
- puts "Interrupt a second time to quit"
95
- @interrupted = true
96
- Kernel.sleep 1.5
97
- # raise Interrupt, nil # let the run loop catch it
98
- run_suite
99
- @interrupted = false
100
- end
101
- end