diff --git a/magnum/api/controllers/v1/baymodel.py b/magnum/api/controllers/v1/baymodel.py index 711ae4743a..b70d2be3e3 100644 --- a/magnum/api/controllers/v1/baymodel.py +++ b/magnum/api/controllers/v1/baymodel.py @@ -82,6 +82,9 @@ class BayModel(base.APIBase): fixed_network = wtypes.StringType(min_length=1, max_length=255) """The fixed network name to attach the Bay""" + fixed_subnet = wtypes.StringType(min_length=1, max_length=255) + """The fixed subnet name to attach the Bay""" + network_driver = wtypes.StringType(min_length=1, max_length=255) """The name of the driver used for instantiating container networks""" @@ -178,6 +181,7 @@ class BayModel(base.APIBase): keypair_id='keypair1', external_network_id='ffc44e4a-2319-4062-bce0-9ae1c38b05ba', fixed_network='private', + fixed_subnet='private-subnet', network_driver='libnetwork', volume_driver='cinder', apiserver_port=8080, diff --git a/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py b/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py new file mode 100644 index 0000000000..7dfaffd40c --- /dev/null +++ b/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py @@ -0,0 +1,30 @@ +# 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. +"""Add fixed_subnet column to baymodel table + +Revision ID: e0653b2d5271 +Revises: 68ce16dfd341 +Create Date: 2016-06-29 14:14:37.862594 + +""" + +# revision identifiers, used by Alembic. +revision = 'e0653b2d5271' +down_revision = '68ce16dfd341' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.add_column('baymodel', sa.Column('fixed_subnet', + sa.String(length=255), nullable=True)) diff --git a/magnum/db/sqlalchemy/models.py b/magnum/db/sqlalchemy/models.py index 5b1f26e7d3..704fc89c9c 100644 --- a/magnum/db/sqlalchemy/models.py +++ b/magnum/db/sqlalchemy/models.py @@ -155,6 +155,7 @@ class BayModel(Base): keypair_id = Column(String(255)) external_network_id = Column(String(255)) fixed_network = Column(String(255)) + fixed_subnet = Column(String(255)) network_driver = Column(String(255)) volume_driver = Column(String(255)) dns_nameserver = Column(String(255)) diff --git a/magnum/objects/baymodel.py b/magnum/objects/baymodel.py index 012b527546..fe61e11e30 100644 --- a/magnum/objects/baymodel.py +++ b/magnum/objects/baymodel.py @@ -37,7 +37,7 @@ class BayModel(base.MagnumPersistentObject, base.MagnumObject, # Version 1.11: Added 'insecure_registry' field # Version 1.12: Added 'docker_storage_driver' field # Version 1.13: Added 'master_lb_enabled' field - VERSION = '1.13' + VERSION = '1.14' dbapi = dbapi.get_instance() @@ -54,6 +54,7 @@ class BayModel(base.MagnumPersistentObject, base.MagnumObject, 'dns_nameserver': fields.StringField(nullable=True), 'external_network_id': fields.StringField(nullable=True), 'fixed_network': fields.StringField(nullable=True), + 'fixed_subnet': fields.StringField(nullable=True), 'network_driver': fields.StringField(nullable=True), 'volume_driver': fields.StringField(nullable=True), 'apiserver_port': fields.IntegerField(nullable=True), diff --git a/magnum/tests/unit/db/utils.py b/magnum/tests/unit/db/utils.py index 12d2f9ae40..9850a717bf 100644 --- a/magnum/tests/unit/db/utils.py +++ b/magnum/tests/unit/db/utils.py @@ -32,6 +32,7 @@ def get_test_baymodel(**kw): 'external_network_id': kw.get('external_network_id', 'd1f02cfb-d27f-4068-9332-84d907cb0e2e'), 'fixed_network': kw.get('fixed_network', 'private'), + 'fixed_subnet': kw.get('fixed_network', 'private-subnet'), 'network_driver': kw.get('network_driver'), 'volume_driver': kw.get('volume_driver'), 'dns_nameserver': kw.get('dns_nameserver', '8.8.1.1'), diff --git a/magnum/tests/unit/objects/test_objects.py b/magnum/tests/unit/objects/test_objects.py index a80aa24259..361e113d67 100644 --- a/magnum/tests/unit/objects/test_objects.py +++ b/magnum/tests/unit/objects/test_objects.py @@ -363,7 +363,7 @@ class TestObject(test_base.TestCase, _TestObject): # http://docs.openstack.org/developer/magnum/objects.html object_data = { 'Bay': '1.5-a3b9292ef5d35175b93ca46ba3baec2d', - 'BayModel': '1.13-dd8deda88d7ee7e8911fb900e0f75a1e', + 'BayModel': '1.14-ae175b4aaba2c60df37cac63ef734853', 'Certificate': '1.0-2aff667971b85c1edf8d15684fd7d5e2', 'Container': '1.3-e2d9d2e8a8844d421148cd9fde6c6bd6', 'MyObj': '1.0-b43567e512438205e32f4e95ca616697',