Fixes #10404 - Finds correct repo name for Docker Hub registry
Bug is stated as follows on centos 7 ->
$ docker version Client version: 1.5.0-dev Client API version: 1.18 Go version (client): go1.3.3
$ docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io: docker.io/centos The official build of CentOS. 978 [OK] docker.io: docker.io/ansible/centos7-ansible Ansible on Centos7 40 [OK] .....
On fedora 20 -> $ docker version Client version: 1.5.0 Client API version: 1.17
$ docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 978 [OK] ansible/centos7-ansible Ansible on Centos7 40 [OK] ......
When you ask foreman-docker "search centos from docker hub", it gives you different names based on whether the docker compute resource is running on el7 or fedora 20. You then select an image and it shows the tags for that. Based on your selections it picks "NAME" as the repo name and chooses the tag. This works for docker compute instance running on f20 and used to work for docker instance on el7.
Anyway problem is simple -> "docker.io: docker.io/centos" is not a valid repo name. So foreman-docker has to somehow infer that "docker.io/centos" is what the repo name should be and strip out "docker.io: " while it should some how also work for "my-other-registry.com:4000/cool-repo" and not strip out "my-other-registry.com:4000".
This commit achieves to do that.
Also removing the hub_url code generation code because we'd need some logic that converts docker.io/_/centos to hub.registry.docker.com/_centos_/ and also work for rhel and regular cases.
Related issues
Bug #10404: Bad URI error message when creating Docker container from Docker Hub page
Fixes #10404 - Finds correct repo name for Docker Hub registry
Bug is stated as follows
on centos 7 ->
$ docker version
Client version: 1.5.0-dev
Client API version: 1.18
Go version (client): go1.3.3
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io: docker.io/centos The official build of CentOS. 978 [OK]
docker.io: docker.io/ansible/centos7-ansible Ansible on Centos7 40 [OK]
.....
On fedora 20 ->
$ docker version
Client version: 1.5.0
Client API version: 1.17
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 978 [OK]
ansible/centos7-ansible Ansible on Centos7 40 [OK]
......
Note the "docker.io: " prefix for the centos 7 name columns
http://rhelblog.redhat.com/2015/04/15/understanding-the-changes-to-docker-search-and-docker-pull-in-red-hat-enterprise-linux-7-1/
has details on why thats the case.
When you ask foreman-docker "search centos from docker hub", it gives
you different names based on whether the docker compute resource is
running on el7 or fedora 20. You then select an image and it shows the
tags for that. Based on your selections it picks "NAME" as the repo name
and chooses the tag. This works for docker compute instance running on
f20 and used to work for docker instance on el7.
Anyway problem is simple -> "docker.io: docker.io/centos" is not a valid
repo name. So foreman-docker has to somehow infer that
"docker.io/centos" is what the repo name should be and strip out
"docker.io: " while it should some how also work for
"my-other-registry.com:4000/cool-repo" and not strip out
"my-other-registry.com:4000".
This commit achieves to do that.
Also removing the hub_url code generation code because we'd need some
logic that converts docker.io/_/centos to
hub.registry.docker.com/_centos_/ and also work for rhel and regular
cases.