kosmas (16) [Avatar] Offline
#1
Any ideas what is mising and getting this error?

----
[Call Trace]
tools/create-stack-user.sh:32:source
/opt/devstack/stackrc:266:is_package_installed
/opt/devstack/functions-common:923:exit_distro_not_supported
/opt/devstack/functions-common:290:die
[ERROR] /opt/devstack/functions-common:290 Support for -. is incomplete: no support for finding if a package is installed
----

Tried with a decker container that has a root and devstack user created, and sudo and git installed.
This is on an Ubuntu 12.04.
When running the command:
sudo tools/create-stack-user.sh

the above error appears and the user/group stack is not created.

Message was edited by:
kosmas
cody.bumgardner (57) [Avatar] Offline
#2
Re: no support for finding if a package is installed
Hi Kosmas,

I think the source of the problem is mentioned in the error output: /opt/devstack/functions-common:923:exit_distro_not_supported

I am a big fan of Linux Containers (LXC) and especially like the direction of automation provided by the Docker project. However, while not like infrastructure virtualization through the use of hypervisors (KVM, Xen, etc.), LXC and by relation Docker is still a form of abstraction and system level virtualization.

Lets take a look at the source of functions-common:

source functions-common 290: die $LINENO "Support for $DISTRO is incomplete: no support for $@"

source functions-common 909 - 923:
if [[ "$os_PACKAGE" = "deb" ]]; then
dpkg -s "$@" > /dev/null 2> /dev/null
elif [[ "$os_PACKAGE" = "rpm" ]]; then
rpm --quiet -q "$@"
else
exit_distro_not_supported "finding if a package is installed"

Based on the output of your error, it appears as of python can't determine the DISTRO and can't determine a way to manage packages.

I am confident that this is related to trying to deploy DevStack inside of a Docker container.

In OpenStack/DevStack Docker is to be used as a sort of hypervisor not from within a container. Take a look at the hypervisor support matrix: https://wiki.openstack.org/wiki/HypervisorSupportMatrix As you can see Docker/LXC is listed as Group C (not totally supported) hypervisor option.

If you are interested in running Docker/LXC as your hypervisor the instructions, including necessary modifications to the local.conf can be found here: https://wiki.openstack.org/wiki/Docker

I hope this helps. Perhaps by the time of this books release Docker/LXC support in OpenStack will be to the point it can be reasonably introduced.

Thanks,
Cody