Metadata-Version: 2.1
Name: monasca-ui
Version: 9.0.1.dev21
Summary: Monasca Plugin for Horizon
Home-page: https://opendev.org/openstack/monasca-ui
Author: OpenStack
Author-email: openstack-discuss@lists.openstack.org
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
License-File: LICENSE
Requires-Dist: oslo.log>=3.36.0
Requires-Dist: python-monascaclient>=1.8.0
Requires-Dist: horizon>=18.3.0

==========
Monasca UI
==========

.. image:: https://governance.openstack.org/tc/badges/monasca-ui.svg

.. Change things from this point on

Monasca UI is implemented as a Horizon plugin that adds panels to
Horizon. It is installed into devstack by the monasca-api plugin.

DevStack Deployment Set Up
==========================

-  ``cd /opt/stack/horizon``
-  Install OpenStack upper-constraints requirements
   ``pip install -c https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt -r requirements.txt``
-  Clone Monasca UI:
   ``git clone https://opendev.org/openstack/monasca-ui.git``
-  Add ``git+https://opendev.org/openstack/monasca-ui.git`` to
   ``requirements.txt``.
-  Install Monasca UI required packages:
   ``pip install -r requirements.txt`` (monasca-client packages will be installed)
-  Edit ``openstack_dashboard/settings.py`` to include the following two
   lines:

   -  ``import monitoring.enabled``
   -  ``monitoring.enabled,`` (Add this line to the
      ``settings_utils.update_dashboards`` list)

-  Link Monasca UI into Horizon:

::

   ln -sf $(pwd)/../monasca-ui/monitoring/enabled/_50_admin_add_monitoring_panel.py \
       $(pwd)/openstack_dashboard/enabled/_50_admin_add_monitoring_panel.py
   ln -sf $(pwd)/../monasca-ui/monitoring/conf/monitoring_policy.yaml \
       $(pwd)/openstack_dashboard/conf/monitoring_policy.yaml
   ln -sfF $(pwd)/../monasca-ui/monitoring $(pwd)/monitoring

-  Collect static files, run tests

::

   python manage.py collectstatic --noinput
   python manage.py compress
   ./run_tests.sh

-  Restart apache service ``service apache2 restart``

Development Environment Set Up
==============================

Get the Code
------------

::

   git clone https://opendev.org/openstack/monasca-ui.git  # clone monasca-ui
   git clone https://opendev.org/openstack/horizon.git  # clone horizon
   git clone https://github.com/monasca/grafana.git  # clone grafana
   git clone https://github.com/openstack/monasca-grafana-datasource.git # clone grafana plugins

Set up Horizon
--------------

Since Monasca UI is a Horizon plugin, the first step is to get their
development environment set up.

::

   cd horizon
   ./run_tests.sh
   cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py

Pro Tip: Make sure you have Horizon running correctly before proceeding.
For more details visit: https://docs.openstack.org/horizon/latest/#setup

Set up Monasca-UI
-----------------

-  Edit ``openstack_dashboard/local/local_settings.py`` to modify the
   ``OPENSTACK_HOST`` IP address to point to devstack.
-  Add ``monasca-client`` to ``requirements.txt``. Get the latest
   version from: https://pypi.org/project/python-monascaclient
-  Link monasca into Horizon:

::

   ln -sf $(pwd)/../monasca-ui/monitoring/enabled/_50_admin_add_monitoring_panel.py \
       $(pwd)/openstack_dashboard/enabled/_50_admin_add_monitoring_panel.py
   ln -sf $(pwd)/../monasca-ui/monitoring/conf/monitoring_policy.yaml \
       $(pwd)/openstack_dashboard/conf/monitoring_policy.yaml
   ln -sfF $(pwd)/../monasca-ui/monitoring $(pwd)/monitoring
   ./run_tests #load monasca-client into virtualenv

Set up Grafana 4.1
------------------

-  The grafana4 branch of grafana is stable, as is master in
   monasca-grafana-datasource.
-  Copy ``monasca-grafana-datasource/`` into
   ``grafana/plugins/monasca-grafana-datasource/``.
-  Use the grafana docs to build and deploy grafana:

   -  https://grafana.com/docs/project/building_from_source/
   -  https://grafana.com/docs/installation/configuration/

-  Copy ``monasca-ui/grafana-dashboards/*`` to ``/public/dashboards/``
   in your grafana deployment.
-  Set ``GRAFANA_URL`` in the Horizon settings.

Start Server
------------

::

   ./run_tests.sh --runserver

Style checks
------------

To check if the code follows python coding style, run the following
command from the root directory of this project:

::

   $ tox -e pep8

Coverage checks
---------------

To measure the code coverage, run the following command from the root
directory of this project:

::

   $ tox -e cover

Unit tests
----------

To run all the unit test cases, run the following command from the root
directory of this project:

::

   $ tox -e py3

