From feb0ad027fbe105a9f291507dad0f84fff0ae13d Mon Sep 17 00:00:00 2001 From: Itxaka Date: Mon, 14 Dec 2015 12:55:57 +0100 Subject: [PATCH] Exclude networks with no subnets angular Nova doesnt allow to boot from a network which has no subnet, so we should not show those networks on the new instance launch angular panel. On the python launch instance this was solved in patch https://github.com/openstack/horizon/commit/1b6807baf385d6e5768f149fa8e4d07bc24ebff1 Change-Id: I8b94d45e95f8e22b579d04f6cec7345d947f8e12 Closes-Bug: #1237711 --- .../launch-instance/launch-instance-model.service.js | 5 ++++- .../launch-instance-model.service.spec.js | 11 ++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js index 9bdd42a677..dd3b348ef2 100644 --- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js +++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js @@ -401,7 +401,10 @@ if (data.data.items.length === 1) { model.newInstanceSpec.networks.push(data.data.items[0]); } - push.apply(model.networks, data.data.items); + push.apply(model.networks, + data.data.items.filter(function(net) { + return net.subnets.length > 0; + })); return data; } diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js index 15cb471af0..3de01e533c 100644 --- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js +++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js @@ -86,7 +86,11 @@ var neutronApi = { getNetworks: function() { - var networks = [ { id: 'net-1' }, { id: 'net-2' } ]; + var networks = [ + { id: 'net-1', subnets: [ { id: 'subnet1' } ] }, + { id: 'net-2', subnets: [ { id: 'subnet2' } ] }, + { id: 'net-3', subnets: []} + ]; var deferred = $q.defer(); deferred.resolve({ data: { items: networks } }); @@ -102,7 +106,8 @@ 'net-2': [ { name: 'port-3', device_owner: 'owner', fixed_ips: [], admin_state: 'DOWN' }, { name: 'port-4', device_owner: '', fixed_ips: [], admin_state: 'DOWN' } - ] + ], + 'net-3': [] }; var deferred = $q.defer(); @@ -471,7 +476,7 @@ ); it('should set a network by default if only one network is available', function () { - var networks = [ { id: 'net-1' } ]; + var networks = [ { id: 'net-1', subnets: [ { id: 'subnet1' } ] } ]; spyOn(neutronApi, 'getNetworks').and.callFake(function () { var deferred = $q.defer(); deferred.resolve({ data: { items: networks } });