Server IP : 85.214.239.14 / Your IP : 3.142.199.54 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/ansible_collections/community/skydive/plugins/modules/ |
Upload File : |
#!/usr/bin/python # -*- coding: utf-8 -*- # (c) 2019, Ansible by Red Hat, inc # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function __metaclass__ = type ANSIBLE_METADATA = { "metadata_version": "1.1", "status": ["preview"], "supported_by": "network", } DOCUMENTATION = r""" module: skydive_edge author: - Sumit Jaiswal (@sjaiswal) short_description: Module to add edges to Skydive topology description: - This module handles setting up edges between two nodes based on the relationship type to the Skydive topology. requirements: - skydive-client extends_documentation_fragment: - community.skydive.skydive options: parent_node: description: - To defined the first node of the link, it can be either an ID or a gremlin expression required: true child_node: description: - To defined the second node of the link, it can be either an ID or a gremlin expression required: true relation_type: description: - To define relation type of the node I(ownership, layer2, layer3). required: true host: description: - To define the host of the node. default: '' required: false metadata: description: - To define metadata for the edge. required: false state: description: - State of the Skydive Edge. If value is I(present) new edge will be created else if it is I(absent) it will be deleted. default: present choices: - present - absent """ EXAMPLES = r""" - name: create tor community.skydive.skydive_node: name: 'TOR' node_type: "fabric" seed: TOR metadata: Model: Cisco xxxx provider: endpoint: localhost:8082 username: admin password: admin register: tor_result - name: create port 1 community.skydive.skydive_node: name: 'PORT1' node_type: 'fabric' seed: PORT1 provider: endpoint: localhost:8082 username: admin password: admin register: port1_result - name: create port 2 community.skydive.skydive_node: name: 'PORT2' node_type: 'fabric' seed: PORT2 provider: endpoint: localhost:8082 username: admin password: admin register: port2_result - name: link node tor and port 1 community.skydive.skydive_edge: parent_node: "{{ tor_result.UUID }}" child_node: "{{ port1_result.UUID }}" relation_type: ownership state: present provider: endpoint: localhost:8082 username: admin password: admin - name: link node tor and port 2 community.skydive.skydive_edge: parent_node: "{{ tor_result.UUID }}" child_node: "{{ port2_result.UUID }}" relation_type: ownership state: present provider: endpoint: localhost:8082 username: admin password: admin - name: update link node tor and port 1 relation community.skydive.skydive_edge: parent_node: "{{ tor_result.UUID }}" child_node: "{{ port2_result.UUID }}" relation_type: layer2 state: upadte provider: endpoint: localhost:8082 username: admin password: admin - name: Unlink tor and port 2 community.skydive.skydive_edge: parent_node: "{{ tor_result.UUID }}" child_node: "{{ port2_result.UUID }}" relation_type: ownership state: absent provider: endpoint: localhost:8082 username: admin password: admin - name: link tor and port 2 via Gremlin expression community.skydive.skydive_edge: parent_node: G.V().Has('Name', 'TOR') child_node: G.V().Has('Name', 'PORT2') relation_type: ownership state: present provider: endpoint: localhost:8082 username: admin password: admin - name: Unlink tor and port 2 via Gremlin expression community.skydive.skydive_edge: parent_node: G.V().Has('Name', 'TOR') child_node: G.V().Has('Name', 'PORT2') relation_type: ownership state: absent provider: endpoint: localhost:8082 username: admin password: admin """ RETURN = r""" # """ from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.skydive.plugins.module_utils.network.skydive.api import ( skydive_edge, ) def main(): """ Main entry point for module execution """ ib_spec = dict( relation_type=dict(type="str", required=True), parent_node=dict(type="str", required=True), child_node=dict(type="str", required=True), host=dict(type="str", default=""), metadata=dict(type="dict", default=dict()), ) argument_spec = dict( provider=dict(required=False), state=dict(default="present", choices=["present", "absent"]), ) argument_spec.update(ib_spec) argument_spec.update(skydive_edge.provider_spec) module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True ) skydive_obj = skydive_edge(module) result = skydive_obj.run() module.exit_json(**result) if __name__ == "__main__": main()