code: def associate(self, floating_ip_id, port_id):
          
          # NOTE: In Neutron Horizon floating IP support, port_id is
          # "<port_id>_<ip_address>" format to identify multiple ports.
          pid, ip_address = port_id.split('_', 1)
          update_dict = {'port_id': pid,
                         'fixed_ip_address': ip_address}
          self.client.update_floatingip(floating_ip_id,
                                        {'floatingip': update_dict})
docs: Associates the floating IP to the port.
  
          ``port_id`` represents a VNIC of an instance.
          ``port_id`` argument is different from a normal neutron port ID.
          A value passed as ``port_id`` must be one of target_id returned by
          ``list_targets``, ``get_target_by_instance`` or
          ``list_targets_by_instance`` method.