diff --git a/neutron_lib/api/definitions/address_scope.py b/neutron_lib/api/definitions/address_scope.py index 6246a4ff8..04d2cccc4 100644 --- a/neutron_lib/api/definitions/address_scope.py +++ b/neutron_lib/api/definitions/address_scope.py @@ -50,13 +50,13 @@ RESOURCE_ATTRIBUTE_MAP = { 'type:string': db_constants.PROJECT_ID_FIELD_SIZE}, 'required_by_policy': True, 'is_visible': True}, - 'shared': {'allow_post': True, - 'allow_put': True, - 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, - 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: {'allow_post': True, + 'allow_put': True, + 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, + 'required_by_policy': True, + 'enforce_policy': True}, 'ip_version': {'allow_post': True, 'allow_put': False, 'convert_to': converters.convert_to_int, 'validate': {'type:values': [4, 6]}, diff --git a/neutron_lib/api/definitions/base.py b/neutron_lib/api/definitions/base.py index 9cdd1e416..ae24094dc 100644 --- a/neutron_lib/api/definitions/base.py +++ b/neutron_lib/api/definitions/base.py @@ -10,6 +10,9 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib import constants + + KNOWN_ATTRIBUTES = ( 'admin_state_up', 'allocation_pools', @@ -38,7 +41,7 @@ KNOWN_ATTRIBUTES = ( 'prefixes', 'prefixlen', 'project_id', - 'shared', + constants.SHARED, 'status', 'subnets', 'subnetpool_id', diff --git a/neutron_lib/api/definitions/firewall.py b/neutron_lib/api/definitions/firewall.py index a2967533e..fa08bb79d 100644 --- a/neutron_lib/api/definitions/firewall.py +++ b/neutron_lib/api/definitions/firewall.py @@ -12,6 +12,7 @@ from neutron_lib.api import converters from neutron_lib.api.definitions import constants as api_const +from neutron_lib import constants from neutron_lib.db import constants as db_const # The alias of the extension. @@ -59,11 +60,13 @@ RESOURCE_ATTRIBUTE_MAP = { 'firewall_policy_id': {'allow_post': False, 'allow_put': False, 'validate': {'type:uuid_or_none': None}, 'is_visible': True}, - 'shared': {'allow_post': True, 'allow_put': True, - 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': True, 'allow_put': True, + 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, 'required_by_policy': True, + 'enforce_policy': True + }, 'protocol': { 'allow_post': True, 'allow_put': True, 'is_visible': True, 'default': None, @@ -115,10 +118,12 @@ RESOURCE_ATTRIBUTE_MAP = { 'validate': {'type:string': db_const.DESCRIPTION_FIELD_SIZE}, 'is_visible': True, 'default': ''}, - 'shared': {'allow_post': True, 'allow_put': True, - 'default': False, 'enforce_policy': True, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, 'required_by_policy': True}, + constants.SHARED: { + 'allow_post': True, 'allow_put': True, + 'default': False, 'enforce_policy': True, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, 'required_by_policy': True + }, 'firewall_rules': {'allow_post': True, 'allow_put': True, 'validate': {'type:uuid_list': None}, 'convert_to': converters.convert_none_to_empty_list, @@ -147,10 +152,12 @@ RESOURCE_ATTRIBUTE_MAP = { 'convert_to': converters.convert_to_boolean}, 'status': {'allow_post': False, 'allow_put': False, 'is_visible': True}, - 'shared': {'allow_post': True, 'allow_put': True, - 'default': False, 'enforce_policy': True, - 'convert_to': converters.convert_to_boolean, - 'is_visible': False, 'required_by_policy': True}, + constants.SHARED: { + 'allow_post': True, 'allow_put': True, + 'default': False, 'enforce_policy': True, + 'convert_to': converters.convert_to_boolean, + 'is_visible': False, 'required_by_policy': True + }, 'firewall_policy_id': {'allow_post': True, 'allow_put': True, 'validate': {'type:uuid_or_none': None}, 'is_visible': True}, diff --git a/neutron_lib/api/definitions/firewall_v2.py b/neutron_lib/api/definitions/firewall_v2.py index a34261ae2..5d57e9402 100644 --- a/neutron_lib/api/definitions/firewall_v2.py +++ b/neutron_lib/api/definitions/firewall_v2.py @@ -13,6 +13,7 @@ from neutron_lib.api import converters from neutron_lib.api.definitions import constants as api_const from neutron_lib.api.definitions import port +from neutron_lib import constants from neutron_lib.db import constants as db_const # The alias of the extension. @@ -62,10 +63,12 @@ RESOURCE_ATTRIBUTE_MAP = { 'firewall_policy_id': {'allow_post': False, 'allow_put': False, 'validate': {'type:uuid_or_none': None}, 'is_visible': True}, - 'shared': {'allow_post': True, 'allow_put': True, - 'default': False, 'is_visible': True, - 'convert_to': converters.convert_to_boolean, - 'required_by_policy': True, 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': True, 'allow_put': True, + 'default': False, 'is_visible': True, + 'convert_to': converters.convert_to_boolean, + 'required_by_policy': True, 'enforce_policy': True + }, 'protocol': { 'allow_post': True, 'allow_put': True, 'is_visible': True, 'default': None, @@ -126,10 +129,12 @@ RESOURCE_ATTRIBUTE_MAP = { 'convert_to': converters.convert_to_boolean}, 'status': {'allow_post': False, 'allow_put': False, 'is_visible': True}, - 'shared': {'allow_post': True, 'allow_put': True, 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': True, 'allow_put': True, 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, 'required_by_policy': True, + 'enforce_policy': True + }, port.COLLECTION_NAME: {'allow_post': True, 'allow_put': True, 'validate': {'type:uuid_list': None}, 'convert_to': @@ -168,10 +173,12 @@ RESOURCE_ATTRIBUTE_MAP = { 'validate': {'type:string': db_const.DESCRIPTION_FIELD_SIZE}, 'is_visible': True, 'default': ''}, - 'shared': {'allow_post': True, 'allow_put': True, 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': True, 'allow_put': True, 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, 'required_by_policy': True, + 'enforce_policy': True + }, api_const.FIREWALL_RULES: {'allow_post': True, 'allow_put': True, 'validate': {'type:uuid_list': None}, 'convert_to': diff --git a/neutron_lib/api/definitions/metering.py b/neutron_lib/api/definitions/metering.py index 511f4ac50..7d14cf54e 100644 --- a/neutron_lib/api/definitions/metering.py +++ b/neutron_lib/api/definitions/metering.py @@ -13,6 +13,7 @@ # under the License. from neutron_lib.api import converters +from neutron_lib import constants from neutron_lib.db import constants as db_const @@ -51,7 +52,7 @@ RESOURCE_ATTRIBUTE_MAP = { 'type:string': db_const.PROJECT_ID_FIELD_SIZE}, 'is_visible': True }, - 'shared': { + constants.SHARED: { 'allow_post': True, 'allow_put': False, 'is_visible': True, 'default': False, 'convert_to': converters.convert_to_boolean diff --git a/neutron_lib/api/definitions/network.py b/neutron_lib/api/definitions/network.py index 1f2949a5c..464219ae0 100644 --- a/neutron_lib/api/definitions/network.py +++ b/neutron_lib/api/definitions/network.py @@ -12,6 +12,7 @@ from neutron_lib.api import converters from neutron_lib.api.definitions import subnet +from neutron_lib import constants from neutron_lib.db import constants as db_const @@ -54,13 +55,15 @@ RESOURCE_ATTRIBUTE_MAP = { 'type:string': db_const.PROJECT_ID_FIELD_SIZE}, 'required_by_policy': True, 'is_visible': True}, - 'shared': {'allow_post': True, - 'allow_put': True, - 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, - 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': True, + 'allow_put': True, + 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, + 'required_by_policy': True, + 'enforce_policy': True + } } } diff --git a/neutron_lib/api/definitions/qos.py b/neutron_lib/api/definitions/qos.py index 35a72573d..800a8fed1 100644 --- a/neutron_lib/api/definitions/qos.py +++ b/neutron_lib/api/definitions/qos.py @@ -59,7 +59,7 @@ RESOURCE_ATTRIBUTE_MAP = { 'allow_post': True, 'allow_put': True, 'is_visible': True, 'default': '', 'validate': {'type:string': db_const.NAME_FIELD_SIZE}}, - 'shared': { + constants.SHARED: { 'allow_post': True, 'allow_put': True, 'is_visible': True, 'default': False, 'convert_to': converters.convert_to_boolean diff --git a/neutron_lib/api/definitions/subnet.py b/neutron_lib/api/definitions/subnet.py index 2cea0d4f8..977b70cdc 100644 --- a/neutron_lib/api/definitions/subnet.py +++ b/neutron_lib/api/definitions/subnet.py @@ -100,13 +100,15 @@ RESOURCE_ATTRIBUTE_MAP = { 'validate': { 'type:values': constants.IPV6_MODES}, 'is_visible': True}, - 'shared': {'allow_post': False, - 'allow_put': False, - 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': False, - 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': False, + 'allow_put': False, + 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': False, + 'required_by_policy': True, + 'enforce_policy': True + } } } diff --git a/neutron_lib/api/definitions/subnetpool.py b/neutron_lib/api/definitions/subnetpool.py index 1cd207660..4d1187c17 100644 --- a/neutron_lib/api/definitions/subnetpool.py +++ b/neutron_lib/api/definitions/subnetpool.py @@ -79,13 +79,15 @@ RESOURCE_ATTRIBUTE_MAP = { 'is_visible': True, 'required_by_policy': True, 'enforce_policy': True}, - 'shared': {'allow_post': True, - 'allow_put': False, - 'default': False, - 'convert_to': converters.convert_to_boolean, - 'is_visible': True, - 'required_by_policy': True, - 'enforce_policy': True}, + constants.SHARED: { + 'allow_post': True, + 'allow_put': False, + 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True, + 'required_by_policy': True, + 'enforce_policy': True + } } } diff --git a/neutron_lib/constants.py b/neutron_lib/constants.py index 107611bbb..41fac8bf2 100644 --- a/neutron_lib/constants.py +++ b/neutron_lib/constants.py @@ -350,6 +350,8 @@ UUID_PATTERN = '-'.join([HEX_ELEM + '{8}', HEX_ELEM + '{4}', HEX_ELEM + '{4}', HEX_ELEM + '{4}', HEX_ELEM + '{12}']) +SHARED = 'shared' + ########################## # Device related constants diff --git a/neutron_lib/tests/unit/api/definitions/test_firewall_v2.py b/neutron_lib/tests/unit/api/definitions/test_firewall_v2.py index 5be45b542..cbd18fc8b 100644 --- a/neutron_lib/tests/unit/api/definitions/test_firewall_v2.py +++ b/neutron_lib/tests/unit/api/definitions/test_firewall_v2.py @@ -11,6 +11,7 @@ # under the License. from neutron_lib.api.definitions import firewall_v2 +from neutron_lib import constants from neutron_lib.tests.unit.api.definitions import base @@ -23,7 +24,7 @@ class FirewallDefinitionTestCase(base.DefinitionBaseTestCase): 'egress_firewall_policy_id', 'enabled', 'firewall_policy_id', 'firewall_rules', 'ingress_firewall_policy_id', 'ip_version', - 'ports', 'position', 'protocol', 'shared', + 'ports', 'position', 'protocol', constants.SHARED, 'source_ip_address', 'source_port', 'source_firewall_group_id', 'destination_firewall_group_id') diff --git a/releasenotes/notes/rehome-shared-const-d847b2e190122425.yaml b/releasenotes/notes/rehome-shared-const-d847b2e190122425.yaml new file mode 100644 index 000000000..43079aa66 --- /dev/null +++ b/releasenotes/notes/rehome-shared-const-d847b2e190122425.yaml @@ -0,0 +1,4 @@ +--- +features: + - The ``SHARED`` constant is now available in + ``neutron_lib.constants``.