29 Commits (master)

Author SHA1 Message Date
Colleen Murphy c148067970 Turn off binary symlink in nodejs module
On Xenial, the nodejs puppet module tries to create a symlink from
/usr/bin/node to /usr/bin/nodejs. Depending on the resource ordering,
this might happen before or after the nodejs package creates its own
/usr/bin/node. If puppet has the chance to make the symlink itself, it
breaks node by creating a broken link cycle. This patch uses the
legacy_debian_symlinks parameter to prevent the puppet module from doing
that. This problem was fixed and the option was deprecated and removed
in later versions of the nodejs puppet module, so we will have to remove
the parameter if we update the nodejs module.

Change-Id: I1884dc5a005fe328469b58f876e854c22037d0b7
5 years ago
Ian Wienand 0687bb339e Use v2.3.0 for nodejs
Use v2.3.0 of nodejs.  node.js 0.12 is EOL so update to the oldest LTS
release which is 6.x.  It automaticaly detects the symlink argument so
this is not required.

Depends-On: Ia7966fb9578d0d79f3a7f9480e3a956555737dc8
Depends-On: I9eb17646bd949c3bd84fa61f92881e9fac015de5
Change-Id: Ib925c87760d75fe22d3239bb2c5833183bc849e1
6 years ago
Jeremy Stanley cf611d0b85 Don't set npm_package_ensure
Using repo_url_suffix implies nodesource packaging, whose nodejs
package bundles the npm executable rather than having it in a
separate package. Attempting to set npm_package_ensure to present
results in dependency resolution conflict when the module attempts
to install the distro's npm package which conflicts with the nodejs
package being installed from nodesource. This is consistent with the
behavior described by
https://github.com/voxpupuli/puppet-nodejs#npm_package_ensure as
well.

Change-Id: I9516bf52c72609355748e6a521eef21020f75fe4
6 years ago
Matthew Treinish 46ebfa525e
Switch api server to use system python instead of venv
This commit removes the venv handling from the api puppet module. The
venv added unecessary complexity to the puppet module and made things a
bit fragile. Since this is typically deployed on a standalone server
there wasn't really a reason to do this.

Change-Id: Ifa3a0c8ece479534115d8905f5faf831d8bb88ae
6 years ago
Colleen Murphy 7df7a1dddb Install npm
The nodejs module does not install npm by default, and it is needed in
order to use it as a package provider. Also remove the npm package test
from beaker, since it makes no sense for package 'npm' to be installed
by provider 'npm'.

Change-Id: Idc3d51399f1263eded3f373a7c852a609b15a204
6 years ago
Colleen Murphy 90451309d3 Fix linter error
In the updated style guide, required parameters go at the top.

Change-Id: I2cf332691c3b50a61161f9075bc07160bc077ef8
6 years ago
Matthew Treinish a223e47c27
Install cython with the openstack-health api server
Pandas now has a build dep on cython. So to actually install an api
server now we need to ensure that cython is installed on the machine.
This commit adds that to api.pp manifest.

Change-Id: I55053b4c5d7d6edde191fd0c695d446dc216bcba
7 years ago
Matthew Treinish 86bd0f1d64 Add build_newrev to the list of ignored keys
A new run metadata key, build_newrev, started showing up in the db
recently. [1] It's not actually something we want to expose, since it
is unique for each job and not something we can group on. This commit
adds it to the list of ignored keys so we don't have to see it
anymore.

[1] http://status.openstack.org/openstack-health/#/?groupKey=build_newrev

Change-Id: Iea4a0babe10cd8d54a31e39dc5c3738570fda126
7 years ago
Matthew Treinish c94f14be3d
Use the distributed memcached locked dbm cache backend
This commit switches the backend used on the api server to be the dbm
file backend with using memcached for distributed locking. This enables
having an async worker, but avoids the size limitations with storing
the cached data in memcached directly.

