mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
PR to start support for Skydive integration with Ansible (#50857)
* skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive modules Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * modifying file name Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * renamed Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * skydive lookup Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * change in str Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * change in str Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable error Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * renamed file Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable error Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * change in str Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable error Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable error Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix review comments Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix review comments Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * deleting file to add to new PR Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix review comments Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * shippable and doc fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * placing doc at correct path Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * shippable and doc fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * placing doc at correct path Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * updated with review and shippable fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * updated with review and shippable fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * updated with review and shippable fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * updated with review and shippable fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fixing review comment Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fixing review comment Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fixing review comment Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fixing review comment Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fixing review comment Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable errors Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix shippable error Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix review comments Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fixing shippable errors Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * fix review comments Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * review comments Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * shippable fix Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com> * review comment Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
This commit is contained in:
55
lib/ansible/plugins/doc_fragments/skydive.py
Normal file
55
lib/ansible/plugins/doc_fragments/skydive.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#
|
||||
# (c) 2019, Sumit Jaiswal (@sjaiswal)
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
class ModuleDocFragment(object):
|
||||
|
||||
# Standard files documentation fragment
|
||||
DOCUMENTATION = """
|
||||
options:
|
||||
provider:
|
||||
description:
|
||||
- A dict object containing connection details.
|
||||
suboptions:
|
||||
endpoint:
|
||||
description:
|
||||
- Specifies the hostname/address along with the port as C(localhost:8082)for
|
||||
connecting to the remote instance of SKYDIVE client over the REST API.
|
||||
required: true
|
||||
user:
|
||||
description:
|
||||
- Configures the username to use to authenticate the connection to
|
||||
the remote instance of SKYDIVE client.
|
||||
password:
|
||||
description:
|
||||
- Specifies the password to use to authenticate the connection to
|
||||
the remote instance of SKYDIVE client.
|
||||
insecure:
|
||||
description:
|
||||
- Ignore SSL certification verification.
|
||||
type: bool
|
||||
default: false
|
||||
ssl:
|
||||
description:
|
||||
- Specifies the ssl parameter that decides if the connection type shall be
|
||||
http or https.
|
||||
type: bool
|
||||
default: false
|
||||
notes:
|
||||
- "This module must be run locally, which can be achieved by specifying C(connection: local)."
|
||||
"""
|
||||
77
lib/ansible/plugins/lookup/skydive.py
Normal file
77
lib/ansible/plugins/lookup/skydive.py
Normal file
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# Copyright 2018 Red Hat | Ansible
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
|
||||
__metaclass__ = type
|
||||
|
||||
DOCUMENTATION = """
|
||||
---
|
||||
lookup: skydive
|
||||
version_added: "2.8"
|
||||
short_description: Query Skydive objects
|
||||
description:
|
||||
- Uses the Skydive python REST client to return the queried object from
|
||||
Skydive network analyzer.
|
||||
requirements:
|
||||
- skydive-client
|
||||
extends_documentation_fragment: skydive
|
||||
options:
|
||||
filter:
|
||||
description: a dict object that is used to filter the return objects
|
||||
"""
|
||||
|
||||
EXAMPLES = r"""
|
||||
- name: return skydive metdata if present based on Name
|
||||
set_fact:
|
||||
skydive_meta: "{{ lookup('skydive', filter={'query': \"G.V().Has('Name', 'sumit-VirtualBox')\"}) }}"
|
||||
|
||||
- name: return all the skydive metdata having parameter Name
|
||||
set_fact:
|
||||
skydive: "{{ lookup('skydive', filter={'query': \"G.V().Has('Name')\"},
|
||||
provider={'endpoint': 'localhost:8082', 'username': 'admin', 'password': 'password'}) }}"
|
||||
"""
|
||||
|
||||
RETURN = """
|
||||
_list:
|
||||
description:
|
||||
- The list of queried object metadata
|
||||
returned: always
|
||||
type: list
|
||||
"""
|
||||
|
||||
|
||||
from ansible.plugins.lookup import LookupBase
|
||||
from ansible.module_utils.network.skydive.api import skydive_lookup
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.errors import AnsibleError
|
||||
|
||||
|
||||
class LookupModule(LookupBase):
|
||||
|
||||
def run(self, terms, variables=None, **kwargs):
|
||||
|
||||
provider = kwargs.pop('provider', {})
|
||||
filter_data = kwargs.pop('filter', {})
|
||||
try:
|
||||
skydive_obj = skydive_lookup(provider)
|
||||
result = skydive_obj.lookup_query(filter_data)
|
||||
except Exception as exc:
|
||||
raise AnsibleError(to_text(exc))
|
||||
|
||||
return [result]
|
||||
Reference in New Issue
Block a user