pax_global_header00006660000000000000000000000064136421227620014517gustar00rootroot0000000000000052 comment=218d0c52345a7dfb30c50de37209b54ea7a5e566 python-vitrageclient-4.0.1/000077500000000000000000000000001364212276200157005ustar00rootroot00000000000000python-vitrageclient-4.0.1/.coveragerc000066400000000000000000000001121364212276200200130ustar00rootroot00000000000000[run] branch = True source = vitrageclient [report] ignore_errors = True python-vitrageclient-4.0.1/.gitignore000066400000000000000000000007371364212276200176770ustar00rootroot00000000000000*.py[cod] # C extensions *.so # Packages *.egg *.egg-info dist build .eggs eggs parts bin var sdist develop-eggs .installed.cfg lib lib64 # Installer logs pip-log.txt # Unit test / coverage reports .coverage .tox nosetests.xml .testrepository .venv # Translations *.mo # Mr Developer .mr.developer.cfg .project .pydevproject # Complexity output/*.html output/*/index.html # Sphinx doc/build # pbr generates these AUTHORS ChangeLog # Editors *~ .*.swp .*sw? .idea *.iml python-vitrageclient-4.0.1/.gitreview000066400000000000000000000001271364212276200177060ustar00rootroot00000000000000[gerrit] host=review.opendev.org port=29418 project=openstack/python-vitrageclient.git python-vitrageclient-4.0.1/.mailmap000066400000000000000000000001311364212276200173140ustar00rootroot00000000000000# Format is: # # python-vitrageclient-4.0.1/.testr.conf000066400000000000000000000004771364212276200177760ustar00rootroot00000000000000[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list python-vitrageclient-4.0.1/.zuul.yaml000066400000000000000000000003561364212276200176450ustar00rootroot00000000000000- project: templates: - check-requirements - openstack-lower-constraints-jobs - openstack-python3-ussuri-jobs - openstackclient-plugin-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 python-vitrageclient-4.0.1/CONTRIBUTING.rst000066400000000000000000000012311364212276200203360ustar00rootroot00000000000000If you would like to contribute to the development of OpenStack, you must follow the steps in this page: https://docs.openstack.org/infra/manual/developers.html If you already have a good understanding of how the system works and your OpenStack accounts are set up, you can skip to the development workflow section of this documentation to learn how changes to OpenStack should be submitted for review via the Gerrit tool: https://docs.openstack.org/infra/manual/developers.html#development-workflow Pull requests submitted through GitHub will be ignored. Bugs should be filed on Storyboard, not GitHub: https://storyboard.openstack.org/#!/board/89 python-vitrageclient-4.0.1/HACKING.rst000066400000000000000000000002421364212276200174740ustar00rootroot00000000000000python-vitrageclient Style Commandments ======================================= Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ python-vitrageclient-4.0.1/LICENSE000066400000000000000000000236371364212276200167200ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. python-vitrageclient-4.0.1/README.rst000066400000000000000000000035521364212276200173740ustar00rootroot00000000000000======================== Team and repository tags ======================== .. image:: https://governance.openstack.org/tc/badges/python-vitrageclient.svg :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on .. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Python bindings to the Vitrage API ================================== This is a client library for Vitrage built to interface with the Vitrage API . It provides a Python API (the ``vitrageclient`` module) and a command-line tool (``vitrage``). .. contents:: Contents: :local: Ubuntu Install -------------- At the moment only manual install is available Manual Install Steps: - cd to your python-vitrageclient repo - sudo pip install -r requirements.txt - python setup.py install Building and Packaging ---------------------- Install the tool dependencies :: sudo apt-get install python-pip python-virtualenv In the python-vitrageclient source directory :: virtualenv --no-site-packages .venv source ./.venv/bin/activate pip install wheel python setup.py bdist_wheel pip install $(ls -1rt dist/*.whl | tail -1) --upgrade References ---------- Detailed documentation for the CLI see `CLI Spec `_ python-vitrageclient-4.0.1/babel.cfg000066400000000000000000000000211364212276200174170ustar00rootroot00000000000000[python: **.py] python-vitrageclient-4.0.1/doc/000077500000000000000000000000001364212276200164455ustar00rootroot00000000000000python-vitrageclient-4.0.1/doc/requirements.txt000066400000000000000000000005001364212276200217240ustar00rootroot00000000000000# The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2 # BSD openstackdocstheme>=1.24.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0 python-vitrageclient-4.0.1/doc/source/000077500000000000000000000000001364212276200177455ustar00rootroot00000000000000python-vitrageclient-4.0.1/doc/source/conf.py000077500000000000000000000050511364212276200212500ustar00rootroot00000000000000# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. import os import sys sys.path.insert(0, os.path.abspath('../..')) # -- General configuration ---------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ 'sphinx.ext.autodoc', #'sphinx.ext.intersphinx', 'openstackdocstheme' ] # openstackdocstheme options repository_name = 'openstack/python-vitrageclient' use_storyboard = True # autodoc generation is a bit aggressive and a nuisance when doing heavy # text edit cycles. # execute "export SPHINX_DEBUG=1" in your terminal to disable # The suffix of source filenames. source_suffix = '.rst' # The master toctree document. master_doc = 'index' # General information about the project. project = u'python-vitrageclient' copyright = u'2016, OpenStack Foundation' # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = True # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # -- Options for HTML output -------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. # html_theme_path = ["."] html_theme = 'openstackdocs' # html_static_path = ['static'] # Output file base name for HTML help builder. htmlhelp_basename = '%sdoc' % project html_last_updated_fmt = '%Y-%m-%d %H:%M' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass # [howto/manual]). latex_documents = [ ('index', '%s.tex' % project, u'%s Documentation' % project, u'OpenStack Foundation', 'manual'), ] # Example configuration for intersphinx: refer to the Python standard library. #intersphinx_mapping = {'http://docs.python.org/': None} python-vitrageclient-4.0.1/doc/source/contributor/000077500000000000000000000000001364212276200223175ustar00rootroot00000000000000python-vitrageclient-4.0.1/doc/source/contributor/cli.rst000066400000000000000000001343531364212276200236310ustar00rootroot00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================ Command-line API ================ Installing this distribution gets you a shell command, ``vitrage``, that you can use to interact with the Vitrage API server. Usage: vitrage vitrage help vitrage help Environmental Variables ----------------------- Environmental variables can be sourced, or optionally passed in as CLI arguments. It is easiest to source them first and then use the CLI. When using Keystone to obtain the token and endpoint:: export OS_USERNAME= export OS_PASSWORD= export OS_USER_DOMAIN_NAME= export OS_PROJECT_NAME= export OS_AUTH_URL= export OS_REGION_NAME= When OS_USER_DOMAIN_NAME is not set, then 'Default' is assumed. Alternatively IDs can be used instead of names. When using Keycloak instead of Keystone use the os-auth-type ``vitrage-keycloak`` and supply username, password, realm_name, endpoint, auth_url, openid_client_id. The parameters can be supplied in command line e.g --username,--realm-name or as environment variables with the prefix ``VITRAGE_`` e.g ``VITRAGE_REALM_NAME`` You'll find complete documentation on the shell by running ``vitrage help``:: vitrage help usage: vitrage [--version] [-v | -q] [--log-file LOG_FILE] [-h] [--debug] [--vitrage-api-version VITRAGE_API_VERSION] [--profile HMAC_KEY] [--os-region-name ] [--os-interface ] [--insecure] [--os-cacert ] [--os-cert ] [--os-key ] [--timeout ] [--os-auth-type ] [--os-auth-url OS_AUTH_URL] [--os-domain-id OS_DOMAIN_ID] [--os-domain-name OS_DOMAIN_NAME] [--os-project-id OS_PROJECT_ID] [--os-project-name OS_PROJECT_NAME] [--os-project-domain-id OS_PROJECT_DOMAIN_ID] [--os-project-domain-name OS_PROJECT_DOMAIN_NAME] [--os-trust-id OS_TRUST_ID] [--os-default-domain-id OS_DEFAULT_DOMAIN_ID] [--os-default-domain-name OS_DEFAULT_DOMAIN_NAME] [--os-user-id OS_USER_ID] [--os-username OS_USERNAME] [--os-user-domain-id OS_USER_DOMAIN_ID] [--os-user-domain-name OS_USER_DOMAIN_NAME] [--os-password OS_PASSWORD] [--endpoint ENDPOINT] Vitrage command line interface optional arguments: --version show program's version number and exit -v, --verbose Increase verbosity of output. Can be repeated. -q, --quiet Suppress output except warnings and errors. --log-file LOG_FILE Specify a file to log output. Disabled by default. -h, --help Show help message and exit. --debug Show tracebacks on errors. --vitrage-api-version VITRAGE_API_VERSION Defaults to env[VITRAGE_API_VERSION] or 1. --profile HMAC_KEY HMAC key to use for encrypting context data for performance profiling of request. This key should be the value of the HMAC key configured for the osprofiler middleware in Vitrage api; it is specified in the Vitrage configuration file at"/etc/vitrage/vitrage.conf". Without the key, profiling will not be triggered even if osprofiler is enabled on the server side. --os-region-name Authentication region name (Env: OS_REGION_NAME) --os-interface Select an interface type. Valid interface types: [admin, public, internal]. (Env: OS_INTERFACE) --os-auth-type , --os-auth-plugin Authentication type to use --endpoint ENDPOINT Vitrage endpoint (Env: VITRAGE_ENDPOINT) API Connection Options: Options controlling the HTTP API Connections --insecure Explicitly allow client to perform "insecure" TLS (https) requests. The server's certificate will not be verified against any certificate authorities. This option should be used with caution. --os-cacert Specify a CA bundle file to use in verifying a TLS (https) server certificate. Defaults to env[OS_CACERT]. --os-cert Defaults to env[OS_CERT]. --os-key Defaults to env[OS_KEY]. --timeout Set request timeout (in seconds). Authentication Options: Options specific to the password plugin. --os-auth-url OS_AUTH_URL Authentication URL --os-domain-id OS_DOMAIN_ID Domain ID to scope to --os-domain-name OS_DOMAIN_NAME Domain name to scope to --os-project-id OS_PROJECT_ID, --os-tenant-id OS_PROJECT_ID Project ID to scope to --os-project-name OS_PROJECT_NAME, --os-tenant-name OS_PROJECT_NAME Project name to scope to --os-project-domain-id OS_PROJECT_DOMAIN_ID Domain ID containing project --os-project-domain-name OS_PROJECT_DOMAIN_NAME Domain name containing project --os-trust-id OS_TRUST_ID Trust ID --os-default-domain-id OS_DEFAULT_DOMAIN_ID Optional domain ID to use with v3 and v2 parameters. It will be used for both the user and project domain in v3 and ignored in v2 authentication. --os-default-domain-name OS_DEFAULT_DOMAIN_NAME Optional domain name to use with v3 API and v2 parameters. It will be used for both the user and project domain in v3 and ignored in v2 authentication. --os-user-id OS_USER_ID User id --os-username OS_USERNAME, --os-user-name OS_USERNAME Username --os-user-domain-id OS_USER_DOMAIN_ID User's domain id --os-user-domain-name OS_USER_DOMAIN_NAME User's domain name --os-password OS_PASSWORD User's password Commands: alarm count Show a count of all alarms alarm list List all alarms alarm show Show an alarm complete print bash completion command (cliff) event post Post an event to Vitrage healthcheck Check api health status help print detailed help for another command (cliff) rca show Show the Root Cause Analysis for a certain alarm resource count Show a count of all resources resource list List resources resource show Show a resource service list List all services template add Add a template template delete Delete a template template list List all templates template show Show a template template validate Validate a template file topology show Show the topology of the system webhook add Add a new webhook to the database webhook delete Delete a webhook webhook list List all webhooks in the database webhook show Show a webhook Bash Completion --------------- Basic command tab completion can be enabled by sourcing the bash completion script. :: source /usr/local/share/vitrage.bash_completion Topology Example ---------------- Note: To see complete usage: 'vitrage help' and 'vitrage help ' topology show ^^^^^^^^^^^^^ :: vitrage topology show { "directed": true, "graph": {}, "nodes": [ { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-8", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "20d12a8a-ea9a-89c6-5947-83bea959362e", "vitrage_id": "RESOURCE:nova.instance:20d12a8a-ea9a-89c6-5947-83bea959362e" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-2", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "dc35fa2f-4515-1653-ef6b-03b471bb395b", "vitrage_id": "RESOURCE:nova.instance:dc35fa2f-4515-1653-ef6b-03b471bb395b" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-13", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "9879cf5a-bdcf-3651-3017-961ed887ec86", "vitrage_id": "RESOURCE:nova.instance:9879cf5a-bdcf-3651-3017-961ed887ec86" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-10", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "fe124f4b-9ed7-4591-fcd1-803cf5c33cb1", "vitrage_id": "RESOURCE:nova.instance:fe124f4b-9ed7-4591-fcd1-803cf5c33cb1" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-11", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "f2e48a97-7350-061e-12d3-84c6dc3e67c0", "vitrage_id": "RESOURCE:nova.instance:f2e48a97-7350-061e-12d3-84c6dc3e67c0" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "host-2", "update_timestamp": "2015-12-01T12:46:41Z", "state": "available", "type": "nova.host", "id": "host-2", "vitrage_id": "RESOURCE:nova.host:host-2" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "host-3", "update_timestamp": "2015-12-01T12:46:41Z", "state": "available", "type": "nova.host", "id": "host-3", "vitrage_id": "RESOURCE:nova.host:host-3" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "host-0", "update_timestamp": "2015-12-01T12:46:41Z", "state": "available", "type": "nova.host", "id": "host-0", "vitrage_id": "RESOURCE:nova.host:host-0" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "host-1", "update_timestamp": "2015-12-01T12:46:41Z", "state": "available", "type": "nova.host", "id": "host-1", "vitrage_id": "RESOURCE:nova.host:host-1" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-9", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "275097cf-954e-8e24-b185-9514e24b8591", "vitrage_id": "RESOURCE:nova.instance:275097cf-954e-8e24-b185-9514e24b8591" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-1", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "a0f0805f-c804-cffe-c25a-1b38f555ed68", "vitrage_id": "RESOURCE:nova.instance:a0f0805f-c804-cffe-c25a-1b38f555ed68" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-14", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "56af57d2-34a4-19b1-5106-b613637a11a7", "vitrage_id": "RESOURCE:nova.instance:56af57d2-34a4-19b1-5106-b613637a11a7" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "zone-1", "update_timestamp": "2015-12-01T12:46:41Z", "state": "available", "type": "nova.zone", "id": "zone-1", "vitrage_id": "RESOURCE:nova.zone:zone-1" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-3", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "16e14c58-d254-2bec-53e4-c766e48810aa", "vitrage_id": "RESOURCE:nova.instance:16e14c58-d254-2bec-53e4-c766e48810aa" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-7", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "f35a1e10-74ff-7332-8edf-83cd6ffcb2de", "vitrage_id": "RESOURCE:nova.instance:f35a1e10-74ff-7332-8edf-83cd6ffcb2de" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-4", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "ea8a450e-cab1-2272-f431-494b40c5c378", "vitrage_id": "RESOURCE:nova.instance:ea8a450e-cab1-2272-f431-494b40c5c378" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-6", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "6e42bdc3-b776-1b2c-2c7d-b7a8bb98f721", "vitrage_id": "RESOURCE:nova.instance:6e42bdc3-b776-1b2c-2c7d-b7a8bb98f721" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-5", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "8c951613-c660-87c0-c18b-0fa3293ce8d8", "vitrage_id": "RESOURCE:nova.instance:8c951613-c660-87c0-c18b-0fa3293ce8d8" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "zone-0", "update_timestamp": "2015-12-01T12:46:41Z", "state": "available", "type": "nova.zone", "id": "zone-0", "vitrage_id": "RESOURCE:nova.zone:zone-0" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-0", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "78353ce4-2710-49b5-1341-b8cbb6000ebc", "vitrage_id": "RESOURCE:nova.instance:78353ce4-2710-49b5-1341-b8cbb6000ebc" },TODO { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "vm-12", "update_timestamp": "2015-12-01T12:46:41Z", "state": "ACTIVE", "project_id": "0683517e1e354d2ba25cba6937f44e79", "type": "nova.instance", "id": "35bf479a-75d9-80a9-874e-d3b50fb2dd2e", "vitrage_id": "RESOURCE:nova.instance:35bf479a-75d9-80a9-874e-d3b50fb2dd2e" }, { "category": "RESOURCE", "is_placeholder": false, "is_deleted": false, "name": "openstack.node", "type": "openstack.node", "id": "openstack.node", "vitrage_id": "RESOURCE:openstack.node" } ], "links": [ { "relationship_name": "contains", "is_deleted": false, "target": 3, "key": "contains", "source": 5 }, { "relationship_name": "contains", "is_deleted": false, "target": 1, "key": "contains", "source": 5 }, { "relationship_name": "contains", "is_deleted": false, "target": 16, "key": "contains", "source": 5 }, { "relationship_name": "contains", "is_deleted": false, "target": 11, "key": "contains", "source": 5 }, { "relationship_name": "contains", "is_deleted": false, "target": 13, "key": "contains", "source": 6 }, { "relationship_name": "contains", "is_deleted": false, "target": 4, "key": "contains", "source": 6 }, { "relationship_name": "contains", "is_deleted": false, "target": 14, "key": "contains", "source": 6 }, { "relationship_name": "contains", "is_deleted": false, "target": 20, "key": "contains", "source": 7 }, { "relationship_name": "contains", "is_deleted": false, "target": 0, "key": "contains", "source": 7 }, { "relationship_name": "contains", "is_deleted": false, "target": 19, "key": "contains", "source": 7 }, { "relationship_name": "contains", "is_deleted": false, "target": 15, "key": "contains", "source": 7 }, { "relationship_name": "contains", "is_deleted": false, "target": 9, "key": "contains", "source": 8 }, { "relationship_name": "contains", "is_deleted": false, "target": 10, "key": "contains", "source": 8 }, { "relationship_name": "contains", "is_deleted": false, "target": 2, "key": "contains", "source": 8 }, { "relationship_name": "contains", "is_deleted": false, "target": 17, "key": "contains", "source": 8 }, { "relationship_name": "contains", "is_deleted": false, "target": 6, "key": "contains", "source": 12 }, { "relationship_name": "contains", "is_deleted": false, "target": 8, "key": "contains", "source": 12 }, { "relationship_name": "contains", "is_deleted": false, "target": 5, "key": "contains", "source": 18 }, { "relationship_name": "contains", "is_deleted": false, "target": 7, "key": "contains", "source": 18 }, { "relationship_name": "contains", "is_deleted": false, "target": 18, "key": "contains", "source": 21 }, { "relationship_name": "contains", "is_deleted": false, "target": 12, "key": "contains", "source": 21 } ], "multigraph": true } RCA Example ----------- Note: To see complete usage: 'vitrage help' and 'vitrage help ' rca show ^^^^^^^^ :: vitrage rca show { "directed": true, "graph": { }, "nodes": [ { "category": "ALARM", "type": "nagios", "name": "CPU load", "state": "Active", "severity": "WARNING", "update_timestamp": "2015-12-01T12:46:41Z", "info": "WARNING - 15min load 1.66 at 32 CPUs", "resource_type": "nova.host", "resource_name": "host-0", "resource_id": "host-0", "id": 0, "vitrage_id": "ALARM:nagios:host0:CPU load" }, { "category": "ALARM", "type": "vitrage", "name": "Machine Suboptimal", "state": "Active", "severity": "WARNING", "update_timestamp": "2015-12-01T12:46:41Z", "resource_type": "nova.instance", "resource_name": "vm0", "resource_id": "20d12a8a-ea9a-89c6-5947-83bea959362e", "id": 1, "vitrage_id": "ALARM:vitrage:vm0:Machine Suboptimal" }, { "category": "ALARM", "type": "vitrage", "name": "Machine Suboptimal", "state": "Active", "severity": "WARNING", "update_timestamp": "2015-12-01T12:46:41Z", "resource_type": "nova.instance", "resource_name": "vm1", "resource_id": "275097cf-954e-8e24-b185-9514e24b8591", "id": 2, "vitrage_id": "ALARM:vitrage:vm1:Machine Suboptimal" } ], "links": [ { "source": 0, "target": 1, "relationship": "causes" }, { "source": 0, "target": 2, "relationship": "causes" } ], "multigraph": false, "inspected_index": 0 } Resources Examples ------------------ Note: To see complete usage: 'vitrage help' and 'vitrage help ' resource list ^^^^^^^^^^^^^ :: vitrage resource list +--------------------------------------+-------------------+--------------------------------------+------------+-------------------------------------------------------------------------------------------------------------------------------+ | ID | Type | Data Source ID | State | Metadata | +--------------------------------------+-------------------+--------------------------------------+------------+-------------------------------------------------------------------------------------------------------------------------------+ | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | nova.instance | f3d6819a-5b52-4fae-93d4-ce58c263510b | SUBOPTIMAL | {'project_id': u'4437e14f56904650af9eef83dff35263', 'name': u'vm-0', 'update_timestamp': u'2018-01-03 09:06:06.339099+00:00'} | | d019ee2b-df2a-4c8f-bc59-f28a2296b0db | neutron.network | dafa8864-a04c-4688-bab2-c6dc3ce5c31b | OK | {'project_id': u'4437e14f56904650af9eef83dff35263', 'name': u'public', 'update_timestamp': u'2017-11-09T09:49:49Z'} | | 772d627f-90d7-4c5e-8c18-6587fa5b88ee | neutron.port | 75ff8ce5-26d9-4d77-875f-8d297918374c | OK | {'project_id': u'4437e14f56904650af9eef83dff35263', 'update_timestamp': u'2017-11-28T11:50:23Z'} | | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | nova.host | compute-0-0 | OK | {'name': u'compute-0-0', 'update_timestamp': u'2018-01-03 09:06:06.851229+00:00'} | | 99920528-2757-4fde-a2a0-3063bf0c4020 | openstack.cluster | OpenStack Cluster | OK | {'name': u'openstack.cluster'} | | 374203a6-e7bc-4bd6-bc32-1137f4f3d234 | nova.zone | nova | OK | {'name': u'nova', 'update_timestamp': u'2018-01-03 09:06:07.628148+00:00'} | +--------------------------------------+-------------------+--------------------------------------+------------+-------------------------------------------------------------------------------------------------------------------------------+ resource show ^^^^^^^^^^^^^ :: vitrage resource show 786efe03-55ff-41b2-bdc1-6cd94bc355ad +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | host_id | compute-0-0 | | id | f3d6819a-5b52-4fae-93d4-ce58c263510b | | is_real_vitrage_id | True | | name | vm-0 | | project_id | 4437e14f56904650af9eef83dff35263 | | state | ACTIVE | | update_timestamp | 2018-01-03 09:06:06.339099+00:00 | | vitrage_aggregated_state | SUBOPTIMAL | | vitrage_category | RESOURCE | | vitrage_id | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | | vitrage_is_deleted | False | | vitrage_is_placeholder | False | | vitrage_operational_state | SUBOPTIMAL | | vitrage_sample_timestamp | 2018-01-03 09:06:06.339099+00:00 | | vitrage_state | SUBOPTIMAL | | vitrage_type | nova.instance | +---------------------------+--------------------------------------+ resource count ^^^^^^^^^^^^^^ :: vitrage resource count { "nova.instance": 394, "openstack.cluster": 1, "cinder.volume": 405, "nova.host": 16, "neutron.network": 7, "neutron.port": 1127, "nova.zone": 3, "tripleo.controller": 3 } vitrage resource count --type nova.instance --group-by state { "ACTIVE": 359, "ERROR": 27, "SUBOPTIMAL": 8 } Service Examples ---------------- Note: To see complete usage: 'vitrage help' and 'vitrage help ' service list ^^^^^^^^^^^^ A list of all vitrage services and their status:: vitrage service list +----------------------------------+------------+--------------+---------------------------+ | Name | Process Id | Hostname | Created At | +----------------------------------+------------+--------------+---------------------------+ | ApiWorker worker(0) | 23161 | controller-1 | 2019-02-10T11:07:15+00:00 | | EvaluatorWorker worker(0) | 23153 | controller-1 | 2019-02-10T11:07:15+00:00 | | EvaluatorWorker worker(1) | 23155 | controller-1 | 2019-02-10T11:07:15+00:00 | | EvaluatorWorker worker(2) | 23157 | controller-1 | 2019-02-10T11:07:15+00:00 | | EvaluatorWorker worker(3) | 23158 | controller-1 | 2019-02-10T11:07:15+00:00 | | MachineLearningService worker(0) | 23366 | controller-1 | 2019-02-10T11:07:33+00:00 | | PersistorService worker(0) | 23475 | controller-1 | 2019-02-10T11:07:35+00:00 | | SnmpParsingService worker(0) | 23164 | controller-1 | 2019-02-10T11:07:15+00:00 | | vitrageuWSGI worker 1 | 25698 | controller-1 | 2019-02-10T11:14:30+00:00 | | vitrageuWSGI worker 2 | 25699 | controller-1 | 2019-02-10T11:14:30+00:00 | | VitrageNotifierService worker(0) | 23352 | controller-1 | 2019-02-10T11:07:32+00:00 | +----------------------------------+------------+--------------+---------------------------+ Alarms Examples --------------- Note: To see complete usage: 'vitrage help' and 'vitrage help ' alarm list ^^^^^^^^^^ A list of all alarms (default limit of 1000 alarms):: vitrage alarm list +--------------------------------------+---------+----------------------------------------+---------------+--------------------------------------+----------+----------------------+ | ID | Type | Name | Resource Type | Resource ID | Severity | Update Time | +--------------------------------------+---------+----------------------------------------+---------------+--------------------------------------+----------+----------------------+ | f85ed0d2-3e28-47f9-9231-6fa72d6c882d | vitrage | VM network problem 3 | nova.instance | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | CRITICAL | 2018-01-03T07:52:06Z | | 868b252a-4053-431c-a6d3-7cdabd91edd8 | zabbix | Lack of free swap space on compute-0-0 | nova.host | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | WARNING | 2017-11-09T11:24:30Z | | c1ab17d4-8b6b-4d12-a4ec-3150bb89a5a5 | zabbix | Too many processes on compute-0-0 | nova.host | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | WARNING | 2017-11-09T11:25:12Z | | 7468b7f5-5a89-49ee-b408-3cfafd68290a | zabbix | Public interface down on compute-0-0 | nova.host | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | CRITICAL | 2017-12-13T07:34:08Z | | 608366ed-a737-4aab-a58f-8673a589e3aa | vitrage | VM network problem 2 | nova.instance | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | CRITICAL | 2018-01-03T07:52:06Z | +--------------------------------------+---------+----------------------------------------+---------------+--------------------------------------+----------+----------------------+ A list of all alarms on the given resource:: vitrage alarm list 52b466ba-ef98-4bf5-93d8-5c3ca680fe01 +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------+ | ID | Type | Name | Resource Type | Resource ID | Severity | Update Time | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------+ | 3c1dda08-2c95-49f1-9155-35e5512a6f38 | vitrage | Instance down | nova.instance | 52b466ba-ef98-4bf5-93d8-5c3ca680fe01 | CRITICAL | 2018-07-22T11:42:57Z | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------+ A list of ``limit`` number of alarms:: vitrage alarm list --limit 2 +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+ | ID | Type | Name | Resource Type | Resource ID | Severity | Update Time | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+ | f85ed0d2-3e28-47f9-9231-6fa72d6c882d | vitrage | Instance down | nova.instance | 52b466ba-ef98-4bf5-93d8-5c3ca680fe01 | CRITICAL | 2018-07-19 14:53:24.741108 | | 868b252a-4053-431c-a6d3-7cdabd91edd8 | vitrage | Instance down | nova.instance | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | CRITICAL | 2018-07-19 14:53:24.773490 | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+ Paging. Get next alarms, from ``marker`` which is a vitrage_id:: vitrage alarm list --limit 2 --marker 868b252a-4053-431c-a6d3-7cdabd91edd8 +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+ | ID | Type | Name | Resource Type | Resource ID | Severity | Update Time | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+ | c1ab17d4-8b6b-4d12-a4ec-3150bb89a5a5 | vitrage | Instance down | nova.instance | 52b466ba-ef98-4bf5-93d8-5c3ca680fe01 | CRITICAL | 2018-07-19 14:53:24.801490 | | 7468b7f5-5a89-49ee-b408-3cfafd68290a | vitrage | Instance down | nova.instance | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | CRITICAL | 2018-07-19 14:53:24.828359 | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+ alarm history ^^^^^^^^^^^^^ A list of all alarms that were active during the time frame of ``start`` and ``end``:: vitrage alarm history --start '2018-07-22 14:10:40.087709' --end '2018-07-23 16:10:41.354102' --limit 3 +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+----------------------------+ | ID | Type | Name | Resource Type | Resource ID | Severity | Start Time | End Time | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+----------------------------+ | f85ed0d2-3e28-47f9-9231-6fa72d6c882d | vitrage | Instance down | nova.instance | 4ac47cef-419f-4e4b-9590-22c10bbd21fd | CRITICAL | 2018-07-19 14:53:24.741108 | 2018-07-22 14:53:24.741108 | | 868b252a-4053-431c-a6d3-7cdabd91edd8 | vitrage | Instance down | nova.instance | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | CRITICAL | 2018-07-19 14:53:24.773490 | | | c1ab17d4-8b6b-4d12-a4ec-3150bb89a5a5 | vitrage | Instance down | nova.instance | 52b466ba-ef98-4bf5-93d8-5c3ca680fe01 | CRITICAL | 2018-07-23 02:10:41.354102 | +--------------------------------------+---------+---------------+---------------+--------------------------------------+----------+----------------------------+----------------------------+ alarm show ^^^^^^^^^^ :: vitrage alarm show f85ed0d2-3e28-47f9-9231-6fa72d6c882d +------------------------------+--------------------------------------+ | Field | Value | +------------------------------+--------------------------------------+ | name | VM network problem 3 | | resource_id | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | | severity | critical | | state | Active | | update_timestamp | 2018-01-03T07:52:06Z | | vitrage_aggregated_severity | CRITICAL | | vitrage_category | ALARM | | vitrage_id | f85ed0d2-3e28-47f9-9231-6fa72d6c882d | | vitrage_is_deleted | False | | vitrage_is_placeholder | False | | vitrage_operational_severity | CRITICAL | | vitrage_resource_id | 786efe03-55ff-41b2-bdc1-6cd94bc355ad | | vitrage_resource_type | nova.instance | | vitrage_sample_timestamp | 2018-01-03 07:52:06.306507+00:00 | | vitrage_type | vitrage | +------------------------------+--------------------------------------+ alarm count ^^^^^^^^^^^ :: vitrage alarm count { "WARNING": 2, "SEVERE": 0, "CRITICAL": 7, "OK": 0, "N/A": 0 } Template Examples ----------------- **Note:** for templates version 2 --type