def create_floatingip(self, context, floatingip): result = self._l3super.create_floatingip( self, context, floatingip) if result["port_id"]: neutron_router = self._get_router(context, result["router_id"]) db_fixed_port = self._get_port(context, result["port_id"]) fixed_prefix = self._retrieve_prefix_from_port(context, db_fixed_port) db_floating_port = neutron_router["gw_port"] floating_prefix = self._retrieve_prefix_from_port( context, db_floating_port) nat_info = utils.retrieve_nat_info(context, result, fixed_prefix, floating_prefix, neutron_router) state_change = operation.Operation( self._set_db_router_state, args=(context, neutron_router, p_con.Status.UPDATING)) self._dispatcher.dispatch_l3( d_context=embrane_ctx.DispatcherContext( p_con.Events.SET_NAT_RULE, neutron_router, context, state_change), args=(nat_info,)) return result
def create_floatingip(self, context, floatingip): result = self._l3super.create_floatingip( self, context, floatingip) if result["port_id"]: neutron_router = self._get_router(context, result["router_id"]) db_fixed_port = self._get_port(context, result["port_id"]) fixed_prefix = self._retrieve_prefix_from_port(context, db_fixed_port) db_floating_port = neutron_router["gw_port"] floating_prefix = self._retrieve_prefix_from_port( context, db_floating_port) nat_info = utils.retrieve_nat_info(context, result, fixed_prefix, floating_prefix, neutron_router) state_change = operation.Operation( self._set_db_router_state, args=(context, neutron_router, p_con.Status.UPDATING)) self._dispatcher.dispatch_l3( d_context=embrane_ctx.DispatcherContext( p_con.Events.SET_NAT_RULE, neutron_router, context, state_change), args=(nat_info,)) return result
def update_floatingip(self, context, id, floatingip): with context.session.begin(subtransactions=True): db_fip = self._l3super.get_floatingip(self, context, id) result = self._l3super.update_floatingip(self, context, id, floatingip) if db_fip["port_id"]: neutron_router = self._get_router(context, db_fip["router_id"]) fip_id = db_fip["id"] state_change = operation.Operation( self._set_db_router_state, args=(context, neutron_router, p_con.Status.UPDATING)) self._dispatcher.dispatch_l3( d_context=embrane_ctx.DispatcherContext( p_con.Events.RESET_NAT_RULE, neutron_router, context, state_change), args=(fip_id, )) if floatingip["floatingip"]["port_id"]: neutron_router = self._get_router(context, result["router_id"]) db_fixed_port = self._get_port(context, result["port_id"]) fixed_prefix = self._retrieve_prefix_from_port( context, db_fixed_port) db_floating_port = neutron_router["gw_port"] floating_prefix = self._retrieve_prefix_from_port( context, db_floating_port) nat_info = utils.retrieve_nat_info(context, result, fixed_prefix, floating_prefix, neutron_router) state_change = operation.Operation( self._set_db_router_state, args=(context, neutron_router, p_con.Status.UPDATING)) self._dispatcher.dispatch_l3( d_context=embrane_ctx.DispatcherContext( p_con.Events.SET_NAT_RULE, neutron_router, context, state_change), args=(nat_info, )) return result
def update_floatingip(self, context, id, floatingip): with context.session.begin(subtransactions=True): db_fip = self._l3super.get_floatingip(self, context, id) result = self._l3super.update_floatingip(self, context, id, floatingip) if db_fip["port_id"]: neutron_router = self._get_router(context, db_fip["router_id"]) fip_id = db_fip["id"] state_change = operation.Operation( self._set_db_router_state, args=(context, neutron_router, p_con.Status.UPDATING)) self._dispatcher.dispatch_l3( d_context=embrane_ctx.DispatcherContext( p_con.Events.RESET_NAT_RULE, neutron_router, context, state_change), args=(fip_id,)) if floatingip["floatingip"]["port_id"]: neutron_router = self._get_router(context, result["router_id"]) db_fixed_port = self._get_port(context, result["port_id"]) fixed_prefix = self._retrieve_prefix_from_port(context, db_fixed_port) db_floating_port = neutron_router["gw_port"] floating_prefix = self._retrieve_prefix_from_port( context, db_floating_port) nat_info = utils.retrieve_nat_info(context, result, fixed_prefix, floating_prefix, neutron_router) state_change = operation.Operation( self._set_db_router_state, args=(context, neutron_router, p_con.Status.UPDATING)) self._dispatcher.dispatch_l3( d_context=embrane_ctx.DispatcherContext( p_con.Events.SET_NAT_RULE, neutron_router, context, state_change), args=(nat_info,)) return result