Cloudpulse/DeveloperNotes

Install RPM packages
The following RPM packages need to be installed.

yum install -y ansible mariadb-devel hostname gcc openstack-cloudpulse && yum clean all

Install Python packages
The required python packages need to be installed.

yum install -y python-oslo-versionedobjects python-novaclient python-cinderclient python-glanceclient python-neutronclient python-novaclient python-cinderclient python-glanceclient python-neutronclient python-pecan python-wsme python-paramiko python-openstackclient

Setup Cloudpulse database
The MySQL commands need to be run in the MySQL database host .

CREATE DATABASE IF NOT EXISTS cloudpulse DEFAULT CHARACTER SET utf8; GRANT ALL PRIVILEGES ON cloudpulse.* TO 'cloudpulse@%' IDENTIFIED BY ''; create table IF NOT EXISTS cpulse ( id int NOT NULL AUTO_INCREMENT, uuid VARBINARY(128), name VARCHAR(128), state VARCHAR(128), created_at timestamp default current_timestamp, updated_at timestamp default 0, testtype VARBINARY(128), result TEXT, primary key (id)); create table IF NOT EXISTS cpulselock ( id int NOT NULL AUTO_INCREMENT, test_name VARBINARY(128), conductor_id VARBINARY(128), created_at timestamp default current_timestamp, updated_at timestamp default 0, primary key (id));
 * Create cloudpulse databse.
 * Grant all privileges to cloudpulse user for cloudpulse databse; set a password for cloudpulse user.
 * Create cpulse table in cloudpulse databse.
 * Create cpulselock table in cloudpulse databse.

Create keystone user, service and endpoint
The following services have to be setup to make cloudpulse as a service.

openstack user create --project service --password  cloudpulse openstack service create --name cloudpulse --description "openstack health service" health openstack role add --project admin --user cloudpulse admin openstack role add --project service --user cloudpulse admin openstack endpoint create --region RegionOne --adminurl http://:9999 --internalurl http://:9999 --publicurl http://:9999 cloudpulse
 * Create user cloudpulse and set its password.
 * Create cloudpulse service.
 * Add roles to cloudpulse user.
 * Create openstack service endpoint.

Create cloudpulse configuration file
[DEFAULT] debug = False verbose = True logdir =  host =  port = 9999 [database] connection = mysql://cloudpulse:@/cloudpulse?charset=utf8 max_retries = -1 [osapi_v3] enabled = True [keystone_authtoken] auth_uri = http://:5000/v2.0 project_domain_name = default project_name = service user_domain_name = default password =  username = cloudpulse auth_url = http://:35357 auth_plugin =  [oslo_concurrency] lock_path = /opt/stack/data/nova [oslo_messaging_rabbit] rabbit_userid = guest rabbit_password =  rabbit_hosts = guest:@<controller_node_1_ip>:5672,guest:<rabbitmq_password>@<controller_node_2_ip>:5672,guest: <rabbitmq_password>@<controller_node_3_ip>:5672 [periodic_tests] nova_endpoint = 240 neutron_endpoint = 240 cinder_endpoint = 240 glance_endpoint = 240 keystone_endpoint = 240 rabbitmq_check = 240 galera_check = 240 docker_check = 240 [operator_test] containerized = True rabbit_container = `docker ps | grep rabbitmq | awk '{print $1}'` galera_container = `docker ps | grep mariadb-app | awk '{print $1}'` ceph_container = `docker ps | grep ceph-mon | awk '{print $1}'` [operator_test] operator_setup_file = <path_nodes_config.yaml> [scenario] enabled_scenarios = endpoint_scenario,operator_scenario
 * 1) cloudpulse.conf
 * 2) Modify and place this file in any location <path_cloudpulse.conf>.
 * 1) Operator test only supported on containerized environments such as kolla/ansible openstack installer
 * 1) Operator scenario is only supported on kolla environment

Start Cloudpulse Server
Clone cloudpulse repository and install cloudpulse.

git clone https://github.com/openstack/cloudpulse cd cloudpulse python setup.py install