Change-Id: If506bbca1eb867135430c7f435c5e4a1db1a0232
Depends-On: Ied241ca1762c62a047bd366d7bd105028a884f30
7 years ago
Matthew Treinish 814b6585e5
Add memcached to api server
This commit adds installing and configuring memcached to the api
server. It then configures the api server to use memcached for it's
local response cache. This is needed to enable the async worker from
openstack-health change I0fd29839c72ca2fdfb4c4724bb3da7e283e3d27d.

Change-Id: I3057e7f9f920550a12c12c1bfeb643a713c5f696
7 years ago
Matthew Treinish a5c17a8719
Add option to make cache expiration configurable
This commit adds a cache_expiration parameter to make the cache
expiration for the api configurable. By default it sets it 15min
(which is half of the far more conservative openstack-health default)
to match the longest e-r query times seen in testing.

Change-Id: Iaea17e16f6995121ad54bae2c46a96112b702caf
7 years ago
Joshua Hesketh aad1f6a6f8 elastic-recheck requires libffi-dev to install
Change-Id: Ia46ed829dd87a7dd55627c5ef28a7f59d3022b3c
7 years ago
Andrea Frittoli (andreaf) d857d6fc44 Add E-R repo and revision to class
The openstack_health class has been recently extended to include
deployment to E-R, a new data source for OpenStack Health.
The E-R repo and revions are hardcoded in the class, which prevents
using the new E-R feature in downstream deployments that have an own
E-R repo.

Adding repo and revision at class level solves that.

Change-Id: Ifde71192f0cc618480be95feb77e712f8c27356b
7 years ago
Matthew Treinish a718005b05
Add elastic recheck to api server
This commits adds the installation of elastic-recheck and the
configuration to the openstack-health api server for using the
additional data source. This depends on openstack-health change:
Icf203668690419c38f6d6be6b6fe4af8462845f3 to work, however it's not a
hard dependency because we can land this first without any issues.
If we do it'll mean the api server will be configured and start using
the data as soon as the openstack-health change lands.

Change-Id: Ia17effc714d176f0b0ceb517bd93d6533e16fdbc
7 years ago
Matthew Treinish e6d4474cec
Add another missing lxml dep
This commits adds yet another missing package needed for lxml

Change-Id: I6398ffdffc805d31a884faab8e9d6fe5ccf1bbbc
7 years ago
Matthew Treinish cf8a051b18
Add packages needed to build lxml
This commit adds the ubuntu packages needed to build lxml which is now
being pulled it because of the addition of rss support to
openstack-health's api server.

Change-Id: Id59c044413f47b59a471fe9a915caf4cca64d253
7 years ago
Matthew Treinish f2a1f93bbd
Add apache2-utils package to api server
This commit adds the missing apache2-utils package to the api server.
The apache2 startup (because of mod_cache I guess) is requiring the
use of htcacheclean. However, it's not present on the system. By
installing it, this should fix the issue.

Change-Id: I6bf1790b0511a0006408144fb2f98ec2a9896825
7 years ago
Jenkins cc34f5f770 Merge "Update default api configurations" 8 years ago
Matthew Treinish 41840e287f
Add a longer timeout to the pip install phase
We are possibly hitting timeouts pip installing larger dependencies
that require c compilations as part of the install. This commit bumps
the timeout to fix this.

Change-Id: Ie172b2573df85a6b0b47ac06bef461aab0b627b5
8 years ago
Matthew Treinish 0a5077351e
Make sure we install the latest requirements
This commit switches the api server from installing the requirements
file with pip install, via the ::python::requirements class, to using
pip install -U explicitly via an exec. We need to use -U to ensure
we're pulling in the latest version of subunit2sql that's valid,
otherwise the version won't be in sync with our database which can
potentially cause issues.

Change-Id: I6797bcf82cc82a8a49441f9abb90bbc95fbd365b
8 years ago
Glauco Oliveira 346894e2ef Update default api configurations
OpenStack Health api has a new functionality that allows users to
retrieve the grouping keys used on the dashboard page.

A few of them simply don't make sense for the users, since they
are too granular.

This commit includes a new default configuration that will ignore
these keys. In case you are interested on how I come up with these keys,
please check this patch: https://review.openstack.org/#/c/240453/

