@@ -56,37 +56,35 @@ def create(neutron_client, args, **kwargs):
5656 }
5757 floatingip .update (ctx .node .properties [FLOATINGIP_OPENSTACK_TYPE ], ** args )
5858
59- # Do we have a relationship with a network?
60-
6159 network_from_rel = \
6260 get_openstack_id_of_single_connected_node_by_openstack_type (
6361 ctx , NETWORK_OPENSTACK_TYPE , True )
6462
65- # TODO: Should we check whether this is really an "external" network?
66-
67- network_name_provided = 'floating_network_name' in floatingip
68- network_id_provided = 'floating_network_id' in floatingip
69- provided = [network_name_provided ,
70- network_id_provided ,
71- network_from_rel is not None ].count (True )
72-
73- # At most one is expected.
74-
75- if provided > 1 :
76- raise NonRecoverableError (FLOATING_NETWORK_ERROR_MSG .format (
77- network_from_rel , floatingip ))
78-
79- if network_name_provided :
63+ if 'floating_network_id' in floatingip :
64+ ctx .logger .debug (
65+ 'Using floating ip network {0}.' .format (
66+ floatingip ['floating_network_id' ]))
67+ elif 'floating_network_name' in floatingip :
8068 floatingip ['floating_network_id' ] = neutron_client .cosmo_get_named (
8169 'network' , floatingip ['floating_network_name' ])['id' ]
70+ ctx .logger .debug (
71+ 'Using floating ip network {0} from name {1} provided.' .format (
72+ floatingip ['floating_network_id' ],
73+ floatingip ['floating_network_name' ]))
8274 del floatingip ['floating_network_name' ]
8375 elif network_from_rel :
8476 floatingip ['floating_network_id' ] = network_from_rel
85- elif not network_id_provided :
77+ ctx .logger .debug (
78+ 'Using floating ip network {0} from relationship.' .format (
79+ floatingip ['floating_network_id' ]))
80+ else :
8681 provider_context = provider (ctx )
8782 ext_network = provider_context .ext_network
8883 if ext_network :
8984 floatingip ['floating_network_id' ] = ext_network ['id' ]
85+ ctx .logger .debug (
86+ 'Using floating ip network {0} from provider context.' .format (
87+ floatingip ['floating_network_id' ]))
9088 else :
9189 raise NonRecoverableError (FLOATING_NETWORK_ERROR_MSG .format (
9290 None , None ))
0 commit comments