Dropped symbolic links and plugin routing for deprecated module names

With Ansible OpenStack collection 2.0.0 we break backward
compatibility to older releases, mainly due to breaking changes
coming with openstacksdk >=0.99.0. For example, results will change
for most Ansible modules in this collection.

We take this opportunity to drop the symbolic links with prefix
os_ in plugins/modules and the plugin routing in meta/runtime.yml.
This means users have to call modules of the Ansible OpenStack
collection using their FQCN (Fully Qualified Collection Name) such
as openstack.cloud.server. Short module names such as os_server
will now raise an Ansible error. This also decreases the likelihood
of incompatible Ansible code going undetected.

Symbolic links were introduced to keep our collection backward
compatible to user code which was written for old(er) Ansible releases
which did not have support for collections and where OpenStack modules
where named with a prefix os_ such as os_server which is nowadays
known and stored as openstack.cloud.server.

In Ansible aka ansible-base 2.10, a internal routing table
lib/ansible/config/ansible_builtin_runtime.yml [1] was introduced which
Ansible uses to resolve deprecated module names missing the FQCN (Fully
Qualified Collection Name). Additionally, collections can define their
own plugin routing table in meta/runtime.yml [2] which we did.

In ansible-base 2.10 and ansible-core 2.11 or later, if a user uses a
short module name and the collections keyword is not used, Ansible
will first look in the internal routing table, get an FQCN, and then
looks in the collection for that FQCN. If there is another routing
entry for that new name in that collection's meta/runtime.yml,
Ansible will continue with that redirect. If it does not find another
redirect, Ansible will look for the plugin itself, so it will not
find a redirect in the collection before looking at its internal
redirects. Except if the user uses a FQCN, then it looks directly in
that collection.

Ansible 2.9 and 2.8 do not have any notion of these redirects with a
plugin routing table, backward compatibility with deprecated os_*
module names is solely achieved with symbolic links. Ansible releases
older than 2.11 are EOL [3], so usage of os_* symlinks should reduce
soon.

[1] https://github.com/ansible/ansible/blob/devel/lib/ansible/config/ansible_builtin_runtime.yml
[2] https://github.com/openstack/ansible-collections-openstack/blob/master/meta/runtime.yml
[3] https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html

Change-Id: I28cc05c95419b72552899c926721eb87fb6f0868
This commit is contained in:
Jakob Meng 2022-07-20 10:12:10 +02:00
parent fd15087c4d
commit b87ae7dcce
80 changed files with 8 additions and 798 deletions

View File

