Example #1
0
 def _del_configure_fip_no_reserve(self, ri,floatingip,nat_server_name):
     nat_server_mapings = self._get_nat_server_mapping()
     fix_ip = ''
     flag = False
     for nat_server_maping in nat_server_mapings:
         if nat_server_maping['name'] == nat_server_name:
             fix_ip = nat_server_maping['inside_ip']
             flag = self._delete_floating_ips(ri, floatingip, nat_server_name)
             if flag:
                 nat_server_mapings.remove(nat_server_maping)
                 
     #count the last fip with the same inside ip
     count = 0
     for nat_server_maping in nat_server_mapings:
         if nat_server_maping['inside_ip'] == fix_ip:
             count = count + 1
             
     if count != 1 :
         return
     
     for nat_server_maping in nat_server_mapings:
         if nat_server_maping['inside_ip'] == fix_ip and nat_server_maping['name'] != nat_server_name and count == 1:
             nat_server_name = nat_server_maping['name']
             #del the old nat_server which with no_reverse
             body = ngfw_utils.get_nat_server_static_map_to_delete(nat_server_name)
             response = self.rest.rest_api('DELETE', ngfw_utils.NGFW_URL_NAT_SERVER, body, device_ip=self.director_for_fip)
             if response['status'] <= 300 and response['status'] >= 200: 
                 LOG.debug(_('_config__floating_ips_delete success (%s)'), nat_server_name)
                 #then add the new  nat_server without no_reverse
                 body = ngfw_utils.get_nat_server_static_map(nat_server_name, nat_server_maping['global_ip'], fix_ip, no_reverse=False)
                 response = self.rest.rest_api('POST', ngfw_utils.NGFW_URL_NAT_SERVER, body, device_ip=self.director_for_fip)
                 if response['status'] <= 300 and response['status'] >= 200: 
                     LOG.debug(_('_config_configure_fip_delete_no_reserve body (%s) (%s)'), nat_server_name, body)
Example #2
0
 def _add_configure_fip_no_reserve(self, fixedIP):
     nat_server_mapings = self._get_nat_server_mapping()
     
     for nat_server_maping in nat_server_mapings:
         if nat_server_maping['inside_ip'] == fixedIP:
             nat_server_name = nat_server_maping['name']
             #del the old nat_server which without no_reverse
             body = ngfw_utils.get_nat_server_static_map_to_delete(nat_server_name)
             response = self.rest.rest_api('DELETE', ngfw_utils.NGFW_URL_NAT_SERVER, body, device_ip=self.director_for_fip)
             if response['status'] <= 300 and response['status'] >= 200:
                 LOG.debug(_('_delete_floating_ips success (%s)'), nat_server_name)
                 #then add the new  nat_server with no_reverse
                 body = ngfw_utils.get_nat_server_static_map(nat_server_name, nat_server_maping['global_ip'], fixedIP, no_reverse=True)
                 response = self.rest.rest_api('POST', ngfw_utils.NGFW_URL_NAT_SERVER, body, device_ip=self.director_for_fip)
                 if response['status'] <= 300 and response['status'] >= 200: 
                     LOG.debug(_('_config_floating_ips body (%s) (%s)'), nat_server_name, body)
                     return True
     return False
Example #3
0
 def _delete_floating_ips(self, ri, floatingip, nat_name):
     body = ngfw_utils.get_nat_server_static_map_to_delete(nat_name)
     response = self.rest.rest_api('DELETE', ngfw_utils.NGFW_URL_NAT_SERVER, body, device_ip=self.director_for_fip)
     
     if response['status'] >= 400:
         LOG.error(_('_delete_floating_ips failed (%s)'), nat_name)
         if not floatingip:
             LOG.error(_('_delete_floating_ips failed and floatingip is None!!!'))
         return False
     
     fip_statuses = {floatingip:l3_constants.FLOATINGIP_STATUS_DOWN}
     self.plugin_rpc.update_floatingip_statuses(
         self.context, ri.router_id, fip_statuses)
     LOG.debug(_('update_floatingip_statuses success fip_id is:%s , '
             'fip_statuses is:%s'), floatingip, fip_statuses)
     
     LOG.debug(_('_config_floating_ips_delete success (%s)'), nat_name)
                 
     return True