docker-client 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +3 -1
  3. data/Rakefile +18 -0
  4. data/lib/docker/error.rb +1 -0
  5. data/lib/docker/error/image_not_found.rb +7 -0
  6. data/lib/docker/resource/container.rb +10 -0
  7. data/lib/docker/resource/image.rb +43 -0
  8. data/lib/docker/version.rb +1 -1
  9. data/spec/cassettes/Docker_Connection/returns_a_stream.yml +171 -0
  10. data/spec/cassettes/Docker_Connection/returns_a_valid_response_for_a_basic_request.yml +3 -12
  11. data/spec/cassettes/Docker_Connection/returns_a_valid_response_for_get_request.yml +3 -77
  12. data/spec/cassettes/Docker_Connection/returns_a_valid_response_for_post_request.yml +189 -0
  13. data/spec/cassettes/Docker_Connection/returns_status_404_for_non_existent_path.yml +2 -2
  14. data/spec/cassettes/Docker_Connection/sets_given_query_parameters.yml +2 -2
  15. data/spec/cassettes/Docker_Connection/sets_given_request_headers.yml +2 -2
  16. data/spec/cassettes/Docker_Resource_Container/attach/raises_an_exception_for_an_unknown_container.yml +30 -0
  17. data/spec/cassettes/Docker_Resource_Container/changes/inspects_the_container_s_filesystem_changes.yml +210 -0
  18. data/spec/cassettes/Docker_Resource_Container/commit/creates_a_new_image_from_the_container_s_changes.yml +199 -0
  19. data/spec/cassettes/Docker_Resource_Container/commit/raises_an_exception_for_an_unknown_container.yml +31 -0
  20. data/spec/cassettes/Docker_Resource_Container/create/raises_an_exception_when_called_with_invalid_options.yml +2 -2
  21. data/spec/cassettes/Docker_Resource_Container/create/with_many_settings.yml +3 -3
  22. data/spec/cassettes/Docker_Resource_Container/create/with_minimal_settings.yml +3 -3
  23. data/spec/cassettes/Docker_Resource_Container/kill/raises_an_exception_for_an_unknow_container.yml +2 -2
  24. data/spec/cassettes/Docker_Resource_Container/kill/the_container.yml +189 -0
  25. data/spec/cassettes/Docker_Resource_Container/lists/all_running_containers.yml +7 -17
  26. data/spec/cassettes/Docker_Resource_Container/lists/limit_last_created_containers.yml +5 -5
  27. data/spec/cassettes/Docker_Resource_Container/lists/non-running_processes_too.yml +10 -85
  28. data/spec/cassettes/Docker_Resource_Container/lists/processes_before_a_certain_created_container.yml +303 -0
  29. data/spec/cassettes/Docker_Resource_Container/lists/processes_since_a_certain_created_container.yml +217 -0
  30. data/spec/cassettes/Docker_Resource_Container/logs/raises_an_exception_for_an_unknown_container.yml +31 -0
  31. data/spec/cassettes/Docker_Resource_Container/logs/returns_the_stderr_of_a_container.yml +154 -0
  32. data/spec/cassettes/Docker_Resource_Container/logs/returns_the_stdout_of_a_container.yml +154 -0
  33. data/spec/cassettes/Docker_Resource_Container/remove/deletes_the_container.yml +189 -0
  34. data/spec/cassettes/Docker_Resource_Container/remove/raises_an_exception_with_an_invalid_container.yml +2 -2
  35. data/spec/cassettes/Docker_Resource_Container/restarts/raises_an_exception_for_an_unknown_container.yml +2 -2
  36. data/spec/cassettes/Docker_Resource_Container/restarts/the_container.yml +189 -0
  37. data/spec/cassettes/Docker_Resource_Container/shows/the_low_level_details.yml +315 -0
  38. data/spec/cassettes/Docker_Resource_Container/start/brings_a_container_into_state_running.yml +189 -0
  39. data/spec/cassettes/Docker_Resource_Container/start/raises_an_exception_for_an_unknown_container.yml +2 -2
  40. data/spec/cassettes/Docker_Resource_Container/stop/halts_a_container.yml +189 -0
  41. data/spec/cassettes/Docker_Resource_Container/stop/raises_an_exception_for_an_unknown_container.yml +2 -2
  42. data/spec/cassettes/Docker_Resource_Container/wait/blocks_until_the_container_stops.yml +196 -0
  43. data/spec/cassettes/Docker_Resource_Container/wait/raises_an_exception_for_an_unknown_container.yml +2 -2
  44. data/spec/cassettes/Docker_Resource_Image/history/.yml +33 -0
  45. data/spec/cassettes/Docker_Resource_Image/history/size/.yml +33 -0
  46. data/spec/cassettes/Docker_Resource_Image/history/step/.yml +33 -0
  47. data/spec/cassettes/Docker_Resource_Image/list/.yml +44 -0
  48. data/spec/cassettes/Docker_Resource_Image/list/includes_latest_base_image.yml +44 -0
  49. data/spec/cassettes/Docker_Resource_Image/list/size/.yml +44 -0
  50. data/spec/cassettes/Docker_Resource_Image/remove/deletes_the_image.yml +192 -0
  51. data/spec/cassettes/Docker_Resource_Image/remove/raises_an_exception_for_an_unknown_image.yml +31 -0
  52. data/spec/cassettes/Docker_Resource_Image/show/.yml +42 -0
  53. data/spec/cassettes/Docker_Resource_Image/show/raises_an_exception_for_an_unknown_image.yml +31 -0
  54. data/spec/cassettes/Docker_Resource_Image/tag/an_image_into_a_repository.yml +30 -0
  55. data/spec/cassettes/Docker_Resource_Image/tag/raises_an_exception_for_an_unknown_image.yml +31 -0
  56. data/spec/cassettes/test_setup/commit_container.yml +423 -0
  57. data/spec/cassettes/test_setup/create_container__command_/bin/sh_-c_while_true_do_echo_hello_world_sleep_1_done_.yml +33 -0
  58. data/spec/cassettes/test_setup/create_container_connection_post.yml +3 -3
  59. data/spec/cassettes/test_setup/create_container_container_attach.yml +34 -0
  60. data/spec/cassettes/test_setup/create_container_container_changes.yml +3 -3
  61. data/spec/cassettes/test_setup/create_container_container_commit.yml +33 -0
  62. data/spec/cassettes/test_setup/create_container_container_kill.yml +3 -3
  63. data/spec/cassettes/test_setup/create_container_container_lists1.yml +3 -3
  64. data/spec/cassettes/test_setup/create_container_container_lists2.yml +3 -3
  65. data/spec/cassettes/test_setup/create_container_container_logs.yml +3 -3
  66. data/spec/cassettes/test_setup/create_container_container_remove.yml +3 -3
  67. data/spec/cassettes/test_setup/create_container_container_restarts.yml +3 -3
  68. data/spec/cassettes/test_setup/create_container_container_shows.yml +3 -3
  69. data/spec/cassettes/test_setup/create_container_container_start.yml +3 -3
  70. data/spec/cassettes/test_setup/create_container_container_stop.yml +3 -3
  71. data/spec/cassettes/test_setup/create_container_container_wait.yml +3 -3
  72. data/spec/cassettes/test_setup/create_container_test-image.yml +33 -0
  73. data/spec/cassettes/test_setup/create_container_test-returns-a-stream.yml +34 -0
  74. data/spec/cassettes/test_setup/create_container_test-tag.yml +33 -0
  75. data/spec/cassettes/test_setup/delete_container.yml +3727 -0
  76. data/spec/cassettes/test_setup/delete_image.yml +409 -0
  77. data/spec/cassettes/test_setup/start_container.yml +2813 -0
  78. data/spec/cassettes/test_setup/wait_on_container.yml +1080 -0
  79. data/spec/docker/connection_spec.rb +1 -1
  80. data/spec/docker/resource/container_spec.rb +26 -11
  81. data/spec/docker/resource/image_spec.rb +104 -0
  82. data/spec/helpers.rb +31 -2
  83. metadata +55 -2
