diff --git a/doc/qa/Makefile b/doc/qa/Makefile new file mode 100644 index 000000000..77c31e966 --- /dev/null +++ b/doc/qa/Makefile @@ -0,0 +1,177 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/LMAcollector.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/LMAcollector.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/LMAcollector" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/LMAcollector" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/doc/qa/source/_static/.gitkeep b/doc/qa/source/_static/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/doc/qa/source/appendix.rst b/doc/qa/source/appendix.rst new file mode 100644 index 000000000..66a73d1b5 --- /dev/null +++ b/doc/qa/source/appendix.rst @@ -0,0 +1,13 @@ +.. _appendix: + +Appendix +======== + +* The `LMA Collector documentation `_. +* The `LMA Infrastructure Alerting documentation `_. +* The `Elasticsearch-Kibana documentation `_. +* The `InfluxDB-Grafana documentation `_. +* The official `Kibana documentation `_. +* The official `Grafana documentation `_. +* The official `Nagios documentation `_. + diff --git a/doc/qa/source/conf.py b/doc/qa/source/conf.py new file mode 100644 index 000000000..db2c69881 --- /dev/null +++ b/doc/qa/source/conf.py @@ -0,0 +1,41 @@ +import sys +import os + +RTD_NEW_THEME = True + +extensions = [] +templates_path = ['_templates'] +source_suffix = '.rst' +master_doc = 'index' +project = u'The LMA Collector Plugin for Fuel' +copyright = u'2015, Mirantis Inc.' +version = '0.8' +release = '0.8.0' + +exclude_patterns = [ + 'tests/*.rst' +] + +pygments_style = 'sphinx' + +html_theme = 'classic' +html_static_path = ['_static'] +htmlhelp_basename = 'LMAcollectortestplandoc' + +latex_elements = { +} +latex_documents = [ + ('index', 'LMAcollector.tex', u'The LMA Collector Plugin for Fuel Documentation for QA', + u'Mirantis Inc.', 'manual'), +] + +man_pages = [ + ('index', 'lmacollector', u'The LMA Collector Plugin for Fuel Documentation for QA', + [u'Mirantis Inc.'], 1) +] + +texinfo_documents = [ + ('index', 'LMAcollector', u'The LMA Collector Plugin for Fuel Documentation for QA', + u'Mirantis Inc.', 'LMAcollector', 'One line description of project.', + 'Miscellaneous'), +] diff --git a/doc/qa/source/index.rst b/doc/qa/source/index.rst new file mode 100644 index 000000000..b0242c07c --- /dev/null +++ b/doc/qa/source/index.rst @@ -0,0 +1,18 @@ +============================================================== +Welcome to the Mirantis OpenStack LMA Collector Documentation! +============================================================== + +QA documentation +================ + +.. toctree:: + :maxdepth: 2 + + strategy + testing + appendix + +Indices and Tables +================== + +* :ref:`search` diff --git a/doc/qa/source/strategy.rst b/doc/qa/source/strategy.rst new file mode 100644 index 000000000..2c1de4d4a --- /dev/null +++ b/doc/qa/source/strategy.rst @@ -0,0 +1,56 @@ +Test Strategy +============= + +The test plan implements system, functional and non-functional tests. These +tests will be automated but tests of the user interfaces will have to be done +manually. + +Acceptance Criteria +------------------- + +#. The plugins can be installed and enabled on the Fuel master node. + +#. The LMA Collector service is deployed on all the nodes of the environment + including nodes with the 'base-os' role and custom roles (influxdb_grafana, + elasticsearch_kibana, infrastructure_alerting). + +#. The Elasticsearch server and the Kibana UI are deployed on one node with the elasticsearch_kibana role. + +#. The InfluxDB server and the Grafana UI are deployed on one node with the influxdb_grafana role. + +#. The Nagios server and dashboard are deployed on one node with the infrastructure_alerting role. + +#. Kibana UI can be used to index and search both log messages and notifications. + +#. The Grafana dashboards display detailed metrics for the main OpenStack services. + +#. The Nagios UI displays status of all nodes and OpenStack services. + +#. The plugins can be uninstalled when no environment uses them. + + +Test environment, infrastructure and tools +------------------------------------------ + +The 4 LMA plugins are installed on the Fuel master node. + +For the controller nodes, it is recommended to deploy on hosts with at least 2 +CPUs and 4G of RAM. + + +Product compatibility matrix +---------------------------- + ++------------------------------------+-----------------+ +| Product | Version/Comment | ++====================================+=================+ +| Mirantis OpenStack | 7.0 | ++------------------------------------+-----------------+ +| LMA collector plugin | 0.8.0 | ++------------------------------------+-----------------+ +| Elasticsearch-Kibana plugin | 0.8.0 | ++------------------------------------+-----------------+ +| InfluxDB-Grafana plugin | 0.8.0 | ++------------------------------------+-----------------+ +| LMA Infrastructure Alerting plugin | 0.8.0 | ++------------------------------------+-----------------+ diff --git a/doc/qa/source/testing.rst b/doc/qa/source/testing.rst new file mode 100644 index 000000000..5ba3729c7 --- /dev/null +++ b/doc/qa/source/testing.rst @@ -0,0 +1,154 @@ +.. _system_testing: + +System testing +============== + +.. _install_lma_plugins: + +Install the plugins +------------------- + +.. include:: tests/install.rst + +.. _deploy_lma_plugins: + +Deploy an environment with the plugins +-------------------------------------- + +.. include:: tests/deploy.rst + +.. _add_remove_controller: + +Add/remove controller nodes in existing environment +--------------------------------------------------- + +.. include:: tests/scale_controller.rst + +.. _add_remove_compute: + +Add/remove compute nodes in existing environment +------------------------------------------------ + +.. include:: tests/scale_compute.rst + +.. _uninstall_plugins_with_env: + +Uninstall the plugins with deployed environment +----------------------------------------------- + +.. include:: tests/uninstall_plugins_with_env.rst + +.. _uninstall_plugins: + +Uninstall the plugins +--------------------- + +.. include:: tests/uninstall_plugins.rst + +.. _functional_testing: + +Functional testing +================== + +.. _query_logs_in_kibana_ui: + +Display and query logs in the Kibana UI +--------------------------------------- + +.. include:: tests/query_logs_in_kibana_ui.rst + +.. _query_nova_notifications_in_kibana_ui: + +Display and query Nova notifications in the Kibana UI +----------------------------------------------------- + +.. include:: tests/query_nova_notifications_in_kibana_ui.rst + +.. _query_glance_notifications_in_kibana_ui: + +Display and query Glance notifications in the Kibana UI +------------------------------------------------------- + +.. include:: tests/query_glance_notifications_in_kibana_ui.rst + +.. _query_cinder_notifications_in_kibana_ui: + +Display and query Cinder notifications in the Kibana UI +------------------------------------------------------- + +.. include:: tests/query_cinder_notifications_in_kibana_ui.rst + +.. _query_heat_notifications_in_kibana_ui: + +Display and query Heat notifications in the Kibana UI +----------------------------------------------------- + +.. include:: tests/query_heat_notifications_in_kibana_ui.rst + +.. _query_neutron_notifications_in_kibana_ui: + +Display and query Neutron notifications in the Kibana UI +-------------------------------------------------------- + +.. include:: tests/query_neutron_notifications_in_kibana_ui.rst + +.. _query_keystone_notifications_in_kibana_ui: + +Display and query Keystone notifications in the Kibana UI +--------------------------------------------------------- + +.. include:: tests/query_keystone_notifications_in_kibana_ui.rst + +.. _display_dashboards_in_grafana_ui: + +Display the dashboards in the Grafana UI +---------------------------------------- + +.. include:: tests/display_dashboards_in_grafana_ui.rst + +.. _display_nova_metrics_in_grafana_ui: + +Display the Nova metrics in the Grafana UI +------------------------------------------ + +.. include:: tests/display_nova_metrics_in_grafana_ui.rst + +.. _report_service_alerts_with_warning_severity: + +Report service alerts with warning severity +------------------------------------------- + +.. include:: tests/report_service_alerts_with_warning_severity.rst + +.. _report_service_alerts_with_critical_severity: + +Report service alerts with critical severity +-------------------------------------------- + +.. include:: tests/report_service_alerts_with_critical_severity.rst + +.. _report_node_alerts_with_warning_severity: + +Report node alerts with warning severity +---------------------------------------- + +.. include:: tests/report_node_alerts_with_warning_severity.rst + +.. _report_node_alerts_with_critical_severity: + +Report node alerts with critical severity +----------------------------------------- + +.. include:: tests/report_node_alerts_with_critical_severity.rst + +.. _non_functional_testing: + +Non-functional testing +====================== + +.. _network_failure_on_analytics_node: + +Simulate network failure on the analytics node +---------------------------------------------- + +.. include:: tests/network_failure_on_analytics_node.rst diff --git a/doc/qa/source/tests/deploy.rst b/doc/qa/source/tests/deploy.rst new file mode 100644 index 000000000..0dcbf551b --- /dev/null +++ b/doc/qa/source/tests/deploy.rst @@ -0,0 +1,87 @@ + ++---------------+---------------------------------------------------------------------------------+ +| Test Case ID | deploy_lma_plugins | ++---------------+---------------------------------------------------------------------------------+ +| Description | Verify that the plugins can be deployed. | ++---------------+---------------------------------------------------------------------------------+ +| Prerequisites | Plugins are installed on the Fuel master node (see :ref:`install_lma_plugins`). | ++---------------+---------------------------------------------------------------------------------+ + +Steps +::::: + +#. Connect to the Fuel web UI. + +#. Create a new environment with the Fuel UI wizard with the default settings. + +#. Click on the Settings tab of the Fuel web UI. + +#. Select the LMA collector plugin tab and fill-in the following fields: + + a. Enable the plugin. + + #. Select 'Local node' for "Event analytics". + + #. Select 'Local node' for "Metric analytics". + + #. Select 'Alerts sent to a local node running the LMA Infrastructure Alerting plugin' for "Alerting". + +#. Select the Elasticsearch-Kibana plugin tab and enable it. + +#. Select the InfluxDB-Grafana plugin and fill-in the required fields: + + a. Enable the plugin. + + #. Enter 'lmapass' as the root, user and grafana user passwords. + +#. Select the LMA Infrastructure-Alerting plugin and fill-in the required fields: + + a. Enable the plugin. + + #. Enter 'root\@localhost' as the recipient + + #. Enter 'nagios\@localhost' as the sender + + #. Enter '127.0.0.1' as the SMTP server address + + #. Choose "None" for SMTP authentication (default) + +#. Click on the Nodes tab of the Fuel web UI. + +#. Assign roles to nodes: + + a. 1 node with these 3 roles (this node is referenced later as the 'lma' node): + + i. influxdb_grafana + + #. elasticsearch_kibana + + #. infrastructure_alerting + + #. 3 nodes with the 'controller' role + + #. 1 node with the 'compute' + 'cinder' node + +#. Click 'Deploy changes'. + +#. Once the deployment has finished, connect to each node of the environment using ssh and run the following checks: + + a. Check that hekad and collectd processes are up and running on all the nodes as described in the `LMA Collector documentation `_. + + #. Look for errors in /var/log/lma_collector.log + + #. Check that the node can connect to the Elasticsearch server (:samp:`http://<{IP address of the 'lma' node}>:9200/`) + + #. Check that the node can connect to the InfluxDB server (:samp:`http://<{IP address of the 'lma' node}>:8086/`) + +#. Check that the dashboards are running + + a. Check that you can connect to the Kibana UI (:samp:`http://<{IP address of the 'lma' node}>:80/`) + #. Check that you can connect to the Grafana UI (:samp:`http://<{IP address of the 'lma' node}>:8000/`) with user='lma', password='lmapass' + #. Check that you can connect to the Nagios UI (:samp:`http://<{IP address of the 'lma' node}>:8001/`) with user='nagiosadmin', password='r00tme' + + +Expected Result +::::::::::::::: + +The environment is deployed successfully. diff --git a/doc/qa/source/tests/display_dashboards_in_grafana_ui.rst b/doc/qa/source/tests/display_dashboards_in_grafana_ui.rst new file mode 100644 index 000000000..85da33224 --- /dev/null +++ b/doc/qa/source/tests/display_dashboards_in_grafana_ui.rst @@ -0,0 +1,53 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | display_dashboards_in_grafana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the dashboards show up in the Grafana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Grafana URL at :samp:`http://<{IP address of the 'lma' node}>:8000/` + +#. Sign-in using the credentials provided during the configuration of the environment. + +#. Go to the Main dashboard and verify that everything is ok. + +#. Repeat the previous step for the following dashboards: + + a. Cinder + + #. Glance + + #. Heat + + #. Keystone + + #. Nova + + #. Neutron + + #. HAProxy + + #. RabbitMQ + + #. MySQL + + #. Apache + + #. Memcached + + #. System + + #. LMA Self-monitoring + + + +Expected Result +::::::::::::::: + +The Grafana UI shows the overall status of the OpenStack services and detailed +statistics about the selected controller. diff --git a/doc/qa/source/tests/display_nova_metrics_in_grafana_ui.rst b/doc/qa/source/tests/display_nova_metrics_in_grafana_ui.rst new file mode 100644 index 000000000..409e35e3f --- /dev/null +++ b/doc/qa/source/tests/display_nova_metrics_in_grafana_ui.rst @@ -0,0 +1,27 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | display_nova_metrics_in_grafana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the Nova metrics show up in the Grafana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Grafana URL at :samp:`http://<{IP address of the 'lma' node}>:8000/` + +#. Sign-in using the credentials provided during the configuration of the environment. + +#. Go to the Nova dashboard. + +#. Connect to the Fuel web UI, launch the full suite of OSTF tests and wait for their completion. + +#. Check that the 'instance creation time' graph in the Nova dashboard reports values. + + +Expected Result +::::::::::::::: + +The Grafana UI shows the instance creation time over time. diff --git a/doc/qa/source/tests/install.rst b/doc/qa/source/tests/install.rst new file mode 100644 index 000000000..c7ad5ecc8 --- /dev/null +++ b/doc/qa/source/tests/install.rst @@ -0,0 +1,29 @@ + ++---------------+-------------------------------------------+ +| Test Case ID | install_lma_plugins | ++---------------+-------------------------------------------+ +| Description | Verify that the plugins can be installed. | ++---------------+-------------------------------------------+ +| Prerequisites | N/A | ++---------------+-------------------------------------------+ + +Steps +::::: + +#. Copy the 4 plugins to the Fuel master node using scp. + +#. Connect to the Fuel master node using ssh. + +#. Install the plugins using the fuel CLI. + +#. Connect to the Fuel web UI. + +#. Create a new environment using the Fuel UI Wizard. + +#. Click on the Plugins tab. + + +Expected Result +::::::::::::::: + +The 4 plugins are present in the Fuel UI. diff --git a/doc/qa/source/tests/network_failure_on_analytics_node.rst b/doc/qa/source/tests/network_failure_on_analytics_node.rst new file mode 100644 index 000000000..4c3efbc5f --- /dev/null +++ b/doc/qa/source/tests/network_failure_on_analytics_node.rst @@ -0,0 +1,33 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | network_failure_on_analytics_node | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the backends and dashboards recover after a network failure. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Copy this script to the analytics node:: + + #!/bin/sh + /sbin/iptables -I INPUT -j DROP + sleep 30 + /sbin/iptables -D INPUT -j DROP + +#. Login to the analytics node using SSH + +#. Run the script and wait for it to complete. + +#. Check that the Kibana, Grafana and Nagios dashboards are available. + +#. Check that data continues to be pushed by the various nodes once the network failure has ended. + + + +Expected Result +::::::::::::::: + +The collectors recover from the network outage of the analytics node. diff --git a/doc/qa/source/tests/query_cinder_notifications_in_kibana_ui.rst b/doc/qa/source/tests/query_cinder_notifications_in_kibana_ui.rst new file mode 100644 index 000000000..8face1d36 --- /dev/null +++ b/doc/qa/source/tests/query_cinder_notifications_in_kibana_ui.rst @@ -0,0 +1,27 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_cinder_notifications_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the cinder notifications show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Create and update a volume in the OpenStack environment (using the Horizon + dashboard for example) and write down the volume id. + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Open the Notifications dashboard using the 'Load' icon. + +#. Enter 'volume_id:' in the Query box where is the id of the created volume. + + +Expected Result +::::::::::::::: + +All `event types for Cinder `_ +are listed. diff --git a/doc/qa/source/tests/query_glance_notifications_in_kibana_ui.rst b/doc/qa/source/tests/query_glance_notifications_in_kibana_ui.rst new file mode 100644 index 000000000..680e7d11f --- /dev/null +++ b/doc/qa/source/tests/query_glance_notifications_in_kibana_ui.rst @@ -0,0 +1,26 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_glance_notifications_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the Glance notifications show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Run the OSTF platform test "Check create, update and delete image actions using Glance v2". + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Open the Notifications dashboard using the 'Load' icon. + +#. Enter 'glance' in the Query box. + + +Expected Result +::::::::::::::: + +All `event types for Glance `_ +are listed. diff --git a/doc/qa/source/tests/query_heat_notifications_in_kibana_ui.rst b/doc/qa/source/tests/query_heat_notifications_in_kibana_ui.rst new file mode 100644 index 000000000..160393f5b --- /dev/null +++ b/doc/qa/source/tests/query_heat_notifications_in_kibana_ui.rst @@ -0,0 +1,26 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_heat_notifications_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the heat notifications show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Run all OSTF Heat platform tests. + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Open the Notifications dashboard using the 'Load' icon. + +#. Enter 'heat' in the Query box. + + +Expected Result +::::::::::::::: + +All `event types for Heat `_ +are listed. diff --git a/doc/qa/source/tests/query_keystone_notifications_in_kibana_ui.rst b/doc/qa/source/tests/query_keystone_notifications_in_kibana_ui.rst new file mode 100644 index 000000000..cc7a082bc --- /dev/null +++ b/doc/qa/source/tests/query_keystone_notifications_in_kibana_ui.rst @@ -0,0 +1,26 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_keystone_notifications_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the Keystone notifications show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Run OSTF platform test: 'Create user and authenticate with it to Horizon'. + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Open the Notifications dashboard using the 'Load' icon. + +#. Enter 'keystone' in the Query box. + + +Expected Result +::::::::::::::: + +All `event types for Keystone `_ +are listed. diff --git a/doc/qa/source/tests/query_logs_in_kibana_ui.rst b/doc/qa/source/tests/query_logs_in_kibana_ui.rst new file mode 100644 index 000000000..932bff4eb --- /dev/null +++ b/doc/qa/source/tests/query_logs_in_kibana_ui.rst @@ -0,0 +1,24 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_logs_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the logs show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Enter 'programname:nova*' in the Query box. + +#. Check that Nova logs are displayed. + + +Expected Result +::::::::::::::: + +The Kibana UI displays entries for all the controller and compute nodes +deployed in the environment. diff --git a/doc/qa/source/tests/query_neutron_notifications_in_kibana_ui.rst b/doc/qa/source/tests/query_neutron_notifications_in_kibana_ui.rst new file mode 100644 index 000000000..8dcd377f5 --- /dev/null +++ b/doc/qa/source/tests/query_neutron_notifications_in_kibana_ui.rst @@ -0,0 +1,27 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_neutron_notifications_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the Neutron notifications show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Run OSTF functional tests: 'Create security group' and 'Check network + connectivity from instance via floating IP'. + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Open the Notifications dashboard using the 'Load' icon. + +#. Enter 'neutron' in the Query box. + + +Expected Result +::::::::::::::: + +All `event types for Neutron `_ +are listed. diff --git a/doc/qa/source/tests/query_nova_notifications_in_kibana_ui.rst b/doc/qa/source/tests/query_nova_notifications_in_kibana_ui.rst new file mode 100644 index 000000000..226e4675e --- /dev/null +++ b/doc/qa/source/tests/query_nova_notifications_in_kibana_ui.rst @@ -0,0 +1,28 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | query_nova_notifications_in_kibana_ui | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the Nova notifications show up in the Kibana UI. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Launch, update, rebuild, resize, power-off, power-on, snapshot, suspend, + shutdown, and delete an instance in the OpenStack environment (using the + Horizon dashboard for example) and write down the instance's id. + +#. Open the Kibana URL at :samp:`http://<{IP address of the 'lma' node}>/` + +#. Open the Notifications dashboard using the 'Load' icon. + +#. Enter 'instance_id:' in the Query box where is the id of the launched instance. + + +Expected Result +::::::::::::::: + +All `event types for Nova `_ +are listed except compute.instance.create.error and compute.instance.resize.revert.{start|end}. diff --git a/doc/qa/source/tests/report_node_alerts_with_critical_severity.rst b/doc/qa/source/tests/report_node_alerts_with_critical_severity.rst new file mode 100644 index 000000000..c1d88e6c2 --- /dev/null +++ b/doc/qa/source/tests/report_node_alerts_with_critical_severity.rst @@ -0,0 +1,83 @@ + ++---------------+---------------------------------------------------------------------------------+ +| Test Case ID | report_node_alerts_with_critical_severity | ++---------------+---------------------------------------------------------------------------------+ +| Description | Verify that the critical alerts for nodes show up in the Grafana and Nagios UI. | ++---------------+---------------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+---------------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Grafana URL at :samp:`http://<{IP address of the 'lma' node}>:8000/` + and load the MySQL dashboard. + +#. Open the Nagios URL at :samp:`http://<{IP address of the 'lma' node}>:8001/` + in another tab and click the 'Services' menu item. + +#. Connect to one of the controller nodes using ssh and run:: + + fallocate -l $(df | grep /dev/mapper/mysql-root | awk '{ printf("%.0f\n", 1024 * ((($3 + $4) * 98 / 100) - $3))}') /var/lib/mysql/test + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + +#. On Nagios, check the following items: + + a. the 'mysql' service is in 'OK' state, + + #. the 'mysql-nodes.mysql-fs' service is in 'CRITICAL' state for the node. + +#. Connect to a second controller node using ssh and run:: + + fallocate -l $(df | grep /dev/mapper/mysql-root | awk '{ printf("%.0f\n", 1024 * ((($3 + $4) * 98 / 100) - $3))}') /var/lib/mysql/test + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'CRIT' with an red background, + + #. an annotation telling that the service went from 'OKAY' to 'CRIT' is displayed. + +#. On Nagios, check the following items: + + a. the 'mysql' service is in 'CRITICAL' state, + + #. the 'mysql-nodes.mysql-fs' service is in 'CRITICAL' state for the 2 nodes, + + #. the local user root on the lma node has received an email about the service being in critical state. + +#. Run the following command on both controller nodes:: + + rm /var/lib/mysql/test + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + + #. an annotation telling that the service went from 'CRIT' to 'OKAY' is displayed. + +#. On Nagios, check the following items: + + a. the 'mysql' service is in 'OK' state, + + #. the 'mysql-nodes.mysql-fs' service is in 'OKAY' state for the 2 nodes, + + #. the local user root on the lma node has received an email about the recovery of the service. + + +Expected Result +::::::::::::::: + +The Grafana UI shows that the global 'mysql' status goes from ok to critical and +back to ok. It also reports detailed information about the problem in the annotations. + +The Nagios UI shows that the service status goes from ok to critical and back to +ok. Alerts are sent by email to the configured recipient. diff --git a/doc/qa/source/tests/report_node_alerts_with_warning_severity.rst b/doc/qa/source/tests/report_node_alerts_with_warning_severity.rst new file mode 100644 index 000000000..1f3973912 --- /dev/null +++ b/doc/qa/source/tests/report_node_alerts_with_warning_severity.rst @@ -0,0 +1,83 @@ + ++---------------+--------------------------------------------------------------------------------+ +| Test Case ID | report_node_alerts_with_warning_severity | ++---------------+--------------------------------------------------------------------------------+ +| Description | Verify that the warning alerts for nodes show up in the Grafana and Nagios UI. | ++---------------+--------------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Grafana URL at :samp:`http://<{IP address of the 'lma' node}>:8000/` + and load the MySQL dashboard. + +#. Open the Nagios URL at :samp:`http://<{IP address of the 'lma' node}>:8001/` + in another tab and click the 'Services' menu item. + +#. Connect to one of the controller nodes using ssh and run:: + + fallocate -l $(df | grep /dev/mapper/mysql-root | awk '{ printf("%.0f\n", 1024 * ((($3 + $4) * 96 / 100) - $3))}') /var/lib/mysql/test + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + +#. On Nagios, check the following items: + + a. the 'mysql' service is in 'OK' state, + + #. the 'mysql-nodes.mysql-fs' service is in 'WARNING' state for the node. + +#. Connect to a second controller node using ssh and run:: + + fallocate -l $(df | grep /dev/mapper/mysql-root | awk '{ printf("%.0f\n", 1024 * ((($3 + $4) * 96 / 100) - $3))}') /var/lib/mysql/test + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'WARN' with an orange background, + + #. an annotation telling that the service went from 'OKAY' to 'WARN' is displayed. + +#. On Nagios, check the following items: + + a. the 'mysql' service is in 'WARNING' state, + + #. the 'mysql-nodes.mysql-fs' service is in 'WARNING' state for the 2 nodes, + + #. the local user root on the lma node has received an email about the service being in warning state. + +#. Run the following command on both controller nodes:: + + rm /var/lib/mysql/test + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + + #. an annotation telling that the service went from 'WARN' to 'OKAY' is displayed. + +#. On Nagios, check the following items: + + a. the 'mysql' service is in 'OK' state, + + #. the 'mysql-nodes.mysql-fs' service is in 'OKAY' state for the 2 nodes, + + #. the local user root on the lma node has received an email about the recovery of the service. + + +Expected Result +::::::::::::::: + +The Grafana UI shows that the global 'mysql' status goes from ok to warning and +back to ok. It also reports detailed information about the problem in the annotations. + +The Nagios UI shows that the service status goes from ok to warning and back to +ok. Alerts are sent by email to the configured recipient. diff --git a/doc/qa/source/tests/report_service_alerts_with_critical_severity.rst b/doc/qa/source/tests/report_service_alerts_with_critical_severity.rst new file mode 100644 index 000000000..4935e7e3a --- /dev/null +++ b/doc/qa/source/tests/report_service_alerts_with_critical_severity.rst @@ -0,0 +1,109 @@ + ++---------------+------------------------------------------------------------------------------------+ +| Test Case ID | report_service_alerts_with_critical_severity | ++---------------+------------------------------------------------------------------------------------+ +| Description | Verify that the critical alerts for services show up in the Grafana and Nagios UI. | ++---------------+------------------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+------------------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Grafana URL at :samp:`http://<{IP address of the 'lma' node}>:8000/` + and load the Nova dashboard. + +#. Open the Nagios URL at :samp:`http://<{IP address of the 'lma' node}>:8001/` + in another tab and click the 'Services' menu item. + +#. Connect to one of the controller nodes using ssh and stop the nova-api service. + +#. Connect to a second controller node using ssh and stop the nova-api service. + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'CRIT' with a red background, + + #. the API panels report 2 entities as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'CRITICAL' state, + + #. the local user root on the lma node has received an email about the service being in critical state. + +#. Restart the nova-api service on both nodes. + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + + #. the API panels report 0 entity as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'OK' state, + + #. the local user root on the lma node has received an email about the recovery of the service. + +#. Connect to one of the controller nodes using ssh and stop the nova-scheduler service. + +#. Connect to a second controller node using ssh and stop the nova-scheduler service. + +#. Wait for at least 3 minutes. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'CRIT' with a red background, + + #. the scheduler panel reports 2 entities as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'CRITICAL' state, + + #. the local user root on the lma node has received an email about the service being in critical state. + +#. Restart the nova-scheduler service on both nodes. + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + + #. the scheduler panel reports 0 entity as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'OK' state, + + #. the local user root on the lma node has received an email about the recovery of the service. + +#. Repeat steps 2 to 21 for the following services: + + a. Cinder (stopping and starting the cinder-api and cinder-scheduler services respectively). + + #. Neutron (stopping and starting the neutron-server and neutron-openvswitch-agent services respectively). + +#. Repeat steps 2 to 11 for the following services: + + a. Glance (stopping and starting the glance-api service). + + #. Heat (stopping and starting the heat-api service). + + #. Keystone (stopping and starting the Apache service). + + +Expected Result +::::::::::::::: + +The Grafana UI shows that the global service status goes from ok to critical and +back to ok. It also reports detailed information about which entity is missing. + +The Nagios UI shows that the service status goes from ok to critical and back to +ok. Alerts are sent by email to the configured recipient. diff --git a/doc/qa/source/tests/report_service_alerts_with_warning_severity.rst b/doc/qa/source/tests/report_service_alerts_with_warning_severity.rst new file mode 100644 index 000000000..ea3bce8aa --- /dev/null +++ b/doc/qa/source/tests/report_service_alerts_with_warning_severity.rst @@ -0,0 +1,105 @@ + ++---------------+-----------------------------------------------------------------------------------+ +| Test Case ID | report_service_alerts_with_warning_severity | ++---------------+-----------------------------------------------------------------------------------+ +| Description | Verify that the warning alerts for services show up in the Grafana and Nagios UI. | ++---------------+-----------------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+-----------------------------------------------------------------------------------+ + +Steps +::::: + +#. Open the Grafana URL at :samp:`http://<{IP address of the 'lma' node}>:8000/` + and load the Nova dashboard. + +#. Open the Nagios URL at :samp:`http://<{IP address of the 'lma' node}>:8001/` + in another tab and click the 'Services' menu item. + +#. Connect to one of the controller nodes using ssh and stop the nova-api service. + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'WARN' with an orange background, + + #. the API panels report 1 entity as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'WARNING' state, + + #. the local user root on the lma node has received an email about the service being in warning state. + +#. Restart the nova-api service. + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + + #. the API panels report 0 entity as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'OK' state, + + #. the local user root on the lma node has received an email about the recovery of the service. + +#. Stop the nova-scheduler service. + +#. Wait for at least 3 minutes. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'WARN' with an orange background, + + #. the scheduler panel reports 1 entity as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'WARNING' state, + + #. the local user root on the lma node has received an email about the service being in warning state. + +#. Restart the nova-scheduler service. + +#. Wait for at least 1 minute. + +#. On Grafana, check the following items: + + a. the box in the upper left corner of the dashboard displays 'OKAY' with an green background, + + #. the scheduler panel reports 0 entity as down. + +#. On Nagios, check the following items: + + a. the 'nova' service is in 'OK' state, + + #. the local user root on the lma node has received an email about the recovery of the service. + +#. Repeat steps 2 to 18 for the following services: + + a. Cinder (stopping and starting the cinder-api and cinder-scheduler services respectively). + + #. Neutron (stopping and starting the neutron-server and neutron-openvswitch-agent services respectively). + +#. Repeat steps 2 to 10 for the following services: + + a. Glance (stopping and starting the glance-api service). + + #. Heat (stopping and starting the heat-api service). + + #. Keystone (stopping and starting the Apache service). + + +Expected Result +::::::::::::::: + +The Grafana UI shows that the global service status goes from ok to warning and +back to ok. It also reports detailed information about which entity is missing. + +The Nagios UI shows that the service status goes from ok to warning and back to +ok. Alerts are sent by email to the configured recipient. diff --git a/doc/qa/source/tests/scale_compute.rst b/doc/qa/source/tests/scale_compute.rst new file mode 100644 index 000000000..748bac4ee --- /dev/null +++ b/doc/qa/source/tests/scale_compute.rst @@ -0,0 +1,43 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | modify_env_with_plugin_remove_add_compute | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the number of computes can scale up and down. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (See :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Remove 1 node with the compute role. + +#. Re-deploy the cluster. + +#. Check the plugin services using the CLI + +#. Check in the Nagios UI that the removed node is no longer monitored. + +#. Run the health checks (OSTF). + +#. Add 1 new node with the compute role. + +#. Re-deploy the cluster. + +#. Check the plugin services using the CLI. + +#. Check in the Nagios UI that the new node is monitored. + +#. Run the health checks (OSTF). + + +Expected Result +::::::::::::::: + +The OSTF tests pass successfully. + +All the plugin services are running and work as expected after each +modification of the environment. + +The Nagios service has been reconfigured to take care of the node removal and +addition. diff --git a/doc/qa/source/tests/scale_controller.rst b/doc/qa/source/tests/scale_controller.rst new file mode 100644 index 000000000..ee85fb3e7 --- /dev/null +++ b/doc/qa/source/tests/scale_controller.rst @@ -0,0 +1,43 @@ + ++---------------+--------------------------------------------------------------------------+ +| Test Case ID | modify_env_with_plugin_remove_add_controller | ++---------------+--------------------------------------------------------------------------+ +| Description | Verify that the number of controllers can scale up and down. | ++---------------+--------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (See :ref:`deploy_lma_plugins`). | ++---------------+--------------------------------------------------------------------------+ + +Steps +::::: + +#. Remove 1 node with the controller role. + +#. Re-deploy the cluster. + +#. Check the plugin services using the CLI + +#. Check in the Nagios UI that the removed node is no longer monitored. + +#. Run the health checks (OSTF). + +#. Add 1 new node with the controller role. + +#. Re-deploy the cluster. + +#. Check the plugin services using the CLI. + +#. Check in the Nagios UI that the new node is monitored. + +#. Run the health checks (OSTF). + + +Expected Result +::::::::::::::: + +The OSTF tests pass successfully. + +All the plugin services are running and work as expected after each +modification of the environment. + +The Nagios service has been reconfigured to take care of the node removal and +addition. diff --git a/doc/qa/source/tests/uninstall_plugins.rst b/doc/qa/source/tests/uninstall_plugins.rst new file mode 100644 index 000000000..1f87b5f8d --- /dev/null +++ b/doc/qa/source/tests/uninstall_plugins.rst @@ -0,0 +1,18 @@ + ++---------------+--------------------------------------------------------------------------------+ +| Test Case ID | uninstall_plugin | ++---------------+--------------------------------------------------------------------------------+ +| Description | Verify that the plugins can be uninstalled. | ++---------------+--------------------------------------------------------------------------------+ +| Prerequisites | The 4 plugins are installed on the Fuel node (see :ref:`install_lma_plugins`). | ++---------------+--------------------------------------------------------------------------------+ + +Steps +::::: + +#. Remove the plugins. + +Expected Result +::::::::::::::: + +The plugins are removed. diff --git a/doc/qa/source/tests/uninstall_plugins_with_env.rst b/doc/qa/source/tests/uninstall_plugins_with_env.rst new file mode 100644 index 000000000..9cce80406 --- /dev/null +++ b/doc/qa/source/tests/uninstall_plugins_with_env.rst @@ -0,0 +1,25 @@ + ++---------------+---------------------------------------------------------------------------------------+ +| Test Case ID | uninstall_plugin_with_deployed_env | ++---------------+---------------------------------------------------------------------------------------+ +| Description | Verify that the plugins can be uninstalled after the deployed environment is removed. | ++---------------+---------------------------------------------------------------------------------------+ +| Prerequisites | Environment deployed with the 4 plugins (see :ref:`deploy_lma_plugins`). | ++---------------+---------------------------------------------------------------------------------------+ + +Steps +::::: + +#. Try to remove the plugins using the Fuel CLI and ensure that the command + fails with "Can't delete plugin which is enabled for some environment". + +#. Remove the environment. + +#. Remove the plugins. + +Expected Result +::::::::::::::: + +An alert is raised when we try to delete plugins which are attached to an active environment. + +After the environment is removed, the plugins are removed successfully too. diff --git a/tox.ini b/tox.ini index c296b350c..0f43e4ae0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = manifests,heka,lma_collector,docs,build_plugin +envlist = manifests,heka,lma_collector,docs,qa_docs,build_plugin skipsdist = True [testenv] @@ -45,6 +45,12 @@ whitelist_externals = make commands = make clean html SPHINXOPTS=-W +[testenv:qa_docs] +changedir = {toxinidir}/doc/qa +whitelist_externals = make +commands = + make clean html SPHINXOPTS=-W + [testenv:build_plugin] changedir = {toxinidir} whitelist_externals =