@ -4,59 +4,36 @@ action_groups:
- address_scope
- auth
- baremetal_inspect
- baremetal_inspect
- baremetal_node
- baremetal_node
- baremetal_node_action
- baremetal_node_action
- baremetal_node_info
- baremetal_port_info
- baremetal_port
- catalog_endpoint
- catalog_service
- baremetal_port_info
- catalog_service
- coe_cluster
- coe_cluster_template
- compute_flavor
- compute_flavor
- compute_flavor
- compute_flavor_info
- compute_flavor_info
- compute_service_info
- compute_service_info
- config
- config
- dns_zone
- dns_zone_info
- endpoint
- endpoint
- federation_idp
- federation_idp
- federation_idp_info
- federation_idp_info
- federation_mapping
- federation_mapping
- federation_mapping_info
- federation_mapping_info
- floating_ip
- floating_ip_info
- group_assignment
- group_assignment
- host_aggregate
- host_aggregate
- identity_domain
- identity_domain
- identity_domain_info
- identity_domain_info
- identity_group
- identity_group
- identity_group_info
- identity_group_info
- identity_role
- identity_role
- identity_role_info
- identity_user
- identity_user
- identity_user_info
- identity_user_info
- image
- image_info
@ -64,15 +41,15 @@ action_groups:
- keypair_info
- keystone_federation_protocol
- keystone_federation_protocol_info
- lb_listener
- lb_health_monitor
- lb_listener
- lb_member
- lb_member
- lb_pool
- lb_pool
- loadbalancer
- network
- networks_info
- neutron_rbac_policies_info
- neutron_rbac_policy
- object
- object_container
- port
@ -83,7 +60,6 @@ action_groups:
- quota
- recordset
- role_assignment
- role_assignment
- router
- routers_info
- security_group
@ -97,106 +73,9 @@ action_groups:
- server_metadata
- server_volume
- stack
- stack_info
- subnet
- subnets_info
- subnet_pool
- volume
- volume_backup
- volume_backup_info
- volume_info
- volume_snapshot
- volume_snapshot_info
os:
- auth
- baremetal_inspect
- baremetal_inspect
- baremetal_node
- baremetal_node
- baremetal_node_action
- baremetal_node_action
- catalog_endpoint
- catalog_service
- catalog_service
- coe_cluster
- coe_cluster_template
- compute_flavor
- compute_flavor
- compute_flavor
- compute_flavor_info
- compute_flavor_info
- config
- config
- dns_zone
- dns_zone
- endpoint
- endpoint
- federation_idp
- federation_idp
- federation_idp_info
- federation_idp_info
- federation_mapping
- federation_mapping
- federation_mapping_info
- federation_mapping_info
- floating_ip
- group_assignment
- group_assignment
- host_aggregate
- host_aggregate
- identity_domain
- identity_domain
- identity_domain_info
- identity_domain_info
- identity_group
- identity_group
- identity_group_info
- identity_group_info
- identity_role
- identity_role
- identity_user
- identity_user
- identity_user_info
- identity_user_info
- image
- image_info
- keypair
- keypair_info
- keystone_federation_protocol
- keystone_federation_protocol_info
- lb_listener
- lb_listener
- lb_member
- lb_member
- lb_pool
- lb_pool
- loadbalancer
- network
- networks_info
- object
- object_container
- port
- port_info
- project
- project_access
- project_info
- quota
- recordset
- role_assignment
- role_assignment
- router
- routers_info
- security_group
- security_group_info
- security_group_rule
- security_group_rule_info
- server
- server_action
- server_group
- server_info
- server_metadata
- server_volume
- stack
- subnet
- subnets_info
- volume
- volume_backup
@ -204,410 +83,3 @@ action_groups:
- volume_info
- volume_snapshot
- volume_snapshot_info
- os_auth
- os_client_config
- os_client_config
- os_coe_cluster
- os_coe_cluster_template
- os_endpoint
- os_flavor
- os_flavor_info
- os_flavor_info
- os_floating_ip
- os_group
- os_group
- os_group_info
- os_group_info
- os_image
- os_image_info
- os_ironic
- os_ironic
- os_ironic_inspect
- os_ironic_inspect
- os_ironic_node
- os_ironic_node
- os_keypair
- os_keystone_domain
- os_keystone_domain
- os_keystone_domain_info
- os_keystone_domain_info
- os_keystone_endpoint
- os_keystone_endpoint
- os_keystone_federation_protocol
- os_keystone_federation_protocol_info
- os_keystone_identity_provider
- os_keystone_identity_provider
- os_keystone_identity_provider_info
- os_keystone_identity_provider_info
- os_keystone_mapping
- os_keystone_mapping
- os_keystone_mapping_info
- os_keystone_mapping_info
- os_keystone_role
- os_keystone_role
- os_keystone_service
- os_keystone_service
- os_listener
- os_listener
- os_loadbalancer
- os_member
- os_member
- os_network
- os_networks_info
- os_nova_flavor
- os_nova_flavor
- os_nova_host_aggregate
- os_nova_host_aggregate
- os_object
- os_pool
- os_pool
- os_port
- os_port_info
- os_project
- os_project_access
- os_project_info
- os_quota
- os_recordset
- os_router
- os_routers_info
- os_security_group
- os_security_group_rule
- os_server
- os_server_action
- os_server_group
- os_server_info
- os_server_metadata
- os_server_volume
- os_stack
- os_subnet
- os_subnets_info
- os_user
- os_user
- os_user_group
- os_user_group
- os_user_info
- os_user_info
- os_user_role
- os_user_role
- os_volume
- os_volume_snapshot
- os_zone
- os_zone
plugin_routing:
modules:
os_auth:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.auth
redirect: openstack.cloud.auth
os_client_config:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.config
redirect: openstack.cloud.config
os_coe_cluster:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.coe_cluster
redirect: openstack.cloud.coe_cluster
os_coe_cluster_template:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.coe_cluster_template
redirect: openstack.cloud.coe_cluster_template
os_endpoint:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.catalog_endpoint
redirect: openstack.cloud.catalog_endpoint
os_flavor:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.compute_flavor
redirect: openstack.cloud.compute_flavor
os_flavor_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.compute_flavor_info
redirect: openstack.cloud.compute_flavor_info
os_floating_ip:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.floating_ip
redirect: openstack.cloud.floating_ip
os_group:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_group
redirect: openstack.cloud.identity_group
os_group_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_group_info
redirect: openstack.cloud.identity_group_info
os_image:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.image
redirect: openstack.cloud.image
os_image_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.image_info
redirect: openstack.cloud.image_info
os_ironic:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.baremetal_node
redirect: openstack.cloud.baremetal_node
os_ironic_inspect:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.baremetal_inspect
redirect: openstack.cloud.baremetal_inspect
os_ironic_node:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.baremetal_node_action
redirect: openstack.cloud.baremetal_node_action
os_keypair:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.keypair
redirect: openstack.cloud.keypair
os_keystone_domain:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_domain
redirect: openstack.cloud.identity_domain
os_keystone_domain_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_domain_info
redirect: openstack.cloud.identity_domain_info
os_keystone_endpoint:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.endpoint
redirect: openstack.cloud.endpoint
os_keystone_federation_protocol:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.keystone_federation_protocol
redirect: openstack.cloud.keystone_federation_protocol
os_keystone_federation_protocol_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.keystone_federation_protocol_info
redirect: openstack.cloud.keystone_federation_protocol_info
os_keystone_identity_provider:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.federation_idp
redirect: openstack.cloud.federation_idp
os_keystone_identity_provider_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.federation_idp_info
redirect: openstack.cloud.federation_idp_info
os_keystone_mapping:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.federation_mapping
redirect: openstack.cloud.federation_mapping
os_keystone_mapping_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.federation_mapping_info
redirect: openstack.cloud.federation_mapping_info
os_keystone_role:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_role
redirect: openstack.cloud.identity_role
os_keystone_service:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.catalog_service
redirect: openstack.cloud.catalog_service
os_listener:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.lb_listener
redirect: openstack.cloud.lb_listener
os_loadbalancer:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.loadbalancer
redirect: openstack.cloud.loadbalancer
os_member:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.lb_member
redirect: openstack.cloud.lb_member
os_network:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.network
redirect: openstack.cloud.network
os_networks_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.networks_info
redirect: openstack.cloud.networks_info
os_nova_flavor:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.compute_flavor
redirect: openstack.cloud.compute_flavor
os_nova_host_aggregate:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.host_aggregate
redirect: openstack.cloud.host_aggregate
os_object:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.object
redirect: openstack.cloud.object
os_pool:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.lb_pool
redirect: openstack.cloud.lb_pool
os_port:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.port
redirect: openstack.cloud.port
os_port_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.port_info
redirect: openstack.cloud.port_info
os_project:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.project
redirect: openstack.cloud.project
os_project_access:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.project_access
redirect: openstack.cloud.project_access
os_project_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.project_info
redirect: openstack.cloud.project_info
os_quota:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.quota
redirect: openstack.cloud.quota
os_recordset:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.recordset
redirect: openstack.cloud.recordset
os_router:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.router
redirect: openstack.cloud.router
os_routers_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.routers_info
redirect: openstack.cloud.routers_info
os_security_group:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.security_group
redirect: openstack.cloud.security_group
os_security_group_rule:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.security_group_rule
redirect: openstack.cloud.security_group_rule
os_server:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server
redirect: openstack.cloud.server
os_server_action:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_action
redirect: openstack.cloud.server_action
os_server_group:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_group
redirect: openstack.cloud.server_group
os_server_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_info
redirect: openstack.cloud.server_info
os_server_metadata:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_metadata
redirect: openstack.cloud.server_metadata
os_server_volume:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_volume
redirect: openstack.cloud.server_volume
os_stack:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.stack
redirect: openstack.cloud.stack
os_subnet:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.subnet
redirect: openstack.cloud.subnet
os_subnets_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.subnets_info
redirect: openstack.cloud.subnets_info
os_user:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_user
redirect: openstack.cloud.identity_user
os_user_group:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.group_assignment
redirect: openstack.cloud.group_assignment
os_user_info:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_user_info
redirect: openstack.cloud.identity_user_info
os_user_role:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.role_assignment
redirect: openstack.cloud.role_assignment
os_volume:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.volume
redirect: openstack.cloud.volume
os_volume_snapshot:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.volume_snapshot
redirect: openstack.cloud.volume_snapshot
os_zone:
deprecation:
removal_date: 2021-12-12
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.dns_zone
redirect: openstack.cloud.dns_zone

