Remove all of the os_ prefixes
The 2.10 transition has a routing.yml file that points each individual module from ansible/ansible to a new location. That means we can put: os_server: redirect: openstack.cloud.server into lib/ansible/config/routing.yml in ansible/ansible and have the result be the end user's playbooks still working with the old names while providing new names that are less ugly. This adds a routing file to our collection repo, as well as the script used to generate the new mapping. Change-Id: Ia5d18282b14ad0d86a347343be8bb477ae47130a
This commit is contained in:
parent
238387f2f8
commit
52905480b8
@ -3,10 +3,8 @@
|
||||
OpenStack Ansible Modules
|
||||
=========================
|
||||
|
||||
These are a set of modules for interacting with OpenStack as either an admin
|
||||
or an end user. If the module does not begin with ``os_``, it's either deprecated
|
||||
or soon to be. This document serves as developer coding guidelines for
|
||||
modules intended to be here.
|
||||
These are a set of modules for interacting with the OpenStack API as either an admin
|
||||
or an end user.
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
@ -14,15 +12,11 @@ modules intended to be here.
|
||||
Naming
|
||||
------
|
||||
|
||||
* All module names should start with ``os_``
|
||||
* This is a collection named ``openstack.cloud``. There is no need for further namespace prefixing.
|
||||
* Name any module that a cloud consumer would expect to use after the logical resource it manages:
|
||||
``os_server`` not ``os_nova``. This naming convention acknowledges that the end user does not care
|
||||
``server`` not ``nova``. This naming convention acknowledges that the end user does not care
|
||||
which service manages the resource - that is a deployment detail. For example cloud consumers may
|
||||
not know whether their floating IPs are managed by Nova or Neutron.
|
||||
* Name any module that a cloud admin would expect to use with the service and the resource:
|
||||
``os_keystone_domain``.
|
||||
* If the module is one that a cloud admin and a cloud consumer could both use,
|
||||
the cloud consumer rules apply.
|
||||
|
||||
Interface
|
||||
---------
|
||||
|
307
meta/routing.yml
Normal file
307
meta/routing.yml
Normal file
@ -0,0 +1,307 @@
|
||||
plugin_routing:
|
||||
modules:
|
||||
os_auth:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.auth
|
||||
redirect: openstack.cloud.auth
|
||||
os_client_config:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.config
|
||||
redirect: openstack.cloud.config
|
||||
os_coe_cluster:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.coe_cluster_template
|
||||
redirect: openstack.cloud.coe_cluster_template
|
||||
os_flavor_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.floating_ip
|
||||
redirect: openstack.cloud.floating_ip
|
||||
os_group:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_group
|
||||
redirect: openstack.cloud.identity_group
|
||||
os_group_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.image
|
||||
redirect: openstack.cloud.image
|
||||
os_image_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.image_info
|
||||
redirect: openstack.cloud.image_info
|
||||
os_ironic:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.baremetal_node
|
||||
redirect: openstack.cloud.baremetal_node
|
||||
os_ironic_inspect:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.baremetal_inspect
|
||||
redirect: openstack.cloud.baremetal_inspect
|
||||
os_ironic_node:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.keypair
|
||||
redirect: openstack.cloud.keypair
|
||||
os_keystone_domain:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.endpoint
|
||||
redirect: openstack.cloud.endpoint
|
||||
os_keystone_federation_protocol:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_role
|
||||
redirect: openstack.cloud.identity_role
|
||||
os_keystone_service:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.catalog_service
|
||||
redirect: openstack.cloud.catalog_service
|
||||
os_listener:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.lb_listener
|
||||
redirect: openstack.cloud.lb_listener
|
||||
os_loadbalancer:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.loadbalancer
|
||||
redirect: openstack.cloud.loadbalancer
|
||||
os_member:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.lb_member
|
||||
redirect: openstack.cloud.lb_member
|
||||
os_network:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.network
|
||||
redirect: openstack.cloud.network
|
||||
os_networks_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.networks_info
|
||||
redirect: openstack.cloud.networks_info
|
||||
os_nova_flavor:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.host_aggregate
|
||||
redirect: openstack.cloud.host_aggregate
|
||||
os_object:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.object
|
||||
redirect: openstack.cloud.object
|
||||
os_pool:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.lb_pool
|
||||
redirect: openstack.cloud.lb_pool
|
||||
os_port:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.port
|
||||
redirect: openstack.cloud.port
|
||||
os_port_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.port_info
|
||||
redirect: openstack.cloud.port_info
|
||||
os_project:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.project
|
||||
redirect: openstack.cloud.project
|
||||
os_project_access:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.project_access
|
||||
redirect: openstack.cloud.project_access
|
||||
os_project_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.project_info
|
||||
redirect: openstack.cloud.project_info
|
||||
os_quota:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.quota
|
||||
redirect: openstack.cloud.quota
|
||||
os_recordset:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.recordset
|
||||
redirect: openstack.cloud.recordset
|
||||
os_router:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.router
|
||||
redirect: openstack.cloud.router
|
||||
os_routers_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.routers_info
|
||||
redirect: openstack.cloud.routers_info
|
||||
os_security_group:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server
|
||||
redirect: openstack.cloud.server
|
||||
os_server_action:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_action
|
||||
redirect: openstack.cloud.server_action
|
||||
os_server_group:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_group
|
||||
redirect: openstack.cloud.server_group
|
||||
os_server_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_info
|
||||
redirect: openstack.cloud.server_info
|
||||
os_server_metadata:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_metadata
|
||||
redirect: openstack.cloud.server_metadata
|
||||
os_server_volume:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.server_volume
|
||||
redirect: openstack.cloud.server_volume
|
||||
os_stack:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.stack
|
||||
redirect: openstack.cloud.stack
|
||||
os_subnet:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.subnet
|
||||
redirect: openstack.cloud.subnet
|
||||
os_subnets_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.subnets_info
|
||||
redirect: openstack.cloud.subnets_info
|
||||
os_user:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.identity_user
|
||||
redirect: openstack.cloud.identity_user
|
||||
os_user_group:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.group_assignment
|
||||
redirect: openstack.cloud.group_assignment
|
||||
os_user_info:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
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: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.role_assignment
|
||||
redirect: openstack.cloud.role_assignment
|
||||
os_volume:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.volume
|
||||
redirect: openstack.cloud.volume
|
||||
os_volume_snapshot:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.volume_snapshot
|
||||
redirect: openstack.cloud.volume_snapshot
|
||||
os_zone:
|
||||
deprecation:
|
||||
removal_date: TBD
|
||||
warning_text: os_ prefixed module names are deprecated, use openstack.cloud.dns_zone
|
||||
redirect: openstack.cloud.dns_zone
|
@ -14,3 +14,5 @@ tests/unit/modules/conftest.py future-import-boilerplate
|
||||
tests/unit/modules/conftest.py metaclass-boilerplate
|
||||
tests/unit/modules/utils.py future-import-boilerplate
|
||||
tests/unit/modules/utils.py metaclass-boilerplate
|
||||
tools/groups-to-routing.py compile-2.7!skip
|
||||
tools/groups-to-routing.py compile-3.5!skip
|
||||
|
@ -14,3 +14,5 @@ tests/unit/modules/conftest.py future-import-boilerplate
|
||||
tests/unit/modules/conftest.py metaclass-boilerplate
|
||||
tests/unit/modules/utils.py future-import-boilerplate
|
||||
tests/unit/modules/utils.py metaclass-boilerplate
|
||||
tools/groups-to-routing.py compile-2.7!skip
|
||||
tools/groups-to-routing.py compile-3.5!skip
|
||||
|
128
tools/groups-to-routing.py
Normal file
128
tools/groups-to-routing.py
Normal file
@ -0,0 +1,128 @@
|
||||
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_routing = 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_routing[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'))
|
||||
|
||||
routing = dict(plugin_routing=dict(modules=module_routing))
|
||||
|
||||
yaml.dump(routing, open('meta/routing.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")
|
Loading…
x
Reference in New Issue
Block a user