Merge pull request #38965 from toanju/2016.11

salt-cloud will use list_floating_ips for OpenStack
This commit is contained in:
Mike Place 2017-01-26 09:44:11 -07:00 committed by GitHub
commit ec690a0a12

View File

@ -851,19 +851,18 @@ def _assign_floating_ips(vm_, conn, kwargs):
pool = OpenStack_1_1_FloatingIpPool( pool = OpenStack_1_1_FloatingIpPool(
net['floating'], conn.connection net['floating'], conn.connection
) )
for idx in [pool.create_floating_ip()]: for idx in pool.list_floating_ips():
if idx.node_id is None: if idx.node_id is None:
floating.append(idx) floating.append(idx)
if not floating: if not floating:
# Note(pabelanger): We have no available floating IPs. try:
# For now, we raise an exception and exit. floating.append(pool.create_floating_ip())
# A future enhancement might be to allow salt-cloud except Exception as e:
# to dynamically allocate new address but that might raise SaltCloudSystemExit(
raise SaltCloudSystemExit( 'Floating pool \'{0}\' does not have any more '
'Floating pool \'{0}\' does not have any more ' 'please create some more or use a different '
'please create some more or use a different ' 'pool.'.format(net['floating'])
'pool.'.format(net['floating']) )
)
# otherwise, attempt to obtain list without specifying pool # otherwise, attempt to obtain list without specifying pool
# this is the same as 'nova floating-ip-list' # this is the same as 'nova floating-ip-list'
elif ssh_interface(vm_) != 'private_ips': elif ssh_interface(vm_) != 'private_ips':
@ -879,15 +878,13 @@ def _assign_floating_ips(vm_, conn, kwargs):
if idx.node_id is None: if idx.node_id is None:
floating.append(idx) floating.append(idx)
if not floating: if not floating:
# Note(pabelanger): We have no available floating IPs. try:
# For now, we raise an exception and exit. floating.append(pool.create_floating_ip())
# A future enhancement might be to allow salt-cloud to except Exception as e:
# dynamically allocate new address but that might be raise SaltCloudSystemExit(
# tricky to manage. 'There are no more floating IP addresses '
raise SaltCloudSystemExit( 'available, please create some more'
'There are no more floating IP addresses ' )
'available, please create some more'
)
except Exception as e: except Exception as e:
if str(e).startswith('404'): if str(e).startswith('404'):
pass pass