View File

@ -36,34 +36,7 @@ import os
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import iteritems
OVERRIDES = {'os_client_config': 'config',
'os_endpoint': 'catalog_endpoint',
'os_flavor': 'compute_flavor',
'os_flavor_info': 'compute_flavor_info',
'os_group': 'identity_group',
'os_group_info': 'identity_group_info',
'os_ironic': 'baremetal_node',
'os_ironic_inspect': 'baremetal_inspect',
'os_ironic_node': 'baremetal_node_action',
'os_keystone_domain': 'identity_domain',
'os_keystone_domain_info': 'identity_domain_info',
'os_keystone_endpoint': 'endpoint',
'os_keystone_identity_provider': 'federation_idp',
'os_keystone_identity_provider_info': 'federation_idp_info',
'os_keystone_mapping': 'federation_mapping',
'os_keystone_mapping_info': 'federation_mapping_info',
'os_keystone_role': 'identity_role',
'os_keystone_service': 'catalog_service',
'os_listener': 'lb_listener',
'os_member': 'lb_member',
'os_nova_flavor': 'compute_flavor',
'os_nova_host_aggregate': 'host_aggregate',
'os_pool': 'lb_pool',
'os_user': 'identity_user',
'os_user_group': 'group_assignment',
'os_user_info': 'identity_user_info',
'os_user_role': 'role_assignment',
'os_zone': 'dns_zone'}
OVERRIDES = {}
CUSTOM_VAR_PARAMS = ['min_ver', 'max_ver']
@ -320,7 +293,7 @@ class OpenStackModule:
"The '%s' module has been renamed to '%s' in openstack "
"collection: openstack.cloud.%s" % (
self.module_name, new_module_name, new_module_name),
version='2.0.0', collection_name='openstack.cloud')
version='3.0.0', collection_name='openstack.cloud')
def openstack_cloud_from_module(self):
"""Sets up connection to cloud using provided options. Checks if all

View File

@ -16,8 +16,6 @@ description:
available to the flavor, or both. When specifying multiple filters,
*ALL* filters must match on a flavor before that flavor is returned as
a fact.
- This module was called C(openstack.cloud.compute_flavor_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.compute_flavor_info) module no longer returns C(ansible_facts)!
notes:
- The result contains a list of unsorted flavors.
options:
@ -206,8 +204,6 @@ class ComputeFlavorInfoModule(OpenStackModule):
supports_check_mode=True
)
deprecated_names = ('openstack.cloud.compute_flavor_facts')
def run(self):
name = self.params['name']
vcpus = self.params['vcpus']

View File

@ -1 +0,0 @@
object_container.py

View File

@ -9,8 +9,6 @@ short_description: Retrieve information about one or more OpenStack domains
author: OpenStack Ansible SIG
description:
- Retrieve information about a one or more OpenStack domains
- This module was called C(openstack.cloud.identity_domain_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.identity_domain_info) module no longer returns C(ansible_facts)!
options:
name:
description:
@ -99,8 +97,6 @@ class IdentityDomainInfoModule(OpenStackModule):
supports_check_mode=True
)
deprecated_names = ('openstack.cloud.identity_domain_facts')
def run(self):
name = self.params['name']
filters = self.params['filters'] or {}

View File

@ -9,8 +9,6 @@ short_description: Retrieve information about one or more OpenStack users
author: OpenStack Ansible SIG
description:
- Retrieve information about a one or more OpenStack users
- This module was called C(openstack.cloud.identity_user_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.identity_user_info) module no longer returns C(ansible_facts)!
options:
name:
description:
@ -143,8 +141,6 @@ class IdentityUserInfoModule(OpenStackModule):
supports_check_mode=True
)
deprecated_names = ('openstack.cloud.identity_user_facts')
def run(self):
name = self.params['name']
domain = self.params['domain']

View File

@ -447,8 +447,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class ImageModule(OpenStackModule):
deprecated_names = ('os_image', 'openstack.cloud.os_image')
argument_spec = dict(
name=dict(required=True, type='str'),
id=dict(type='str'),

View File

@ -10,8 +10,6 @@ short_description: Retrieve information about an image within OpenStack.
author: OpenStack Ansible SIG
description:
- Retrieve information about a image image from OpenStack.
- This module was called C(openstack.cloud.image_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.image_info) module no longer returns C(ansible_facts)!
options:
image:
description:
@ -376,8 +374,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class ImageInfoModule(OpenStackModule):
deprecated_names = ('openstack.cloud.os_image_facts', 'openstack.cloud.os_image_info')
argument_spec = dict(
image=dict(type='str', required=False),
filters=dict(type='dict', required=False, aliases=['properties']),

View File

@ -84,7 +84,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (
class KeyPairModule(OpenStackModule):
deprecated_names = ('os_keypair', 'openstack.cloud.os_keypair')
argument_spec = dict(
name=dict(required=True),

View File

@ -10,8 +10,6 @@ short_description: Retrieve information about one or more OpenStack networks.
author: OpenStack Ansible SIG
description:
- Retrieve information about one or more networks from OpenStack.
- This module was called C(openstack.cloud.networks_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.networks_info) module no longer returns C(ansible_facts)!
options:
name:
description:
@ -174,9 +172,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class NetworkInfoModule(OpenStackModule):
deprecated_names = ('networks_facts', 'openstack.cloud.networks_facts')
argument_spec = dict(
name=dict(required=False, default=None),
filters=dict(required=False, type='dict', default=None)

View File

@ -1 +0,0 @@
auth.py

View File

@ -1 +0,0 @@
config.py

View File

@ -1 +0,0 @@
coe_cluster.py

View File

@ -1 +0,0 @@
coe_cluster_template.py

View File

@ -1 +0,0 @@
compute_flavor_info.py

View File

@ -1 +0,0 @@
floating_ip.py

View File

@ -1 +0,0 @@
identity_group.py

View File

@ -1 +0,0 @@
identity_group_info.py

View File

@ -1 +0,0 @@
image.py

View File

@ -1 +0,0 @@
image_info.py

View File

@ -1 +0,0 @@
baremetal_node.py

View File

@ -1 +0,0 @@
baremetal_inspect.py

View File

@ -1 +0,0 @@
baremetal_node_action.py

View File

@ -1 +0,0 @@
keypair.py

View File

@ -1 +0,0 @@
identity_domain.py

View File

@ -1 +0,0 @@
identity_domain_info.py

View File

@ -1 +0,0 @@
endpoint.py

View File

@ -1 +0,0 @@
keystone_federation_protocol.py

View File

@ -1 +0,0 @@
keystone_federation_protocol_info.py

View File

@ -1 +0,0 @@
federation_idp.py

View File

@ -1 +0,0 @@
federation_idp_info.py

View File

@ -1 +0,0 @@
federation_mapping.py

View File

@ -1 +0,0 @@
federation_mapping_info.py

View File

@ -1 +0,0 @@
identity_role.py

View File

@ -1 +0,0 @@
catalog_service.py

View File

@ -1 +0,0 @@
lb_listener.py

View File

@ -1 +0,0 @@
loadbalancer.py

View File

@ -1 +0,0 @@
lb_member.py

View File

@ -1 +0,0 @@
network.py

View File

@ -1 +0,0 @@
networks_info.py

View File

@ -1 +0,0 @@
compute_flavor.py

View File

@ -1 +0,0 @@
host_aggregate.py

View File

@ -1 +0,0 @@
object.py

View File

@ -1 +0,0 @@
lb_pool.py

View File

@ -1 +0,0 @@
port.py

View File

@ -1 +0,0 @@
port_info.py

View File

@ -1 +0,0 @@
project.py

View File

@ -1 +0,0 @@
project_access.py

View File

@ -1 +0,0 @@
project_info.py

View File

@ -1 +0,0 @@
quota.py

View File

@ -1 +0,0 @@
recordset.py

View File

@ -1 +0,0 @@
router.py

View File

@ -1 +0,0 @@
routers_info.py

View File

@ -1 +0,0 @@
security_group.py

View File

@ -1 +0,0 @@
security_group_rule.py

View File

@ -1 +0,0 @@
server.py

View File

@ -1 +0,0 @@
server_action.py

View File

@ -1 +0,0 @@
server_group.py

View File

@ -1 +0,0 @@
server_info.py

View File

@ -1 +0,0 @@
server_metadata.py

View File

@ -1 +0,0 @@
server_volume.py

View File

@ -1 +0,0 @@
stack.py

View File

@ -1 +0,0 @@
subnet.py

View File

@ -1 +0,0 @@
subnets_info.py

View File

@ -1 +0,0 @@
identity_user.py

View File

@ -1 +0,0 @@
group_assignment.py

View File

@ -1 +0,0 @@
identity_user_info.py

View File

@ -1 +0,0 @@
role_assignment.py

View File

@ -1 +0,0 @@
volume.py

View File

@ -1 +0,0 @@
volume_snapshot.py

View File

@ -1 +0,0 @@
dns_zone.py

View File

@ -9,8 +9,6 @@ short_description: Retrieve information about ports within OpenStack.
author: OpenStack Ansible SIG
description:
- Retrieve information about ports from OpenStack.
- This module was called C(openstack.cloud.port_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.port_info) module no longer returns C(ansible_facts)!
options:
port:
description:

View File

@ -9,8 +9,6 @@ short_description: Retrieve information about one or more OpenStack projects
author: OpenStack Ansible SIG
description:
- Retrieve information about a one or more OpenStack projects
- This module was called C(openstack.cloud.project_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.project_info) module no longer returns C(ansible_facts)!
options:
name:
description:
@ -121,8 +119,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class IdentityProjectInfoModule(OpenStackModule):
deprecated_names = ('project_facts', 'openstack.cloud.project_facts')
argument_spec = dict(
name=dict(required=False),
domain=dict(required=False),

View File

@ -191,8 +191,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class RouterInfoModule(OpenStackModule):
deprecated_names = ('os_routers_info', 'openstack.cloud.os_routers_info')
argument_spec = dict(
name=dict(required=False, default=None),
filters=dict(required=False, type='dict', default={})

View File

@ -303,7 +303,6 @@ def _ports_match(protocol, module_min, module_max, rule_min, rule_max):
class SecurityGroupRuleModule(OpenStackModule):
deprecated_names = ('os_security_group_rule', 'openstack.cloud.os_security_group_rule')
argument_spec = dict(
security_group=dict(required=True),

View File

@ -481,7 +481,6 @@ def _parse_meta(meta):
class ServerModule(OpenStackModule):
deprecated_names = ('os_server', 'openstack.cloud.os_server')
argument_spec = dict(
name=dict(required=True),

View File

@ -116,8 +116,6 @@ _admin_actions = ['pause', 'unpause', 'suspend', 'resume', 'lock', 'unlock', 'sh
class ServerActionModule(OpenStackModule):
deprecated_names = ('os_server_action', 'openstack.cloud.os_server_action')
argument_spec = dict(
server=dict(required=True, type='str'),
action=dict(required=True, type='str',

View File

@ -10,8 +10,6 @@ short_description: Retrieve information about one or more compute instances
author: OpenStack Ansible SIG
description:
- Retrieve information about server instances from OpenStack.
- This module was called C(os_server_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.server_info) module no longer returns C(ansible_facts)!
notes:
- The result contains a list of servers.
options:
@ -62,8 +60,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class ServerInfoModule(OpenStackModule):
deprecated_names = ('os_server_info', 'openstack.cloud.os_server_info')
argument_spec = dict(
server=dict(required=False),
detailed=dict(required=False, type='bool', default=False),

View File

@ -10,8 +10,6 @@ short_description: Retrieve information about one or more OpenStack subnets.
author: OpenStack Ansible SIG
description:
- Retrieve information about one or more subnets from OpenStack.
- This module was called C(openstack.cloud.subnets_facts) before Ansible 2.9, returning C(ansible_facts).
Note that the M(openstack.cloud.subnets_info) module no longer returns C(ansible_facts)!
options:
name:
description:
@ -133,9 +131,6 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class SubnetInfoModule(OpenStackModule):
deprecated_names = ('subnets_facts', 'openstack.cloud.subnets_facts')
argument_spec = dict(
name=dict(required=False, default=None, aliases=['subnet']),
filters=dict(required=False, type='dict', default=None)

View File

@ -1,128 +0,0 @@
import os
import yaml
overrides = dict(
os_client_config='config',
os_endpoint='catalog_endpoint',
os_flavor_info='compute_flavor_info',
os_flavor='compute_flavor',
os_group_info='identity_group_info',
os_group='identity_group',
os_ironic_node='baremetal_node_action',
os_ironic_inspect='baremetal_inspect',
os_ironic='baremetal_node',
os_keystone_domain_info='identity_domain_info',
os_keystone_domain='identity_domain',
os_keystone_endpoint='endpoint',
os_keystone_identity_provider_info='federation_idp_info',
os_keystone_identity_provider='federation_idp',
os_keystone_mapping_info='federation_mapping_info',
os_keystone_mapping='federation_mapping',
os_keystone_role='identity_role',
os_keystone_service='catalog_service',
os_listener='lb_listener',
os_member='lb_member',
os_nova_flavor='compute_flavor',
os_nova_host_aggregate='host_aggregate',
os_pool='lb_pool',
os_user_group='group_assignment',
os_user_info='identity_user_info',
os_user_role='role_assignment',
os_user='identity_user',
os_zone='dns_zone',
)
old_list = []
new_list = []
module_runtime = dict()
mapping = dict()
os.system('git checkout HEAD^1 meta/action_groups.yml plugins ci')
groups = yaml.safe_load(open('meta/action_groups.yml', 'r'))
# Do override keys first so that they're done in sequence
for module in list(overrides.keys()) + groups['os']:
old_list.append(module)
new_name = overrides.get(module, module.replace('os_', ''))
new_list.append(new_name)
mapping[module] = new_name
module_runtime[module] = dict(
deprecation=dict(
removal_date='TBD',
warning_text=(
'os_ prefixed module names are deprecated, use'
f' openstack.cloud.{new_name}'
),
),
redirect=f'openstack.cloud.{new_name}',
)
groups['os'] = sorted(new_list) + sorted(old_list)
groups['openstack'] = sorted(new_list)
yaml.dump(groups, open('meta/action_groups.yml', 'w'))
runtime = dict(plugin_runtime=dict(modules=module_runtime))
yaml.dump(runtime, open('meta/runtime.yml', 'w'))
def replace_content(content):
for old, new in mapping.items():
content = content.replace(
f'modules import {old}',
f'modules import {new}',
)
content = content.replace(
f'modules.{old}',
f'modules.{new}',
)
content = content.replace(
f'self.module = {old}',
f'self.module = {new}',
)
content = content.replace(
f'test_{old}',
f'test_{new}',
)
content = content.replace(
f'openstack.cloud.{old}',
f'openstack.cloud.{new}',
)
content = content.replace(
old,
f'openstack.cloud.{new}',
)
content = content.replace(
'module: openstack.cloud.',
'module: ',
)
return content
for todo_path in ('ci', 'plugins', 'tests'):
for (dirpath, dirnames, filenames) in os.walk(todo_path):
for filename in filenames:
contents = None
oldfile = os.path.join(dirpath, filename)
with open(oldfile, 'r') as infile:
contents = replace_content(infile.read())
with open(oldfile, 'w') as outfile:
outfile.write(contents)
if filename.endswith('.py'):
old_file_base = os.path.splitext(filename)[0]
if old_file_base in mapping:
new_file_base = mapping[old_file_base]
newfile = os.path.join(dirpath, f'{new_file_base}.py')
os.system(f'git mv {oldfile} {newfile}')
os.system(f'ln -s {new_file_base}.py {oldfile}')
os.system(f'git add {oldfile}')
continue
if not filename.startswith('test_'):
continue
old_file_module_base = old_file_base[5:]
new_file_base = mapping.get(old_file_module_base)
if not new_file_base:
continue
newfile = os.path.join(dirpath, f'test_{new_file_base}.py')
os.system(f'git mv {oldfile} {newfile}')
print("Edit tests/unit/modules/cloud/openstack/test_server.py by hand")