raise n_exc.InvalidInput(error_message=msg)
+def convert_to_int_if_not_none(data):
+ if data is not None:
+ return convert_to_int(data)
+ return data
+
+
def convert_kvp_str_to_list(data):
"""Convert a value of the form 'key=value' to ['key', 'value'].
--- /dev/null
+# Copyright 2015 VMware, Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+# Attribute Map
+ADV_SERVICE_PROVIDERS = 'advanced_service_providers'
+
+
+EXTENDED_ATTRIBUTES_2_0 = {
+ 'subnets': {
+ ADV_SERVICE_PROVIDERS:
+ {'allow_post': False,
+ 'allow_put': False,
+ 'is_visible': True,
+ 'default': None}}}
+
+
+class Advancedserviceproviders(object):
+ @classmethod
+ def get_name(cls):
+ return "Advanced Service Providers"
+
+ @classmethod
+ def get_alias(cls):
+ return "advanced-service-providers"
+
+ @classmethod
+ def get_description(cls):
+ return "Id of the advanced service providers attached to the subnet"
+
+ @classmethod
+ def get_namespace(cls):
+ return(
+ "http://docs.openstack.org/ext/neutron/"
+ "advanced_service_providers/api/v1.0")
+
+ @classmethod
+ def get_updated(cls):
+ return "2014-12-11T12:00:00-00:00"
+
+ def get_extended_resources(self, version):
+ if version == "2.0":
+ return EXTENDED_ATTRIBUTES_2_0
+ else:
+ return {}
--- /dev/null
+# Copyright 2015 VMware, Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from neutron.api.v2 import attributes
+
+# Attribute Map
+VNIC_INDEX = 'vnic_index'
+
+
+EXTENDED_ATTRIBUTES_2_0 = {
+ 'ports': {
+ VNIC_INDEX:
+ {'allow_post': True,
+ 'allow_put': True,
+ 'is_visible': True,
+ 'default': None,
+ 'convert_to': attributes.convert_to_int_if_not_none}}}
+
+
+class Vnicindex(object):
+ @classmethod
+ def get_name(cls):
+ return "VNIC Index"
+
+ @classmethod
+ def get_alias(cls):
+ return "vnic-index"
+
+ @classmethod
+ def get_description(cls):
+ return ("Enable a port to be associated with a VNIC index")
+
+ @classmethod
+ def get_namespace(cls):
+ return "http://docs.openstack.org/ext/neutron/vnic_index/api/v1.0"
+
+ @classmethod
+ def get_updated(cls):
+ return "2014-09-15T12:00:00-00:00"
+
+ def get_extended_resources(self, version):
+ if version == "2.0":
+ return EXTENDED_ATTRIBUTES_2_0
+ else:
+ return {}
self.assertEqual(attributes.convert_to_int(0), 0)
self.assertEqual(attributes.convert_to_int(1), 1)
+ def test_convert_to_int_if_not_none(self):
+ self.assertEqual(attributes.convert_to_int_if_not_none(-1), -1)
+ self.assertEqual(attributes.convert_to_int_if_not_none(0), 0)
+ self.assertEqual(attributes.convert_to_int_if_not_none(1), 1)
+ self.assertIsNone(attributes.convert_to_int_if_not_none(None))
+
def test_convert_to_int_str(self):
self.assertEqual(attributes.convert_to_int('4'), 4)
self.assertEqual(attributes.convert_to_int('6'), 6)