Fix adpoted server with duplicated network

One server only have one nic, but when we adopt this server into
senlin, the profile has 2 networks.

Change-Id: I05a2794257e40769501341e63c81dac5dca1b526
Closes-Bug: #1710802
This commit is contained in:
liyi 2017-08-15 15:00:48 +08:00
parent 0767f3a7fc
commit 32a602d0de
2 changed files with 20 additions and 3 deletions

View File

@ -1380,7 +1380,8 @@ class ServerProfile(base.Profile):
for network, interfaces in networks.items():
for intf in interfaces:
ip_type = intf.get('OS-EXT-IPS:type')
if ip_type == 'fixed':
net = {self.NETWORK: network}
if ip_type == 'fixed' and net not in net_list:
net_list.append({self.NETWORK: network})
spec[self.NETWORKS] = net_list

View File

@ -926,12 +926,26 @@ class TestNovaServerBasic(base.SenlinTestCase):
},
addresses={
"NET1": [{
"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:09:6f:d8",
"OS-EXT-IPS:type": "fixed",
"addr": "ADDR1"
"addr": "ADDR1_IPv4",
"version": 4
}, {
"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:09:6f:d8",
"OS-EXT-IPS:type": "fixed",
"addr": "ADDR1_IPv6",
"version": 6
}],
"NET2": [{
"OS-EXT-IPS-MAC:mac_addr": "aa:e6:3e:09:6f:db",
"OS-EXT-IPS:type": "fixed",
"addr": "ADDR2"
"addr": "ADDR2_IPv4",
"version": 4
}, {
"OS-EXT-IPS-MAC:mac_addr": "aa:e6:3e:09:6f:db",
"OS-EXT-IPS:type": "fixed",
"addr": "ADDR2_IPv6",
"version": 6
}],
},
security_groups=[{'name': 'GROUP1'}, {'name': 'GROUP2'}]
@ -952,6 +966,8 @@ class TestNovaServerBasic(base.SenlinTestCase):
self.assertEqual('IMAGE_ID', res['image'])
self.assertEqual('FAKE_KEY', res['key_name'])
self.assertEqual({'mkey': 'mvalue'}, res['metadata'])
self.assertEqual(2, len(res['networks']))
self.assertIn({'network': 'NET1'}, res['networks'])
self.assertIn({'network': 'NET2'}, res['networks'])
self.assertIn('GROUP1', res['security_groups'])