@@ -54,7 +54,7 @@ describe Docker::Connection, :vcr do
54
54
  end
55
55
 
56
56
  it "returns a stream", :live do
57
- id = create_and_start_container(command: hello_world_command)
57
+ id = create_and_start_container('test-returns-a-stream', command: hello_world_command)
58
58
  received_data = []
59
59
  params = {stream: 1, stdout: 1}
60
60
  timeout = 2
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Docker::Resource::Container do
4
- subject { Docker::API.new(base_url: 'http://10.0.5.5:4243').containers }
4
+ subject(:containers) { Docker::API.new(base_url: 'http://10.0.5.5:4243').containers }
5
5
 
6
6
  describe "lists", :vcr do
7
7
  before(:all) {
@@ -49,8 +49,6 @@ describe Docker::Resource::Container do
49
49
  status = subject.create(hello_world_command, 'base')
50
50
  status.should be_kind_of(Hash)
51
51
  status.should have_key('Id')
52
- status.should have_key('Warnings')
53
- status['Warnings'].should be_nil
54
52
  @container_id = status['Id']
55
53
  end
56
54
 
@@ -116,6 +114,27 @@ describe Docker::Resource::Container do
116
114
  end
117
115
  end
118
116
 
117
+ describe "commit", :vcr do
118
+ before(:all) {
119
+ @c = create_and_start_container('container_commit', command: ['touch', '/tmp/changes'], wait: true)
120
+ }
121
+ after(:all) { delete_containers(@c) }
122
+
123
+ it "creates a new image from the container's changes" do
124
+ options = {m: 'Commit message', author: 'Docker Client' }
125
+ response = subject.commit(@c, 'test-repo', 'test-tag', options)
126
+ response.should have_key('Id')
127
+ image_id = response['Id']
128
+ delete_images(image_id)
129
+ end
130
+
131
+ it "raises an exception for an unknown container" do
132
+ expect {
133
+ subject.commit('invalid_id', 'test-repo')
134
+ }.to raise_error(Docker::Error::ContainerNotFound)
135
+ end
136
+ end
137
+
119
138
  describe "export" do
120
139
  # not yet implemented
121
140
  end
@@ -214,9 +233,7 @@ describe Docker::Resource::Container do
214
233
  received_data.size.should >= 2
215
234
  end
216
235
 
217
- # TODO fails because docker always returns status 200
218
- # See https://github.com/dotcloud/docker/issues/718
219
- xit "raises an exception for an unknown container" do
236
+ it "raises an exception for an unknown container" do
220
237
  expect {
221
238
  subject.attach('invalid_id') { }
222
239
  }.to raise_error(Docker::Error::ContainerNotFound)
@@ -239,9 +256,7 @@ describe Docker::Resource::Container do
239
256
  output.should include("stderr")
240
257
  end
241
258
 
242
- # TODO fails because docker always returns status 200
243
- # See https://github.com/dotcloud/docker/issues/718
244
- xit "raises an exception for an unknown container" do
259
+ it "raises an exception for an unknown container" do
245
260
  expect {
246
261
  subject.logs('invalid_id')
247
262
  }.to raise_error(Docker::Error::ContainerNotFound)
@@ -249,10 +264,10 @@ describe Docker::Resource::Container do
249
264
  end
250
265
 
251
266
  describe "wait", :vcr do
252
- before {
267
+ before(:all) {
253
268
  @c = create_and_start_container('container_wait', command: ['sleep', '3'])
254
269
  }
255
- after { delete_containers(@c) }
270
+ after(:all) { delete_containers(@c) }
256
271
 
257
272
  it "blocks until the container stops" do
258
273
  status = subject.wait(@c)
@@ -0,0 +1,104 @@
1
+ require 'spec_helper'
2
+
3
+ describe Docker::Resource::Image do
4
+ let(:docker) { Docker::API.new(base_url: 'http://10.0.5.5:4243') }
5
+ subject(:image) { docker.images }
6
+
7
+ describe "list", :vcr do
8
+ subject { image.list(all: true) }
9
+
10
+ it { should be_kind_of(Array) }
11
+ its(:size) { should >= 4 }
12
+ it "includes latest base image" do
13
+ subject.any? { |i| i["Repository"] == 'base' && i["Tag"] == 'latest' }.should be_true
14
+ end
15
+ end
16
+
17
+ # We should name it
18
+ # * image/pull
19
+ # * image/upload
20
+ describe "create" do
21
+ end
22
+
23
+ describe "insert" do
24
+ end
25
+
26
+ describe "show", :vcr do
27
+ subject { image.show('base') }
28
+
29
+ it { should be_kind_of(Hash) }
30
+ it { should have_key('id') }
31
+ it { should have_key('container_config') }
32
+ it "raises an exception for an unknown image" do
33
+ expect {
34
+ image.show("invalid_image")
35
+ }.to raise_error(Docker::Error::ImageNotFound)
36
+ end
37
+ end
38
+
39
+ describe "history", :vcr do
40
+ subject(:image_history) { image.history('base') }
41
+
42
+ it { should be_kind_of(Array) }
43
+ its(:size) { should >= 2 }
44
+
45
+ describe "step" do
46
+ subject { image_history.first }
47
+ it { should have_key('Id') }
48
+ it { should have_key('Created') }
49
+ it { should have_key('CreatedBy') }
50
+ end
51
+ end
52
+
53
+ describe "push" do
54
+ end
55
+
56
+ describe "tag", :vcr do
57
+ before(:all) { @img = create_image('test-tag') }
58
+ after(:all) { delete_images(@img) }
59
+
60
+ it "an image into a repository" do
61
+ status = image.tag('test-tag', 'test-repo')
62
+ status.should be_true
63
+ end
64
+
65
+ it "raises an exception for an unknown image" do
66
+ expect {
67
+ image.tag('inavlid_image', 'test-repo')
68
+ # }.to raise_error(Docker::Error::ImageNotFound)
69
+ # Should return ImageNotFound, this is an error in Docker source! as it returns 500 and not 404
70
+ }.to raise_error(Docker::Error::InternalServerError)
71
+ end
72
+ end
73
+
74
+ describe "remove", :vcr do
75
+ before(:all) { @image = create_image('test-image') }
76
+
77
+ it "deletes the image" do
78
+ subject.remove(@image)
79
+ end
80
+
81
+ it "raises an exception for an unknown image" do
82
+ expect {
83
+ subject.remove('unknown-image')
84
+ }.to raise_error(Docker::Error::ImageNotFound)
85
+ end
86
+ end
87
+
88
+ # FIXME not working with current Docker master
89
+ # describe "search", :vcr do
90
+ # it "for an image in the docker index" do
91
+ # response = subject.search('sshd')
92
+ # response.should be_kind_of(Array)
93
+ # response.size.should >= 1
94
+ # response.first.should have_key('Name')
95
+ # response.first.should have_key('Description')
96
+ # end
97
+
98
+ # end
99
+
100
+
101
+
102
+
103
+
104
+ end
@@ -27,8 +27,14 @@ module Helpers
27
27
  end
28
28
  end
29
29
 
30
+ def commit_container(id, repo)
31
+ VCR.use_cassette('test_setup/commit_container') do
32
+ container_resource.commit(id, repo)['Id']
33
+ end
34
+ end
35
+
30
36
  def create_and_start_container(name, options = {})
31
- wait = options.delete(:wait)
37
+ wait = options.delete(:wait)
32
38
 
33
39
  id = create_container(name, options)
34
40
  start_container(id)
@@ -41,8 +47,31 @@ module Helpers
41
47
  ['/bin/sh', '-c', 'while true; do echo hello world; sleep 1; done']
42
48
  end
43
49
 
50
+ def create_image(name)
51
+ container_id = create_and_start_container(name, command: ['touch', '/tmp/changes'], wait: true, commit: true)
52
+ image_id = commit_container(container_id, name)
53
+ delete_containers(container_id)
54
+ image_id
55
+ end
56
+
57
+ def delete_images(*ids)
58
+ VCR.use_cassette('test_setup/delete_image') do
59
+ ids.each do |id|
60
+ image_resource.remove(id) if id
61
+ end
62
+ end
63
+ end
64
+
65
+ def image_resource
66
+ @_image ||= docker_resource.images
67
+ end
68
+
44
69
  def container_resource
45
- @container ||= Docker::API.new(base_url: 'http://10.0.5.5:4243').containers
70
+ @_container ||= docker_resource.containers
71
+ end
72
+
73
+ def docker_resource
74
+ @_docker ||= Docker::API.new(base_url: 'http://10.0.5.5:4243')
46
75
  end
47
76
 
48
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-27 00:00:00.000000000 Z
12
+ date: 2013-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -226,6 +226,7 @@ files:
226
226
  - lib/docker/error.rb
227
227
  - lib/docker/error/bad_parameter_error.rb
228
228
  - lib/docker/error/container_not_found.rb
229
+ - lib/docker/error/image_not_found.rb
229
230
  - lib/docker/error/internal_server_error.rb
230
231
  - lib/docker/error/not_found_error.rb
231
232
  - lib/docker/resource.rb
@@ -233,13 +234,17 @@ files:
233
234
  - lib/docker/resource/container.rb
234
235
  - lib/docker/resource/image.rb
235
236
  - lib/docker/version.rb
237
+ - spec/cassettes/Docker_Connection/returns_a_stream.yml
236
238
  - spec/cassettes/Docker_Connection/returns_a_valid_response_for_a_basic_request.yml
237
239
  - spec/cassettes/Docker_Connection/returns_a_valid_response_for_get_request.yml
238
240
  - spec/cassettes/Docker_Connection/returns_a_valid_response_for_post_request.yml
239
241
  - spec/cassettes/Docker_Connection/returns_status_404_for_non_existent_path.yml
240
242
  - spec/cassettes/Docker_Connection/sets_given_query_parameters.yml
241
243
  - spec/cassettes/Docker_Connection/sets_given_request_headers.yml
244
+ - spec/cassettes/Docker_Resource_Container/attach/raises_an_exception_for_an_unknown_container.yml
242
245
  - spec/cassettes/Docker_Resource_Container/changes/inspects_the_container_s_filesystem_changes.yml
246
+ - spec/cassettes/Docker_Resource_Container/commit/creates_a_new_image_from_the_container_s_changes.yml
247
+ - spec/cassettes/Docker_Resource_Container/commit/raises_an_exception_for_an_unknown_container.yml
243
248
  - spec/cassettes/Docker_Resource_Container/create/raises_an_exception_when_called_with_invalid_options.yml
244
249
  - spec/cassettes/Docker_Resource_Container/create/with_many_settings.yml
245
250
  - spec/cassettes/Docker_Resource_Container/create/with_minimal_settings.yml
@@ -250,6 +255,7 @@ files:
250
255
  - spec/cassettes/Docker_Resource_Container/lists/non-running_processes_too.yml
251
256
  - spec/cassettes/Docker_Resource_Container/lists/processes_before_a_certain_created_container.yml
252
257
  - spec/cassettes/Docker_Resource_Container/lists/processes_since_a_certain_created_container.yml
258
+ - spec/cassettes/Docker_Resource_Container/logs/raises_an_exception_for_an_unknown_container.yml
253
259
  - spec/cassettes/Docker_Resource_Container/logs/returns_the_stderr_of_a_container.yml
254
260
  - spec/cassettes/Docker_Resource_Container/logs/returns_the_stdout_of_a_container.yml
255
261
  - spec/cassettes/Docker_Resource_Container/remove/deletes_the_container.yml
@@ -263,8 +269,24 @@ files:
263
269
  - spec/cassettes/Docker_Resource_Container/stop/raises_an_exception_for_an_unknown_container.yml
264
270
  - spec/cassettes/Docker_Resource_Container/wait/blocks_until_the_container_stops.yml
265
271
  - spec/cassettes/Docker_Resource_Container/wait/raises_an_exception_for_an_unknown_container.yml
272
+ - spec/cassettes/Docker_Resource_Image/history/.yml
273
+ - spec/cassettes/Docker_Resource_Image/history/size/.yml
274
+ - spec/cassettes/Docker_Resource_Image/history/step/.yml
275
+ - spec/cassettes/Docker_Resource_Image/list/.yml
276
+ - spec/cassettes/Docker_Resource_Image/list/includes_latest_base_image.yml
277
+ - spec/cassettes/Docker_Resource_Image/list/size/.yml
278
+ - spec/cassettes/Docker_Resource_Image/remove/deletes_the_image.yml
279
+ - spec/cassettes/Docker_Resource_Image/remove/raises_an_exception_for_an_unknown_image.yml
280
+ - spec/cassettes/Docker_Resource_Image/show/.yml
281
+ - spec/cassettes/Docker_Resource_Image/show/raises_an_exception_for_an_unknown_image.yml
282
+ - spec/cassettes/Docker_Resource_Image/tag/an_image_into_a_repository.yml
283
+ - spec/cassettes/Docker_Resource_Image/tag/raises_an_exception_for_an_unknown_image.yml
284
+ - spec/cassettes/test_setup/commit_container.yml
285
+ - spec/cassettes/test_setup/create_container__command_/bin/sh_-c_while_true_do_echo_hello_world_sleep_1_done_.yml
266
286
  - spec/cassettes/test_setup/create_container_connection_post.yml
287
+ - spec/cassettes/test_setup/create_container_container_attach.yml
267
288
  - spec/cassettes/test_setup/create_container_container_changes.yml
289
+ - spec/cassettes/test_setup/create_container_container_commit.yml
268
290
  - spec/cassettes/test_setup/create_container_container_kill.yml
269
291
  - spec/cassettes/test_setup/create_container_container_lists1.yml
270
292
  - spec/cassettes/test_setup/create_container_container_lists2.yml
@@ -275,12 +297,17 @@ files:
275
297
  - spec/cassettes/test_setup/create_container_container_start.yml
276
298
  - spec/cassettes/test_setup/create_container_container_stop.yml
277
299
  - spec/cassettes/test_setup/create_container_container_wait.yml
300
+ - spec/cassettes/test_setup/create_container_test-image.yml
301
+ - spec/cassettes/test_setup/create_container_test-returns-a-stream.yml
302
+ - spec/cassettes/test_setup/create_container_test-tag.yml
278
303
  - spec/cassettes/test_setup/delete_container.yml
304
+ - spec/cassettes/test_setup/delete_image.yml
279
305
  - spec/cassettes/test_setup/start_container.yml
280
306
  - spec/cassettes/test_setup/wait_on_container.yml
281
307
  - spec/docker/api_spec.rb
282
308
  - spec/docker/connection_spec.rb
283
309
  - spec/docker/resource/container_spec.rb
310
+ - spec/docker/resource/image_spec.rb
284
311
  - spec/helpers.rb
285
312
  - spec/spec_helper.rb
286
313
  homepage: https://github.com/geku/docker-client
@@ -309,13 +336,17 @@ signing_key:
309
336
  specification_version: 3
310
337
  summary: Docker client library to access the Docker remote API.
311
338
  test_files:
339
+ - spec/cassettes/Docker_Connection/returns_a_stream.yml
312
340
  - spec/cassettes/Docker_Connection/returns_a_valid_response_for_a_basic_request.yml
313
341
  - spec/cassettes/Docker_Connection/returns_a_valid_response_for_get_request.yml
314
342
  - spec/cassettes/Docker_Connection/returns_a_valid_response_for_post_request.yml
315
343
  - spec/cassettes/Docker_Connection/returns_status_404_for_non_existent_path.yml
316
344
  - spec/cassettes/Docker_Connection/sets_given_query_parameters.yml
317
345
  - spec/cassettes/Docker_Connection/sets_given_request_headers.yml
346
+ - spec/cassettes/Docker_Resource_Container/attach/raises_an_exception_for_an_unknown_container.yml
318
347
  - spec/cassettes/Docker_Resource_Container/changes/inspects_the_container_s_filesystem_changes.yml
348
+ - spec/cassettes/Docker_Resource_Container/commit/creates_a_new_image_from_the_container_s_changes.yml
349
+ - spec/cassettes/Docker_Resource_Container/commit/raises_an_exception_for_an_unknown_container.yml
319
350
  - spec/cassettes/Docker_Resource_Container/create/raises_an_exception_when_called_with_invalid_options.yml
320
351
  - spec/cassettes/Docker_Resource_Container/create/with_many_settings.yml
321
352
  - spec/cassettes/Docker_Resource_Container/create/with_minimal_settings.yml
@@ -326,6 +357,7 @@ test_files:
326
357
  - spec/cassettes/Docker_Resource_Container/lists/non-running_processes_too.yml
327
358
  - spec/cassettes/Docker_Resource_Container/lists/processes_before_a_certain_created_container.yml
328
359
  - spec/cassettes/Docker_Resource_Container/lists/processes_since_a_certain_created_container.yml
360
+ - spec/cassettes/Docker_Resource_Container/logs/raises_an_exception_for_an_unknown_container.yml
329
361
  - spec/cassettes/Docker_Resource_Container/logs/returns_the_stderr_of_a_container.yml
330
362
  - spec/cassettes/Docker_Resource_Container/logs/returns_the_stdout_of_a_container.yml
331
363
  - spec/cassettes/Docker_Resource_Container/remove/deletes_the_container.yml
@@ -339,8 +371,24 @@ test_files:
339
371
  - spec/cassettes/Docker_Resource_Container/stop/raises_an_exception_for_an_unknown_container.yml
340
372
  - spec/cassettes/Docker_Resource_Container/wait/blocks_until_the_container_stops.yml
341
373
  - spec/cassettes/Docker_Resource_Container/wait/raises_an_exception_for_an_unknown_container.yml
374
+ - spec/cassettes/Docker_Resource_Image/history/.yml
375
+ - spec/cassettes/Docker_Resource_Image/history/size/.yml
376
+ - spec/cassettes/Docker_Resource_Image/history/step/.yml
377
+ - spec/cassettes/Docker_Resource_Image/list/.yml
378
+ - spec/cassettes/Docker_Resource_Image/list/includes_latest_base_image.yml
379
+ - spec/cassettes/Docker_Resource_Image/list/size/.yml
380
+ - spec/cassettes/Docker_Resource_Image/remove/deletes_the_image.yml
381
+ - spec/cassettes/Docker_Resource_Image/remove/raises_an_exception_for_an_unknown_image.yml
382
+ - spec/cassettes/Docker_Resource_Image/show/.yml
383
+ - spec/cassettes/Docker_Resource_Image/show/raises_an_exception_for_an_unknown_image.yml
384
+ - spec/cassettes/Docker_Resource_Image/tag/an_image_into_a_repository.yml
385
+ - spec/cassettes/Docker_Resource_Image/tag/raises_an_exception_for_an_unknown_image.yml
386
+ - spec/cassettes/test_setup/commit_container.yml
387
+ - spec/cassettes/test_setup/create_container__command_/bin/sh_-c_while_true_do_echo_hello_world_sleep_1_done_.yml
342
388
  - spec/cassettes/test_setup/create_container_connection_post.yml
389
+ - spec/cassettes/test_setup/create_container_container_attach.yml
343
390
  - spec/cassettes/test_setup/create_container_container_changes.yml
391
+ - spec/cassettes/test_setup/create_container_container_commit.yml
344
392
  - spec/cassettes/test_setup/create_container_container_kill.yml
345
393
  - spec/cassettes/test_setup/create_container_container_lists1.yml
346
394
  - spec/cassettes/test_setup/create_container_container_lists2.yml
@@ -351,11 +399,16 @@ test_files:
351
399
  - spec/cassettes/test_setup/create_container_container_start.yml
352
400
  - spec/cassettes/test_setup/create_container_container_stop.yml
353
401
  - spec/cassettes/test_setup/create_container_container_wait.yml
402
+ - spec/cassettes/test_setup/create_container_test-image.yml
403
+ - spec/cassettes/test_setup/create_container_test-returns-a-stream.yml
404
+ - spec/cassettes/test_setup/create_container_test-tag.yml
354
405
  - spec/cassettes/test_setup/delete_container.yml
406
+ - spec/cassettes/test_setup/delete_image.yml
355
407
  - spec/cassettes/test_setup/start_container.yml
356
408
  - spec/cassettes/test_setup/wait_on_container.yml
357
409
  - spec/docker/api_spec.rb
358
410
  - spec/docker/connection_spec.rb
359
411
  - spec/docker/resource/container_spec.rb
412
+ - spec/docker/resource/image_spec.rb
360
413
  - spec/helpers.rb
361
414
  - spec/spec_helper.rb