Change-Id: Ibe591d9af94c1cd8d5c1d4956c1c82b4a764b5b7
8 years ago
Danilo Ramalho 10bb4095f0 Fix httpd apply in Ubuntu Precise
Alteration of the Apache configuration for apply in the Ubuntu Precise.

It was changed for mod_disk_cache because mod_cache_disk not exist for the
Precise and check Apache Version due the parameter "Require all Granted".

Change-Id: Icc1d13fc39058f147bdbb1e6b9a810143051ece4
Co-Authored-By: Maitê Balhester <mbalhest@thoughtworks.com>
8 years ago
Glauco Oliveira 576fe04b85 Fix broken acceptance tests
While applying this module downstream we noticed that its acceptance
tests were broken.

During the process of fixing them we noticed that the reason for this
were the changes made in the manifest 'openstack_health::frontend'.
Apparently a new manifest was created to take care of installing the
frontend, 'openstack_health::vhost'.

The first step in order to fix this was adapting the tests to use this
new manifest instead of the former. While doing so we noticed that the
apache vhost template file was not being generated correctly. That
happened because it was binding agains 'openstack_health::frontend',
which now did not have the parameters necessary.

So, in order to make the whole acceptance test suite work, it was
necessary updating the vhost template file as well.

Change-Id: I79edb3b05ca25b484a62d6a414592e662b42d85e
Co-Authored-By: Danilo Ramalho <dramalho@thoughtworks.com>
8 years ago
Matthew Treinish f73456a123
Enable mod_cache to do API server side caching
This commit adds enabling mod_cache to the api server to enable some
server side caching. We don't need to update the data in real time on
the dashboard and performing some server side caching will improve
the dashboard performance. It'll also decrease the load we'll put on
that poor trove node in rax cloud we're running subunit2sql on.

Change-Id: I61d862603306a36c3ec6cd74d000126155bb29d5
8 years ago
Clark Boylan 40e79ffdbb Use file resource to manage build copy
We had a complicated series of execs to build and copy files into the
docroot. Unfortunately these haven't worked as expected but we can
simplify the puppet by using a file resource to manage the copy of the
build for us.

Change-Id: I55c521bc7b5f24e46932c11cece4376e55f50767
8 years ago
Matthew Treinish 559d6b83c7
Only run mv if we generated a new js build
This commit adds a missing refreshonly from the exec to run the mv
which moves the build dir to the output dir. Previously we were
running this on every exec which caused failures when a new build
wasn't run. This should address this by only running the mv when we
build the js.

Change-Id: Id9d48c0e5da4567b0afefad22513c391b95e9bc0
8 years ago
Matthew Treinish c974b922e9
Add site module to deploy frontend to a dir
This commit adds a site.pp file which is used to deploy the frontend
to a directory instead of setting up a vhost. When deploying this on
status.o.o we need to put the dashboard in a dir on an existing vhost
instead of deploying a seperate one. This commit adds the class to do
this.

Change-Id: Ic47fbd817a293a257f7a9b164682fc96cce5321e
8 years ago
Matthew Treinish 9d625d903d
Install openstack-health in editable mode
Due to the magic of non-determinism that is python packaging for
whatever reason the wsgi_script entrypoint is not being generated
when installing openstack-health in non-editable mode. So while we
wait for the local witch doctor to remove the curse from the system
this switches to using editable installs to move forward.

As part of this change the exec for running pip to install
openstack-health is also improved.

Change-Id: If5e166d6cba0553f160eabde491d0230e4834f01
8 years ago
Glauco Oliveira e091e45134 Add provisioning scripts
This is a initial version of how to deploy OpenStack-Health.

This script provisions openstack-health as it is today. This will be a
foundation for future deployments, once the application becomes more
mature.

Change-Id: Id4ef45bba0db28b95d7fb72799cb86ab4db6343b
Co-Authored-By: Bruno Tavares <btavare@thoughtworks.com>
Co-Authored-By: Caio Carrara <ccarrara@thoughtworks.com>
8 years ago