From 7e2486c3d9edc94300a58f5e8203277fd5d7e01d Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Tue, 20 Jun 2017 22:14:03 +0000 Subject: [PATCH] Upgrade from docker-py to docker The pypi package 'docker-py' [1] has been renamed to 'docker' [2]. It is better to move to the new 'docker' package because the old package will be deprecated and all the new features will go into the new package only. Package 'docker' has been added to requirements [3]. The old package 'docker-py' is still allowed to be in the global requirements during the transition period but it should be removed after all or most of the projects finsih the migration. [1] https://pypi.python.org/pypi/docker-py [2] https://pypi.python.org/pypi/docker [3] https://review.openstack.org/#/c/423715/ Change-Id: I3ffd8bb6461e8b7edacc5e833754f00c4249b854 --- docker/dind/Dockerfile.j2 | 2 +- kolla/image/build.py | 2 +- kolla/tests/test_build.py | 16 ++++++++-------- requirements.txt | 2 +- tools/setup_gate.sh | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docker/dind/Dockerfile.j2 b/docker/dind/Dockerfile.j2 index bd85b7a634..86783be1a9 100644 --- a/docker/dind/Dockerfile.j2 +++ b/docker/dind/Dockerfile.j2 @@ -21,7 +21,7 @@ RUN /bin/true {{ macros.install_packages(dind_packages | customizable("packages")) }} {% set dind_pip_packages = [ - 'docker-py' + 'docker' ] %} RUN {{ macros.install_pip(dind_pip_packages | customizable("pip_packages"), constraints = false) }} diff --git a/kolla/image/build.py b/kolla/image/build.py index 28e3afe59d..57a90c343b 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -132,7 +132,7 @@ class DockerTask(task.Task): if self._dc is not None: return self._dc docker_kwargs = self.docker_kwargs.copy() - self._dc = docker.Client(version='auto', **docker_kwargs) + self._dc = docker.APIClient(version='auto', **docker_kwargs) return self._dc diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py index 0c50db98ba..c1d17cfdb6 100644 --- a/kolla/tests/test_build.py +++ b/kolla/tests/test_build.py @@ -58,7 +58,7 @@ class TasksTest(base.TestCase): self.imageChild.path = self.useFixture(fixtures.TempDir()).path @mock.patch.dict(os.environ, clear=True) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') def test_push_image(self, mock_client): self.dc = mock_client pusher = build.PushTask(self.conf, self.image) @@ -67,7 +67,7 @@ class TasksTest(base.TestCase): self.image.canonical_name, stream=True, insecure_registry=True) @mock.patch.dict(os.environ, clear=True) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') def test_build_image(self, mock_client): self.dc = mock_client push_queue = mock.Mock() @@ -82,7 +82,7 @@ class TasksTest(base.TestCase): self.assertTrue(builder.success) @mock.patch.dict(os.environ, clear=True) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') def test_build_image_with_build_arg(self, mock_client): self.dc = mock_client build_args = { @@ -103,7 +103,7 @@ class TasksTest(base.TestCase): @mock.patch.dict(os.environ, {'http_proxy': 'http://FROM_ENV:8080'}, clear=True) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') def test_build_arg_from_env(self, mock_client): push_queue = mock.Mock() self.dc = mock_client @@ -122,7 +122,7 @@ class TasksTest(base.TestCase): @mock.patch.dict(os.environ, {'http_proxy': 'http://FROM_ENV:8080'}, clear=True) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') def test_build_arg_precedence(self, mock_client): self.dc = mock_client build_args = { @@ -141,7 +141,7 @@ class TasksTest(base.TestCase): self.assertTrue(builder.success) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') @mock.patch('requests.get') def test_requests_get_timeout(self, mock_get, mock_client): self.dc = mock_client @@ -162,7 +162,7 @@ class TasksTest(base.TestCase): self.assertFalse(builder.success) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') @mock.patch('requests.get') @mock.patch('shutil.rmtree') @mock.patch('shutil.copyfile') @@ -192,7 +192,7 @@ class TasksTest(base.TestCase): else: self.assertIsNotNone(get_result) - @mock.patch('docker.Client') + @mock.patch('docker.APIClient') def test_followups_docker_image(self, mock_client): self.imageChild.source = { 'source': 'http://fake/source', diff --git a/requirements.txt b/requirements.txt index 951c943c90..3ee8355b18 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. pbr!=2.1.0,>=2.0.0 # Apache-2.0 -docker-py>=1.8.1 # Apache-2.0 +docker>=2.0.0 # Apache-2.0 Jinja2!=2.9.0,!=2.9.1,!=2.9.2,!=2.9.3,!=2.9.4,>=2.8 # BSD License (3 clause) gitdb>=0.6.4 # BSD License (3 clause) GitPython>=1.0.1 # BSD License (3 clause) diff --git a/tools/setup_gate.sh b/tools/setup_gate.sh index ce3f786e2e..5635be99ad 100755 --- a/tools/setup_gate.sh +++ b/tools/setup_gate.sh @@ -151,7 +151,7 @@ function setup_ansible { mkdir /tmp/kolla # TODO(SamYaple): Move to virtualenv - sudo -H pip install -U "ansible>=2" "docker-py>=1.6.0" "python-openstackclient" "python-neutronclient" + sudo -H pip install -U "ansible>=2" "docker>=2.0.0" "python-openstackclient" "python-neutronclient" detect_distro setup_inventory