* add build action to build binary packages
* remove conflicting packages on install phase
* process rhel.yaml to get required RPM package names
* allow including only /usr directory to packages
Build action is run as root after prepare action.
Change-Id: I6beec02e1c6ff48ec24a6ae382aae0193c1af95f
Fixes: bug #1193088
Fixes: bug #1193085
In order to ensure that if installed again that the nova
and keystone configuration will be re-ran instead of being
skipped by deleting these special marker files.
Change-Id: Id1a9362e08ff5ff3d3def1576a360c5d84329faa
Now that smithy exports a variable saying what
packages conflict we can just use that instead
of having to have the same duplicate info in
the distro yaml file.
Change-Id: Ia5818f8d8866472ab6968e69db4fa91aaf188894
This can lead to unpredictable results: nobody knows
what repos and what package names will be available.
Also, removing `yum list` makes py2rpm faster.
Change-Id: I4892d46b9b13ea5f94a9805293381284c388cebe
When run with sudo, Anvil changed process real UID
to SUDO_UID thus easily creating files with different owners.
This mechanism can confuse some tools (like pip)
Now, we can almost safely stop changing real UID and run
prepare as non-root and bootstrap, install, start, status,
and stop as root.
Also, this removes dependency on sudo.
Implements: blueprint no-uid-tricks
Fixes: bug #1179747
Fixes: bug #1186440
Fixes: bug #1186448
Change-Id: I7ae293aad7f0a5ba08962e6b6b709fe49b8b81ec
Building RPMs for all required Python packages usually
takes a lot of time. That's better to skip building Python
packages that are available as RPMs.
Python package name are converted to RPM (e.g., django to
Django and webob to python-webob) and version is checked
appropriately.
Do not force using already installed packages. It doesn't
speeds up the build process anymore, but leads to bugs.
Implements: blueprint build-only-missing
Fixes: bug #1186450
Fixes: bug #1186450
Change-Id: Id59d954eb8057746051723deee299afc2f10f01f
If a repository was downloaded previously, it may contain
local changes that prevent git checkout. Do git clean -xdfq
and git reset --hard.
If a repository was downloaded previously, it may contain
a branch with the same name we want to use. To be compatible
with old git, we drop the branch and create again.
Change-Id: Ib46328e9cddc8d1e58833c08b65679b1b61a891d
In future, Anvil should be able to detect such problems
and automatically decide to install these packages with pip.
Change-Id: I7f570aa6e146bc10313b7870995c13be5cc55a7a
Additional profit: one cannot run yum install $local_file
successfully if the package is installed, so, if you install
nodejs from a local file, you cannot run installation process
twice.
Change-Id: I62f2f27c9b3835879f0cde07fcd27720e3ef2f31
Keystone, glance and others now dependent on oslo.config as
a pip requirement so we need to make sure we download and
setup that component as well so that it can be located when
installing components that depend on it.
Change-Id: Iab2ee40e18e356daca5590a12c426c536e571508
Since said rpm is no longer valid, add a script under
tools to build/install nodejs rpm from source, provide
pre-built nodejs rpm under local-rpms dir and install nodejs
rpm from that dir itself if horizon is being used.
Change-Id: Iae724d73d5433f9de2bd35038edc66c5da185419