Skip to content

Instantly share code, notes, and snippets.

@tombh
Created June 4, 2014 14:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tombh/5519b4a0d17d78a9fef7 to your computer and use it in GitHub Desktop.
Save tombh/5519b4a0d17d78a9fef7 to your computer and use it in GitHub Desktop.
Docker-api rspec errors after bumping API_VERSION to 0.11
1) Docker::Container#changes returns the changes as an array
Failure/Error: ]
expected: [{"Path"=>"/dev", "Kind"=>0}, {"Path"=>"/dev/kmsg", "Kind"=>0}, {"Path"=>"/root", "Kind"=>2}]
got: [{"Kind"=>2, "Path"=>"/root"}] (using ==)
Diff:
@@ -1,4 +1,2 @@
-[{"Path"=>"/dev", "Kind"=>0},
- {"Path"=>"/dev/kmsg", "Kind"=>0},
- {"Path"=>"/root", "Kind"=>2}]
+[{"Kind"=>2, "Path"=>"/root"}]
# ./spec/docker/container_spec.rb:92:in `block (3 levels) in <top (required)>'
2) Docker::Container#copy when the input is a directory yields each chunk of the tarred directory
Failure/Error: subject.copy('/etc/vim') { |chunk| chunks << chunk }
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/container.rb:140:in `copy'
# ./spec/docker/container_spec.rb:138:in `block (4 levels) in <top (required)>'
3) Docker::Container#export yields each chunk
Failure/Error: subject.export do |chunk|
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/container.rb:37:in `export'
# ./spec/docker/container_spec.rb:155:in `block (3 levels) in <top (required)>'
4) Docker::Container#stop stops the container
Failure/Error: described_class.all(:all => true).map(&:id).should be_any { |id|
Excon::Errors::SocketError:
bignum too big to convert into `long' (RangeError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/container.rb:166:in `all'
# ./spec/docker/container_spec.rb:240:in `block (3 levels) in <top (required)>'
5) Docker::Container#kill kills the container
Failure/Error: described_class.all(:all => true).map(&:id).should be_any { |id|
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/container.rb:166:in `all'
# ./spec/docker/container_spec.rb:257:in `block (3 levels) in <top (required)>'
6) Docker::Container.all when the HTTP response is a 200 materializes each Container into a Docker::Container
Failure/Error: subject.all(:all => true).should be_all { |container|
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/container.rb:166:in `all'
# ./spec/docker/container_spec.rb:468:in `block (4 levels) in <top (required)>'
7) Docker::Image#insert_local when removing intermediate containers leave no intermediate containers
Failure/Error: Docker::Container.all(:all => true).count
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/container.rb:166:in `all'
# ./spec/docker/image_spec.rb:105:in `block (5 levels) in <top (required)>'
# ./spec/docker/image_spec.rb:104:in `block (4 levels) in <top (required)>'
8) Docker::Image#push pushes the Image
Failure/Error: Docker::Image.all(:all => true).select { |image|
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/image.rb:125:in `all'
# ./spec/docker/image_spec.rb:132:in `block (3 levels) in <top (required)>'
# ./spec/docker/image_spec.rb:138:in `block (3 levels) in <top (required)>'
9) Docker::Image#push when there are no credentials still pushes
Failure/Error: expect { image.push }.to_not raise_error
expected no Exception, got #<Docker::Error::ServerError: Expected(200..204) <=> Actual(500 InternalServerError)> with backtrace:
# ./lib/docker/connection.rb:50:in `rescue in request'
# ./lib/docker/connection.rb:36:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/image.rb:34:in `push'
# ./spec/docker/image_spec.rb:152:in `block (5 levels) in <top (required)>'
# ./spec/docker/image_spec.rb:152:in `block (4 levels) in <top (required)>'
# ./spec/docker/image_spec.rb:152:in `block (4 levels) in <top (required)>'
10) Docker::Image#refresh! updates the @info hash
Failure/Error: image.refresh!
Excon::Errors::SocketError:
malformed header (Excon::Errors::ResponseParseError)
# ./lib/excon/middlewares/hijack.rb:34:in `response_call'
# ./lib/docker/connection.rb:42:in `request'
# ./lib/docker/connection.rb:57:in `block (2 levels) in <class:Connection>'
# ./lib/docker/image.rb:125:in `all'
# ./lib/docker/image.rb:96:in `refresh!'
# ./spec/docker/image_spec.rb:233:in `block (3 levels) in <top (required)>'
11) Docker::Image.create when the Image does not yet exist and the body is a Hash sets the id and sends Docker.creds
Failure/Error: let(:image) { subject.create('fromImage' => 'ubuntu') }
Docker::Error::ArgumentError:
Must have id, got: {"id"=>nil, :headers=>{"X-Registry-Auth"=>"eyJ1c2VybmFtZSI6Im5haGlsdWhtb3QiLCJwYXNzd29yZCI6IioqKioqKioqKiIsImVtYWlsIjoiaHVsaWhhbi50b20xNTlAZ21haWwuY29tIn0=", "X-Registry-Config"=>"eyJ1c2VybmFtZSI6Im5haGlsdWhtb3QiLCJwYXNzd29yZCI6IioqKioqKioqKiIsImVtYWlsIjoiaHVsaWhhbi50b20xNTlAZ21haWwuY29tIn0="}}
# ./lib/docker/base.rb:16:in `initialize'
# ./lib/docker/image.rb:113:in `new'
# ./lib/docker/image.rb:113:in `create'
# ./spec/docker/image_spec.rb:242:in `block (4 levels) in <top (required)>'
# ./spec/docker/image_spec.rb:254:in `block (4 levels) in <top (required)>'
12) Docker::Image.import when the file does exist creates the Image
Failure/Error: import = subject.import(file)
Docker::Error::IOError:
Could not import 'spec/fixtures/export.tar'
# ./lib/docker/image.rb:146:in `rescue in import'
# ./lib/docker/image.rb:140:in `import'
# ./spec/docker/image_spec.rb:314:in `block (4 levels) in <top (required)>'
13) Docker::Image.all materializes each Image into a Docker::Image
Failure/Error: before { subject.create('fromImage' => 'base') }
Docker::Error::ArgumentError:
Must have id, got: {"id"=>nil, :headers=>{"X-Registry-Auth"=>"eyJ1c2VybmFtZSI6Im5haGlsdWhtb3QiLCJwYXNzd29yZCI6IioqKioqKioqKiIsImVtYWlsIjoiaHVsaWhhbi50b20xNTlAZ21haWwuY29tIn0=", "X-Registry-Config"=>"eyJ1c2VybmFtZSI6Im5haGlsdWhtb3QiLCJwYXNzd29yZCI6IioqKioqKioqKiIsImVtYWlsIjoiaHVsaWhhbi50b20xNTlAZ21haWwuY29tIn0="}}
# ./lib/docker/base.rb:16:in `initialize'
# ./lib/docker/image.rb:113:in `new'
# ./lib/docker/image.rb:113:in `create'
# ./spec/docker/image_spec.rb:344:in `block (3 levels) in <top (required)>'
14) Docker#version returns the version as a Hash
Failure/Error: version.keys.sort.should == expected
expected: ["Arch", "GitCommit", "GoVersion", "KernelVersion", "Os", "Version"]
got: ["ApiVersion", "Arch", "GitCommit", "GoVersion", "KernelVersion", "Os", "Version"] (using ==)
# ./spec/docker_spec.rb:100:in `block (3 levels) in <top (required)>'
15) Docker#authenticate! with valid credentials logs in and sets the creds
Failure/Error: subject.authenticate!(credentials)
Docker::Error::AuthenticationError:
Docker::Error::AuthenticationError
# ./lib/docker.rb:89:in `rescue in authenticate!'
# ./lib/docker.rb:84:in `authenticate!'
# ./spec/docker_spec.rb:127:in `block (3 levels) in <top (required)>'
# ./spec/docker_spec.rb:147:in `block (4 levels) in <top (required)>'
@gregory
Copy link

gregory commented Oct 16, 2014

did you find the fix? @tombh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment