user-cont / conu

conu - python API for your containers
http://conu.readthedocs.io/en/latest/
MIT License
165 stars 33 forks source link

dockerbackend.Image eats tag #276

Open TomasTomecek opened 6 years ago

TomasTomecek commented 6 years ago
In [9]: image = db.ImageClass(im)                                                                                                                                            
13:29:31.985 image.py          DEBUG  pull policy set to 'if_not_present' and image is not present, pulling the image
13:29:32.484 image.py          DEBUG  {'status': 'Trying to pull repository registry.fedoraproject.org/fedora ... '}                                                        
13:29:32.484 image.py          INFO   Trying to pull repository registry.fedoraproject.org/fedora ...                                                                        
13:29:36.710 image.py          DEBUG  {'status': 'Pulling from registry.fedoraproject.org/fedora', 'id': 'sha256:a91e9da91a6d39386e98685e91e8ccbd35197a91f29516fca0392de2bb93
82a7'}                                                                                                                                                                      
13:29:36.711 image.py          INFO   Pulling from registry.fedoraproject.org/fedora                                                                                         
13:29:37.695 image.py          DEBUG  {'status': 'Pulling fs layer', 'progressDetail': {}, 'id': '7aee9caab031'}                                                            
13:29:37.695 image.py          INFO   Pulling fs layer                                                                                                                      
13:29:38.677 image.py          DEBUG  {'status': 'Downloading', 'progressDetail': {'current': 539815, 'total': 89937508}, 'progress': '[>                                    
              ] 539.8 kB/89.94 MB', 'id': '7aee9caab031'}                                                                                                                   
13:29:38.678 image.py          INFO   Downloading                                                                                                                           
...

In [10]: im
Out[10]: 'registry.fedoraproject.org/fedora:29'

Maybe we should either error out if there is : in image name; or parse it and use and error out in case tag param is set and there is tag in the name.

But anyway, when I set tag in the image name, conu should not eat it.

Suggestions are welcome.

Edit: yeah, and the image instance is completely unusable:

ImageNotFound: 404 Client Error: Not Found ("No such image: registry.fedoraproject.org/fedora:29:latest")

Edit 2: TODO:

skulltech commented 6 years ago

Maybe we should either error out if there is : in image name; or parse it and use and error out in case tag param is set and there is tag in the name.

I think this approach is perfect.

skulltech commented 6 years ago

Is the tag being mentioned as name:tag a standard thing for all container technologies, or is just a docker thing? If it is a standard thing, then it could implemented in the apidefs, otherwise implementing it only in the DockerBackend would be better.

lachmanfrantisek commented 6 years ago

Good (and hopefully well tested) parsing we have in the colin. The plan was to move that code to conu.

TomasTomecek commented 6 years ago

@SkullTech AFAIK all the container runtimes utilize images names and tags, so we can totally put ti to apidefs

Gentlemen, thanks for feedback, I updated the original post with TODO for this one.