aio-libs / aiodocker

Python Docker API client based on asyncio and aiohttp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Service update method does not match either docker-py nor docker Engine API spec

guillempuigcom opened this issue · comments

Long story short

We are trying to update a service using the library. However, the library does not offer the same functionality as the official specifications and it is just offering to perform a rollback.

In order to update the service, we are now deleting and creating it again which leaves us the service lacking the previous spec.

Docker official specs:
docker-py
docker engine API

  • Expected behaviour: service update method match docker-py spec or docker Engine API spec
  • Actual behaviour: missing update service features (only rollback is allowed)

How to reproduce

  1. We first register a service by calling docker_client.services.create(data) where data matches the required arguments from aiodocker
  2. When trying to update the service registered in the 1st step, we are not able to pass the new spec as a method parameter and we are just able to send the rollback

Your environment

  1. Python 3.7.6
  2. Docker version 20.10.11, build dea9396
  3. aiodocker==0.19.1

Sorry, I don't follow.
Are you talking about Docker swarms or services?

The current version of aiodocker (0.21.0) only allows to specify a new image version or a rollback to the previous version with the service update method. The docker API specifies a lot more options, e.g. labels, task template, update and rollback config, etc.

Most of these options are already supported in aiodocker, but only with the service create and not the service update method. Would it be possible to extend the service update method with the same options like the service create method?