]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Merge tag '2014.1_rc1' into debian/icehouse
authorThomas Goirand <thomas@goirand.fr>
Tue, 1 Apr 2014 16:24:00 +0000 (00:24 +0800)
committerThomas Goirand <thomas@goirand.fr>
Tue, 1 Apr 2014 16:24:00 +0000 (00:24 +0800)
Neutron icehouse-rc1 milestone (2014.1.rc1)

Conflicts:
neutron/openstack/common/rootwrap/__init__.py
neutron/plugins/ibm/common/constants.py
neutron/plugins/nicira/vshield/common/__init__.py
neutron/tests/unit/nicira/vshield/__init__.py
neutron/tests/unit/vmware/extensions/test_addresspairs.py
neutron/tests/unit/vmware/extensions/test_networkgw.py

Change-Id: I4c423fb197f97f6eed0616fb094e0a8a5e9e6de6

74 files changed:
1  2 
neutron/agent/linux/dhcp.py
neutron/locale/ar/LC_MESSAGES/neutron.po
neutron/locale/bg_BG/LC_MESSAGES/neutron.po
neutron/locale/bn_IN/LC_MESSAGES/neutron.po
neutron/locale/bs/LC_MESSAGES/neutron.po
neutron/locale/ca/LC_MESSAGES/neutron.po
neutron/locale/cs/LC_MESSAGES/neutron.po
neutron/locale/da/LC_MESSAGES/neutron.po
neutron/locale/de/LC_MESSAGES/neutron.po
neutron/locale/en_AU/LC_MESSAGES/neutron.po
neutron/locale/en_GB/LC_MESSAGES/neutron.po
neutron/locale/en_US/LC_MESSAGES/neutron.po
neutron/locale/es/LC_MESSAGES/neutron.po
neutron/locale/es_MX/LC_MESSAGES/neutron.po
neutron/locale/eu/LC_MESSAGES/neutron.po
neutron/locale/eu_ES/LC_MESSAGES/neutron.po
neutron/locale/fa/LC_MESSAGES/neutron.po
neutron/locale/fi_FI/LC_MESSAGES/neutron.po
neutron/locale/fil/LC_MESSAGES/neutron.po
neutron/locale/fr/LC_MESSAGES/neutron.po
neutron/locale/gl/LC_MESSAGES/neutron.po
neutron/locale/hi/LC_MESSAGES/neutron.po
neutron/locale/hr/LC_MESSAGES/neutron.po
neutron/locale/hu/LC_MESSAGES/neutron.po
neutron/locale/id/LC_MESSAGES/neutron.po
neutron/locale/is_IS/LC_MESSAGES/neutron.po
neutron/locale/it/LC_MESSAGES/neutron.po
neutron/locale/it_IT/LC_MESSAGES/neutron.po
neutron/locale/ja/LC_MESSAGES/neutron.po
neutron/locale/ka_GE/LC_MESSAGES/neutron.po
neutron/locale/km/LC_MESSAGES/neutron.po
neutron/locale/kn/LC_MESSAGES/neutron.po
neutron/locale/ko/LC_MESSAGES/neutron.po
neutron/locale/ko_KR/LC_MESSAGES/neutron.po
neutron/locale/ml_IN/LC_MESSAGES/neutron.po
neutron/locale/mr_IN/LC_MESSAGES/neutron.po
neutron/locale/ms/LC_MESSAGES/neutron.po
neutron/locale/nb/LC_MESSAGES/neutron.po
neutron/locale/ne/LC_MESSAGES/neutron.po
neutron/locale/neutron.pot
neutron/locale/nl_NL/LC_MESSAGES/neutron.po
neutron/locale/pa_IN/LC_MESSAGES/neutron.po
neutron/locale/pl_PL/LC_MESSAGES/neutron.po
neutron/locale/pt/LC_MESSAGES/neutron.po
neutron/locale/pt_BR/LC_MESSAGES/neutron.po
neutron/locale/ro/LC_MESSAGES/neutron.po
neutron/locale/ru/LC_MESSAGES/neutron.po
neutron/locale/ru_RU/LC_MESSAGES/neutron.po
neutron/locale/sk/LC_MESSAGES/neutron.po
neutron/locale/sl_SI/LC_MESSAGES/neutron.po
neutron/locale/sv/LC_MESSAGES/neutron.po
neutron/locale/sw_KE/LC_MESSAGES/neutron.po
neutron/locale/tl/LC_MESSAGES/neutron.po
neutron/locale/tl_PH/LC_MESSAGES/neutron.po
neutron/locale/tr_TR/LC_MESSAGES/neutron.po
neutron/locale/uk/LC_MESSAGES/neutron.po
neutron/locale/ur/LC_MESSAGES/neutron.po
neutron/locale/vi_VN/LC_MESSAGES/neutron.po
neutron/locale/zh_CN/LC_MESSAGES/neutron.po
neutron/locale/zh_HK/LC_MESSAGES/neutron.po
neutron/locale/zh_TW/LC_MESSAGES/neutron.po
neutron/plugins/bigswitch/plugin.py
neutron/plugins/ml2/drivers/mech_agent.py
neutron/plugins/nec/db/api.py
neutron/plugins/nec/drivers/pfc.py
neutron/plugins/nec/nec_plugin.py
neutron/plugins/vmware/dbexts/networkgw_db.py
neutron/tests/unit/cisco/test_network_plugin.py
neutron/tests/unit/db/vpn/test_db_vpnaas.py
neutron/tests/unit/hyperv/test_hyperv_utilsv2.py
neutron/tests/unit/nec/test_nec_plugin.py
neutron/tests/unit/nec/test_packet_filter.py
neutron/tests/unit/test_linux_dhcp.py
neutron/tests/unit/vmware/extensions/test_networkgw.py

index 08cedfdcf3c99cbf6fa380834c15451dd894e621,e650c00318d049f79320af5bcb97f43c59b6340e..9fbc5753ea7dd48473472da1c6a519ab89114947
@@@ -407,58 -401,112 +401,133 @@@ class Dnsmasq(DhcpLocalProcess)
          LOG.debug(_('Reloading allocations for network: %s'), self.network.id)
          self.device_manager.update(self.network)
  
+     def _iter_hosts(self):
+         """Iterate over hosts.
+         For each host on the network we yield a tuple containing:
+         (
+             port,  # a DictModel instance representing the port.
+             alloc,  # a DictModel instance of the allocated ip and subnet.
+             host_name,  # Host name.
+             name,  # Host name and domain name in the format 'hostname.domain'.
+         )
+         """
+         for port in self.network.ports:
+             for alloc in port.fixed_ips:
+                 hostname = 'host-%s' % alloc.ip_address.replace(
+                     '.', '-').replace(':', '-')
+                 fqdn = '%s.%s' % (hostname, self.conf.dhcp_domain)
+                 yield (port, alloc, hostname, fqdn)
      def _output_hosts_file(self):
-         """Writes a dnsmasq compatible hosts file."""
-         r = re.compile('[:.]')
+         """Writes a dnsmasq compatible dhcp hosts file.
+         The generated file is sent to the --dhcp-hostsfile option of dnsmasq,
+         and lists the hosts on the network which should receive a dhcp lease.
+         Each line in this file is in the form::
+             'mac_address,FQDN,ip_address'
+         IMPORTANT NOTE: a dnsmasq instance does not resolve hosts defined in
+         this file if it did not give a lease to a host listed in it (e.g.:
+         multiple dnsmasq instances on the same network if this network is on
+         multiple network nodes). This file is only defining hosts which
+         should receive a dhcp lease, the hosts resolution in itself is
+         defined by the `_output_addn_hosts_file` method.
+         """
          buf = six.StringIO()
+         filename = self.get_conf_file_name('host')
+         LOG.debug(_('Building host file: %s'), filename)
+         for (port, alloc, hostname, name) in self._iter_hosts():
+             set_tag = ''
+             # (dzyu) Check if it is legal ipv6 address, if so, need wrap
+             # it with '[]' to let dnsmasq to distinguish MAC address from
+             # IPv6 address.
+             ip_address = alloc.ip_address
+             if netaddr.valid_ipv6(ip_address):
+                 ip_address = '[%s]' % ip_address
+             LOG.debug(_('Adding %(mac)s : %(name)s : %(ip)s'),
+                       {"mac": port.mac_address, "name": name,
+                        "ip": ip_address})
+             if getattr(port, 'extra_dhcp_opts', False):
+                 if self.version >= self.MINIMUM_VERSION:
+                     set_tag = 'set:'
+                 buf.write('%s,%s,%s,%s%s\n' %
+                           (port.mac_address, name, ip_address,
+                            set_tag, port.id))
+             else:
+                 buf.write('%s,%s,%s\n' %
+                           (port.mac_address, name, ip_address))
+         utils.replace_file(filename, buf.getvalue())
+         LOG.debug(_('Done building host file %s'), filename)
+         return filename
+     def _read_hosts_file_leases(self, filename):
+         leases = set()
+         if os.path.exists(filename):
+             with open(filename) as f:
+                 for l in f.readlines():
+                     host = l.strip().split(',')
+                     leases.add((host[2], host[0]))
+         return leases
  
+     def _release_unused_leases(self):
+         filename = self.get_conf_file_name('host')
+         old_leases = self._read_hosts_file_leases(filename)
+         new_leases = set()
          for port in self.network.ports:
              for alloc in port.fixed_ips:
-                 name = 'host-%s.%s' % (r.sub('-', alloc.ip_address),
-                                        self.conf.dhcp_domain)
-                 set_tag = ''
-                 # (dzyu) Check if it is legal ipv6 address, if so, need wrap
-                 # it with '[]' to let dnsmasq to distinguish MAC address from
-                 # IPv6 address.
-                 ip_address = alloc.ip_address
-                 if netaddr.valid_ipv6(ip_address):
-                     ip_address = '[%s]' % ip_address
-                 if getattr(port, 'extra_dhcp_opts', False):
-                     if self.version >= self.MINIMUM_VERSION:
-                         set_tag = 'set:'
-                     buf.write('%s,%s,%s,%s%s\n' %
-                               (port.mac_address, name, ip_address,
-                                set_tag, port.id))
-                 else:
-                     buf.write('%s,%s,%s\n' %
-                               (port.mac_address, name, ip_address))
+                 new_leases.add((alloc.ip_address, port.mac_address))
  
-         name = self.get_conf_file_name('host')
-         utils.replace_file(name, buf.getvalue())
-         return name
+         for ip, mac in old_leases - new_leases:
+             self._release_lease(mac, ip)
+     def _output_addn_hosts_file(self):
+         """Writes a dnsmasq compatible additional hosts file.
+         The generated file is sent to the --addn-hosts option of dnsmasq,
+         and lists the hosts on the network which should be resolved even if
+         the dnsmaq instance did not give a lease to the host (see the
+         `_output_hosts_file` method).
+         Each line in this file is in the same form as a standard /etc/hosts
+         file.
+         """
+         buf = six.StringIO()
+         for (port, alloc, hostname, fqdn) in self._iter_hosts():
+             # It is compulsory to write the `fqdn` before the `hostname` in
+             # order to obtain it in PTR responses.
+             buf.write('%s\t%s %s\n' % (alloc.ip_address, fqdn, hostname))
+         addn_hosts = self.get_conf_file_name('addn_hosts')
+         utils.replace_file(addn_hosts, buf.getvalue())
+         return addn_hosts
  
 +    def _read_hosts_file_leases(self, filename):
 +        leases = set()
 +        if os.path.exists(filename):
 +            with open(filename) as f:
 +                for l in f.readlines():
 +                    host = l.strip().split(',')
 +                    leases.add((host[2], host[0]))
 +        return leases
 +
 +    def _release_unused_leases(self):
 +        filename = self.get_conf_file_name('host')
 +        old_leases = self._read_hosts_file_leases(filename)
 +
 +        new_leases = set()
 +        for port in self.network.ports:
 +            for alloc in port.fixed_ips:
 +                new_leases.add((alloc.ip_address, port.mac_address))
 +
 +        for ip, mac in old_leases - new_leases:
 +            self._release_lease(mac, ip)
 +
      def _output_opts_file(self):
          """Write a dnsmasq compatible options file."""
  
index fe1cedea7f7b8d070869c82ae8407a6dc682f603,ac8d02b05ca3f51ea8bac0af103045fbe702df95..66a6ffca979d7f527c2aebc6e03a8f1f79c11230
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 048af937f2b68b6a9a696e5a5cf05541f4ff565e,a1628f4f7bfed92f19b757ef13703353dfd1e83f..be385eb0b0923ee95edcccd59fbaef8f209eccc8
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index aaa7fc68e973b70f574a3b21a6c8dfad6dc7d44c,893a3c7a3497128103a0cb0161720e2e8b68a79f..697de866e800540da8e15005804fea0e4ae70bcc
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 8d09217f138338a138b5dcd5677b85fcadfd16d2,4e7215bfd7db4131c55e72452536be7cb302d63a..5f8297785e108aec7887ff591fbe82e826e88a90
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 07fdcb59e7cbe8ac493c566ce622f39448bb4f64,f7d44ea713c1bf2b25eef1fb4a6bc03268060f06..fea9d5c07d2f20e87908023ccf14c04e4946bca9
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index a21249c52debd7ccf5393770bfea4489f6b44516,a620868ca0458fa6b7b3bb865db2432396e36b7e..861a14c4d5d8f51a185bfa7b9b96d4d4c8bdb546
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 24107c7f31a8dd6f2979a9eade171375deeecf94,31272e27700e48a875c50fd0fbcd9b0e519818b5..af66aec0e77e96f6a8bb0d37d1420b724a979b75
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 16ba1135cb4b940aeb0e7b008567a59d9e7d69e8,94ae45c50b66f87ff3b1f544c0f1bc8f0325d465..4766b281e31ea00ed967cdb9851826e2dbe07cbc
@@@ -3808,26 -4057,16 +4057,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
- msgstr "Ursprüngliche Ausnahme wird gelöscht: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
+ msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -4166,31 -4405,31 +4420,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
- msgstr "%s nicht in gültigen Prioritäten"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
++msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- "Problem %(e)s bei Versuch, an Benachrichtigungssystem zu senden. "
- "Payload=%(payload)s"
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
- #: neutron/openstack/common/notifier/api.py:171
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- "Benachrichtigung %s konnte nicht geladen werden. Diese Benachrichtigungen"
- " werden nicht gesendet."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
 +
- "'rabbit_notifier' ist nun veraltet. Verwenden Sie stattdessen "
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
++
++#: neutron/openstack/common/middleware/catch_errors.py:40
++#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr "%s nicht in gültigen Prioritäten"
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ "Problem %(e)s bei Versuch, an Benachrichtigungssystem zu senden. "
+ "Payload=%(payload)s"
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ "Benachrichtigung %s konnte nicht geladen werden. Diese Benachrichtigungen"
+ " werden nicht gesendet."
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ "'rabbit_notifier' ist nun veraltet. Verwenden Sie stattdessen "
  "'rpc_notifier'."
  
  #: neutron/openstack/common/notifier/rpc_notifier.py:45
@@@ -4903,17 -5177,17 +5231,21 @@@ msgstr "
  #, python-format
  msgid "Updating router rules to %s"
  msgstr ""
++"In dieser Plug-in-Version wird das Einstellen von 'admin_state_up=False' "
++"nicht unterstützt. Einstellungen werden ignoriert für Ressource: %s"
  
- #: neutron/plugins/bigswitch/servermanager.py:67
+ #: neutron/plugins/bigswitch/servermanager.py:77
  #, python-format
  msgid "Error in REST call to remote network controller: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/bigswitch/servermanager.py:95
+ #: neutron/plugins/bigswitch/servermanager.py:116
  msgid "Couldn't retrieve capabilities. Newer API calls won't be supported."
  msgstr ""
++"Der Betriebsstatus wird intern vom Plug-in eingestellt. Die Einstellung "
++"'status=%s' wird ignoriert."
  
- #: neutron/plugins/bigswitch/servermanager.py:97
+ #: neutron/plugins/bigswitch/servermanager.py:118
  #, python-format
  msgid "The following capabilities were received for %(server)s: %(cap)s"
  msgstr ""
@@@ -4976,131 -5276,141 +5334,288 @@@ msgid "
  "%(response)s"
  msgstr ""
  
- #: neutron/plugins/bigswitch/servermanager.py:306
- #, python-format
- msgid "Unable to delete remote intf: %s"
+ #: neutron/plugins/bigswitch/servermanager.py:427
+ #, python-format
+ msgid ""
+ "ServerProxy: Error details: status=%(status)d, reason=%(reason)r, "
+ "ret=%(ret)s, data=%(data)r"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:434
+ #, python-format
+ msgid "ServerProxy: %(action)s failure for all servers: %(server)r"
+ msgstr "ServerProxy: Fehler bei %(action)s für alle Server: %(server)r"
+ #: neutron/plugins/bigswitch/servermanager.py:457
+ #, python-format
+ msgid ""
+ "NeutronRestProxyV2: Received and ignored error code %(code)s on "
+ "%(action)s action to resource %(resource)s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:467
+ #, python-format
+ msgid "Unable to create remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:473
+ #, python-format
+ msgid "Unable to update remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:478
+ #, python-format
+ msgid "Unable to delete remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:484
+ #, python-format
+ msgid "Unable to add router interface: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:489
+ #, python-format
+ msgid "Unable to delete remote intf: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:495
+ #, python-format
+ msgid "Unable to create remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:501
+ #: neutron/plugins/bigswitch/servermanager.py:506
+ #, python-format
+ msgid "Unable to update remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:515
+ #, python-format
+ msgid "No device MAC attached to port %s. Skipping notification to controller."
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:520
+ #, python-format
+ msgid "Unable to create remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:525
+ #, python-format
+ msgid "Unable to delete remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:535
+ #, python-format
+ msgid "Unable to create floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:540
+ #, python-format
+ msgid "Unable to update floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:545
+ #, python-format
+ msgid "Unable to delete floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:550
+ msgid "Backend server(s) do not support automated consitency checks."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
+ msgid "Port update received"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
+ #, python-format
+ msgid "Port %s is not present on this host."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
+ #, python-format
+ msgid "Port %s found. Refreshing firewall."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
+ msgid "Agent loop has new device"
+ msgstr "Agentenschleife umfasst ein neues Gerät"
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
+ #: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:405
+ #: neutron/plugins/nec/agent/nec_neutron_agent.py:222
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:156
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
+ msgid "Error in agent event loop"
+ msgstr "Fehler in Agentenereignisschleife"
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
+ #: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:226
+ #: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:1007
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1281
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
+ #, python-format
+ msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
+ msgstr ""
+ "Schleifeniteration hat Intervall (%(polling_interval)s contra "
+ "%(elapsed)s) überschritten!"
+ #: neutron/plugins/bigswitch/db/consistency_db.py:55
+ #, python-format
+ msgid "Consistency hash for group %(hash_id)s updated to %(hash)s"
+ msgstr ""
++#: neutron/plugins/bigswitch/servermanager.py:196
++msgid "ServerPool: initialization done"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:239
++#, python-format
++msgid "Received an empty port ID for host_id '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:42
++#, python-format
++msgid "Received an empty host_id for port '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:44
++#, python-format
++msgid "Logging port %(port)s on host_id %(host)s"
++msgstr ""
++
 +#: neutron/plugins/bigswitch/servermanager.py:245
 +#, python-format
 +msgid ""
 +"ServerProxy: Error details: status=%(status)d, reason=%(reason)r, "
 +"ret=%(ret)s, data=%(data)r"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:252
 +#, python-format
 +msgid "ServerProxy: %(action)s failure for all servers: %(server)r"
 +msgstr "ServerProxy: Fehler bei %(action)s für alle Server: %(server)r"
 +
 +#: neutron/plugins/bigswitch/servermanager.py:274
 +#, python-format
 +msgid ""
 +"NeutronRestProxyV2: Received and ignored error code %(code)s on "
 +"%(action)s action to resource %(resource)s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:284
 +#, python-format
 +msgid "Unable to create remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:290
 +#, python-format
 +msgid "Unable to update remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:295
 +#, python-format
 +msgid "Unable to delete remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:301
 +#, python-format
 +msgid "Unable to add router interface: %s"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:312
- #, python-format
- msgid "Unable to create remote network: %s"
++#: neutron/plugins/brocade/NeutronPlugin.py:66
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:33
++msgid "The address of the host to SSH to"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:318
- #: neutron/plugins/bigswitch/servermanager.py:323
- #, python-format
- msgid "Unable to update remote network: %s"
++#: neutron/plugins/brocade/NeutronPlugin.py:68
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:35
++msgid "The SSH username to use"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:342
++#: neutron/plugins/brocade/NeutronPlugin.py:70
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:37
++msgid "The SSH password to use"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:332
 +#, python-format
 +msgid "No device MAC attached to port %s. Skipping notification to controller."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:337
 +#, python-format
 +msgid "Unable to create remote port: %s"
 +msgstr ""
 +
++#: neutron/plugins/brocade/NeutronPlugin.py:134
++#: neutron/plugins/hyperv/rpc_callbacks.py:55
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:89
++#: neutron/plugins/mlnx/rpc_callbacks.py:76
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:96
 +#, python-format
 +msgid "Unable to delete remote port: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:352
 +#, python-format
 +msgid "Unable to create floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:357
 +#, python-format
 +msgid "Unable to update floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:362
 +#, python-format
 +msgid "Unable to delete floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
 +msgid "Port update received"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
 +#, python-format
 +msgid "Port %s is not present on this host."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
 +#, python-format
 +msgid "Port %s found. Refreshing firewall."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
 +msgid "Agent loop has new device"
 +msgstr "Agentenschleife umfasst ein neues Gerät"
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
 +#: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:401
 +#: neutron/plugins/nec/agent/nec_neutron_agent.py:222
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
 +msgid "Error in agent event loop"
 +msgstr "Fehler in Agentenereignisschleife"
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
 +#: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:201
 +#: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:975
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
 +#: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1236
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
 +#, python-format
 +msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
 +msgstr ""
 +"Schleifeniteration hat Intervall (%(polling_interval)s contra "
 +"%(elapsed)s) überschritten!"
 +
  #: neutron/plugins/bigswitch/db/porttracker_db.py:36
  msgid "No host_id in port request to track port location."
  msgstr ""
@@@ -8883,6 -9239,36 +9441,38 @@@ msgstr "
  msgid "HTTP timeout in seconds."
  msgstr ""
  
+ #: neutron/plugins/ml2/drivers/mechanism_odl.py:47
+ msgid "HTTP URL of OpenDaylight REST interface."
+ msgstr ""
+ #: neutron/plugins/ml2/drivers/mechanism_odl.py:55
+ msgid "Tomcat session timeout in minutes."
+ msgstr ""
+ #: neutron/plugins/ml2/drivers/mechanism_odl.py:278
+ #, python-format
+ msgid "%(object_type)s not found (%(obj_id)s)"
+ msgstr ""
+ #: neutron/plugins/ml2/drivers/mechanism_odl.py:315
+ #, python-format
+ msgid "ODL-----> sending URL (%s) <-----ODL"
+ msgstr ""
+ #: neutron/plugins/ml2/drivers/mechanism_odl.py:316
+ #, python-format
+ msgid "ODL-----> sending JSON (%s) <-----ODL"
+ msgstr ""
++"Erstellung von Teilschnittstelle %(interface)s für VLAN %(vlan_id)s auf "
++"Schnittstelle %(physical_interface)s"
+ #: neutron/plugins/ml2/drivers/mechanism_odl.py:339
+ #, python-format
+ msgid ""
+ "Refusing to bind port for segment ID %(id)s, segment %(seg)s, phys net "
+ "%(physnet)s, and network type %(nettype)s"
+ msgstr ""
  #: neutron/plugins/ml2/drivers/type_flat.py:30
  msgid ""
  "List of physical_network names with which flat networks can be created. "
@@@ -8938,13 -9324,13 +9528,17 @@@ msgid "
  "Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges of "
  "GRE tunnel IDs that are available for tenant network allocation"
  msgstr ""
++"Starten von Brücke %(bridge_name)s für Teilschnittstelle %(interface)s "
++"abgeschlossen"
  
- #: neutron/plugins/ml2/drivers/type_gre.py:84
+ #: neutron/plugins/ml2/drivers/type_gre.py:85
  #, python-format
  msgid "Reserving specific gre tunnel %s from pool"
  msgstr ""
++"Hinzufügen von %(interface)s zu %(bridge_name)s nicht möglich! Ausnahme: "
++"%(e)s"
  
- #: neutron/plugins/ml2/drivers/type_gre.py:88
+ #: neutron/plugins/ml2/drivers/type_gre.py:89
  #, python-format
  msgid "Reserving specific gre tunnel %s outside pool"
  msgstr ""
@@@ -9009,14 -9395,14 +9603,18 @@@ msgstr "
  #, python-format
  msgid "Invalid tunnel ID range: '%(range)s' - %(e)s. Agent terminated!"
  msgstr ""
++"Entfernen von Einheit %(interface_name)s von Brücke %(bridge_name)s "
++"abgeschlossen"
  
  #: neutron/plugins/ml2/drivers/type_tunnel.py:65
  #, python-format
  msgid "%(type)s ID ranges: %(range)s"
  msgstr ""
++"Einheit %(interface_name)s kann nicht von Brücke %(bridge_name)s entfernt"
++" werden, da nicht vorhanden"
  
  #: neutron/plugins/ml2/drivers/type_tunnel.py:71
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:429
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:430
  #, python-format
  msgid "provider:physical_network specified for %s network"
  msgstr ""
@@@ -10612,39 -11267,306 +11479,337 @@@ msgstr "
  msgid "Number of seconds to retry acquiring an Open vSwitch datapath"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:209
+ #: neutron/plugins/oneconvergence/plugin.py:243
+ msgid "Failed to create subnet, deleting it from neutron"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/plugin.py:307
  #, python-format
- msgid "Skipping unreasonable tunnel ID range %(tun_min)s:%(tun_max)s"
+ msgid "Deleting newly created neutron port %s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/plugin.py:377
+ msgid "Failed to create floatingip"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/plugin.py:416
+ msgid "Failed to create router"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:151
+ msgid "Port list is updated"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:158
+ msgid "AGENT looping....."
+ msgstr ""
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:171
+ msgid "NVSD Agent initialized successfully, now running... "
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:26
+ msgid "NVSD Controller IP address"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:29
+ msgid "NVSD Controller Port number"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:32
+ msgid "NVSD Controller username"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:35
+ msgid "NVSD Controller password"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:38
+ msgid "NVSD controller REST API request timeout in seconds"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:40
+ msgid "Number of login retries to NVSD controller"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/config.py:45
+ msgid "integration bridge"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:23
+ #, python-format
+ msgid "An unknown nvsd plugin exception occurred: %(reason)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:27
+ #: neutron/plugins/vmware/api_client/exception.py:68
+ msgid "The request has timed out."
+ msgstr "Die Anforderung hat das zulässige Zeitlimit überschritten."
+ #: neutron/plugins/oneconvergence/lib/exception.py:31
+ msgid "Invalid access credentials to the Server."
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:35
+ #, python-format
+ msgid "A resource is not found: %(reason)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:39
+ #, python-format
+ msgid "Request sent to server is invalid: %(reason)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:43
+ #, python-format
+ msgid "Internal Server Error: %(reason)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:47
+ msgid "Connection is closed by the server."
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:51
+ #, python-format
+ msgid "The request is forbidden access to the resource: %(reason)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/exception.py:55
+ #, python-format
+ msgid "Internal Server Error from NVSD controller: %(reason)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:55
+ #, python-format
+ msgid "Could not create a %(resource)s under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:59
+ #, python-format
+ msgid "Failed to %(method)s %(resource)s id=%(resource_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:65
+ #, python-format
+ msgid "Failed to %(method)s %(resource)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:109
+ #, python-format
+ msgid "Network %(id)s created under tenant %(tenant_id)s"
+ msgstr ""
++"Bereitstellung von VLAN-Netz für net-id=%(net_uuid)s nicht möglich - "
++"keine Brücke für 'physical_network' %(physical_network)s"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:126
+ #, python-format
+ msgid "Network %(id)s updated under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:147
+ #, python-format
+ msgid "Network %(id)s deleted under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:160
+ #, python-format
+ msgid "Subnet %(id)s created under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:174
+ #, python-format
+ msgid "Subnet %(id)s deleted under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:190
+ #, python-format
+ msgid "Subnet %(id)s updated under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:222
+ #, python-format
+ msgid "Port %(id)s created under tenant %(tenant_id)s"
+ msgstr ""
++"Brücke %(bridge)s für physisches Netz %(physical_network)s ist nicht "
++"vorhanden. Agent beendet!"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:246
+ #, python-format
+ msgid "Port %(id)s updated under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:259
+ #, python-format
+ msgid "Port %(id)s deleted under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:281
+ #, python-format
+ msgid "Flatingip %(id)s created under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:298
+ #, python-format
+ msgid "Flatingip %(id)s updated under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:312
+ #, python-format
+ msgid "Flatingip %(id)s deleted under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:325
+ #, python-format
+ msgid "Router %(id)s created under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:341
+ #, python-format
+ msgid "Router %(id)s updated under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:351
+ #, python-format
+ msgid "Router %(id)s deleted under tenant %(tenant_id)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:81
+ #, python-format
+ msgid "Unable to connect to NVSD controller. Exiting after %(retries)s attempts"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:91
+ #, python-format
+ msgid "Login Failed: %s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:92
+ #, python-format
+ msgid "Unable to establish connection with Controller %s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:94
+ msgid "Retrying after 1 second..."
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:98
+ #, python-format
+ msgid "Login Successful %(uri)s %(status)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:102
+ #, python-format
+ msgid "AuthToken = %s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:104
+ msgid "login failed"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:112
+ msgid "No Token, Re-login"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:129
+ #, python-format
+ msgid "request: %(method)s %(uri)s successful"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:136
+ #, python-format
+ msgid "request: Request failed from Controller side :%s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:141
+ #, python-format
+ msgid "Response is Null, Request timed out: %(method)s to %(uri)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:153
+ #, python-format
+ msgid "Request %(method)s %(uri)s body = %(body)s failed with status %(status)s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:157
+ #, python-format
+ msgid "%s"
  msgstr ""
 +"Unverhältnismäßiger Tunnel-ID-Bereich %(tun_min)s:%(tun_max)s wird "
 +"übersprungen"
 +
 +#: neutron/plugins/openvswitch/ovs_db_v2.py:257
 +#, python-format
 +msgid "Reserving tunnel %s from pool"
 +msgstr "Reservieren von Tunnel %s aus Pool"
 +
 +#: neutron/plugins/openvswitch/ovs_db_v2.py:272
 +#, python-format
 +msgid "Reserving specific tunnel %s from pool"
 +msgstr "Reservieren eines bestimmten Tunnels %s aus Pool"
 +
 +#: neutron/plugins/openvswitch/ovs_db_v2.py:275
 +#, python-format
 +msgid "Reserving specific tunnel %s outside pool"
 +msgstr "Reservieren eines bestimmten Tunnels %s außerhalb des Pools"
 +
 +#: neutron/plugins/openvswitch/ovs_db_v2.py:298
 +#, python-format
 +msgid "Releasing tunnel %s outside pool"
 +msgstr "Freigabe von Tunnel %s außerhalb des Pools"
 +
 +#: neutron/plugins/openvswitch/ovs_db_v2.py:300
 +#, python-format
 +msgid "Releasing tunnel %s to pool"
 +msgstr "Freigabe von Tunnel %s an Pool"
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:302
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:161
+ #, python-format
+ msgid "%(method)s to %(url)s, unexpected response code: %(status)d"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:167
+ #, python-format
+ msgid "Request failed from Controller side with Status=%s"
+ msgstr ""
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:171
+ #, python-format
+ msgid "Success: %(method)s %(url)s status=%(status)s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:210
+ #, python-format
+ msgid "Skipping unreasonable tunnel ID range %(tun_min)s:%(tun_max)s"
+ msgstr ""
+ "Unverhältnismäßiger Tunnel-ID-Bereich %(tun_min)s:%(tun_max)s wird "
+ "übersprungen"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:258
+ #, python-format
+ msgid "Reserving tunnel %s from pool"
+ msgstr "Reservieren von Tunnel %s aus Pool"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:273
+ #, python-format
+ msgid "Reserving specific tunnel %s from pool"
+ msgstr "Reservieren eines bestimmten Tunnels %s aus Pool"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:276
+ #, python-format
+ msgid "Reserving specific tunnel %s outside pool"
+ msgstr "Reservieren eines bestimmten Tunnels %s außerhalb des Pools"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:299
+ #, python-format
+ msgid "Releasing tunnel %s outside pool"
+ msgstr "Freigabe von Tunnel %s außerhalb des Pools"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:301
+ #, python-format
+ msgid "Releasing tunnel %s to pool"
+ msgstr "Freigabe von Tunnel %s an Pool"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:303
  #, python-format
  msgid "tunnel_id %s not found"
  msgstr "'tunnel_id' %s nicht gefunden"
@@@ -11045,28 -11973,15 +12216,17 @@@ msgstr "
  msgid "PLUMgrid Library: update_floatingip() called"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:520
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:522
  msgid "Neutron PLUMgrid Director: delete_floatingip() called"
  msgstr ""
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:533
- msgid "PLUMgrid Library: delete_floatingip() called"
- msgstr ""
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:559
- #, python-format
- msgid ""
- "Network with admin_state_up=False are not supported yet by this plugin. "
- "Ignoring setting for network %s"
- msgstr ""
 +"Netze, für die 'admin_state_up=False' gilt, werden von diesem Plug-in "
 +"noch nicht unterstützt. Einstellungen für Netz %s werden ignoriert"
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:563
- msgid "Network Admin State Validation Failed: "
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:535
+ msgid "PLUMgrid Library: delete_floatingip() called"
  msgstr ""
  
- #: neutron/plugins/ryu/ryu_neutron_plugin.py:63
+ #: neutron/plugins/ryu/ryu_neutron_plugin.py:64
  #, python-format
  msgid "get_ofp_rest_api: %s"
  msgstr "get_ofp_rest_api: %s"
@@@ -11320,44 -12235,44 +12480,101 @@@ msgstr "
  "%(method)s an %(url)s, unerwarteter Antwortcode: %(status)d (Inhalt = "
  "'%(body)s')"
  
- #: neutron/plugins/vmware/api_client/client.py:141
- msgid "Unable to determine NSX version. Plugin might not work as expected."
++#: neutron/plugins/vmware/api_client/base.py:148
++#, python-format
++msgid "[%(rid)d] Connection returned in bad state, reconnecting to %(conn)s"
 +msgstr ""
 +
- #: neutron/plugins/vmware/api_client/eventlet_client.py:144
++#: neutron/plugins/vmware/api_client/base.py:173
 +#, python-format
 +msgid "Login error \"%s\""
 +msgstr ""
 +
- #: neutron/plugins/vmware/api_client/eventlet_client.py:149
++#: neutron/plugins/vmware/api_client/base.py:183
 +#, python-format
 +msgid "Saving new authentication cookie '%s'"
 +msgstr "Speichern von neuem Authentifizierungscookie '%s'"
 +
- #: neutron/plugins/vmware/api_client/eventlet_request.py:102
- msgid "Joining an invalid green thread"
- msgstr "Verknüpfen von ungültigem grünem Thread"
++#: neutron/plugins/vmware/api_client/base.py:194
++msgid "Waiting for auth to complete"
++msgstr "Warten auf Abschluss von Authentifizierung"
 +
- #: neutron/plugins/vmware/api_client/eventlet_request.py:122
++#: neutron/plugins/vmware/api_client/base.py:236
 +#, python-format
 +msgid "[%d] Request timeout."
 +msgstr "[%d] Anforderungs-Zeitlimitüberschreitung."
 +
 +#: neutron/plugins/vmware/api_client/eventlet_request.py:123
 +msgid "Request timeout"
 +msgstr "Anforderungs-Zeitlimitüberschreitung"
 +
- #: neutron/plugins/vmware/api_client/eventlet_request.py:145
++#: neutron/plugins/vmware/api_client/client.py:93
 +#, python-format
- msgid "[%(rid)d] Completed request '%(method)s %(url)s': %(status)s"
- msgstr "[%(rid)d] Anforderung '%(method)s %(url)s' abgeschlossen: %(status)s"
++msgid "Request returns \"%s\""
++msgstr ""
 +
- #: neutron/plugins/vmware/api_client/eventlet_request.py:152
++#: neutron/plugins/vmware/api_client/client.py:106
 +#, python-format
- msgid "[%(rid)d] Error while handling request: %(req)s"
- msgstr "[%(rid)d] Fehler bei Verarbeitung von Anforderung: %(req)s"
++msgid "Request timed out: %(method)s to %(url)s"
++msgstr "Anforderung hat zulässiges Zeitlimit überschritten: %(method)s an %(url)s"
++
++#: neutron/plugins/vmware/api_client/client.py:117
++#, python-format
++msgid "Received error code: %s"
++msgstr "Empfangener Fehlercode: %s"
++
++#: neutron/plugins/vmware/api_client/client.py:118
++#, python-format
++msgid "Server Error Message: %s"
++msgstr "Serverfehlernachricht: %s"
++
++#: neutron/plugins/vmware/api_client/client.py:124
++#, python-format
++msgid ""
++"%(method)s to %(url)s, unexpected response code: %(status)d (content = "
++"'%(body)s')"
++msgstr ""
++"%(method)s an %(url)s, unerwarteter Antwortcode: %(status)d (Inhalt = "
++"'%(body)s')"
++
+ #: neutron/plugins/vmware/api_client/client.py:141
+ msgid "Unable to determine NSX version. Plugin might not work as expected."
+ msgstr ""
+ #: neutron/plugins/vmware/api_client/eventlet_client.py:144
+ #, python-format
+ msgid "Login error \"%s\""
+ msgstr ""
+ #: neutron/plugins/vmware/api_client/eventlet_client.py:149
+ #, python-format
 -msgid "Saving new authentication cookie '%s'"
 -msgstr "Speichern von neuem Authentifizierungscookie '%s'"
++msgid "[%(rid)d] Error while handling request: %(req)s"
++msgstr "[%(rid)d] Fehler bei Verarbeitung von Anforderung: %(req)s"
+ #: neutron/plugins/vmware/api_client/eventlet_request.py:102
+ msgid "Joining an invalid green thread"
+ msgstr "Verknüpfen von ungültigem grünem Thread"
+ #: neutron/plugins/vmware/api_client/eventlet_request.py:122
+ #, python-format
+ msgid "[%d] Request timeout."
+ msgstr "[%d] Anforderungs-Zeitlimitüberschreitung."
+ #: neutron/plugins/vmware/api_client/eventlet_request.py:123
+ msgid "Request timeout"
+ msgstr "Anforderungs-Zeitlimitüberschreitung"
  
- #: neutron/plugins/vmware/api_client/eventlet_request.py:208
+ #: neutron/plugins/vmware/api_client/eventlet_request.py:149
+ #, python-format
+ msgid "[%(rid)d] Completed request '%(method)s %(url)s': %(status)s"
+ msgstr "[%(rid)d] Anforderung '%(method)s %(url)s' abgeschlossen: %(status)s"
+ #: neutron/plugins/vmware/api_client/eventlet_request.py:156
+ #, python-format
+ msgid "[%(rid)d] Error while handling request: %(req)s"
+ msgstr "[%(rid)d] Fehler bei Verarbeitung von Anforderung: %(req)s"
+ #: neutron/plugins/vmware/api_client/eventlet_request.py:212
  #, python-format
  msgid "[%(rid)d] Failed to parse API provider: %(e)s"
  msgstr "[%(rid)d] Fehler bei Analyse von API-Provider: %(e)s"
@@@ -12034,9 -12982,24 +13284,24 @@@ msgid "
  "'%(network_gateway_id)s'"
  msgstr "Netz '%(network_id)s' wird von Gateway '%(network_gateway_id)s' getrennt"
  
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:460
+ #, python-format
+ msgid "Created network gateway device: %s"
+ msgstr ""
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:471
+ #, python-format
+ msgid "Updated network gateway device: %s"
+ msgstr ""
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:484
+ #, python-format
+ msgid "Deleted network gateway device: %s."
+ msgstr ""
  #: neutron/plugins/vmware/dbexts/nsxrouter.py:61
  #, python-format
--msgid "Nsx router extension successfully processed for router:%s"
++msgid "DSCP value (%s) will be ignored with 'trusted' marking"
  msgstr ""
  
  #: neutron/plugins/vmware/dbexts/qos_db.py:286
@@@ -12671,19 -13643,19 +13945,23 @@@ msgstr "
  msgid "Logical router resource %s not found on NSX platform"
  msgstr ""
  
- #: neutron/plugins/vmware/plugins/base.py:681
- #: neutron/plugins/vmware/plugins/base.py:1779
+ #: neutron/plugins/vmware/plugins/base.py:672
+ #: neutron/plugins/vmware/plugins/base.py:1776
  msgid "Unable to update logical routeron NSX Platform"
  msgstr ""
++"Ausnahme wird ignoriert, da dies bedeutet, dass der Peer für Port '%s' "
++"bereits gelöscht wurde."
  
- #: neutron/plugins/vmware/plugins/base.py:683
+ #: neutron/plugins/vmware/plugins/base.py:674
  #, python-format
  msgid ""
  "_nsx_delete_ext_gw_port completed on external network %(ext_net_id)s, "
  "attached to NSX router:%(router_id)s"
  msgstr ""
++"Die Erstellung von Routerschnittstellenports in externen Netzen wie %s "
++"ist nicht zulässig"
  
- #: neutron/plugins/vmware/plugins/base.py:725
+ #: neutron/plugins/vmware/plugins/base.py:716
  #, python-format
  msgid ""
  "_nsx_create_l2_gw_port completed for port %(name)s on network "
@@@ -12765,16 -13737,16 +14043,18 @@@ msgstr "
  msgid "Logical switch for network %s was not found in NSX."
  msgstr ""
  
- #: neutron/plugins/vmware/plugins/base.py:1198
+ #: neutron/plugins/vmware/plugins/base.py:1189
  msgid "Unable to create port or set port attachment in NSX."
  msgstr ""
++"Netze, für die 'admin_state_up=False' gilt, werden von diesem Plug-in "
++"noch nicht unterstützt. Einstellungen für Netz %s werden ignoriert"
  
- #: neutron/plugins/vmware/plugins/base.py:1290
+ #: neutron/plugins/vmware/plugins/base.py:1281
  #, python-format
- msgid "Update port request: %s"
- msgstr "Portanforderung aktualisieren: %s"
+ msgid "Updating port: %s"
+ msgstr ""
  
- #: neutron/plugins/vmware/plugins/base.py:1318
+ #: neutron/plugins/vmware/plugins/base.py:1316
  #, python-format
  msgid "Unable to update port id: %s."
  msgstr ""
@@@ -12915,8 -13887,54 +14195,56 @@@ msgstr "
  #, python-format
  msgid "Unable to update name on NSX backend for network gateway: %s"
  msgstr ""
++"'Add_router_interface' für Teilnetz: %(subnet_id)s und Router: "
++"%(router_id)s abgeschlossen"
+ #: neutron/plugins/vmware/plugins/base.py:2130
+ #: neutron/plugins/vmware/plugins/base.py:2176
+ #, python-format
+ msgid ""
+ "Neutron gateway device: %(neutron_id)s; NSX transport node identifier: "
+ "%(nsx_id)s; Operational status: %(status)s."
+ msgstr ""
+ #: neutron/plugins/vmware/plugins/base.py:2140
+ #, python-format
+ msgid "Unable to create gateway device: %s on NSX backend."
+ msgstr ""
+ #: neutron/plugins/vmware/plugins/base.py:2188
+ #, python-format
+ msgid "Unable to update gateway device: %s on NSX backend."
+ msgstr ""
+ #: neutron/plugins/vmware/plugins/base.py:2197
+ #, python-format
+ msgid ""
+ "Unable to update gateway device: %s on NSX backend, as the gateway was "
+ "not found on the NSX backend."
+ msgstr ""
+ #: neutron/plugins/vmware/plugins/base.py:2284
+ #, python-format
+ msgid ""
+ "Removal of gateway device: %(neutron_id)s failed on NSX backend (NSX "
+ "id:%(nsx_id)s) because the NSX resource was not found"
+ msgstr ""
+ #: neutron/plugins/vmware/plugins/base.py:2291
+ #, python-format
+ msgid ""
+ "Removal of gateway device: %(neutron_id)s failed on NSX backend (NSX "
+ "id:%(nsx_id)s). Neutron and NSX states have diverged."
+ msgstr ""
+ #: neutron/plugins/vmware/plugins/base.py:2339
+ #, python-format
+ msgid ""
+ "Error while updating security profile %(uuid)s with name %(name)s: "
+ "%(error)s."
+ msgstr ""
  
- #: neutron/plugins/vmware/plugins/base.py:2146
+ #: neutron/plugins/vmware/plugins/base.py:2371
  #, python-format
  msgid ""
  "The NSX security profile %(sec_profile_id)s, associated with the Neutron "
@@@ -14223,267 -15271,332 +15581,534 @@@ msgstr "Fehler beim Importieren von Las
  msgid "Multiple device drivers with the same name found: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:171
 +#: neutron/services/loadbalancer/agent/agent_manager.py:141
 +msgid "Error upating stats"
 +msgstr "Fehler beim Aktualisieren der Statistiken"
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:156
 +msgid "Unable to retrieve ready devices"
 +msgstr "Abrufen von bereiten Einheiten nicht möglich"
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:173
 +#: neutron/services/loadbalancer/agent/agent_manager.py:238
 +#, python-format
 +msgid "No device driver on agent: %s."
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:183
 +#, python-format
 +msgid "Unable to deploy instance for pool: %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:193
 +#, python-format
 +msgid "Unable to destroy device for pool: %s"
 +msgstr "Einheit für Pool kann nicht gelöscht werden: %s"
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:206
 +#, python-format
 +msgid "%(operation)s %(obj)s %(id)s failed on device driver %(driver)s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:332
 +#, python-format
 +msgid "Destroying pool %s due to agent disabling"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:335
 +#, python-format
 +msgid "Agent_updated by server side %s!"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:44
 +msgid "Driver to use for scheduling pool to a default loadbalancer agent"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:52
 +msgid "Device driver for agent should be specified in plugin driver."
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:79
 +#, python-format
 +msgid "Multiple lbaas agents found on host %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:99
 +msgid "Expected active pool"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:161
 +#, python-format
 +msgid "Unknown object type: %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:172
 +#, python-format
 +msgid ""
 +"Cannot update status: %(obj_type)s %(obj_id)s not found in the DB, it was"
 +" probably deleted concurrently"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:195
 +#, python-format
 +msgid "Unable to find port %s to plug."
 +msgstr "Zu verbindender Port %s kann nicht gefunden werden."
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:219
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:236
 +#, python-format
 +msgid ""
 +"Unable to find port %s to unplug.  This can occur when the Vip has been "
 +"deleted first."
 +msgstr ""
 +"Zu entfernender Port %s kann nicht gefunden werden. Dies kann auftreten, "
 +"wenn die VIP zuerst gelöscht wurde."
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:48
 +msgid "Location to store config and state files"
 +msgstr "Position zum Speichern der Konfigurations- und Statusdateien"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:54
 +msgid "The user group"
 +msgstr "Die Benutzergruppe"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:70
 +#, python-format
 +msgid "Error importing interface driver: %s"
 +msgstr "Fehler beim Importieren von Schnittstellentreiber: %s"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:160
 +#, python-format
 +msgid "Stats socket not found for pool %s"
 +msgstr "Statistiksocket für Pool nicht gefunden: %s"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:202
 +#, python-format
 +msgid "Error while connecting to stats socket: %s"
 +msgstr "Fehler beim Versuch, mit Statistiksocket zu verbinden: %s"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:348
 +#, python-format
 +msgid "Unable to kill haproxy process: %s"
 +msgstr "HAProxy-Prozess kann nicht beendet werden: %s"
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:43
 +#, python-format
 +msgid "NCC Error %d"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:54
 +msgid "No NetScaler Control Center URI specified. Cannot connect."
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:133
 +#, python-format
 +msgid "Connection error occurred while connecting to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:138
 +#, python-format
 +msgid "SSL error occurred while connecting to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:143
 +#, python-format
 +msgid "Request to %s timed out"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:150
 +msgid "Request did not specify a valid URL"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:154
 +#, python-format
 +msgid "Too many redirects occurred for request to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:158
 +#, python-format
 +msgid "A request error while connecting to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:163
 +#, python-format
 +msgid "A unknown error occurred during request to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:168
 +#, python-format
 +msgid "Response: %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:175
++#: neutron/services/loadbalancer/plugin.py:82
 +#, python-format
 +msgid "Unable to login. Invalid credentials passed.for: %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:29
- msgid "The URL to reach the NetScaler Control Center Server."
++#: neutron/services/loadbalancer/plugin.py:91
 +#, python-format
 +msgid "Failed %(method)s operation on %(url)s status code: %(response_status)s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:33
- msgid "Username to login to the NetScaler Control Center Server."
++#: neutron/services/loadbalancer/plugin.py:99
++#, python-format
++msgid "Error retrieving provider for pool %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:37
- msgid "Password to login to the NetScaler Control Center Server."
++#: neutron/services/loadbalancer/plugin.py:190
++#, python-format
++msgid "Failed to delete pool %s, putting it in ERROR state"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:75
++#: neutron/services/loadbalancer/agent/agent.py:34
++msgid "Seconds between periodic task runs"
++msgstr "Sekunden zwischen Ausführungen regelmäßig wiederkehrender Tasks"
++
++#: neutron/services/loadbalancer/agent/agent_manager.py:40
++msgid "Drivers used to manage loadbalancing devices"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:90
++#: neutron/services/loadbalancer/agent/agent_manager.py:46
 +#, python-format
 +msgid "NetScaler driver vip creation: %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:105
++#: neutron/services/loadbalancer/agent/agent_manager.py:94
 +#, python-format
 +msgid "NetScaler driver vip %(vip_id)s update: %(vip_obj)s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:126
++#: neutron/services/loadbalancer/agent/agent_manager.py:101
 +#, python-format
 +msgid "NetScaler driver vip removal: %s"
 +msgstr ""
 +
+ #: neutron/services/loadbalancer/agent/agent_manager.py:141
+ #, python-format
+ msgid "Error updating statistics on pool %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/agent/agent_manager.py:157
+ msgid "Unable to retrieve ready devices"
+ msgstr "Abrufen von bereiten Einheiten nicht möglich"
+ #: neutron/services/loadbalancer/agent/agent_manager.py:174
+ #: neutron/services/loadbalancer/agent/agent_manager.py:239
  #, python-format
 -msgid "No device driver on agent: %s."
 +msgid "NetScaler driver pool creation: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:141
+ #: neutron/services/loadbalancer/agent/agent_manager.py:184
  #, python-format
 -msgid "Unable to deploy instance for pool: %s"
 +msgid "NetScaler driver pool %(pool_id)s update: %(pool_obj)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:156
+ #: neutron/services/loadbalancer/agent/agent_manager.py:194
  #, python-format
 -msgid "Unable to destroy device for pool: %s"
 -msgstr "Einheit für Pool kann nicht gelöscht werden: %s"
 +msgid "NetScaler driver pool removal: %s"
 +msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:173
+ #: neutron/services/loadbalancer/agent/agent_manager.py:207
  #, python-format
- msgid "NetScaler driver poolmember creation: %s"
+ msgid "%(operation)s %(obj)s %(id)s failed on device driver %(driver)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:191
+ #: neutron/services/loadbalancer/agent/agent_manager.py:333
  #, python-format
- msgid "NetScaler driver poolmember %(member_id)s update: %(member_obj)s"
+ msgid "Destroying pool %s due to agent disabling"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:208
+ #: neutron/services/loadbalancer/agent/agent_manager.py:336
  #, python-format
- msgid "NetScaler driver poolmember removal: %s"
+ msgid "Agent_updated by server side %s!"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:226
- #, python-format
- msgid ""
- "NetScaler driver healthmonitor creation for pool %(pool_id)s: "
- "%(monitor_obj)s"
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:44
+ msgid "Driver to use for scheduling pool to a default loadbalancer agent"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:249
- #, python-format
- msgid "NetScaler driver healthmonitor %(monitor_id)s update: %(monitor_obj)s"
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:52
+ msgid "Device driver for agent should be specified in plugin driver."
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:270
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:79
  #, python-format
- msgid "NetScaler driver healthmonitor %(monitor_id)sremoval for pool %(pool_id)s"
+ msgid "Multiple lbaas agents found on host %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:290
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:159
  #, python-format
- msgid "NetScaler driver pool stats retrieval: %s"
+ msgid "Unknown object type: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:415
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:170
  #, python-format
  msgid ""
- "Filtering ports based on network_id=%(network_id)s, "
- "tenant_id=%(tenant_id)s, device_id=%(device_id)s"
+ "Cannot update status: %(obj_type)s %(obj_id)s not found in the DB, it was"
+ " probably deleted concurrently"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:430
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:193
  #, python-format
- msgid "Found an existing SNAT port for subnet %s"
- msgstr ""
+ msgid "Unable to find port %s to plug."
+ msgstr "Zu verbindender Port %s kann nicht gefunden werden."
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:433
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:217
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:234
+ #, python-format
+ msgid ""
+ "Unable to find port %s to unplug.  This can occur when the Vip has been "
+ "deleted first."
+ msgstr ""
+ "Zu entfernender Port %s kann nicht gefunden werden. Dies kann auftreten, "
+ "wenn die VIP zuerst gelöscht wurde."
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:32
+ msgid "Load Balancer image id (Embrane LB)"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:34
+ msgid "In band Security Zone id for LBs"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:36
+ msgid "Out of band Security Zone id for LBs"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:38
+ msgid "Management Security Zone id for LBs"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:40
+ msgid "Dummy user traffic Security Zone id for LBs"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:44
+ msgid "choose LB image flavor to use, accepted values: small, medium"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:47
+ msgid "resource synchronization interval in seconds"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/constants.py:51
+ #, python-format
+ msgid "%s, probably was cancelled through the heleos UI"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/constants.py:58
+ #, python-format
+ msgid ""
+ "Failed to delete the backend load balancer for reason %s. Please remove "
+ "it manually through the heleos UI"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/constants.py:61
+ #, python-format
+ msgid ""
+ "No subnet is associated to member %s (required to identify the proper "
+ "load balancer port)"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/driver.py:88
+ msgid "Connection limit is not supported by Embrane LB"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/driver.py:94
+ #, python-format
+ msgid "Session persistence %s not supported by Embrane LBaaS"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/driver.py:132
+ #, python-format
+ msgid "Subnet assigned to pool %s doesn't exist, backend port can't be created"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py:111
+ #, python-format
+ msgid ""
+ "The load balancer %s had no physical representation, likely already "
+ "deleted"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:48
+ msgid "Location to store config and state files"
+ msgstr "Position zum Speichern der Konfigurations- und Statusdateien"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:54
+ msgid "The user group"
+ msgstr "Die Benutzergruppe"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:70
+ #, python-format
+ msgid "Error importing interface driver: %s"
+ msgstr "Fehler beim Importieren von Schnittstellentreiber: %s"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:160
+ #, python-format
+ msgid "Stats socket not found for pool %s"
+ msgstr "Statistiksocket für Pool nicht gefunden: %s"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:202
+ #, python-format
+ msgid "Error while connecting to stats socket: %s"
+ msgstr "Fehler beim Versuch, mit Statistiksocket zu verbinden: %s"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:353
+ #, python-format
+ msgid "Unable to kill haproxy process: %s"
+ msgstr "HAProxy-Prozess kann nicht beendet werden: %s"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:43
+ #, python-format
+ msgid "NCC Error %d"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:54
+ msgid "No NetScaler Control Center URI specified. Cannot connect."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:133
+ #, python-format
+ msgid "Connection error occurred while connecting to %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:138
+ #, python-format
+ msgid "SSL error occurred while connecting to %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:143
+ #, python-format
+ msgid "Request to %s timed out"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:150
+ msgid "Request did not specify a valid URL"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:154
+ #, python-format
+ msgid "Too many redirects occurred for request to %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:158
+ #, python-format
+ msgid "A request error while connecting to %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:163
+ #, python-format
+ msgid "A unknown error occurred during request to %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:168
+ #, python-format
+ msgid "Response: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:171
+ #, python-format
+ msgid "Unable to login. Invalid credentials passed.for: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:175
+ #, python-format
+ msgid "Failed %(method)s operation on %(url)s status code: %(response_status)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:29
+ msgid "The URL to reach the NetScaler Control Center Server."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:33
+ msgid "Username to login to the NetScaler Control Center Server."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:37
+ msgid "Password to login to the NetScaler Control Center Server."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:75
+ #, python-format
+ msgid "NetScaler driver vip creation: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:90
+ #, python-format
+ msgid "NetScaler driver vip %(vip_id)s update: %(vip_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:105
+ #, python-format
+ msgid "NetScaler driver vip removal: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:126
+ #, python-format
+ msgid "NetScaler driver pool creation: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:141
+ #, python-format
+ msgid "NetScaler driver pool %(pool_id)s update: %(pool_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:156
+ #, python-format
+ msgid "NetScaler driver pool removal: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:173
+ #, python-format
+ msgid "NetScaler driver poolmember creation: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:191
+ #, python-format
+ msgid "NetScaler driver poolmember %(member_id)s update: %(member_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:208
+ #, python-format
+ msgid "NetScaler driver poolmember removal: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:226
+ #, python-format
+ msgid ""
+ "NetScaler driver healthmonitor creation for pool %(pool_id)s: "
+ "%(monitor_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:249
+ #, python-format
+ msgid "NetScaler driver healthmonitor %(monitor_id)s update: %(monitor_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:270
+ #, python-format
+ msgid "NetScaler driver healthmonitor %(monitor_id)sremoval for pool %(pool_id)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:290
+ #, python-format
+ msgid "NetScaler driver pool stats retrieval: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:415
+ #, python-format
+ msgid ""
+ "Filtering ports based on network_id=%(network_id)s, "
+ "tenant_id=%(tenant_id)s, device_id=%(device_id)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:430
+ #, python-format
+ msgid "Found an existing SNAT port for subnet %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:433
  #, python-format
  msgid "Found no SNAT ports for subnet %s"
  msgstr ""
index 6e336756b85e3586127fc00b0a95d5ed295cf8f2,fbcb0732e9f7f56aae1ab1cd3c6793e2bc12c272..10c39a19a58f39a0be0b55c184d67e5c68dfb2dc
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 18ab7b9ca94ed2dcfb994453e48666363e8390ca,d1d957c4a2158e7ba4c0d4e61a539965369fcde8..65baa3c3f75fa42c280a37f6be180e18bd3cc205
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 15696e917b52afe51772d704e4795ef1cdcaefa4,a5600f72c83d67ba6104994e8b4a10b866e8b426..b39aeada3bd8fb2e9939cf6ac2631e800ff52cb9
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 74802414f0a8c814993dfc9e8f6287a4f35e2d0a,ef42bc365a8edb0451ffcd693f0f3e85d85b45c8..b8c41f47c0f8470b51f5d243ebf32a73638fe775
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index a6288971e201b2bf1e66c0ce418802ba21b14d0f,0306f9c668895c6a312c847d3e4ebf186955b583..b347fa7c7396a691d74a505e451a46aa145de297
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 40c321d9d0d44ac1a6a6e208235e217e3ce67fe8,f3284c0f29ae33b3db998cbb39126428bfd1219d..716e1c0dc17b7f581695c8593ac601a5bdcbcdd8
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 60920dc3d269b23c568b1326614d0d0e9c1ab2ff,f45ee749be08d0a55892cb450e897ee493ec4095..dc03d61a961e54ea53aafa3fe1e50353ea10301e
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 36355e9672ea88a98d0ead9407da06e75c2a1f08,4906a59ddbd12420d0908dbc0ae4c830d3200b9e..7282b87f267594120a4c3ba6000c7a6ca5e96fd2
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 8f214115ebb7da56c2113957d56db4c46aff17df,ae72e13508d031e186c31826592f7677bb31b757..3caf4aaac830cae7981ff20da65008b15a2d1d97
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 8ddda24b7e28722c85f6e774fc663ebdffbf0809,a3c535035827c5f52420c4354fc1b0306a9aaa0b..8a3b5ca6d7f7e753deeef7582e5a2bf8ee1ef27d
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index a3c0e03498a67e9b56fbd94310088351319c33fb,0b6a6619f03b8f4e8a039a1a1dfe8ca0513abbdc..20d61dd8ed1ab29bac2df4a5f4f580b94b86b1b0
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 234438d902e9cff0cbcc3ce0c113ed21eeb29d09,731dd7fad186753966b15212f43351d02508fe1c..9af4c5c0235b3890903d2eb9a365a534f345d865
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 8fb4aaf7234afd2a134fa3a9a9507dbf5049b2b7,b69e2bdd476af9db74b3cc8f3353cec8ce18b811..eff7f841d5481e80fb2e621dc6560232d31292be
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 37c21cb22b1f199cf567257546b26cf9da3dd9fd,68a4174ec9622f5aedecef94fc178b4a16c60588..79318827686a46a059c0650743abbd3a21afe46b
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 58217934f183cddcbe3ccd0b516d981410bdf122,1a5029df9df8760269515ab36f58b8d75402a0e8..589a22a983da048c36018b3e87acba8f4f34081a
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 660b90f8715afb567ae3db979463997a01734c4d,cf3a4b8b1e41c309a8355363f8f786ad211d9592..4e2c4ca67bffa338f7cfc0e4374258ddb9f49386
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index da65d72b89d38e045d25db5fa48fa3e6eaa92ba5,28aa4cce23b2a881abb5a88668c92693ac22c489..e38e0f3b0ca8fae3000a6b58ea9bc153f0a25365
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 585cdd59be7c6195033c3aa8ffe79887c8d5a290,be2c547b1aecf277483e32c9c86c8f0cb104b696..3d67915d62ccc154bc6d949f0de0fa128ba326c8
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 5a3d56d2f5bd434c4aa044ff4e09e7d5d13cb96d,2c404e9ae8b26286991dd292d4f7dbcbd7cf8494..85faa112ac2f1e9f6928e0462ea7a72a9c8611ba
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index fd99662645f00165fc50ead910f3539c31f881fb,e265e2818d0d4e558d1d0668424d71e096fe4a89..7125bd2dc03df8ab25d7b05cccd7fa0c24c227d6
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index b707dcb1714154fb3a2a934c024ef1c53530e229,0158a4ca95003153eb6fe3dc54630cf1772e48f7..0e1557edd13f9a73e0edcbfefe9ce1bbc7ffeab1
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3978,29 -4219,29 +4234,29 @@@ msgstr "
  
  #: neutron/openstack/common/notifier/api.py:125
  #, python-format
--msgid "%s not in valid priorities"
++msgid "Invalid SSL version : %s"
  msgstr ""
  
--#: neutron/openstack/common/notifier/api.py:141
++#: neutron/openstack/common/versionutils.py:69
  #, python-format
  msgid ""
--"Problem '%(e)s' attempting to send to notification system. "
--"Payload=%(payload)s"
++"%(what)s is deprecated as of %(as_of)s in favor of %(in_favor_of)s and "
++"may be removed in %(remove_in)s."
  msgstr ""
  
--#: neutron/openstack/common/notifier/api.py:171
++#: neutron/openstack/common/versionutils.py:73
  #, python-format
--msgid "Failed to load notifier %s. These notifications will not be sent."
++msgid ""
++"%(what)s is deprecated as of %(as_of)s and may be removed in "
++"%(remove_in)s. It will not be superseded."
  msgstr ""
  
--#: neutron/openstack/common/notifier/rabbit_notifier.py:27
--msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++#: neutron/openstack/common/db/api.py:97
++msgid "DB exceeded retry limit."
  msgstr ""
  
--#: neutron/openstack/common/notifier/rpc_notifier.py:45
--#: neutron/openstack/common/notifier/rpc_notifier2.py:51
--#, python-format
--msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/db/api.py:101
++msgid "DB connection error."
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -4754,122 -5056,132 +5071,320 @@@ msgid "
  "ret=%(ret)s, data=%(data)r"
  msgstr ""
  
- #: neutron/plugins/bigswitch/servermanager.py:284
+ #: neutron/plugins/bigswitch/servermanager.py:434
+ #, python-format
+ msgid "ServerProxy: %(action)s failure for all servers: %(server)r"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:457
+ #, python-format
+ msgid ""
+ "NeutronRestProxyV2: Received and ignored error code %(code)s on "
+ "%(action)s action to resource %(resource)s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:467
+ #, python-format
+ msgid "Unable to create remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:473
+ #, python-format
+ msgid "Unable to update remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:478
+ #, python-format
+ msgid "Unable to delete remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:484
+ #, python-format
+ msgid "Unable to add router interface: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:489
+ #, python-format
+ msgid "Unable to delete remote intf: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:495
+ #, python-format
+ msgid "Unable to create remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:501
+ #: neutron/plugins/bigswitch/servermanager.py:506
+ #, python-format
+ msgid "Unable to update remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:515
+ #, python-format
+ msgid "No device MAC attached to port %s. Skipping notification to controller."
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:520
+ #, python-format
+ msgid "Unable to create remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:525
+ #, python-format
+ msgid "Unable to delete remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:535
+ #, python-format
+ msgid "Unable to create floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:540
+ #, python-format
+ msgid "Unable to update floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:545
+ #, python-format
+ msgid "Unable to delete floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:550
+ msgid "Backend server(s) do not support automated consitency checks."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
+ msgid "Port update received"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
+ #, python-format
+ msgid "Port %s is not present on this host."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
+ #, python-format
+ msgid "Port %s found. Refreshing firewall."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
+ msgid "Agent loop has new device"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
+ #: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:405
+ #: neutron/plugins/nec/agent/nec_neutron_agent.py:222
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:156
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
+ msgid "Error in agent event loop"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
+ #: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:226
+ #: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:1007
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1281
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
+ #, python-format
+ msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
+ msgstr ""
+ #: neutron/plugins/bigswitch/db/consistency_db.py:55
+ #, python-format
+ msgid "Consistency hash for group %(hash_id)s updated to %(hash)s"
+ msgstr ""
++#: neutron/plugins/bigswitch/servermanager.py:115
++#, python-format
++msgid "ServerProxy: server=%(server)s, port=%(port)d, ssl=%(ssl)r"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:118
++#, python-format
++msgid "Received an empty port ID for host_id '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:42
++#, python-format
++msgid "Received an empty host_id for port '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:44
++#, python-format
++msgid "Logging port %(port)s on host_id %(host)s"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:128
++msgid "ServerProxy: Could not establish HTTPS connection"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:135
++msgid "ServerProxy: Could not establish HTTP connection"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:152
++#, python-format
++msgid "ServerProxy: %(action)s failure, %(e)r"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:156
++#, python-format
++msgid ""
++"ServerProxy: status=%(status)d, reason=%(reason)r, ret=%(ret)s, "
++"data=%(data)r"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:168
++msgid "ServerPool: initializing"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:184
++msgid "Servers not defined. Aborting server manager."
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:190
++#, python-format
++msgid "Servers must be defined as <ip>:<port>. Configuration was %s"
++msgstr ""
++
++#: neutron/plugins/brocade/NeutronPlugin.py:66
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:33
++msgid "The address of the host to SSH to"
++msgstr ""
++
++#: neutron/plugins/brocade/NeutronPlugin.py:68
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:35
++msgid "The SSH username to use"
++msgstr ""
++
++#: neutron/plugins/brocade/NeutronPlugin.py:70
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:37
++msgid "The SSH password to use"
++msgstr ""
++
 +#: neutron/plugins/bigswitch/servermanager.py:252
 +#, python-format
 +msgid "ServerProxy: %(action)s failure for all servers: %(server)r"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:274
 +#, python-format
 +msgid ""
 +"NeutronRestProxyV2: Received and ignored error code %(code)s on "
 +"%(action)s action to resource %(resource)s"
 +msgstr ""
 +
++#: neutron/plugins/brocade/NeutronPlugin.py:134
++#: neutron/plugins/hyperv/rpc_callbacks.py:55
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:89
++#: neutron/plugins/mlnx/rpc_callbacks.py:76
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:96
 +#, python-format
 +msgid "Unable to create remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:290
 +#, python-format
 +msgid "Unable to update remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:295
 +#, python-format
 +msgid "Unable to delete remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:301
 +#, python-format
 +msgid "Unable to add router interface: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:306
 +#, python-format
 +msgid "Unable to delete remote intf: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:312
 +#, python-format
 +msgid "Unable to create remote network: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:318
 +#: neutron/plugins/bigswitch/servermanager.py:323
 +#, python-format
 +msgid "Unable to update remote network: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:332
 +#, python-format
 +msgid "No device MAC attached to port %s. Skipping notification to controller."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:337
 +#, python-format
 +msgid "Unable to create remote port: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:342
 +#, python-format
 +msgid "Unable to delete remote port: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:352
 +#, python-format
 +msgid "Unable to create floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:357
 +#, python-format
 +msgid "Unable to update floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:362
 +#, python-format
 +msgid "Unable to delete floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
 +msgid "Port update received"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
 +#, python-format
 +msgid "Port %s is not present on this host."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
 +#, python-format
 +msgid "Port %s found. Refreshing firewall."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
 +msgid "Agent loop has new device"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
 +#: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:401
 +#: neutron/plugins/nec/agent/nec_neutron_agent.py:222
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
 +msgid "Error in agent event loop"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
 +#: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:201
 +#: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:975
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
 +#: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1236
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
 +#, python-format
 +msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
 +msgstr ""
 +
  #: neutron/plugins/bigswitch/db/porttracker_db.py:36
  msgid "No host_id in port request to track port location."
  msgstr ""
@@@ -10289,327 -10946,600 +11146,604 @@@ msgstr "
  msgid "Number of seconds to retry acquiring an Open vSwitch datapath"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:209
- #, python-format
- msgid "Skipping unreasonable tunnel ID range %(tun_min)s:%(tun_max)s"
+ #: neutron/plugins/oneconvergence/plugin.py:243
+ msgid "Failed to create subnet, deleting it from neutron"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:257
+ #: neutron/plugins/oneconvergence/plugin.py:307
  #, python-format
- msgid "Reserving tunnel %s from pool"
+ msgid "Deleting newly created neutron port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:272
- #, python-format
- msgid "Reserving specific tunnel %s from pool"
+ #: neutron/plugins/oneconvergence/plugin.py:377
+ msgid "Failed to create floatingip"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:275
- #, python-format
- msgid "Reserving specific tunnel %s outside pool"
+ #: neutron/plugins/oneconvergence/plugin.py:416
+ msgid "Failed to create router"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:298
- #, python-format
- msgid "Releasing tunnel %s outside pool"
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:151
+ msgid "Port list is updated"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:300
- #, python-format
- msgid "Releasing tunnel %s to pool"
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:158
+ msgid "AGENT looping....."
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:302
- #, python-format
- msgid "tunnel_id %s not found"
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:171
+ msgid "NVSD Agent initialized successfully, now running... "
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:374
- #, python-format
- msgid "Adding a tunnel endpoint for %s"
+ #: neutron/plugins/oneconvergence/lib/config.py:26
+ msgid "NVSD Controller IP address"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:390
- #, python-format
- msgid ""
- "Adding a tunnel endpoint failed due to a concurrenttransaction had been "
- "committed (%s attempts left)"
+ #: neutron/plugins/oneconvergence/lib/config.py:29
+ msgid "NVSD Controller Port number"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:395
- msgid "Unable to generate a new tunnel id"
+ #: neutron/plugins/oneconvergence/lib/config.py:32
+ msgid "NVSD Controller username"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:304
- #, python-format
- msgid "Invalid tenant_network_type: %s. Server terminated!"
+ #: neutron/plugins/oneconvergence/lib/config.py:35
+ msgid "NVSD Controller password"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:321
- #, python-format
- msgid "Tunneling disabled but tenant_network_type is '%s'. Server terminated!"
+ #: neutron/plugins/oneconvergence/lib/config.py:38
+ msgid "NVSD controller REST API request timeout in seconds"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:367
- #, python-format
- msgid "Invalid tunnel ID range: '%(range)s' - %(e)s. Server terminated!"
+ #: neutron/plugins/oneconvergence/lib/config.py:40
+ msgid "Number of login retries to NVSD controller"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:371
- #, python-format
- msgid "Tunnel ID ranges: %s"
+ #: neutron/plugins/oneconvergence/lib/config.py:45
+ msgid "integration bridge"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:426
+ #: neutron/plugins/oneconvergence/lib/exception.py:23
  #, python-format
- msgid "%s networks are not enabled"
+ msgid "An unknown nvsd plugin exception occurred: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:297
- #, python-format
- msgid "port_update message processed for port %s"
+ #: neutron/plugins/oneconvergence/lib/exception.py:27
+ #: neutron/plugins/vmware/api_client/exception.py:68
+ msgid "The request has timed out."
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:671
- #, python-format
- msgid "Adding %s to list of bridges."
+ #: neutron/plugins/oneconvergence/lib/exception.py:31
+ msgid "Invalid access credentials to the Server."
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:857
+ #: neutron/plugins/oneconvergence/lib/exception.py:35
  #, python-format
- msgid "VIF port: %s has no ofport configured, and might not be able to transmit"
+ msgid "A resource is not found: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:923
+ #: neutron/plugins/oneconvergence/lib/exception.py:39
  #, python-format
- msgid "Processing port %s"
+ msgid "Request sent to server is invalid: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/oneconvergence/lib/exception.py:43
  #, python-format
- msgid ""
- "Port %s was not found on the integration bridge and will therefore not be"
- " processed"
+ msgid "Internal Server Error: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:955
- #, python-format
- msgid "Setting status for %s to UP"
+ #: neutron/plugins/oneconvergence/lib/exception.py:47
+ msgid "Connection is closed by the server."
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:959
+ #: neutron/plugins/oneconvergence/lib/exception.py:51
  #, python-format
- msgid "Setting status for %s to DOWN"
+ msgid "The request is forbidden access to the resource: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:962
+ #: neutron/plugins/oneconvergence/lib/exception.py:55
  #, python-format
- msgid "Configuration for device %s completed."
+ msgid "Internal Server Error from NVSD controller: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1053
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:55
  #, python-format
- msgid ""
- "process_network_ports - iteration:%(iter_num)d "
- "-treat_devices_added_or_updated completed in %(elapsed).3f"
+ msgid "Could not create a %(resource)s under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1061
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:59
  #, python-format
- msgid ""
- "process_network_ports - iteration:%(iter_num)d -treat_devices_removed "
- "completed in %(elapsed).3f"
+ msgid "Failed to %(method)s %(resource)s id=%(resource_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1140
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:65
  #, python-format
- msgid "Agent rpc_loop - iteration:%d started"
+ msgid "Failed to %(method)s %(resource)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1154
- msgid "Error while synchronizing tunnels"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:109
+ #, python-format
+ msgid "Network %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1158
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:126
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d - starting polling. "
- "Elapsed:%(elapsed).3f"
+ msgid "Network %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1170
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:147
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d - port information retrieved. "
- "Elapsed:%(elapsed).3f"
+ msgid "Network %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1179
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:160
  #, python-format
- msgid "Starting to process devices in:%s"
+ msgid "Subnet %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1183
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:174
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d -ports processed. "
- "Elapsed:%(elapsed).3f"
+ msgid "Subnet %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1197
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:190
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d -ancillary port info retrieved. "
- "Elapsed:%(elapsed).3f"
+ msgid "Subnet %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:222
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
- "Elapsed:%(elapsed).3f"
+ msgid "Port %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1220
- msgid "Error while processing VIF ports"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:246
+ #, python-format
+ msgid "Port %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1227
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:259
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d completed. Processed ports "
- "statistics: %(port_stats)s. Elapsed:%(elapsed).3f"
+ msgid "Port %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:32
- msgid "Enable tunneling support"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:281
+ #, python-format
+ msgid "Flatingip %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:34
- msgid "Tunnel bridge to use"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:298
+ #, python-format
+ msgid "Flatingip %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:36
- msgid "Peer patch port in integration bridge for tunnel bridge"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:312
+ #, python-format
+ msgid "Flatingip %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:39
- msgid "Peer patch port in tunnel bridge for integration bridge"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:325
+ #, python-format
+ msgid "Router %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:42
- msgid "Local IP address of GRE tunnel endpoints."
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:341
+ #, python-format
+ msgid "Router %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:45
- msgid "List of <physical_network>:<bridge>"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:351
+ #, python-format
+ msgid "Router %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:47
- msgid "Network type for tenant networks (local, vlan, gre, vxlan, or none)"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:81
+ #, python-format
+ msgid "Unable to connect to NVSD controller. Exiting after %(retries)s attempts"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:55
- msgid "List of <tun_min>:<tun_max>"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:91
+ #, python-format
+ msgid "Login Failed: %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:57
- msgid "The type of tunnels to use when utilizing tunnels, either 'gre' or 'vxlan'"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:92
+ #, python-format
+ msgid "Unable to establish connection with Controller %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:67
- msgid "Minimize polling by monitoring ovsdb for interface changes."
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:94
+ msgid "Retrying after 1 second..."
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:71
- msgid ""
- "The number of seconds to wait before respawning the ovsdb monitor after "
- "losing communication with it"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:98
+ #, python-format
+ msgid "Login Successful %(uri)s %(status)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:74
- msgid "Network types supported by the agent (gre and/or vxlan)"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:102
+ #, python-format
+ msgid "AuthToken = %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:77
- msgid "The UDP port to use for VXLAN tunnels."
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:104
+ msgid "login failed"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:79
- msgid "MTU size of veth interfaces"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:112
+ msgid "No Token, Re-login"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:81
- msgid ""
- "Use ml2 l2population mechanism driver to learn remote mac and IPs and "
- "improve tunnel scalability"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:129
+ #, python-format
+ msgid "request: %(method)s %(uri)s successful"
  msgstr ""
  
- #: neutron/plugins/plumgrid/common/exceptions.py:26
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:136
  #, python-format
- msgid "PLUMgrid Plugin Error: %(err_msg)s"
+ msgid "request: Request failed from Controller side :%s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/common/exceptions.py:30
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:141
  #, python-format
- msgid "Connection failed with PLUMgrid Director: %(err_msg)s"
+ msgid "Response is Null, Request timed out: %(method)s to %(uri)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:32
- msgid "Python PLUMgrid Fake Library Started "
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:153
+ #, python-format
+ msgid "Request %(method)s %(uri)s body = %(body)s failed with status %(status)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:37
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:157
  #, python-format
- msgid "Fake Director: %s"
+ msgid "%s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/drivers/plumlib.py:38
- msgid "Python PLUMgrid Library Started "
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:161
+ #, python-format
+ msgid "%(method)s to %(url)s, unexpected response code: %(status)d"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:44
- msgid "PLUMgrid Director server to connect to"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:167
+ #, python-format
+ msgid "Request failed from Controller side with Status=%s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:46
- msgid "PLUMgrid Director server port to connect to"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:171
+ #, python-format
+ msgid "Success: %(method)s %(url)s status=%(status)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:48
- msgid "PLUMgrid Director admin username"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:210
+ #, python-format
+ msgid "Skipping unreasonable tunnel ID range %(tun_min)s:%(tun_max)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:50
- msgid "PLUMgrid Director admin password"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:258
+ #, python-format
+ msgid "Reserving tunnel %s from pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:52
- msgid "PLUMgrid Director server timeout"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:273
+ #, python-format
+ msgid "Reserving specific tunnel %s from pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:69
- msgid "Neutron PLUMgrid Director: Starting Plugin"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:276
+ #, python-format
+ msgid "Reserving specific tunnel %s outside pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:74
- msgid "Neutron PLUMgrid Director: Neutron server with PLUMgrid Plugin has started"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:299
+ #, python-format
+ msgid "Releasing tunnel %s outside pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:86
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:301
  #, python-format
- msgid "Neutron PLUMgrid Director: %s"
+ msgid "Releasing tunnel %s to pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:97
- msgid "Neutron PLUMgrid Director: create_network() called"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:303
+ #, python-format
+ msgid "tunnel_id %s not found"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:111
- msgid "PLUMgrid Library: create_network() called"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:375
+ #, python-format
+ msgid "Adding a tunnel endpoint for %s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:126
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:391
+ #, python-format
+ msgid ""
+ "Adding a tunnel endpoint failed due to a concurrenttransaction had been "
+ "committed (%s attempts left)"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:396
+ msgid "Unable to generate a new tunnel id"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:305
+ #, python-format
+ msgid "Invalid tenant_network_type: %s. Server terminated!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:322
+ #, python-format
+ msgid "Tunneling disabled but tenant_network_type is '%s'. Server terminated!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:368
+ #, python-format
+ msgid "Invalid tunnel ID range: '%(range)s' - %(e)s. Server terminated!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:372
+ #, python-format
+ msgid "Tunnel ID ranges: %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:427
+ #, python-format
+ msgid "%s networks are not enabled"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:299
+ #, python-format
+ msgid "port_update message processed for port %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:673
+ #, python-format
+ msgid "Adding %s to list of bridges."
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:858
+ #, python-format
+ msgid "Port '%(port_name)s' has lost its vlan tag '%(vlan_tag)d'!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:886
+ #, python-format
+ msgid "VIF port: %s has no ofport configured, and might not be able to transmit"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:952
+ #, python-format
+ msgid "Processing port %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
+ #, python-format
+ msgid ""
+ "Port %s was not found on the integration bridge and will therefore not be"
+ " processed"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:984
+ #, python-format
+ msgid "Setting status for %s to UP"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:988
+ #, python-format
+ msgid "Setting status for %s to DOWN"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:991
+ #, python-format
+ msgid "Configuration for device %s completed."
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1082
+ #, python-format
+ msgid ""
+ "process_network_ports - iteration:%(iter_num)d "
+ "-treat_devices_added_or_updated completed in %(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1090
+ #, python-format
+ msgid ""
+ "process_network_ports - iteration:%(iter_num)d -treat_devices_removed "
+ "completed in %(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1125
+ #, python-format
+ msgid "Unable to create tunnel port. Invalid remote IP: %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1185
+ #, python-format
+ msgid "Agent rpc_loop - iteration:%d started"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1199
+ msgid "Error while synchronizing tunnels"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1203
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d - starting polling. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1215
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d - port information retrieved. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1224
+ #, python-format
+ msgid "Starting to process devices in:%s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1228
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d -ports processed. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1242
+ #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d -ancillary port info retrieved. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1265
+ msgid "Error while processing VIF ports"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1272
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d completed. Processed ports "
+ "statistics: %(port_stats)s. Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:32
+ msgid "Enable tunneling support"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:34
+ msgid "Tunnel bridge to use"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:36
+ msgid "Peer patch port in integration bridge for tunnel bridge"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:39
+ msgid "Peer patch port in tunnel bridge for integration bridge"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:42
+ msgid "Local IP address of GRE tunnel endpoints."
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:45
+ msgid "List of <physical_network>:<bridge>"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:47
+ msgid "Network type for tenant networks (local, vlan, gre, vxlan, or none)"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:55
+ msgid "List of <tun_min>:<tun_max>"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:57
+ msgid "The type of tunnels to use when utilizing tunnels, either 'gre' or 'vxlan'"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:67
+ msgid "Minimize polling by monitoring ovsdb for interface changes."
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:71
+ msgid ""
+ "The number of seconds to wait before respawning the ovsdb monitor after "
+ "losing communication with it"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:74
+ msgid "Network types supported by the agent (gre and/or vxlan)"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:79
+ msgid "MTU size of veth interfaces"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:81
+ msgid ""
+ "Use ml2 l2population mechanism driver to learn remote mac and IPs and "
+ "improve tunnel scalability"
+ msgstr ""
+ #: neutron/plugins/plumgrid/common/exceptions.py:26
+ #, python-format
+ msgid "PLUMgrid Plugin Error: %(err_msg)s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/common/exceptions.py:30
+ #, python-format
+ msgid "Connection failed with PLUMgrid Director: %(err_msg)s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:32
+ msgid "Python PLUMgrid Fake Library Started "
+ msgstr ""
+ #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:37
+ #, python-format
+ msgid "Fake Director: %s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/drivers/plumlib.py:38
+ msgid "Python PLUMgrid Library Started "
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:45
+ msgid "PLUMgrid Director server to connect to"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:47
+ msgid "PLUMgrid Director server port to connect to"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:49
+ msgid "PLUMgrid Director admin username"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:51
+ msgid "PLUMgrid Director admin password"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:53
+ msgid "PLUMgrid Director server timeout"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:70
+ msgid "Neutron PLUMgrid Director: Starting Plugin"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:75
+ msgid "Neutron PLUMgrid Director: Neutron server with PLUMgrid Plugin has started"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:87
+ #, python-format
+ msgid "Neutron PLUMgrid Director: %s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:98
+ msgid "Neutron PLUMgrid Director: create_network() called"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:112
+ msgid "PLUMgrid Library: create_network() called"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:127
  msgid "Neutron PLUMgrid Director: update_network() called"
  msgstr ""
  
index c9d61f8de71a7df32c68ecff8ec6dac32dc2bf22,961e9f3f99b7703bed851ec0188ecfbfa2433853..d81bc23ded5b34464bf399117cd214a10b7fcf74
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 8d15858e4664c3bc79b00fa820d38c5b4ae98ded,4707ed3c846302015bec0f7baf22a5da0f0d5553..0dedd532cf370029aa3f3de7f3a10b0756d1c446
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 05d3a508709645d73787fd27a47e3912a88c8562,02251b7436716f57991d55bedefd3d32dc8c1e07..bcf431efe80edcca705a92097d4043f535a9bc40
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index ce4a0becf98b6f363cbf077601b5ecfa5f9ef9a7,8fdcfbf39ebf2edcb411eda90c851089e0c7e09a..6d2b814d03f77ed8b5c1e76a7815ab887de768ee
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3922,7 -4163,7 +4178,7 @@@ msgstr "
  
  #: neutron/openstack/common/db/sqlalchemy/session.py:804
  #, python-format
--msgid "SQL connection failed. %s attempts left."
++msgid "Unable to find ca_file : %s"
  msgstr ""
  
  #: neutron/openstack/common/db/sqlalchemy/utils.py:57
@@@ -3978,29 -4219,29 +4234,28 @@@ msgstr "
  
  #: neutron/openstack/common/notifier/api.py:125
  #, python-format
--msgid "%s not in valid priorities"
++msgid ""
++"%(what)s is deprecated as of %(as_of)s in favor of %(in_favor_of)s and "
++"may be removed in %(remove_in)s."
  msgstr ""
  
--#: neutron/openstack/common/notifier/api.py:141
++#: neutron/openstack/common/versionutils.py:73
  #, python-format
  msgid ""
--"Problem '%(e)s' attempting to send to notification system. "
--"Payload=%(payload)s"
++"%(what)s is deprecated as of %(as_of)s and may be removed in "
++"%(remove_in)s. It will not be superseded."
  msgstr ""
  
--#: neutron/openstack/common/notifier/api.py:171
--#, python-format
--msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/api.py:97
++msgid "DB exceeded retry limit."
  msgstr ""
  
--#: neutron/openstack/common/notifier/rabbit_notifier.py:27
--msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++#: neutron/openstack/common/db/api.py:101
++msgid "DB connection error."
  msgstr ""
  
--#: neutron/openstack/common/notifier/rpc_notifier.py:45
--#: neutron/openstack/common/notifier/rpc_notifier2.py:51
--#, python-format
--msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/db/exception.py:44
++msgid "Invalid Parameter: Unicode is not supported by the current database."
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -4766,110 -5068,120 +5082,307 @@@ msgid "
  "%(action)s action to resource %(resource)s"
  msgstr ""
  
- #: neutron/plugins/bigswitch/servermanager.py:295
+ #: neutron/plugins/bigswitch/servermanager.py:467
+ #, python-format
+ msgid "Unable to create remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:473
+ #, python-format
+ msgid "Unable to update remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:478
+ #, python-format
+ msgid "Unable to delete remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:484
+ #, python-format
+ msgid "Unable to add router interface: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:489
+ #, python-format
+ msgid "Unable to delete remote intf: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:495
+ #, python-format
+ msgid "Unable to create remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:501
+ #: neutron/plugins/bigswitch/servermanager.py:506
+ #, python-format
+ msgid "Unable to update remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:515
+ #, python-format
+ msgid "No device MAC attached to port %s. Skipping notification to controller."
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:520
+ #, python-format
+ msgid "Unable to create remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:525
+ #, python-format
+ msgid "Unable to delete remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:535
+ #, python-format
+ msgid "Unable to create floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:540
+ #, python-format
+ msgid "Unable to update floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:545
+ #, python-format
+ msgid "Unable to delete floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:550
+ msgid "Backend server(s) do not support automated consitency checks."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
+ msgid "Port update received"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
+ #, python-format
+ msgid "Port %s is not present on this host."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
+ #, python-format
+ msgid "Port %s found. Refreshing firewall."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
+ msgid "Agent loop has new device"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
+ #: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:405
+ #: neutron/plugins/nec/agent/nec_neutron_agent.py:222
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:156
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
+ msgid "Error in agent event loop"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
+ #: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:226
+ #: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:1007
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1281
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
+ #, python-format
+ msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
+ msgstr ""
+ #: neutron/plugins/bigswitch/db/consistency_db.py:55
+ #, python-format
+ msgid "Consistency hash for group %(hash_id)s updated to %(hash)s"
+ msgstr ""
++#: neutron/plugins/bigswitch/servermanager.py:115
++#, python-format
++msgid "ServerProxy: server=%(server)s, port=%(port)d, ssl=%(ssl)r"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:118
++#, python-format
++msgid "Received an empty port ID for host_id '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:42
++#, python-format
++msgid "Received an empty host_id for port '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:44
++#, python-format
++msgid "Logging port %(port)s on host_id %(host)s"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:128
++msgid "ServerProxy: Could not establish HTTPS connection"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:135
++msgid "ServerProxy: Could not establish HTTP connection"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:152
++#, python-format
++msgid "ServerProxy: %(action)s failure, %(e)r"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:156
++#, python-format
++msgid ""
++"ServerProxy: status=%(status)d, reason=%(reason)r, ret=%(ret)s, "
++"data=%(data)r"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:168
++msgid "ServerPool: initializing"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:184
++msgid "Servers not defined. Aborting server manager."
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:190
++#, python-format
++msgid "Servers must be defined as <ip>:<port>. Configuration was %s"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:196
++msgid "ServerPool: initialization done"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:239
++#, python-format
++msgid ""
++"ServerProxy: %(action)s failure for servers: %(server)r Response: "
++"%(response)s"
++msgstr ""
++
++#: neutron/plugins/brocade/NeutronPlugin.py:66
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:33
++msgid "The address of the host to SSH to"
++msgstr ""
++
++#: neutron/plugins/brocade/NeutronPlugin.py:68
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:35
++msgid "The SSH username to use"
++msgstr ""
++
++#: neutron/plugins/brocade/NeutronPlugin.py:70
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:37
++msgid "The SSH password to use"
++msgstr ""
++
 +#: neutron/plugins/bigswitch/servermanager.py:284
 +#, python-format
 +msgid "Unable to create remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:290
 +#, python-format
 +msgid "Unable to update remote router: %s"
 +msgstr ""
 +
++#: neutron/plugins/brocade/NeutronPlugin.py:134
++#: neutron/plugins/hyperv/rpc_callbacks.py:55
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:89
++#: neutron/plugins/mlnx/rpc_callbacks.py:76
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:96
 +#, python-format
 +msgid "Unable to delete remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:301
 +#, python-format
 +msgid "Unable to add router interface: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:306
 +#, python-format
 +msgid "Unable to delete remote intf: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:312
 +#, python-format
 +msgid "Unable to create remote network: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:318
 +#: neutron/plugins/bigswitch/servermanager.py:323
 +#, python-format
 +msgid "Unable to update remote network: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:332
 +#, python-format
 +msgid "No device MAC attached to port %s. Skipping notification to controller."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:337
 +#, python-format
 +msgid "Unable to create remote port: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:342
 +#, python-format
 +msgid "Unable to delete remote port: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:352
 +#, python-format
 +msgid "Unable to create floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:357
 +#, python-format
 +msgid "Unable to update floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:362
 +#, python-format
 +msgid "Unable to delete floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
 +msgid "Port update received"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
 +#, python-format
 +msgid "Port %s is not present on this host."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
 +#, python-format
 +msgid "Port %s found. Refreshing firewall."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
 +msgid "Agent loop has new device"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
 +#: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:401
 +#: neutron/plugins/nec/agent/nec_neutron_agent.py:222
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
 +msgid "Error in agent event loop"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
 +#: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:201
 +#: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:975
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
 +#: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1236
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
 +#, python-format
 +msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
 +msgstr ""
 +
  #: neutron/plugins/bigswitch/db/porttracker_db.py:36
  msgid "No host_id in port request to track port location."
  msgstr ""
@@@ -10288,333 -10945,606 +11143,610 @@@ msgstr "
  msgid "Number of seconds to retry acquiring an Open vSwitch datapath"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:209
- #, python-format
- msgid "Skipping unreasonable tunnel ID range %(tun_min)s:%(tun_max)s"
+ #: neutron/plugins/oneconvergence/plugin.py:243
+ msgid "Failed to create subnet, deleting it from neutron"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:257
+ #: neutron/plugins/oneconvergence/plugin.py:307
  #, python-format
- msgid "Reserving tunnel %s from pool"
+ msgid "Deleting newly created neutron port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:272
- #, python-format
- msgid "Reserving specific tunnel %s from pool"
+ #: neutron/plugins/oneconvergence/plugin.py:377
+ msgid "Failed to create floatingip"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:275
- #, python-format
- msgid "Reserving specific tunnel %s outside pool"
+ #: neutron/plugins/oneconvergence/plugin.py:416
+ msgid "Failed to create router"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:298
- #, python-format
- msgid "Releasing tunnel %s outside pool"
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:151
+ msgid "Port list is updated"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:300
- #, python-format
- msgid "Releasing tunnel %s to pool"
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:158
+ msgid "AGENT looping....."
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:302
- #, python-format
- msgid "tunnel_id %s not found"
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:171
+ msgid "NVSD Agent initialized successfully, now running... "
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:374
- #, python-format
- msgid "Adding a tunnel endpoint for %s"
+ #: neutron/plugins/oneconvergence/lib/config.py:26
+ msgid "NVSD Controller IP address"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:390
- #, python-format
- msgid ""
- "Adding a tunnel endpoint failed due to a concurrenttransaction had been "
- "committed (%s attempts left)"
+ #: neutron/plugins/oneconvergence/lib/config.py:29
+ msgid "NVSD Controller Port number"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_db_v2.py:395
- msgid "Unable to generate a new tunnel id"
+ #: neutron/plugins/oneconvergence/lib/config.py:32
+ msgid "NVSD Controller username"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:304
- #, python-format
- msgid "Invalid tenant_network_type: %s. Server terminated!"
+ #: neutron/plugins/oneconvergence/lib/config.py:35
+ msgid "NVSD Controller password"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:321
- #, python-format
- msgid "Tunneling disabled but tenant_network_type is '%s'. Server terminated!"
+ #: neutron/plugins/oneconvergence/lib/config.py:38
+ msgid "NVSD controller REST API request timeout in seconds"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:367
- #, python-format
- msgid "Invalid tunnel ID range: '%(range)s' - %(e)s. Server terminated!"
+ #: neutron/plugins/oneconvergence/lib/config.py:40
+ msgid "Number of login retries to NVSD controller"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:371
- #, python-format
- msgid "Tunnel ID ranges: %s"
+ #: neutron/plugins/oneconvergence/lib/config.py:45
+ msgid "integration bridge"
  msgstr ""
  
- #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:426
+ #: neutron/plugins/oneconvergence/lib/exception.py:23
  #, python-format
- msgid "%s networks are not enabled"
+ msgid "An unknown nvsd plugin exception occurred: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:297
- #, python-format
- msgid "port_update message processed for port %s"
+ #: neutron/plugins/oneconvergence/lib/exception.py:27
+ #: neutron/plugins/vmware/api_client/exception.py:68
+ msgid "The request has timed out."
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:671
- #, python-format
- msgid "Adding %s to list of bridges."
+ #: neutron/plugins/oneconvergence/lib/exception.py:31
+ msgid "Invalid access credentials to the Server."
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:857
+ #: neutron/plugins/oneconvergence/lib/exception.py:35
  #, python-format
- msgid "VIF port: %s has no ofport configured, and might not be able to transmit"
+ msgid "A resource is not found: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:923
+ #: neutron/plugins/oneconvergence/lib/exception.py:39
  #, python-format
- msgid "Processing port %s"
+ msgid "Request sent to server is invalid: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/oneconvergence/lib/exception.py:43
  #, python-format
- msgid ""
- "Port %s was not found on the integration bridge and will therefore not be"
- " processed"
+ msgid "Internal Server Error: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:955
- #, python-format
- msgid "Setting status for %s to UP"
+ #: neutron/plugins/oneconvergence/lib/exception.py:47
+ msgid "Connection is closed by the server."
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:959
+ #: neutron/plugins/oneconvergence/lib/exception.py:51
  #, python-format
- msgid "Setting status for %s to DOWN"
+ msgid "The request is forbidden access to the resource: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:962
+ #: neutron/plugins/oneconvergence/lib/exception.py:55
  #, python-format
- msgid "Configuration for device %s completed."
+ msgid "Internal Server Error from NVSD controller: %(reason)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1053
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:55
  #, python-format
- msgid ""
- "process_network_ports - iteration:%(iter_num)d "
- "-treat_devices_added_or_updated completed in %(elapsed).3f"
+ msgid "Could not create a %(resource)s under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1061
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:59
  #, python-format
- msgid ""
- "process_network_ports - iteration:%(iter_num)d -treat_devices_removed "
- "completed in %(elapsed).3f"
+ msgid "Failed to %(method)s %(resource)s id=%(resource_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1140
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:65
  #, python-format
- msgid "Agent rpc_loop - iteration:%d started"
+ msgid "Failed to %(method)s %(resource)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1154
- msgid "Error while synchronizing tunnels"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:109
+ #, python-format
+ msgid "Network %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1158
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:126
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d - starting polling. "
- "Elapsed:%(elapsed).3f"
+ msgid "Network %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1170
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:147
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d - port information retrieved. "
- "Elapsed:%(elapsed).3f"
+ msgid "Network %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1179
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:160
  #, python-format
- msgid "Starting to process devices in:%s"
+ msgid "Subnet %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1183
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:174
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d -ports processed. "
- "Elapsed:%(elapsed).3f"
+ msgid "Subnet %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1197
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:190
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d -ancillary port info retrieved. "
- "Elapsed:%(elapsed).3f"
+ msgid "Subnet %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:222
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
- "Elapsed:%(elapsed).3f"
+ msgid "Port %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1220
- msgid "Error while processing VIF ports"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:246
+ #, python-format
+ msgid "Port %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1227
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:259
  #, python-format
- msgid ""
- "Agent rpc_loop - iteration:%(iter_num)d completed. Processed ports "
- "statistics: %(port_stats)s. Elapsed:%(elapsed).3f"
+ msgid "Port %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:32
- msgid "Enable tunneling support"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:281
+ #, python-format
+ msgid "Flatingip %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:34
- msgid "Tunnel bridge to use"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:298
+ #, python-format
+ msgid "Flatingip %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:36
- msgid "Peer patch port in integration bridge for tunnel bridge"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:312
+ #, python-format
+ msgid "Flatingip %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:39
- msgid "Peer patch port in tunnel bridge for integration bridge"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:325
+ #, python-format
+ msgid "Router %(id)s created under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:42
- msgid "Local IP address of GRE tunnel endpoints."
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:341
+ #, python-format
+ msgid "Router %(id)s updated under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:45
- msgid "List of <physical_network>:<bridge>"
+ #: neutron/plugins/oneconvergence/lib/nvsdlib.py:351
+ #, python-format
+ msgid "Router %(id)s deleted under tenant %(tenant_id)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:47
- msgid "Network type for tenant networks (local, vlan, gre, vxlan, or none)"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:81
+ #, python-format
+ msgid "Unable to connect to NVSD controller. Exiting after %(retries)s attempts"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:55
- msgid "List of <tun_min>:<tun_max>"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:91
+ #, python-format
+ msgid "Login Failed: %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:57
- msgid "The type of tunnels to use when utilizing tunnels, either 'gre' or 'vxlan'"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:92
+ #, python-format
+ msgid "Unable to establish connection with Controller %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:67
- msgid "Minimize polling by monitoring ovsdb for interface changes."
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:94
+ msgid "Retrying after 1 second..."
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:71
- msgid ""
- "The number of seconds to wait before respawning the ovsdb monitor after "
- "losing communication with it"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:98
+ #, python-format
+ msgid "Login Successful %(uri)s %(status)s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:74
- msgid "Network types supported by the agent (gre and/or vxlan)"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:102
+ #, python-format
+ msgid "AuthToken = %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:77
- msgid "The UDP port to use for VXLAN tunnels."
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:104
+ msgid "login failed"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:79
- msgid "MTU size of veth interfaces"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:112
+ msgid "No Token, Re-login"
  msgstr ""
  
- #: neutron/plugins/openvswitch/common/config.py:81
- msgid ""
- "Use ml2 l2population mechanism driver to learn remote mac and IPs and "
- "improve tunnel scalability"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:129
+ #, python-format
+ msgid "request: %(method)s %(uri)s successful"
  msgstr ""
  
- #: neutron/plugins/plumgrid/common/exceptions.py:26
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:136
  #, python-format
- msgid "PLUMgrid Plugin Error: %(err_msg)s"
+ msgid "request: Request failed from Controller side :%s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/common/exceptions.py:30
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:141
  #, python-format
- msgid "Connection failed with PLUMgrid Director: %(err_msg)s"
+ msgid "Response is Null, Request timed out: %(method)s to %(uri)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:32
- msgid "Python PLUMgrid Fake Library Started "
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:153
+ #, python-format
+ msgid "Request %(method)s %(uri)s body = %(body)s failed with status %(status)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:37
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:157
  #, python-format
- msgid "Fake Director: %s"
+ msgid "%s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/drivers/plumlib.py:38
- msgid "Python PLUMgrid Library Started "
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:161
+ #, python-format
+ msgid "%(method)s to %(url)s, unexpected response code: %(status)d"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:44
- msgid "PLUMgrid Director server to connect to"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:167
+ #, python-format
+ msgid "Request failed from Controller side with Status=%s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:46
- msgid "PLUMgrid Director server port to connect to"
+ #: neutron/plugins/oneconvergence/lib/plugin_helper.py:171
+ #, python-format
+ msgid "Success: %(method)s %(url)s status=%(status)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:48
- msgid "PLUMgrid Director admin username"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:210
+ #, python-format
+ msgid "Skipping unreasonable tunnel ID range %(tun_min)s:%(tun_max)s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:50
- msgid "PLUMgrid Director admin password"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:258
+ #, python-format
+ msgid "Reserving tunnel %s from pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:52
- msgid "PLUMgrid Director server timeout"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:273
+ #, python-format
+ msgid "Reserving specific tunnel %s from pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:69
- msgid "Neutron PLUMgrid Director: Starting Plugin"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:276
+ #, python-format
+ msgid "Reserving specific tunnel %s outside pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:74
- msgid "Neutron PLUMgrid Director: Neutron server with PLUMgrid Plugin has started"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:299
+ #, python-format
+ msgid "Releasing tunnel %s outside pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:86
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:301
  #, python-format
- msgid "Neutron PLUMgrid Director: %s"
+ msgid "Releasing tunnel %s to pool"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:97
- msgid "Neutron PLUMgrid Director: create_network() called"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:303
+ #, python-format
+ msgid "tunnel_id %s not found"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:111
- msgid "PLUMgrid Library: create_network() called"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:375
+ #, python-format
+ msgid "Adding a tunnel endpoint for %s"
  msgstr ""
  
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:126
- msgid "Neutron PLUMgrid Director: update_network() called"
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:391
+ #, python-format
++msgid "Creating NAT rule: %s"
 +msgstr ""
 +
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:137
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:162
- #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:346
++#: neutron/plugins/vmware/nsxlib/router.py:460
+ msgid ""
+ "Adding a tunnel endpoint failed due to a concurrenttransaction had been "
+ "committed (%s attempts left)"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_db_v2.py:396
+ msgid "Unable to generate a new tunnel id"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:305
+ #, python-format
+ msgid "Invalid tenant_network_type: %s. Server terminated!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:322
+ #, python-format
+ msgid "Tunneling disabled but tenant_network_type is '%s'. Server terminated!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:368
+ #, python-format
+ msgid "Invalid tunnel ID range: '%(range)s' - %(e)s. Server terminated!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:372
+ #, python-format
+ msgid "Tunnel ID ranges: %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/ovs_neutron_plugin.py:427
+ #, python-format
+ msgid "%s networks are not enabled"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:299
+ #, python-format
+ msgid "port_update message processed for port %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:673
+ #, python-format
+ msgid "Adding %s to list of bridges."
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:858
+ #, python-format
+ msgid "Port '%(port_name)s' has lost its vlan tag '%(vlan_tag)d'!"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:886
+ #, python-format
+ msgid "VIF port: %s has no ofport configured, and might not be able to transmit"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:952
+ #, python-format
+ msgid "Processing port %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
+ #, python-format
+ msgid ""
+ "Port %s was not found on the integration bridge and will therefore not be"
+ " processed"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:984
+ #, python-format
+ msgid "Setting status for %s to UP"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:988
+ #, python-format
+ msgid "Setting status for %s to DOWN"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:991
+ #, python-format
+ msgid "Configuration for device %s completed."
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1082
+ #, python-format
+ msgid ""
+ "process_network_ports - iteration:%(iter_num)d "
+ "-treat_devices_added_or_updated completed in %(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1090
+ #, python-format
+ msgid ""
+ "process_network_ports - iteration:%(iter_num)d -treat_devices_removed "
+ "completed in %(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1125
+ #, python-format
+ msgid "Unable to create tunnel port. Invalid remote IP: %s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1185
+ #, python-format
+ msgid "Agent rpc_loop - iteration:%d started"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1199
+ msgid "Error while synchronizing tunnels"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1203
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d - starting polling. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1215
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d - port information retrieved. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1224
+ #, python-format
+ msgid "Starting to process devices in:%s"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1228
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d -ports processed. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1242
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d -ancillary port info retrieved. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
+ "Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1265
+ msgid "Error while processing VIF ports"
+ msgstr ""
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1272
+ #, python-format
+ msgid ""
+ "Agent rpc_loop - iteration:%(iter_num)d completed. Processed ports "
+ "statistics: %(port_stats)s. Elapsed:%(elapsed).3f"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:32
+ msgid "Enable tunneling support"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:34
+ msgid "Tunnel bridge to use"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:36
+ msgid "Peer patch port in integration bridge for tunnel bridge"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:39
+ msgid "Peer patch port in tunnel bridge for integration bridge"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:42
+ msgid "Local IP address of GRE tunnel endpoints."
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:45
+ msgid "List of <physical_network>:<bridge>"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:47
+ msgid "Network type for tenant networks (local, vlan, gre, vxlan, or none)"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:55
+ msgid "List of <tun_min>:<tun_max>"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:57
+ msgid "The type of tunnels to use when utilizing tunnels, either 'gre' or 'vxlan'"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:67
+ msgid "Minimize polling by monitoring ovsdb for interface changes."
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:71
+ msgid ""
+ "The number of seconds to wait before respawning the ovsdb monitor after "
+ "losing communication with it"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:74
+ msgid "Network types supported by the agent (gre and/or vxlan)"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:79
+ msgid "MTU size of veth interfaces"
+ msgstr ""
+ #: neutron/plugins/openvswitch/common/config.py:81
+ msgid ""
+ "Use ml2 l2population mechanism driver to learn remote mac and IPs and "
+ "improve tunnel scalability"
+ msgstr ""
+ #: neutron/plugins/plumgrid/common/exceptions.py:26
+ #, python-format
+ msgid "PLUMgrid Plugin Error: %(err_msg)s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/common/exceptions.py:30
+ #, python-format
+ msgid "Connection failed with PLUMgrid Director: %(err_msg)s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:32
+ msgid "Python PLUMgrid Fake Library Started "
+ msgstr ""
+ #: neutron/plugins/plumgrid/drivers/fake_plumlib.py:37
+ #, python-format
+ msgid "Fake Director: %s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/drivers/plumlib.py:38
+ msgid "Python PLUMgrid Library Started "
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:45
+ msgid "PLUMgrid Director server to connect to"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:47
+ msgid "PLUMgrid Director server port to connect to"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:49
+ msgid "PLUMgrid Director admin username"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:51
+ msgid "PLUMgrid Director admin password"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:53
+ msgid "PLUMgrid Director server timeout"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:70
+ msgid "Neutron PLUMgrid Director: Starting Plugin"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:75
+ msgid "Neutron PLUMgrid Director: Neutron server with PLUMgrid Plugin has started"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:87
+ #, python-format
+ msgid "Neutron PLUMgrid Director: %s"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:98
+ msgid "Neutron PLUMgrid Director: create_network() called"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:112
+ msgid "PLUMgrid Library: create_network() called"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:127
+ msgid "Neutron PLUMgrid Director: update_network() called"
+ msgstr ""
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:139
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:164
+ #: neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py:348
  msgid "PLUMgrid Library: update_network() called"
  msgstr ""
  
index dbe081a9f67115b2d33d5403f9e614216926c7cf,9c16feda1ca91e611a1f97e5518e742a5274c5ea..34335a31dd03f12a50593461bea73c707e8728e3
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index aff3ba5c733fa01cfb1cd723783cec030f82da90,cf98edc412efdfde235b96f4d52b7a52e6c7a217..ea28ffe8f3561452096707aa28bf177a43f1228c
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 592e15e4806ad5617871dd81a9c9a44ade7b6657,0736d0577c45783fa3957343d2cff75fb1ea264e..d6b440947c2792bc0aba627c133bc162f5e4a5f8
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 5a5a711c0a8ba67555091c3724e3073b3e349a37,60c82be5ce1065be56d0302100b53f0c4915db7d..3a02dc61089f0e5e3b34d31b37fb57e80a4c9895
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 4bfbc891b015b0903d9ea3ea7c9cef3c94ba3c46,ef42ebbaa74a0da8e8337e2597d4c6245fbbf929..639e291bd2ac843bd1448c30bab3467fcaa1b2a9
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 0a9901fcdecc16431c4717ebd4bab6b185c9e3e0,9381e1b7a73b2cc48ba0d107aba1ed146d7d8635..f2ed8fdce533f07876c0e8c42551c3c76f8b9229
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -11652,9 -12604,24 +12658,24 @@@ msgid "
  "'%(network_gateway_id)s'"
  msgstr ""
  
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:460
+ #, python-format
+ msgid "Created network gateway device: %s"
+ msgstr ""
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:471
+ #, python-format
+ msgid "Updated network gateway device: %s"
+ msgstr ""
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:484
+ #, python-format
+ msgid "Deleted network gateway device: %s."
+ msgstr ""
  #: neutron/plugins/vmware/dbexts/nsxrouter.py:61
  #, python-format
--msgid "Nsx router extension successfully processed for router:%s"
++msgid "DSCP value (%s) will be ignored with 'trusted' marking"
  msgstr ""
  
  #: neutron/plugins/vmware/dbexts/qos_db.py:286
@@@ -12020,8 -12996,8 +13050,12 @@@ msgstr "
  msgid "Router Port %(lport_id)s not found on router %(lrouter_id)s"
  msgstr ""
  
- #: neutron/plugins/vmware/nsxlib/router.py:602
+ #: neutron/plugins/vmware/nsxlib/router.py:605
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "An exception occurred while updating IP addresses on a router logical "
  "port:%s"
@@@ -12132,8 -13108,8 +13166,16 @@@ msgstr "
  msgid "Unable to create port on NSX logical router %s"
  msgstr ""
  
- #: neutron/plugins/vmware/plugins/base.py:258
+ #: neutron/plugins/vmware/plugins/base.py:249
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Unable to create logical router port for neutron port id %(port_id)s on "
  "router %(nsx_router_id)s"
index 09dbe1a9100c2c96f295e856313fcbb9c090a700,8dd201da993a9287f137946b564edbaef5e80d3b..aabd349dddd0f8fe0a054a4b4260359574113be2
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 6d024a8b8c5159304beda320c48a621baee94193,c6731d8af08e05013653711869f2df4f212e07ba..f1690501cad482f08c9bca406b92b7aed30d31d3
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 07cb12d7d490c307f0db87158e301fc5c790ca7a,d5f72a11eb8d50ff59a78213fa6c46752fd219d1..fb27948f4c8d100e0ac2a3d5043361437b10c5b3
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index f416b9eefa9a9ceaed7bd03056c89664e1815836,5cd033849850728e727cbfd8b26a1092d5bd8b67..f29588f6fd7bda26cb7dc4b9f77823d38482fcba
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index bd90ba5d721a1afed90ffe752a92eb5a20e68c8b,7f28167d5f80cb648d837208585472e0e3bc3694..ff5ff44d6e64c053d1f8194c796db544d4d30818
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index bd5563f390b9086e403a3f683a295df531fe8501,c80df0558937553b936c09ed8f8a568b813ac825..7d42c65c541fd1ea8ec0b76f87906883e00e951b
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 3c22879866f970be6d940330b4ab9bdf2098205f,72dee59cc96b7615dce3bee47ccfc518be775921..3bef03d6418363cea07a03ec79801f755ec11e59
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 6b409652e1aa41dd442bc4a94028cc5a6a388122,3d1cd60d1d6b96f5c8321165ce62d491c0419db0..051fcc485b95bc6033cff13f6753015946535026
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 15ee090ca3ca65c16235894c83940852dc335707,0394abc21f268357d67594c8a4e2d9af0fa73d56..89ba68136330a3f619e67a3e08cf222382ea430d
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index fceba625fe6a0a90bad4d2c05f7c1026cd90683f,175a9afc7d0e71bac4afdb0d88b7dfb014cc0c3b..913015c9bcbf61244db3cd497ad227bb00d684cf
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index d67583a793832a081de09b10595c1ebf4a6f571a,055300f0dfeb6b7d8775f2d39abd17638e14a754..d9dcbe45f667043f7b4488255646644725843d8f
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 2e7680247c9af300ca9a5bea5ce848f40b583d8c,93f6b5de1875260d60afb83de20a5673895e09e8..a18d7898e132052e2370cbfd8c0dba7807b642ad
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index d9156315eb496b9bf5d3244b7196d2f3a4296b12,5d6f3a5c61ade04126e9dedb9974d7b9fa2c555b..630e1295132330b19bb9219e08b293312e174c1c
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 749e90e770a8f968057d060a2d7f0829f2335fd3,bf2e0efac3eb71bc377fc808fdcd61f4f02bda8e..baddbca41a933c84b4d6dd9910c5075794c14d3e
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 9ecdcc53213153c638c463d0254a43e4958c5568,443b430a6071b7d6edab175e3de157ae383b5d6f..3f331877c0968e440df786f04773216b2ae9981f
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 55381df664a4f92d30beecde1f55fb4fe5b1295b,bb2aa6838e463cadddc03504bffd0e037c8b52e5..16d82efd5782244fa2884b328c5a3b36ed87a959
@@@ -1237,7 -1270,7 +1270,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3619,26 -3870,16 +3870,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3977,31 -4218,31 +4233,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10385,8 -11314,8 +11368,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10463,8 -11397,8 +11455,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 7bc68b845111e48b1e709f122e440e19c2d1670f,d72ab1f0f2e6b1cd7eb56779edb44c13c7fd9a1d..00f944ca9d84ae82aa48cba51a3874c109ab4cf8
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 13f88ca63e7281862f4d20ed1ba1cdfeda6a0d1f,9dbc34bd05e03fa792ff3ec02657dd3fa47bba7a..29f73172255739fb20db6b1b1f9d44f763911c8d
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 277a5e3979ad91af5eabba49fa7e22f1f895bfe7,970a83b3eb63aa8e7e6ee1c23c274c991dbb8f83..b85521e933547b01b67b13d4093a57a1782a6ecb
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index abdd47fe21aaf691e570000570577e8b683511fb,1b1a9d8310060773da7466bc2ab9147153d477e5..ee26a137965c05a0c73ecb072a628332a6d58280
@@@ -1236,7 -1269,7 +1269,7 @@@ msgstr "
  msgid "Found failed openvswitch port: %s"
  msgstr ""
  
- #: neutron/agent/linux/ovs_lib.py:418
 -#: neutron/agent/linux/ovs_lib.py:400
++#: neutron/agent/linux/ovs_lib.py:464
  #, python-format
  msgid "Port: %(port_name)s is on %(switch)s, not on %(br_name)s"
  msgstr ""
@@@ -3618,26 -3869,16 +3869,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
  msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3976,31 -4217,31 +4232,70 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
 +msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
 +msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
 +msgstr ""
 +
- #: neutron/openstack/common/notifier/rpc_notifier.py:45
- #: neutron/openstack/common/notifier/rpc_notifier2.py:51
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
 +msgstr ""
 +
- msgid "Could not send notification to %(topic)s. Payload=%(message)s"
++#: neutron/openstack/common/middleware/catch_errors.py:40
 +#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr ""
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr ""
+ #: neutron/openstack/common/notifier/rpc_notifier.py:45
+ #: neutron/openstack/common/notifier/rpc_notifier2.py:51
+ #, python-format
+ msgid "Could not send notification to %(topic)s. Payload=%(message)s"
  msgstr ""
  
  #: neutron/openstack/common/rpc/__init__.py:103
@@@ -10384,8 -11313,8 +11367,12 @@@ msgstr "
  msgid "Processing port %s"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:929
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:958
  #, python-format
++msgid "Creating NAT rule: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/router.py:460
  msgid ""
  "Port %s was not found on the integration bridge and will therefore not be"
  " processed"
@@@ -10462,8 -11396,8 +11454,16 @@@ msgid "
  "Elapsed:%(elapsed).3f"
  msgstr ""
  
- #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1206
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1251
  #, python-format
++msgid "Port not found, Error: %s"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:56
++msgid "Operation may not be supported"
++msgstr ""
++
++#: neutron/plugins/vmware/nsxlib/versioning.py:64
  msgid ""
  "Agent rpc_loop - iteration:%(iter_num)d - ancillary ports processed. "
  "Elapsed:%(elapsed).3f"
index 33959decfed7f628b2e9b720c07d2eb193bd786d,581c3119557cb7f84922b541d8b1aef2412250ac..b27edc35411d3e5fbe9ebf0d6afc6da557267145
@@@ -3633,26 -3884,16 +3884,31 @@@ msgstr "
  msgid "Eventlet backdoor listening on %(port)s for process %(pid)d"
  msgstr ""
  
- #: neutron/openstack/common/excutils.py:62
- #, python-format
- msgid "Original exception being dropped: %s"
- msgstr "正在捨棄原始異常狀況:%s"
+ #: neutron/openstack/common/gettextutils.py:271
+ msgid "Message objects do not support addition."
+ msgstr ""
+ #: neutron/openstack/common/gettextutils.py:280
+ msgid ""
+ "Message objects do not support str() because they may contain non-ascii "
+ "characters. Please use unicode() or translate() instead."
+ msgstr ""
  
 +#: neutron/openstack/common/excutils.py:91
 +#, python-format
 +msgid "Unexpected exception occurred %d time(s)... retrying."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:262
 +msgid "Message objects do not support addition."
 +msgstr ""
 +
 +#: neutron/openstack/common/gettextutils.py:271
 +msgid ""
 +"Message objects do not support str() because they may contain non-ascii "
 +"characters. Please use unicode() or translate() instead."
 +msgstr ""
 +
  #: neutron/openstack/common/lockutils.py:103
  #, python-format
  msgid "Could not release the acquired lock `%s`"
@@@ -3991,26 -4232,26 +4247,65 @@@ msgstr "
  msgid "Request is too large."
  msgstr ""
  
- msgid "%s not in valid priorities"
- msgstr "%s 的優先順序無效"
 +#: neutron/openstack/common/notifier/api.py:125
 +#, python-format
- #: neutron/openstack/common/notifier/api.py:141
++msgid ""
++"Please specify column %s in col_name_col_instance param. It is required "
++"because column has unsupported type by sqlite)."
++msgstr ""
 +
- "Problem '%(e)s' attempting to send to notification system. "
- "Payload=%(payload)s"
- msgstr "嘗試傳送至通知系統時發生問題 '%(e)s'。有效負載 = %(payload)s"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:199
 +#, python-format
 +msgid ""
- #: neutron/openstack/common/notifier/api.py:171
++"col_name_col_instance param has wrong type of column instance for column "
++"%s It should be instance of sqlalchemy.Column."
++msgstr ""
 +
- msgid "Failed to load notifier %s. These notifications will not be sent."
- msgstr "無法載入通知者 %s。將不會傳送這些通知。"
++#: neutron/openstack/common/db/sqlalchemy/utils.py:279
 +#, python-format
- #: neutron/openstack/common/notifier/rabbit_notifier.py:27
- msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
- msgstr "rabbit_notifier 現已淘汰。請改用 rpc_notifier。"
++msgid "Deleting duplicated row with id: %(id)s from table: %(table)s"
++msgstr ""
 +
++#: neutron/openstack/common/db/sqlalchemy/utils.py:300
++msgid "Unsupported id columns type"
++msgstr ""
++
++#: neutron/openstack/common/middleware/catch_errors.py:40
++#, python-format
++msgid "An error occurred during processing the request: %s"
++msgstr ""
++
++#: neutron/openstack/common/middleware/notifier.py:40
++#, python-format
++msgid "An exception occurred processing the API call: %s "
++msgstr ""
++
++#: neutron/openstack/common/middleware/sizelimit.py:55
++#: neutron/openstack/common/middleware/sizelimit.py:64
++#: neutron/openstack/common/middleware/sizelimit.py:75
++msgid "Request is too large."
++msgstr ""
++
+ #: neutron/openstack/common/notifier/api.py:125
+ #, python-format
+ msgid "%s not in valid priorities"
+ msgstr "%s 的優先順序無效"
+ #: neutron/openstack/common/notifier/api.py:141
+ #, python-format
+ msgid ""
+ "Problem '%(e)s' attempting to send to notification system. "
+ "Payload=%(payload)s"
+ msgstr "嘗試傳送至通知系統時發生問題 '%(e)s'。有效負載 = %(payload)s"
+ #: neutron/openstack/common/notifier/api.py:171
+ #, python-format
+ msgid "Failed to load notifier %s. These notifications will not be sent."
+ msgstr "無法載入通知者 %s。將不會傳送這些通知。"
+ #: neutron/openstack/common/notifier/rabbit_notifier.py:27
+ msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+ msgstr "rabbit_notifier 現已淘汰。請改用 rpc_notifier。"
  
  #: neutron/openstack/common/notifier/rpc_notifier.py:45
  #: neutron/openstack/common/notifier/rpc_notifier2.py:51
@@@ -4768,129 -5070,139 +5124,296 @@@ msgid "
  "%(response)s"
  msgstr ""
  
- #: neutron/plugins/bigswitch/servermanager.py:306
- #, python-format
- msgid "Unable to delete remote intf: %s"
+ #: neutron/plugins/bigswitch/servermanager.py:427
+ #, python-format
+ msgid ""
+ "ServerProxy: Error details: status=%(status)d, reason=%(reason)r, "
+ "ret=%(ret)s, data=%(data)r"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:434
+ #, python-format
+ msgid "ServerProxy: %(action)s failure for all servers: %(server)r"
+ msgstr "ServerProxy:對所有伺服器 %(server)r 執行的 %(action)s 失敗"
+ #: neutron/plugins/bigswitch/servermanager.py:457
+ #, python-format
+ msgid ""
+ "NeutronRestProxyV2: Received and ignored error code %(code)s on "
+ "%(action)s action to resource %(resource)s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:467
+ #, python-format
+ msgid "Unable to create remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:473
+ #, python-format
+ msgid "Unable to update remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:478
+ #, python-format
+ msgid "Unable to delete remote router: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:484
+ #, python-format
+ msgid "Unable to add router interface: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:489
+ #, python-format
+ msgid "Unable to delete remote intf: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:495
+ #, python-format
+ msgid "Unable to create remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:501
+ #: neutron/plugins/bigswitch/servermanager.py:506
+ #, python-format
+ msgid "Unable to update remote network: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:515
+ #, python-format
+ msgid "No device MAC attached to port %s. Skipping notification to controller."
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:520
+ #, python-format
+ msgid "Unable to create remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:525
+ #, python-format
+ msgid "Unable to delete remote port: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:535
+ #, python-format
+ msgid "Unable to create floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:540
+ #, python-format
+ msgid "Unable to update floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:545
+ #, python-format
+ msgid "Unable to delete floating IP: %s"
+ msgstr ""
+ #: neutron/plugins/bigswitch/servermanager.py:550
+ msgid "Backend server(s) do not support automated consitency checks."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
+ msgid "Port update received"
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
+ #, python-format
+ msgid "Port %s is not present on this host."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
+ #, python-format
+ msgid "Port %s found. Refreshing firewall."
+ msgstr ""
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
+ msgid "Agent loop has new device"
+ msgstr "代理程式迴圈具有新裝置"
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
+ #: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:405
+ #: neutron/plugins/nec/agent/nec_neutron_agent.py:222
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
+ #: neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py:156
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
+ msgid "Error in agent event loop"
+ msgstr "代理程式事件迴圈發生錯誤"
+ #: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
+ #: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:226
+ #: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:1007
+ #: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
+ #: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1281
+ #: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
+ #, python-format
+ msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
+ msgstr "迴圈反覆運算已超出間隔(%(polling_interval)s 與 %(elapsed)s)!"
+ #: neutron/plugins/bigswitch/db/consistency_db.py:55
+ #, python-format
+ msgid "Consistency hash for group %(hash_id)s updated to %(hash)s"
+ msgstr ""
++#: neutron/plugins/bigswitch/servermanager.py:196
++msgid "ServerPool: initialization done"
++msgstr ""
++
++#: neutron/plugins/bigswitch/servermanager.py:239
++#, python-format
++msgid "Received an empty port ID for host_id '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:42
++#, python-format
++msgid "Received an empty host_id for port '%s'"
++msgstr ""
++
++#: neutron/plugins/bigswitch/db/porttracker_db.py:44
++#, python-format
++msgid "Logging port %(port)s on host_id %(host)s"
++msgstr ""
++
 +#: neutron/plugins/bigswitch/servermanager.py:245
 +#, python-format
 +msgid ""
 +"ServerProxy: Error details: status=%(status)d, reason=%(reason)r, "
 +"ret=%(ret)s, data=%(data)r"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:252
 +#, python-format
 +msgid "ServerProxy: %(action)s failure for all servers: %(server)r"
 +msgstr "ServerProxy:對所有伺服器 %(server)r 執行的 %(action)s 失敗"
 +
 +#: neutron/plugins/bigswitch/servermanager.py:274
 +#, python-format
 +msgid ""
 +"NeutronRestProxyV2: Received and ignored error code %(code)s on "
 +"%(action)s action to resource %(resource)s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:284
 +#, python-format
 +msgid "Unable to create remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:290
 +#, python-format
 +msgid "Unable to update remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:295
 +#, python-format
 +msgid "Unable to delete remote router: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:301
 +#, python-format
 +msgid "Unable to add router interface: %s"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:312
- #, python-format
- msgid "Unable to create remote network: %s"
++#: neutron/plugins/brocade/NeutronPlugin.py:66
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:33
++msgid "The address of the host to SSH to"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:318
- #: neutron/plugins/bigswitch/servermanager.py:323
- #, python-format
- msgid "Unable to update remote network: %s"
++#: neutron/plugins/brocade/NeutronPlugin.py:68
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:35
++msgid "The SSH username to use"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:342
++#: neutron/plugins/brocade/NeutronPlugin.py:70
++#: neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py:37
++msgid "The SSH password to use"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:332
 +#, python-format
 +msgid "No device MAC attached to port %s. Skipping notification to controller."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:337
 +#, python-format
 +msgid "Unable to create remote port: %s"
 +msgstr ""
 +
- #: neutron/plugins/bigswitch/servermanager.py:352
++#: neutron/plugins/brocade/NeutronPlugin.py:134
++#: neutron/plugins/hyperv/rpc_callbacks.py:55
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:89
++#: neutron/plugins/mlnx/rpc_callbacks.py:76
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:96
 +#, python-format
 +msgid "Unable to delete remote port: %s"
 +msgstr ""
 +
++#: neutron/plugins/brocade/NeutronPlugin.py:148
++#: neutron/plugins/brocade/NeutronPlugin.py:165
++#: neutron/plugins/hyperv/rpc_callbacks.py:71
++#: neutron/plugins/hyperv/rpc_callbacks.py:90
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:112
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:139
++#: neutron/plugins/linuxbridge/lb_neutron_plugin.py:162
++#: neutron/plugins/mlnx/rpc_callbacks.py:98
++#: neutron/plugins/mlnx/rpc_callbacks.py:117
++#: neutron/plugins/mlnx/rpc_callbacks.py:132
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:114
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:141
++#: neutron/plugins/openvswitch/ovs_neutron_plugin.py:164
 +#, python-format
 +msgid "Unable to create floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:357
 +#, python-format
 +msgid "Unable to update floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/servermanager.py:362
 +#, python-format
 +msgid "Unable to delete floating IP: %s"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:113
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:236
 +msgid "Port update received"
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:117
 +#, python-format
 +msgid "Port %s is not present on this host."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:120
 +#, python-format
 +msgid "Port %s found. Refreshing firewall."
 +msgstr ""
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:148
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:269
 +msgid "Agent loop has new device"
 +msgstr "代理程式迴圈具有新裝置"
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:152
 +#: neutron/plugins/mlnx/agent/eswitch_neutron_agent.py:401
 +#: neutron/plugins/nec/agent/nec_neutron_agent.py:222
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1313
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:273
 +msgid "Error in agent event loop"
 +msgstr "代理程式事件迴圈發生錯誤"
 +
 +#: neutron/plugins/bigswitch/agent/restproxy_agent.py:158
 +#: neutron/plugins/ibm/agent/sdnve_neutron_agent.py:201
 +#: neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:975
 +#: neutron/plugins/ofagent/agent/ofa_neutron_agent.py:1328
 +#: neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:1236
 +#: neutron/plugins/ryu/agent/ryu_neutron_agent.py:279
 +#, python-format
 +msgid "Loop iteration exceeded interval (%(polling_interval)s vs. %(elapsed)s)!"
 +msgstr "迴圈反覆運算已超出間隔(%(polling_interval)s 與 %(elapsed)s)!"
 +
  #: neutron/plugins/bigswitch/db/porttracker_db.py:36
  msgid "No host_id in port request to track port location."
  msgstr ""
@@@ -7800,7 -8178,7 +8386,7 @@@ msgstr "
  
  #: neutron/plugins/midonet/midonet_lib.py:273
  #, python-format
--msgid "MidoClient.update_port called: id=%(id)s, kwargs=%(kwargs)s"
++msgid "%s. Agent terminated!"
  msgstr ""
  
  #: neutron/plugins/midonet/midonet_lib.py:298
@@@ -11701,9 -12653,24 +12861,24 @@@ msgid "
  "'%(network_gateway_id)s'"
  msgstr "正在切斷網路 '%(network_id)s' 與閘道 '%(network_gateway_id)s' 的連線"
  
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:460
+ #, python-format
+ msgid "Created network gateway device: %s"
+ msgstr ""
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:471
+ #, python-format
+ msgid "Updated network gateway device: %s"
+ msgstr ""
+ #: neutron/plugins/vmware/dbexts/networkgw_db.py:484
+ #, python-format
+ msgid "Deleted network gateway device: %s."
+ msgstr ""
  #: neutron/plugins/vmware/dbexts/nsxrouter.py:61
  #, python-format
--msgid "Nsx router extension successfully processed for router:%s"
++msgid "DSCP value (%s) will be ignored with 'trusted' marking"
  msgstr ""
  
  #: neutron/plugins/vmware/dbexts/qos_db.py:286
@@@ -13864,560 -14916,909 +15124,1119 @@@ msgstr "å\8c¯å\85¥è² è¼\89平衡å\99¨è£\9dç½®é©\85å
  msgid "Multiple device drivers with the same name found: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:29
- msgid "The URL to reach the NetScaler Control Center Server."
 +#: neutron/services/loadbalancer/agent/agent_manager.py:141
 +msgid "Error upating stats"
 +msgstr "更新統計資料時發生錯誤"
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:156
 +msgid "Unable to retrieve ready devices"
 +msgstr "無法擷取備妥的裝置"
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:173
 +#: neutron/services/loadbalancer/agent/agent_manager.py:238
 +#, python-format
 +msgid "No device driver on agent: %s."
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:183
 +#, python-format
 +msgid "Unable to deploy instance for pool: %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:193
 +#, python-format
 +msgid "Unable to destroy device for pool: %s"
 +msgstr "無法毀損儲存區的裝置:%s"
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:206
 +#, python-format
 +msgid "%(operation)s %(obj)s %(id)s failed on device driver %(driver)s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:332
 +#, python-format
 +msgid "Destroying pool %s due to agent disabling"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/agent/agent_manager.py:335
 +#, python-format
 +msgid "Agent_updated by server side %s!"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:44
 +msgid "Driver to use for scheduling pool to a default loadbalancer agent"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:52
 +msgid "Device driver for agent should be specified in plugin driver."
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:79
 +#, python-format
 +msgid "Multiple lbaas agents found on host %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:99
 +msgid "Expected active pool"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:161
 +#, python-format
 +msgid "Unknown object type: %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:172
 +#, python-format
 +msgid ""
 +"Cannot update status: %(obj_type)s %(obj_id)s not found in the DB, it was"
 +" probably deleted concurrently"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:195
 +#, python-format
 +msgid "Unable to find port %s to plug."
 +msgstr "找不到要插入的埠 %s。"
 +
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:219
 +#: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:236
 +#, python-format
 +msgid ""
 +"Unable to find port %s to unplug.  This can occur when the Vip has been "
 +"deleted first."
 +msgstr "找不到要拔除的埠 %s。如果先刪除 VIP,則可能會發生此情況。"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:48
 +msgid "Location to store config and state files"
 +msgstr "配置檔及狀態檔的儲存位置"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:54
 +msgid "The user group"
 +msgstr "使用者群組"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:70
 +#, python-format
 +msgid "Error importing interface driver: %s"
 +msgstr "匯入介面驅動程式時發生錯誤:%s"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:160
 +#, python-format
 +msgid "Stats socket not found for pool %s"
 +msgstr "找不到儲存區 %s 的統計資料 Socket"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:202
 +#, python-format
 +msgid "Error while connecting to stats socket: %s"
 +msgstr "連接至統計資料 Socket 時發生錯誤:%s"
 +
 +#: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:348
 +#, python-format
 +msgid "Unable to kill haproxy process: %s"
 +msgstr "無法結束 haproxy 處理程序:%s"
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:43
 +#, python-format
 +msgid "NCC Error %d"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:54
 +msgid "No NetScaler Control Center URI specified. Cannot connect."
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:133
 +#, python-format
 +msgid "Connection error occurred while connecting to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:138
 +#, python-format
 +msgid "SSL error occurred while connecting to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:143
 +#, python-format
 +msgid "Request to %s timed out"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:150
 +msgid "Request did not specify a valid URL"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:154
 +#, python-format
 +msgid "Too many redirects occurred for request to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:158
 +#, python-format
 +msgid "A request error while connecting to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:163
 +#, python-format
 +msgid "A unknown error occurred during request to %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:168
 +#, python-format
 +msgid "Response: %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:171
 +#, python-format
 +msgid "Unable to login. Invalid credentials passed.for: %s"
 +msgstr ""
 +
 +#: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:175
 +#, python-format
 +msgid "Failed %(method)s operation on %(url)s status code: %(response_status)s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:33
- msgid "Username to login to the NetScaler Control Center Server."
++#: neutron/services/loadbalancer/plugin.py:82
++#, python-format
++msgid "Delete associated loadbalancer pools before removing providers %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:37
- msgid "Password to login to the NetScaler Control Center Server."
++#: neutron/services/loadbalancer/plugin.py:91
++#, python-format
++msgid "Error retrieving driver for provider %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:75
++#: neutron/services/loadbalancer/plugin.py:99
++#, python-format
++msgid "Error retrieving provider for pool %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:90
- #, python-format
- msgid "NetScaler driver vip %(vip_id)s update: %(vip_obj)s"
++#: neutron/services/loadbalancer/plugin.py:190
 +#, python-format
 +msgid "NetScaler driver vip creation: %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:105
++#: neutron/services/loadbalancer/agent/agent.py:34
++msgid "Seconds between periodic task runs"
++msgstr "定期執行作業的間隔秒數"
++
++#: neutron/services/loadbalancer/agent/agent_manager.py:40
++msgid "Drivers used to manage loadbalancing devices"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:126
++#: neutron/services/loadbalancer/agent/agent_manager.py:46
 +#, python-format
 +msgid "NetScaler driver vip removal: %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:141
++#: neutron/services/loadbalancer/agent/agent_manager.py:94
 +#, python-format
 +msgid "NetScaler driver pool creation: %s"
 +msgstr ""
 +
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:156
++#: neutron/services/loadbalancer/agent/agent_manager.py:101
 +#, python-format
 +msgid "NetScaler driver pool %(pool_id)s update: %(pool_obj)s"
 +msgstr ""
 +
+ #: neutron/services/loadbalancer/agent/agent_manager.py:141
  #, python-format
- msgid "NetScaler driver pool removal: %s"
+ msgid "Error updating statistics on pool %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:173
+ #: neutron/services/loadbalancer/agent/agent_manager.py:157
+ msgid "Unable to retrieve ready devices"
+ msgstr "無法擷取備妥的裝置"
+ #: neutron/services/loadbalancer/agent/agent_manager.py:174
+ #: neutron/services/loadbalancer/agent/agent_manager.py:239
  #, python-format
- msgid "NetScaler driver poolmember creation: %s"
+ msgid "No device driver on agent: %s."
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:191
+ #: neutron/services/loadbalancer/agent/agent_manager.py:184
  #, python-format
- msgid "NetScaler driver poolmember %(member_id)s update: %(member_obj)s"
+ msgid "Unable to deploy instance for pool: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:208
+ #: neutron/services/loadbalancer/agent/agent_manager.py:194
  #, python-format
- msgid "NetScaler driver poolmember removal: %s"
+ msgid "Unable to destroy device for pool: %s"
+ msgstr "無法毀損儲存區的裝置:%s"
+ #: neutron/services/loadbalancer/agent/agent_manager.py:207
+ #, python-format
+ msgid "%(operation)s %(obj)s %(id)s failed on device driver %(driver)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:226
+ #: neutron/services/loadbalancer/agent/agent_manager.py:333
  #, python-format
- msgid ""
- "NetScaler driver healthmonitor creation for pool %(pool_id)s: "
- "%(monitor_obj)s"
+ msgid "Destroying pool %s due to agent disabling"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:249
+ #: neutron/services/loadbalancer/agent/agent_manager.py:336
  #, python-format
- msgid "NetScaler driver healthmonitor %(monitor_id)s update: %(monitor_obj)s"
+ msgid "Agent_updated by server side %s!"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:270
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:44
+ msgid "Driver to use for scheduling pool to a default loadbalancer agent"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:52
+ msgid "Device driver for agent should be specified in plugin driver."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:79
  #, python-format
- msgid "NetScaler driver healthmonitor %(monitor_id)sremoval for pool %(pool_id)s"
+ msgid "Multiple lbaas agents found on host %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:290
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:159
  #, python-format
- msgid "NetScaler driver pool stats retrieval: %s"
+ msgid "Unknown object type: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:415
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:170
  #, python-format
  msgid ""
- "Filtering ports based on network_id=%(network_id)s, "
- "tenant_id=%(tenant_id)s, device_id=%(device_id)s"
+ "Cannot update status: %(obj_type)s %(obj_id)s not found in the DB, it was"
+ " probably deleted concurrently"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:430
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:193
  #, python-format
- msgid "Found an existing SNAT port for subnet %s"
- msgstr ""
+ msgid "Unable to find port %s to plug."
+ msgstr "找不到要插入的埠 %s。"
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:433
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:217
+ #: neutron/services/loadbalancer/drivers/common/agent_driver_base.py:234
  #, python-format
- msgid "Found no SNAT ports for subnet %s"
+ msgid ""
+ "Unable to find port %s to unplug.  This can occur when the Vip has been "
+ "deleted first."
+ msgstr "找不到要拔除的埠 %s。如果先刪除 VIP,則可能會發生此情況。"
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:32
+ msgid "Load Balancer image id (Embrane LB)"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:454
- #, python-format
- msgid "Created SNAT port: %s"
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:34
+ msgid "In band Security Zone id for LBs"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:462
- #, python-format
- msgid "Removed SNAT port: %s"
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:36
+ msgid "Out of band Security Zone id for LBs"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:469
- #, python-format
- msgid "No SNAT port found for subnet %s. Creating one..."
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:38
+ msgid "Management Security Zone id for LBs"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:477
- #, python-format
- msgid "SNAT port: %s"
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:40
+ msgid "Dummy user traffic Security Zone id for LBs"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:487
- #, python-format
- msgid "Removing SNAT port for subnet %s as this is the last pool using it..."
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:44
+ msgid "choose LB image flavor to use, accepted values: small, medium"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:61
- msgid "vdirect server IP address"
+ #: neutron/services/loadbalancer/drivers/embrane/config.py:47
+ msgid "resource synchronization interval in seconds"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:64
- msgid "vdirect user name"
+ #: neutron/services/loadbalancer/drivers/embrane/constants.py:51
+ #, python-format
+ msgid "%s, probably was cancelled through the heleos UI"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:67
- msgid "vdirect user password"
+ #: neutron/services/loadbalancer/drivers/embrane/constants.py:58
+ #, python-format
+ msgid ""
+ "Failed to delete the backend load balancer for reason %s. Please remove "
+ "it manually through the heleos UI"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:70
- msgid "Service ADC type"
+ #: neutron/services/loadbalancer/drivers/embrane/constants.py:61
+ #, python-format
+ msgid ""
+ "No subnet is associated to member %s (required to identify the proper "
+ "load balancer port)"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:73
- msgid "Service ADC version"
+ #: neutron/services/loadbalancer/drivers/embrane/driver.py:88
+ msgid "Connection limit is not supported by Embrane LB"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:76
- msgid "service HA pair"
+ #: neutron/services/loadbalancer/drivers/embrane/driver.py:94
+ #, python-format
+ msgid "Session persistence %s not supported by Embrane LBaaS"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:79
- msgid "service throughtput"
+ #: neutron/services/loadbalancer/drivers/embrane/driver.py:132
+ #, python-format
+ msgid "Subnet assigned to pool %s doesn't exist, backend port can't be created"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:82
- msgid "service ssl throughtput"
+ #: neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py:111
+ #, python-format
+ msgid ""
+ "The load balancer %s had no physical representation, likely already "
+ "deleted"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:85
- msgid "service compression throughtput"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:48
+ msgid "Location to store config and state files"
+ msgstr "配置檔及狀態檔的儲存位置"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:54
+ msgid "The user group"
+ msgstr "使用者群組"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:70
+ #, python-format
+ msgid "Error importing interface driver: %s"
+ msgstr "匯入介面驅動程式時發生錯誤:%s"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:160
+ #, python-format
+ msgid "Stats socket not found for pool %s"
+ msgstr "找不到儲存區 %s 的統計資料 Socket"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:202
+ #, python-format
+ msgid "Error while connecting to stats socket: %s"
+ msgstr "連接至統計資料 Socket 時發生錯誤:%s"
+ #: neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py:353
+ #, python-format
+ msgid "Unable to kill haproxy process: %s"
+ msgstr "無法結束 haproxy 處理程序:%s"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:43
+ #, python-format
+ msgid "NCC Error %d"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:88
- msgid "service cache"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:54
+ msgid "No NetScaler Control Center URI specified. Cannot connect."
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:91
- msgid "l2_l3 workflow name"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:133
+ #, python-format
+ msgid "Connection error occurred while connecting to %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:94
- msgid "l4 workflow name"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:138
+ #, python-format
+ msgid "SSL error occurred while connecting to %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:101
- msgid "l2_l3 workflow constructor params"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:143
+ #, python-format
+ msgid "Request to %s timed out"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:108
- msgid "l2_l3 workflow setup params"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:150
+ msgid "Request did not specify a valid URL"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:111
- msgid "List of actions that we dont want to push to the completion queue"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:154
+ #, python-format
+ msgid "Too many redirects occurred for request to %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:115
- msgid "l4 workflow action name"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:158
+ #, python-format
+ msgid "A request error while connecting to %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:118
- msgid "Resource pool ids"
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:163
+ #, python-format
+ msgid "A unknown error occurred during request to %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:168
+ #, python-format
+ msgid "Response: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:171
+ #, python-format
+ msgid "Unable to login. Invalid credentials passed.for: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/ncc_client.py:175
+ #, python-format
+ msgid "Failed %(method)s operation on %(url)s status code: %(response_status)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:29
+ msgid "The URL to reach the NetScaler Control Center Server."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:33
+ msgid "Username to login to the NetScaler Control Center Server."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:37
+ msgid "Password to login to the NetScaler Control Center Server."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:75
+ #, python-format
+ msgid "NetScaler driver vip creation: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:90
+ #, python-format
+ msgid "NetScaler driver vip %(vip_id)s update: %(vip_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:105
+ #, python-format
+ msgid "NetScaler driver vip removal: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:126
+ #, python-format
+ msgid "NetScaler driver pool creation: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:141
+ #, python-format
+ msgid "NetScaler driver pool %(pool_id)s update: %(pool_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:156
+ #, python-format
+ msgid "NetScaler driver pool removal: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:173
+ #, python-format
+ msgid "NetScaler driver poolmember creation: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:191
+ #, python-format
+ msgid "NetScaler driver poolmember %(member_id)s update: %(member_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:208
+ #, python-format
+ msgid "NetScaler driver poolmember removal: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:226
+ #, python-format
+ msgid ""
+ "NetScaler driver healthmonitor creation for pool %(pool_id)s: "
+ "%(monitor_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:249
+ #, python-format
+ msgid "NetScaler driver healthmonitor %(monitor_id)s update: %(monitor_obj)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:270
+ #, python-format
+ msgid "NetScaler driver healthmonitor %(monitor_id)sremoval for pool %(pool_id)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:290
+ #, python-format
+ msgid "NetScaler driver pool stats retrieval: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:415
+ #, python-format
+ msgid ""
+ "Filtering ports based on network_id=%(network_id)s, "
+ "tenant_id=%(tenant_id)s, device_id=%(device_id)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:430
+ #, python-format
+ msgid "Found an existing SNAT port for subnet %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:433
+ #, python-format
+ msgid "Found no SNAT ports for subnet %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:454
+ #, python-format
+ msgid "Created SNAT port: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:462
+ #, python-format
+ msgid "Removed SNAT port: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:469
+ #, python-format
+ msgid "No SNAT port found for subnet %s. Creating one..."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:477
+ #, python-format
+ msgid "SNAT port: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py:487
+ #, python-format
+ msgid "Removing SNAT port for subnet %s as this is the last pool using it..."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:61
+ msgid "vdirect server IP address"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:64
+ msgid "vdirect user name"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:67
+ msgid "vdirect user password"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:70
+ msgid "Service ADC type"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:73
+ msgid "Service ADC version"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:76
+ msgid "service HA pair"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:79
+ msgid "service throughtput"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:82
+ msgid "service ssl throughtput"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:85
+ msgid "service compression throughtput"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:88
+ msgid "service cache"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:91
+ msgid "l2_l3 workflow name"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:94
+ msgid "l4 workflow name"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:101
+ msgid "l2_l3 workflow constructor params"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:108
+ msgid "l2_l3 workflow setup params"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:111
+ msgid "List of actions that we dont want to push to the completion queue"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:115
+ msgid "l4 workflow action name"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:118
+ msgid "Resource pool ids"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:121
+ msgid "A required VLAN for the interswitch link to use"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:124
+ msgid "Support an Alteon interswitch link for stateful session failover"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:183
+ #, python-format
+ msgid "create_vip. vip: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:185
+ #, python-format
+ msgid "create_vip. extended_vip: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:187
+ #, python-format
+ msgid "create_vip. network_id: %s "
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:189
+ #, python-format
+ msgid "create_vip. service_name: %s "
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:223
+ #, python-format
+ msgid "Failed to remove workflow %s. Going to set vip to ERROR status"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:314
+ #, python-format
+ msgid ""
+ "_handle_pool_health_monitor. health_monitor = %(hm_id)s pool_id = "
+ "%(pool_id)s delete = %(delete)s vip_id = %(vip_id)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:364
+ #, python-format
+ msgid "_update_workflow response: %s "
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:373
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:393
+ #, python-format
+ msgid "Pushing operation %s to the queue"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:379
+ #, python-format
+ msgid "Remove the workflow %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:484
+ #, python-format
+ msgid "create_workflow response: %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:531
+ #, python-format
+ msgid "vDirectRESTClient:init server=%(server)s, port=%(port)d, ssl=%(ssl)r"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:557
+ msgid "vdirectRESTClient: Could not establish HTTPS connection"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:564
+ msgid "vdirectRESTClient: Could not establish HTTP connection"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:581
+ #, python-format
+ msgid "vdirectRESTClient: %(action)s failure, %(e)r"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:628
+ #, python-format
+ msgid "Operation %(operation)s failed. Reason: %(msg)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:669
+ #, python-format
+ msgid ""
+ "Operation %(oper)s is completed after %(sec_to_completion)d sec with "
+ "success status: %(success)s :"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:681
+ #, python-format
+ msgid "Operation %s is not completed yet.."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:696
+ msgid "Exception was thrown inside OperationCompletionHandler"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:723
+ #, python-format
+ msgid "_update: %s "
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/driver.py:763
+ #, python-format
+ msgid "_remove_object_from_db %s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/exceptions.py:24
+ msgid "An unknown exception occurred in Radware LBaaS provider."
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/exceptions.py:28
+ msgid ""
+ "vDirect user/password missing. Specify in configuration file, under "
+ "[radware] section"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/exceptions.py:33
+ #, python-format
+ msgid ""
+ "Workflow %(workflow)s is missing on vDirect server. Upload missing "
+ "workflow"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/exceptions.py:38
+ #, python-format
+ msgid ""
+ "REST request failed with status %(status)s. Reason: %(reason)s, "
+ "Description: %(description)s. Success status codes are %(success_codes)s"
+ msgstr ""
+ #: neutron/services/loadbalancer/drivers/radware/exceptions.py:44
+ #, python-format
+ msgid "%(operation)s operation is not supported for %(entity)s."
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:67
+ msgid "Metering driver"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:69
+ msgid "Interval between two metering measures"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:71
+ msgid "Interval between two metering reports"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:95
+ #, python-format
+ msgid "Loading Metering driver %s"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:97
+ msgid "A metering driver must be specified"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:112
+ #, python-format
+ msgid "Send metering report: %s"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:179
+ #, python-format
+ msgid "Driver %(driver)s does not implement %(func)s"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:183
+ #, python-format
+ msgid "Driver %(driver)s:%(func)s runtime error"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:218
+ msgid "Get router traffic counters"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:222
+ msgid "Update metering rules from agent"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:227
+ msgid "Creating a metering label from agent"
+ msgstr ""
+ #: neutron/services/metering/agents/metering_agent.py:234
+ msgid "Delete a metering label from agent"
+ msgstr ""
+ #: neutron/services/metering/drivers/iptables/iptables_driver.py:93
+ #, python-format
+ msgid "Loading interface driver %s"
+ msgstr ""
+ #: neutron/services/vpn/agent.py:28
+ msgid "The vpn device drivers Neutron will use"
+ msgstr ""
+ #: neutron/services/vpn/plugin.py:48
+ #, python-format
+ msgid "VPN plugin using service driver: %s"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:71
+ #, python-format
+ msgid "RESPONSE: %s"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:84
+ #, python-format
+ msgid "%(method)s: Request for %(resource)s payload: %(payload)s"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:91
+ #, python-format
+ msgid "%(method)s Took %(time).2f seconds to process"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:97
+ #, python-format
+ msgid "%(method)s: Request timeout%(ssl)s (%(timeout).3f sec) for CSR(%(host)s)"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:106
+ #, python-format
+ msgid "%(method)s: Unable to connect to CSR(%(host)s)"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:110
+ #, python-format
+ msgid "%(method)s: Unexpected error for CSR (%(host)s): %(error)s"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:116
+ #, python-format
+ msgid "%(method)s: Completed [%(status)s]"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:131
+ #, python-format
+ msgid "%(auth)s with CSR %(host)s"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:138
+ #, python-format
+ msgid "Successfully authenticated with CSR %s"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:140
+ #, python-format
+ msgid "Failed authentication with CSR %(host)s [%(status)s]"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_csr_rest_client.py:175
+ #, python-format
+ msgid "%(method)s: Request timeout for CSR(%(host)s)"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:43
+ msgid "Status check interval for Cisco CSR IPSec connections"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:53
+ #, python-format
+ msgid "Cisco CSR failed to create %(resource)s (%(which)s)"
+ msgstr ""
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:57
+ #, python-format
+ msgid ""
+ "Required %(resource)s attribute %(attr)s mapping for Cisco CSR is missing"
+ " in device driver"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:121
- msgid "A required VLAN for the interswitch link to use"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:62
+ #, python-format
+ msgid ""
+ "Device driver does not have a mapping of '%(value)s for attribute "
+ "%(attr)s of %(resource)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:124
- msgid "Support an Alteon interswitch link for stateful session failover"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:77
+ #, python-format
+ msgid "Scanning config files %s for Cisco CSR configurations"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:183
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:82
  #, python-format
- msgid "create_vip. vip: %s"
+ msgid "Config file parse error: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:185
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:86
  #, python-format
- msgid "create_vip. extended_vip: %s"
+ msgid "Unable to parse config files %s for Cisco CSR info"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:187
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:96
  #, python-format
- msgid "create_vip. network_id: %s "
+ msgid "Ignoring Cisco CSR configuration entry - router IP %s is not valid"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:189
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:107
  #, python-format
- msgid "create_vip. service_name: %s "
+ msgid "Ignoring Cisco CSR for router %(router)s - missing %(field)s setting"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:223
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:115
  #, python-format
- msgid "Failed to remove workflow %s. Going to set vip to ERROR status"
+ msgid "Ignoring Cisco CSR for router %s - timeout is not a floating point number"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:314
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:124
  #, python-format
- msgid ""
- "_handle_pool_health_monitor. health_monitor = %(hm_id)s pool_id = "
- "%(pool_id)s delete = %(delete)s vip_id = %(vip_id)s"
+ msgid "Ignoring Cisco CSR for subnet %s - REST management is not an IP address"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:364
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:131
  #, python-format
- msgid "_update_workflow response: %s "
+ msgid "Ignoring Cisco CSR for router %s - local tunnel is not an IP address"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:373
- #: neutron/services/loadbalancer/drivers/radware/driver.py:393
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:141
  #, python-format
- msgid "Pushing operation %s to the queue"
+ msgid "Found CSR for router %(router)s: %(info)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:379
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:206
  #, python-format
- msgid "Remove the workflow %s"
+ msgid "Loaded %(num)d Cisco CSR configuration%(plural)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:484
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:210
  #, python-format
- msgid "create_workflow response: %s"
+ msgid "No Cisco CSR configurations found in: %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:531
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:224
  #, python-format
- msgid "vDirectRESTClient:init server=%(server)s, port=%(port)d, ssl=%(ssl)r"
+ msgid "Handling VPN service update notification '%s'"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:557
- msgid "vdirectRESTClient: Could not establish HTTPS connection"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:246
+ #, python-format
+ msgid "Update: IPSec connection %s unchanged - marking clean"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:564
- msgid "vdirectRESTClient: Could not establish HTTP connection"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:252
+ #, python-format
+ msgid "Update: IPSec connection %s is admin down - will be removed in sweep phase"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:581
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:256
  #, python-format
- msgid "vdirectRESTClient: %(action)s failure, %(e)r"
+ msgid "Update: Unknown IPSec connection %s is admin down - ignoring"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:628
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:259
  #, python-format
- msgid "Operation %(operation)s failed. Reason: %(msg)s"
+ msgid "Update: New IPSec connection %s - marking clean"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:669
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:270
  #, python-format
  msgid ""
- "Operation %(oper)s is completed after %(sec_to_completion)d sec with "
- "success status: %(success)s :"
+ "Update: Skipping VPN service %(service)s as it's router (%(csr_id)s is "
+ "not associated with a Cisco CSR"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:681
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:281
  #, python-format
- msgid "Operation %s is not completed yet.."
+ msgid "Update: VPN service %s is admin down - will be removed in sweep phase"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:696
- msgid "Exception was thrown inside OperationCompletionHandler"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:286
+ #, python-format
+ msgid "Update: Unknown VPN service %s is admin down - ignoring"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:723
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:291
  #, python-format
- msgid "_update: %s "
+ msgid "Update: Processing IPSec connections for VPN service %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/driver.py:763
- #, python-format
- msgid "_remove_object_from_db %s"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:295
+ msgid "Update: Completed update processing"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/exceptions.py:24
- msgid "An unknown exception occurred in Radware LBaaS provider."
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:325
+ #, python-format
+ msgid "Mark: %(service)d VPN services and %(conn)d IPSec connections marked dirty"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/exceptions.py:28
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:344
+ #, python-format
  msgid ""
- "vDirect user/password missing. Specify in configuration file, under "
- "[radware] section"
+ "Sweep: Removed %(service)d dirty VPN service%(splural)s and %(conn)d "
+ "dirty IPSec connection%(cplural)s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/exceptions.py:33
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:359
  #, python-format
- msgid ""
- "Workflow %(workflow)s is missing on vDirect server. Upload missing "
- "workflow"
+ msgid "Report: Collecting status for IPSec connections on VPN service %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/exceptions.py:38
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:367
  #, python-format
- msgid ""
- "REST request failed with status %(status)s. Reason: %(reason)s, "
- "Description: %(description)s. Success status codes are %(success_codes)s"
+ msgid "Report: Adding info for IPSec connection %s"
  msgstr ""
  
- #: neutron/services/loadbalancer/drivers/radware/exceptions.py:44
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:391
  #, python-format
- msgid "%(operation)s operation is not supported for %(entity)s."
+ msgid "Report: Adding info for VPN service %s"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:67
- msgid "Metering driver"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:408
+ msgid "Report: Starting status report"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:69
- msgid "Interval between two metering measures"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:410
+ #, python-format
+ msgid "Report: Collecting status for VPN service %s"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:71
- msgid "Interval between two metering reports"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:416
+ msgid "Sending status report update to plugin"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:95
- #, python-format
- msgid "Loading Metering driver %s"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:418
+ msgid "Report: Completed status report processing"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:97
- msgid "A metering driver must be specified"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:683
+ #, python-format
+ msgid "Unable to create %(resource)s %(which)s: %(status)d"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:112
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:696
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:724
  #, python-format
- msgid "Send metering report: %s"
+ msgid "Internal error - '%s' is not defined"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:179
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:709
  #, python-format
- msgid "Driver %(driver)s does not implement %(func)s"
+ msgid "Unable to delete %(resource)s %(which)s: %(status)d"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:183
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:718
  #, python-format
- msgid "Driver %(driver)s:%(func)s runtime error"
+ msgid "Performing rollback action %(action)s for resource %(resource)s"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:218
- msgid "Get router traffic counters"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:744
+ #, python-format
+ msgid "Creating IPSec connection %s"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:222
- msgid "Update metering rules from agent"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:777
+ #, python-format
+ msgid "FAILED: Create of IPSec site-to-site connection %s"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:227
- msgid "Creating a metering label from agent"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:780
+ #, python-format
+ msgid "SUCCESS: Created IPSec site-to-site connection %s"
  msgstr ""
  
- #: neutron/services/metering/agents/metering_agent.py:234
- msgid "Delete a metering label from agent"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:789
+ #, python-format
+ msgid "Deleting IPSec connection %s"
  msgstr ""
  
- #: neutron/services/metering/drivers/iptables/iptables_driver.py:93
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:791
  #, python-format
- msgid "Loading interface driver %s"
+ msgid "Unable to find connection %s"
  msgstr ""
  
- #: neutron/services/vpn/agent.py:28
- msgid "The vpn device drivers Neutron will use"
+ #: neutron/services/vpn/device_drivers/cisco_ipsec.py:795
+ #, python-format
+ msgid "SUCCESS: Deleted IPSec site-to-site connection %s"
  msgstr ""
  
  #: neutron/services/vpn/device_drivers/ipsec.py:49
Simple merge
index 319055a891674cbdcadeb25656d807ab305b6c0b,62134439be70284e7bcf52879746c8855d8104b8..fbd5092e8bcf9d54db434421330c445d539ec043
@@@ -163,8 -125,26 +125,55 @@@ class SimpleAgentMechanismDriverBase(Ag
          self.vif_type = vif_type
          self.vif_details = vif_details
  
+     def try_to_bind_segment_for_agent(self, context, segment, agent):
+         if self.check_segment_for_agent(segment, agent):
+             context.set_binding(segment[api.ID],
+                                 self.vif_type,
+                                 self.vif_details)
+             return True
+         else:
+             return False
++    @abstractmethod
++    def try_to_bind_segment_for_agent(self, context, segment, agent):
++        """Try to bind with segment for agent.
++
++        :param context: PortContext instance describing the port
++        :param segment: segment dictionary describing segment to bind
++        :param agent: agents_db entry describing agent to bind
++        :returns: True iff segment has been bound for agent
++
++        Called inside transaction during bind_port() so that derived
++        MechanismDrivers can use agent_db data along with built-in
++        knowledge of the corresponding agent's capabilities to attempt
++        to bind to the specified network segment for the agent.
++
++        If the segment can be bound for the agent, this function must
++        call context.set_binding() with appropriate values and then
++        return True. Otherwise, it must return False.
++        """
++
+     @abstractmethod
+     def check_segment_for_agent(self, segment, agent):
+         """Check if segment can be bound for agent.
+         :param segment: segment dictionary describing segment to bind
+         :param agent: agents_db entry describing agent to bind
+         :returns: True iff segment can be bound for agent
+         Called inside transaction during bind_port so that derived
+         MechanismDrivers can use agent_db data along with built-in
+         knowledge of the corresponding agent's capabilities to
+         determine whether or not the specified network segment can be
+         bound for the agent.
+         """
++        super(SimpleAgentMechanismDriverBase, self).__init__(
++            agent_type, supported_vnic_types)
++        self.vif_type = vif_type
++        self.vif_details = vif_details
++
 +    def try_to_bind_segment_for_agent(self, context, segment, agent):
 +        if self.check_segment_for_agent(segment, agent):
 +            context.set_binding(segment[api.ID],
 +                                self.vif_type,
 +                                self.vif_details)
Simple merge
index 63124a7846987468db58dbc827af0b329664cd29,deae833547b88a8856edf1ac72f8a61ae1e35209..65ba1b3427ed00402158914b4a994704fd770947
@@@ -143,36 -142,7 +142,155 @@@ class PFCDriverBase(ofc_driver_base.OFC
      def delete_port(self, ofc_port_id):
          return self.client.delete(ofc_port_id)
  
-     def convert_ofc_tenant_id(self, context, ofc_tenant_id):
-         # If ofc_tenant_id starts with '/', it is already new-style
-         if ofc_tenant_id[0] == '/':
-             return ofc_tenant_id
-         return '/tenants/%s' % ofc_tenant_id
-     def convert_ofc_network_id(self, context, ofc_network_id, tenant_id):
-         # If ofc_network_id starts with '/', it is already new-style
-         if ofc_network_id[0] == '/':
-             return ofc_network_id
-         ofc_tenant_id = ndb.get_ofc_id_lookup_both(
-             context.session, 'ofc_tenant', tenant_id)
-         ofc_tenant_id = self.convert_ofc_tenant_id(context, ofc_tenant_id)
-         params = dict(tenant=ofc_tenant_id, network=ofc_network_id)
-         return '%(tenant)s/networks/%(network)s' % params
-     def convert_ofc_port_id(self, context, ofc_port_id, tenant_id, network_id):
-         # If ofc_port_id  starts with '/', it is already new-style
-         if ofc_port_id[0] == '/':
-             return ofc_port_id
-         ofc_network_id = ndb.get_ofc_id_lookup_both(
-             context.session, 'ofc_network', network_id)
-         ofc_network_id = self.convert_ofc_network_id(
-             context, ofc_network_id, tenant_id)
-         params = dict(network=ofc_network_id, port=ofc_port_id)
-         return '%(network)s/ports/%(port)s' % params
++class PFCFilterDriverMixin(object):
++    """PFC PacketFilter Driver Mixin."""
++    filters_path = "/filters"
++    filter_path = "/filters/%s"
++
++    # PFC specific constants
++    MIN_PRIORITY = 1
++    MAX_PRIORITY = 32766
++    CREATE_ONLY_FIELDS = ['action', 'priority']
++    PFC_ALLOW_ACTION = "pass"
++    PFC_DROP_ACTION = "drop"
++
++    match_ofc_filter_id = re.compile("^/filters/(?P<filter_id>[^/]+)$")
++
++    @classmethod
++    def filter_supported(cls):
++        return True
++
++    def _set_param(self, filter_dict, body, key, create, convert_to=None):
++        if key in filter_dict:
++            if filter_dict[key]:
++                if convert_to:
++                    body[key] = convert_to(filter_dict[key])
++                else:
++                    body[key] = filter_dict[key]
++            elif not create:
++                body[key] = ""
++
++    def _generate_body(self, filter_dict, apply_ports=None, create=True):
++        body = {}
++
++        if create:
++            # action : pass, drop (mandatory)
++            if filter_dict['action'].lower() in ext_pf.ALLOW_ACTIONS:
++                body['action'] = self.PFC_ALLOW_ACTION
++            else:
++                body['action'] = self.PFC_DROP_ACTION
++            # priority : mandatory
++            body['priority'] = filter_dict['priority']
++
++        for key in ['src_mac', 'dst_mac', 'src_port', 'dst_port']:
++            self._set_param(filter_dict, body, key, create)
++
++        for key in ['src_cidr', 'dst_cidr']:
++            # CIDR must contain netmask even if it is an address.
++            convert_to = lambda x: str(netaddr.IPNetwork(x))
++            self._set_param(filter_dict, body, key, create, convert_to)
++
++        # protocol : decimal (0-255)
++        if 'protocol' in filter_dict:
++            if (not filter_dict['protocol'] or
++                # In the case of ARP, ip_proto should be set to wildcard.
++                # eth_type is set during adding an entry to DB layer.
++                filter_dict['protocol'].lower() == ext_pf.PROTO_NAME_ARP):
++                if not create:
++                    body['protocol'] = ""
++            elif filter_dict['protocol'].lower() == constants.PROTO_NAME_ICMP:
++                body['protocol'] = constants.PROTO_NUM_ICMP
++            elif filter_dict['protocol'].lower() == constants.PROTO_NAME_TCP:
++                body['protocol'] = constants.PROTO_NUM_TCP
++            elif filter_dict['protocol'].lower() == constants.PROTO_NAME_UDP:
++                body['protocol'] = constants.PROTO_NUM_UDP
++            else:
++                body['protocol'] = int(filter_dict['protocol'], 0)
++
++        # eth_type : hex (0x0-0xFFFF)
++        self._set_param(filter_dict, body, 'eth_type', create, hex)
++
++        # apply_ports
++        if apply_ports:
++            # each element of apply_ports is a tuple of (neutron_id, ofc_id),
++            body['apply_ports'] = []
++            for p in apply_ports:
++                try:
++                    body['apply_ports'].append(self._extract_ofc_port_id(p[1]))
++                except InvalidOFCIdFormat:
++                    pass
++
++        return body
++
++    def _validate_filter_common(self, filter_dict):
++        # Currently PFC support only IPv4 CIDR.
++        for field in ['src_cidr', 'dst_cidr']:
++            if (not filter_dict.get(field) or
++                filter_dict[field] == attributes.ATTR_NOT_SPECIFIED):
++                continue
++            net = netaddr.IPNetwork(filter_dict[field])
++            if net.version != 4:
++                raise ext_pf.PacketFilterIpVersionNonSupported(
++                    version=net.version, field=field, value=filter_dict[field])
++        if ('priority' in filter_dict and
++            not (self.MIN_PRIORITY <= filter_dict['priority']
++                 <= self.MAX_PRIORITY)):
++            raise ext_pf.PacketFilterInvalidPriority(
++                min=self.MIN_PRIORITY, max=self.MAX_PRIORITY)
++
++    def _validate_duplicate_priority(self, context, filter_dict):
++        plugin = manager.NeutronManager.get_plugin()
++        filters = {'network_id': [filter_dict['network_id']],
++                   'priority': [filter_dict['priority']]}
++        ret = plugin.get_packet_filters(context, filters=filters,
++                                        fields=['id'])
++        if ret:
++            raise ext_pf.PacketFilterDuplicatedPriority(
++                priority=filter_dict['priority'])
++
++    def validate_filter_create(self, context, filter_dict):
++        self._validate_filter_common(filter_dict)
++        self._validate_duplicate_priority(context, filter_dict)
++
++    def validate_filter_update(self, context, filter_dict):
++        for field in self.CREATE_ONLY_FIELDS:
++            if field in filter_dict:
++                raise ext_pf.PacketFilterUpdateNotSupported(field=field)
++        self._validate_filter_common(filter_dict)
++
++    @call_log.log
++    def create_filter(self, ofc_network_id, filter_dict,
++                      portinfo=None, filter_id=None, apply_ports=None):
++        body = self._generate_body(filter_dict, apply_ports, create=True)
++        res = self.client.post(self.filters_path, body=body)
++        # filter_id passed from a caller is not used.
++        # ofc_filter_id is generated by PFC because the prefix of
++        # filter_id has special meaning and it is internally used.
++        ofc_filter_id = res['id']
++        return self.filter_path % ofc_filter_id
++
++    @call_log.log
++    def update_filter(self, ofc_filter_id, filter_dict):
++        body = self._generate_body(filter_dict, create=False)
++        self.client.put(ofc_filter_id, body)
++
++    @call_log.log
++    def delete_filter(self, ofc_filter_id):
++        return self.client.delete(ofc_filter_id)
++
++    def _extract_ofc_filter_id(self, ofc_filter_id):
++        match = self.match_ofc_filter_id.match(ofc_filter_id)
++        if match:
++            return match.group('filter_id')
++        raise InvalidOFCIdFormat(resource='filter', ofc_id=ofc_filter_id)
++
++    def convert_ofc_filter_id(self, context, ofc_filter_id):
++        # PFC Packet Filter is supported after the format of mapping tables
++        # are changed, so it is enough just to return ofc_filter_id
++        return ofc_filter_id
 +
 +
  class PFCFilterDriverMixin(object):
      """PFC PacketFilter Driver Mixin."""
      filters_path = "/filters"
Simple merge
index 0c74934453a5b334a7ce26263a5794106f3203e3,826416d727c011f1e4ea23c61a316abdb18a2465..274228e4080d2b4095dfbef5ab305b7f94aac989
@@@ -377,64 -376,77 +376,124 @@@ class VPNTestMixin(object)
                                                       **kwargs)
              if res.status_int >= 400:
                  raise webob.exc.HTTPClientError(code=res.status_int)
-             try:
-                 ipsec_site_connection = self.deserialize(
-                     fmt or self.fmt, res
+             ipsec_site_connection = self.deserialize(
+                 fmt or self.fmt, res
+             )
+             yield ipsec_site_connection
+             if not no_delete:
+                 self._delete(
+                     'ipsec-site-connections',
+                     ipsec_site_connection[
+                         'ipsec_site_connection']['id']
                  )
-                 yield ipsec_site_connection
-             finally:
-                 if not no_delete:
-                     self._delete(
-                         'ipsec-site-connections',
-                         ipsec_site_connection[
-                             'ipsec_site_connection']['id']
-                     )
+     def _check_ipsec_site_connection(self, ipsec_site_connection, keys, dpd):
+         self.assertEqual(
+             keys,
+             dict((k, v) for k, v
+                  in ipsec_site_connection.items()
+                  if k in keys))
+         self.assertEqual(
+             dpd,
+             dict((k, v) for k, v
+                  in ipsec_site_connection['dpd'].items()
+                  if k in dpd))
+     def _set_active(self, model, resource_id):
+         service_plugin = manager.NeutronManager.get_service_plugins()[
+             constants.VPN]
+         adminContext = context.get_admin_context()
+         with adminContext.session.begin(subtransactions=True):
+             resource_db = service_plugin._get_resource(
+                 adminContext,
+                 model,
+                 resource_id)
+             resource_db.status = constants.ACTIVE
+ class VPNPluginDbTestCase(VPNTestMixin,
+                           test_l3_plugin.L3NatTestCaseMixin,
+                           test_db_plugin.NeutronDbPluginV2TestCase):
+     def setUp(self, core_plugin=None, vpnaas_plugin=DB_VPN_PLUGIN_KLASS,
+               vpnaas_provider=None):
+         if not vpnaas_provider:
+             vpnaas_provider = (
+                 constants.VPN +
+                 ':vpnaas:neutron.services.vpn.'
+                 'service_drivers.ipsec.IPsecVPNDriver:default')
+         cfg.CONF.set_override('service_provider',
+                               [vpnaas_provider],
+                               'service_providers')
+         # force service type manager to reload configuration:
+         sdb.ServiceTypeManager._instance = None
+         service_plugins = {'vpnaas_plugin': vpnaas_plugin}
+         plugin_str = ('neutron.tests.unit.db.vpn.'
+                       'test_db_vpnaas.TestVpnCorePlugin')
+         super(VPNPluginDbTestCase, self).setUp(
+             plugin_str,
+             service_plugins=service_plugins
+         )
+         self._subnet_id = uuidutils.generate_uuid()
+         self.core_plugin = TestVpnCorePlugin
+         self.plugin = vpn_plugin.VPNPlugin()
+         ext_mgr = PluginAwareExtensionManager(
+             extensions_path,
+             {constants.CORE: self.core_plugin,
+              constants.VPN: self.plugin}
+         )
+         app = config.load_paste_app('extensions_test_app')
++        self.ext_api = ExtensionMiddleware(app, ext_mgr=ext_mgr)
 +
 +    def _check_ipsec_site_connection(self, ipsec_site_connection, keys, dpd):
 +        self.assertEqual(
 +            keys,
 +            dict((k, v) for k, v
 +                 in ipsec_site_connection.items()
 +                 if k in keys))
 +        self.assertEqual(
 +            dpd,
 +            dict((k, v) for k, v
 +                 in ipsec_site_connection['dpd'].items()
 +                 if k in dpd))
 +
 +    def _set_active(self, model, resource_id):
 +        service_plugin = manager.NeutronManager.get_service_plugins()[
 +            constants.VPN]
 +        adminContext = context.get_admin_context()
 +        with adminContext.session.begin(subtransactions=True):
 +            resource_db = service_plugin._get_resource(
 +                adminContext,
 +                model,
 +                resource_id)
 +            resource_db.status = constants.ACTIVE
 +
 +
 +class VPNPluginDbTestCase(VPNTestMixin,
 +                          test_l3_plugin.L3NatTestCaseMixin,
 +                          test_db_plugin.NeutronDbPluginV2TestCase):
 +    def setUp(self, core_plugin=None, vpnaas_plugin=DB_VPN_PLUGIN_KLASS):
 +        service_plugins = {'vpnaas_plugin': vpnaas_plugin}
 +        plugin_str = ('neutron.tests.unit.db.vpn.'
 +                      'test_db_vpnaas.TestVpnCorePlugin')
 +
 +        super(VPNPluginDbTestCase, self).setUp(
 +            plugin_str,
 +            service_plugins=service_plugins
 +        )
 +        self._subnet_id = uuidutils.generate_uuid()
 +        self.core_plugin = TestVpnCorePlugin
 +        self.plugin = vpn_plugin.VPNPlugin()
 +        ext_mgr = PluginAwareExtensionManager(
 +            extensions_path,
 +            {constants.CORE: self.core_plugin,
 +             constants.VPN: self.plugin}
 +        )
 +        app = config.load_paste_app('extensions_test_app')
          self.ext_api = ExtensionMiddleware(app, ext_mgr=ext_mgr)
  
  
index 565368a24e5506b8cf5ebb11547f58cb66833e2d,52970aa52afbbb847295170e9a531faf114fe0a5..1471d2127efbdee98d7a3bb32ff6befffe829020
@@@ -40,15 -40,16 +40,24 @@@ class TestHyperVUtilsV2(base.BaseTestCa
      _FAKE_VLAN_ID = "fake_vlan_id"
      _FAKE_CLASS_NAME = "fake_class_name"
      _FAKE_ELEMENT_NAME = "fake_element_name"
+     _FAKE_HYPERV_VM_STATE = 'fake_hyperv_state'
+     _FAKE_ACL_ACT = 'fake_acl_action'
+     _FAKE_ACL_DIR = 'fake_acl_dir'
+     _FAKE_ACL_TYPE = 'fake_acl_type'
+     _FAKE_LOCAL_PORT = 'fake_local_port'
+     _FAKE_PROTOCOL = 'fake_port_protocol'
+     _FAKE_REMOTE_ADDR = '0.0.0.0/0'
+     _FAKE_WEIGHT = 'fake_weight'
  
 +    _FAKE_ACL_ACT = 'fake_acl_action'
 +    _FAKE_ACL_DIR = 'fake_acl_dir'
 +    _FAKE_ACL_TYPE = 'fake_acl_type'
 +    _FAKE_LOCAL_PORT = 'fake_local_port'
 +    _FAKE_PROTOCOL = 'fake_port_protocol'
 +    _FAKE_REMOTE_ADDR = '0.0.0.0/0'
 +    _FAKE_WEIGHT = 'fake_weight'
 +
      def setUp(self):
          super(TestHyperVUtilsV2, self).setUp()
          self._utils = utilsv2.HyperVUtilsV2()
index 148727a8f22ae366ca7d6df6c2497c68f46b0580,b87a9255a3a6c678ba5713e8dafc61035da01ee7..d18642992e2f3f52d104d7e71a38696e67de8784
@@@ -121,13 -119,11 +119,22 @@@ class TestNecPluginPacketFilterBase(tes
              kwargs['in_port'] = port_id
              pf = self._make_packet_filter(fmt or self.fmt, net_id, **kwargs)
              self.assertEqual(port_id, pf['packet_filter']['in_port'])
-             try:
-                 yield pf
-             finally:
-                 if do_delete:
-                     self._delete('packet_filters', pf['packet_filter']['id'])
+             yield pf
+             if do_delete:
+                 self._delete('packet_filters', pf['packet_filter']['id'])
++class TestNecPluginPacketFilter(TestNecPluginPacketFilterBase):
++
++    def setUp(self):
++        super(TestNecPluginPacketFilter, self).setUp()
++        # Remove attributes explicitly from mock object to check
++        # a case where there are no update_filter and validate_*.
++        del self.ofc.driver.update_filter
++        del self.ofc.driver.validate_filter_create
++        del self.ofc.driver.validate_filter_update
 +
 +
  class TestNecPluginPacketFilter(TestNecPluginPacketFilterBase):
  
      def setUp(self):
index 1baa17c595d4a79088329aca949274bc9538bcf6,7764bce763999b07406c6f7bcb005c6d005555f1..40fd3e601b1a45768fbf5c6697e708fb966f28c8
@@@ -721,6 -722,6 +722,7 @@@ class TestDnsmasq(TestBase)
          self.conf.set_override('dnsmasq_dns_servers', ['8.8.8.8'])
          self._test_spawn(['--conf-file=',
                            '--server=8.8.8.8',
++                          '--server=9.9.9.9',
                            '--domain=openstacklocal'])
  
      def test_spawn_cfg_multiple_dns_server(self):
diff --cc neutron/tests/unit/vmware/extensions/test_networkgw.py
index 25c542f57adb6c9239f4daca0272bbdb54b1cc03,6c81f9c33c41bbe3192bdd2ab8fd79dd79c7839f..0000000000000000000000000000000000000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,713 -1,1007 +1,0 @@@
--# Copyright 2012 VMware, Inc.  All rights reserved.
--#
--#    Licensed under the Apache License, Version 2.0 (the "License"); you may
--#    not use this file except in compliance with the License. You may obtain
--#    a copy of the License at
--#
--#         http://www.apache.org/licenses/LICENSE-2.0
--#
--#    Unless required by applicable law or agreed to in writing, software
--#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
--#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
--#    License for the specific language governing permissions and limitations
--#    under the License.
--
--import contextlib
--import mock
--
--from oslo.config import cfg
--from webob import exc
--import webtest
--
--from neutron.api import extensions
--from neutron.api.extensions import PluginAwareExtensionManager
--from neutron.api.v2 import attributes
--from neutron.common import config
--from neutron import context
--from neutron.db import api as db_api
--from neutron.db import db_base_plugin_v2
--from neutron import manager
- from neutron.openstack.common import uuidutils
--from neutron.plugins.vmware.api_client import exception as api_exc
--from neutron.plugins.vmware.dbexts import networkgw_db
--from neutron.plugins.vmware.extensions import networkgw
--from neutron.plugins.vmware import nsxlib
 -from neutron.plugins.vmware.nsxlib import l2gateway as l2gwlib
--from neutron import quota
--from neutron.tests import base
--from neutron.tests.unit import test_api_v2
--from neutron.tests.unit import test_db_plugin
--from neutron.tests.unit import test_extensions
--from neutron.tests.unit.vmware import NSXEXT_PATH
--from neutron.tests.unit.vmware import PLUGIN_NAME
--from neutron.tests.unit.vmware.test_nsx_plugin import NsxPluginV2TestCase
--
--_uuid = test_api_v2._uuid
--_get_path = test_api_v2._get_path
--
--
--class TestExtensionManager(object):
--
--    def get_resources(self):
--        # Add the resources to the global attribute map
--        # This is done here as the setup process won't
--        # initialize the main API router which extends
--        # the global attribute map
--        attributes.RESOURCE_ATTRIBUTE_MAP.update(
--            networkgw.RESOURCE_ATTRIBUTE_MAP)
--        return networkgw.Networkgw.get_resources()
--
--    def get_actions(self):
--        return []
--
--    def get_request_extensions(self):
--        return []
--
--
--class NetworkGatewayExtensionTestCase(base.BaseTestCase):
--
--    def setUp(self):
--        super(NetworkGatewayExtensionTestCase, self).setUp()
--        plugin = '%s.%s' % (networkgw.__name__,
--                            networkgw.NetworkGatewayPluginBase.__name__)
-         self._resource = networkgw.RESOURCE_NAME.replace('-', '_')
 -        self._gw_resource = networkgw.GATEWAY_RESOURCE_NAME
 -        self._dev_resource = networkgw.DEVICE_RESOURCE_NAME
--
--        # Ensure existing ExtensionManager is not used
--        extensions.PluginAwareExtensionManager._instance = None
--
--        # Create the default configurations
--        args = ['--config-file', test_api_v2.etcdir('neutron.conf.test')]
--        config.parse(args=args)
--
--        # Update the plugin and extensions path
--        self.setup_coreplugin(plugin)
-         self.addCleanup(cfg.CONF.reset)
--
--        _plugin_patcher = mock.patch(plugin, autospec=True)
--        self.plugin = _plugin_patcher.start()
--        self.addCleanup(_plugin_patcher.stop)
--
--        # Instantiate mock plugin and enable extensions
--        manager.NeutronManager.get_plugin().supported_extension_aliases = (
--            [networkgw.EXT_ALIAS])
--        ext_mgr = TestExtensionManager()
--        PluginAwareExtensionManager._instance = ext_mgr
--        self.ext_mdw = test_extensions.setup_extensions_middleware(ext_mgr)
--        self.api = webtest.TestApp(self.ext_mdw)
--
--        quota.QUOTAS._driver = None
--        cfg.CONF.set_override('quota_driver', 'neutron.quota.ConfDriver',
--                              group='QUOTAS')
--
--    def test_network_gateway_create(self):
--        nw_gw_id = _uuid()
-         data = {self._resource: {'name': 'nw-gw',
-                                  'tenant_id': _uuid(),
-                                  'devices': [{'id': _uuid(),
-                                               'interface_name': 'xxx'}]}}
-         return_value = data[self._resource].copy()
 -        data = {self._gw_resource: {'name': 'nw-gw',
 -                                    'tenant_id': _uuid(),
 -                                    'devices': [{'id': _uuid(),
 -                                                 'interface_name': 'xxx'}]}}
 -        return_value = data[self._gw_resource].copy()
--        return_value.update({'id': nw_gw_id})
--        instance = self.plugin.return_value
--        instance.create_network_gateway.return_value = return_value
-         res = self.api.post_json(_get_path(networkgw.COLLECTION_NAME), data)
 -        res = self.api.post_json(_get_path(networkgw.NETWORK_GATEWAYS), data)
--        instance.create_network_gateway.assert_called_with(
--            mock.ANY, network_gateway=data)
--        self.assertEqual(res.status_int, exc.HTTPCreated.code)
-         self.assertIn(self._resource, res.json)
-         nw_gw = res.json[self._resource]
 -        self.assertIn(self._gw_resource, res.json)
 -        nw_gw = res.json[self._gw_resource]
--        self.assertEqual(nw_gw['id'], nw_gw_id)
--
--    def _test_network_gateway_create_with_error(
--        self, data, error_code=exc.HTTPBadRequest.code):
-         res = self.api.post_json(_get_path(networkgw.COLLECTION_NAME), data,
 -        res = self.api.post_json(_get_path(networkgw.NETWORK_GATEWAYS), data,
--                                 expect_errors=True)
--        self.assertEqual(res.status_int, error_code)
--
--    def test_network_gateway_create_invalid_device_spec(self):
-         data = {self._resource: {'name': 'nw-gw',
-                                  'tenant_id': _uuid(),
-                                  'devices': [{'id': _uuid(),
-                                               'invalid': 'xxx'}]}}
 -        data = {self._gw_resource: {'name': 'nw-gw',
 -                                    'tenant_id': _uuid(),
 -                                    'devices': [{'id': _uuid(),
 -                                                 'invalid': 'xxx'}]}}
--        self._test_network_gateway_create_with_error(data)
--
--    def test_network_gateway_create_extra_attr_in_device_spec(self):
-         data = {self._resource: {'name': 'nw-gw',
-                                  'tenant_id': _uuid(),
-                                  'devices': [{'id': _uuid(),
-                                               'interface_name': 'xxx',
-                                               'extra_attr': 'onetoomany'}]}}
 -        data = {self._gw_resource: {'name': 'nw-gw',
 -                                    'tenant_id': _uuid(),
 -                                    'devices':
 -                                    [{'id': _uuid(),
 -                                      'interface_name': 'xxx',
 -                                      'extra_attr': 'onetoomany'}]}}
--        self._test_network_gateway_create_with_error(data)
--
--    def test_network_gateway_update(self):
--        nw_gw_name = 'updated'
-         data = {self._resource: {'name': nw_gw_name}}
 -        data = {self._gw_resource: {'name': nw_gw_name}}
--        nw_gw_id = _uuid()
--        return_value = {'id': nw_gw_id,
--                        'name': nw_gw_name}
--
--        instance = self.plugin.return_value
--        instance.update_network_gateway.return_value = return_value
-         res = self.api.put_json(_get_path('%s/%s' % (networkgw.COLLECTION_NAME,
-                                                      nw_gw_id)),
-                                 data)
 -        res = self.api.put_json(
 -            _get_path('%s/%s' % (networkgw.NETWORK_GATEWAYS, nw_gw_id)), data)
--        instance.update_network_gateway.assert_called_with(
--            mock.ANY, nw_gw_id, network_gateway=data)
--        self.assertEqual(res.status_int, exc.HTTPOk.code)
-         self.assertIn(self._resource, res.json)
-         nw_gw = res.json[self._resource]
 -        self.assertIn(self._gw_resource, res.json)
 -        nw_gw = res.json[self._gw_resource]
--        self.assertEqual(nw_gw['id'], nw_gw_id)
--        self.assertEqual(nw_gw['name'], nw_gw_name)
--
--    def test_network_gateway_delete(self):
--        nw_gw_id = _uuid()
--        instance = self.plugin.return_value
-         res = self.api.delete(_get_path('%s/%s' % (networkgw.COLLECTION_NAME,
 -        res = self.api.delete(_get_path('%s/%s' % (networkgw.NETWORK_GATEWAYS,
--                                                   nw_gw_id)))
--
--        instance.delete_network_gateway.assert_called_with(mock.ANY,
--                                                           nw_gw_id)
--        self.assertEqual(res.status_int, exc.HTTPNoContent.code)
--
--    def test_network_gateway_get(self):
--        nw_gw_id = _uuid()
-         return_value = {self._resource: {'name': 'test',
-                                          'devices':
-                                          [{'id': _uuid(),
-                                            'interface_name': 'xxx'}],
-                                          'id': nw_gw_id}}
 -        return_value = {self._gw_resource: {'name': 'test',
 -                                            'devices':
 -                                            [{'id': _uuid(),
 -                                              'interface_name': 'xxx'}],
 -                                            'id': nw_gw_id}}
--        instance = self.plugin.return_value
--        instance.get_network_gateway.return_value = return_value
--
-         res = self.api.get(_get_path('%s/%s' % (networkgw.COLLECTION_NAME,
 -        res = self.api.get(_get_path('%s/%s' % (networkgw.NETWORK_GATEWAYS,
--                                                nw_gw_id)))
--
--        instance.get_network_gateway.assert_called_with(mock.ANY,
--                                                        nw_gw_id,
--                                                        fields=mock.ANY)
--        self.assertEqual(res.status_int, exc.HTTPOk.code)
--
--    def test_network_gateway_list(self):
--        nw_gw_id = _uuid()
-         return_value = [{self._resource: {'name': 'test',
-                                           'devices':
-                                           [{'id': _uuid(),
-                                             'interface_name': 'xxx'}],
-                                           'id': nw_gw_id}}]
 -        return_value = [{self._gw_resource: {'name': 'test',
 -                                             'devices':
 -                                             [{'id': _uuid(),
 -                                               'interface_name': 'xxx'}],
 -                                             'id': nw_gw_id}}]
--        instance = self.plugin.return_value
--        instance.get_network_gateways.return_value = return_value
--
-         res = self.api.get(_get_path(networkgw.COLLECTION_NAME))
 -        res = self.api.get(_get_path(networkgw.NETWORK_GATEWAYS))
--
--        instance.get_network_gateways.assert_called_with(mock.ANY,
--                                                         fields=mock.ANY,
--                                                         filters=mock.ANY)
--        self.assertEqual(res.status_int, exc.HTTPOk.code)
--
--    def test_network_gateway_connect(self):
--        nw_gw_id = _uuid()
--        nw_id = _uuid()
--        gw_port_id = _uuid()
--        mapping_data = {'network_id': nw_id,
--                        'segmentation_type': 'vlan',
--                        'segmentation_id': '999'}
--        return_value = {'connection_info': {
--                        'network_gateway_id': nw_gw_id,
--                        'port_id': gw_port_id,
--                        'network_id': nw_id}}
--        instance = self.plugin.return_value
--        instance.connect_network.return_value = return_value
--        res = self.api.put_json(_get_path('%s/%s/connect_network' %
-                                           (networkgw.COLLECTION_NAME,
 -                                          (networkgw.NETWORK_GATEWAYS,
--                                           nw_gw_id)),
--                                mapping_data)
--        instance.connect_network.assert_called_with(mock.ANY,
--                                                    nw_gw_id,
--                                                    mapping_data)
--        self.assertEqual(res.status_int, exc.HTTPOk.code)
--        nw_conn_res = res.json['connection_info']
--        self.assertEqual(nw_conn_res['port_id'], gw_port_id)
--        self.assertEqual(nw_conn_res['network_id'], nw_id)
--
--    def test_network_gateway_disconnect(self):
--        nw_gw_id = _uuid()
--        nw_id = _uuid()
--        mapping_data = {'network_id': nw_id}
--        instance = self.plugin.return_value
--        res = self.api.put_json(_get_path('%s/%s/disconnect_network' %
-                                           (networkgw.COLLECTION_NAME,
 -                                          (networkgw.NETWORK_GATEWAYS,
--                                           nw_gw_id)),
--                                mapping_data)
--        instance.disconnect_network.assert_called_with(mock.ANY,
--                                                       nw_gw_id,
--                                                       mapping_data)
 -        self.assertEqual(res.status_int, exc.HTTPOk.code)
 -
 -    def test_gateway_device_get(self):
 -        gw_dev_id = _uuid()
 -        return_value = {self._dev_resource: {'name': 'test',
 -                                             'connector_type': 'stt',
 -                                             'connector_ip': '1.1.1.1',
 -                                             'id': gw_dev_id}}
 -        instance = self.plugin.return_value
 -        instance.get_gateway_device.return_value = return_value
 -
 -        res = self.api.get(_get_path('%s/%s' % (networkgw.GATEWAY_DEVICES,
 -                                                gw_dev_id)))
 -
 -        instance.get_gateway_device.assert_called_with(mock.ANY,
 -                                                       gw_dev_id,
 -                                                       fields=mock.ANY)
 -        self.assertEqual(res.status_int, exc.HTTPOk.code)
 -
 -    def test_gateway_device_list(self):
 -        gw_dev_id = _uuid()
 -        return_value = [{self._dev_resource: {'name': 'test',
 -                                              'connector_type': 'stt',
 -                                              'connector_ip': '1.1.1.1',
 -                                              'id': gw_dev_id}}]
 -        instance = self.plugin.return_value
 -        instance.get_gateway_devices.return_value = return_value
 -
 -        res = self.api.get(_get_path(networkgw.GATEWAY_DEVICES))
 -
 -        instance.get_gateway_devices.assert_called_with(mock.ANY,
 -                                                        fields=mock.ANY,
 -                                                        filters=mock.ANY)
 -        self.assertEqual(res.status_int, exc.HTTPOk.code)
 -
 -    def test_gateway_device_create(self):
 -        gw_dev_id = _uuid()
 -        data = {self._dev_resource: {'name': 'test-dev',
 -                                     'tenant_id': _uuid(),
 -                                     'client_certificate': 'xyz',
 -                                     'connector_type': 'stt',
 -                                     'connector_ip': '1.1.1.1'}}
 -        return_value = data[self._dev_resource].copy()
 -        return_value.update({'id': gw_dev_id})
 -        instance = self.plugin.return_value
 -        instance.create_gateway_device.return_value = return_value
 -        res = self.api.post_json(_get_path(networkgw.GATEWAY_DEVICES), data)
 -        instance.create_gateway_device.assert_called_with(
 -            mock.ANY, gateway_device=data)
 -        self.assertEqual(res.status_int, exc.HTTPCreated.code)
 -        self.assertIn(self._dev_resource, res.json)
 -        gw_dev = res.json[self._dev_resource]
 -        self.assertEqual(gw_dev['id'], gw_dev_id)
 -
 -    def _test_gateway_device_create_with_error(
 -        self, data, error_code=exc.HTTPBadRequest.code):
 -        res = self.api.post_json(_get_path(networkgw.GATEWAY_DEVICES), data,
 -                                 expect_errors=True)
 -        self.assertEqual(res.status_int, error_code)
 -
 -    def test_gateway_device_create_invalid_connector_type(self):
 -        data = {self._gw_resource: {'name': 'test-dev',
 -                                    'client_certificate': 'xyz',
 -                                    'tenant_id': _uuid(),
 -                                    'connector_type': 'invalid',
 -                                    'connector_ip': '1.1.1.1'}}
 -        self._test_gateway_device_create_with_error(data)
 -
 -    def test_gateway_device_create_invalid_connector_ip(self):
 -        data = {self._gw_resource: {'name': 'test-dev',
 -                                    'client_certificate': 'xyz',
 -                                    'tenant_id': _uuid(),
 -                                    'connector_type': 'stt',
 -                                    'connector_ip': 'invalid'}}
 -        self._test_gateway_device_create_with_error(data)
 -
 -    def test_gateway_device_create_extra_attr_in_device_spec(self):
 -        data = {self._gw_resource: {'name': 'test-dev',
 -                                    'client_certificate': 'xyz',
 -                                    'tenant_id': _uuid(),
 -                                    'alien_attribute': 'E.T.',
 -                                    'connector_type': 'stt',
 -                                    'connector_ip': '1.1.1.1'}}
 -        self._test_gateway_device_create_with_error(data)
 -
 -    def test_gateway_device_update(self):
 -        gw_dev_name = 'updated'
 -        data = {self._dev_resource: {'name': gw_dev_name}}
 -        gw_dev_id = _uuid()
 -        return_value = {'id': gw_dev_id,
 -                        'name': gw_dev_name}
 -
 -        instance = self.plugin.return_value
 -        instance.update_gateway_device.return_value = return_value
 -        res = self.api.put_json(
 -            _get_path('%s/%s' % (networkgw.GATEWAY_DEVICES, gw_dev_id)), data)
 -        instance.update_gateway_device.assert_called_with(
 -            mock.ANY, gw_dev_id, gateway_device=data)
--        self.assertEqual(res.status_int, exc.HTTPOk.code)
 -        self.assertIn(self._dev_resource, res.json)
 -        gw_dev = res.json[self._dev_resource]
 -        self.assertEqual(gw_dev['id'], gw_dev_id)
 -        self.assertEqual(gw_dev['name'], gw_dev_name)
 -
 -    def test_gateway_device_delete(self):
 -        gw_dev_id = _uuid()
 -        instance = self.plugin.return_value
 -        res = self.api.delete(_get_path('%s/%s' % (networkgw.GATEWAY_DEVICES,
 -                                                   gw_dev_id)))
 -        instance.delete_gateway_device.assert_called_with(mock.ANY, gw_dev_id)
 -        self.assertEqual(res.status_int, exc.HTTPNoContent.code)
--
--
--class NetworkGatewayDbTestCase(test_db_plugin.NeutronDbPluginV2TestCase):
--    """Unit tests for Network Gateway DB support."""
--
--    def setUp(self, plugin=None, ext_mgr=None):
--        if not plugin:
--            plugin = '%s.%s' % (__name__, TestNetworkGatewayPlugin.__name__)
--        if not ext_mgr:
--            ext_mgr = TestExtensionManager()
-         self.resource = networkgw.RESOURCE_NAME.replace('-', '_')
 -        self.gw_resource = networkgw.GATEWAY_RESOURCE_NAME
 -        self.dev_resource = networkgw.DEVICE_RESOURCE_NAME
 -
--        super(NetworkGatewayDbTestCase, self).setUp(plugin=plugin,
--                                                    ext_mgr=ext_mgr)
--
--    def _create_network_gateway(self, fmt, tenant_id, name=None,
--                                devices=None, arg_list=None, **kwargs):
-         data = {self.resource: {'tenant_id': tenant_id,
-                                 'devices': devices}}
 -        data = {self.gw_resource: {'tenant_id': tenant_id,
 -                                   'devices': devices}}
--        if name:
-             data[self.resource]['name'] = name
 -            data[self.gw_resource]['name'] = name
--        for arg in arg_list or ():
--            # Arg must be present and not empty
--            if arg in kwargs and kwargs[arg]:
-                 data[self.resource][arg] = kwargs[arg]
-         nw_gw_req = self.new_create_request(networkgw.COLLECTION_NAME,
 -                data[self.gw_resource][arg] = kwargs[arg]
 -        nw_gw_req = self.new_create_request(networkgw.NETWORK_GATEWAYS,
--                                            data, fmt)
--        if (kwargs.get('set_context') and tenant_id):
--            # create a specific auth context for this request
--            nw_gw_req.environ['neutron.context'] = context.Context(
--                '', tenant_id)
--        return nw_gw_req.get_response(self.ext_api)
--
--    @contextlib.contextmanager
--    def _network_gateway(self, name='gw1', devices=None,
--                         fmt='json', tenant_id=_uuid()):
 -        device = None
--        if not devices:
-             devices = [{'id': _uuid(), 'interface_name': 'xyz'}]
 -            device_res = self._create_gateway_device(
 -                fmt, tenant_id, 'stt', '1.1.1.1', 'xxxxxx',
 -                name='whatever')
 -            if device_res.status_int >= 400:
 -                raise exc.HTTPClientError(code=device_res.status_int)
 -            device = self.deserialize(fmt, device_res)
 -            devices = [{'id': device[self.dev_resource]['id'],
 -                        'interface_name': 'xyz'}]
 -
--        res = self._create_network_gateway(fmt, tenant_id, name=name,
--                                           devices=devices)
-         network_gateway = self.deserialize(fmt, res)
--        if res.status_int >= 400:
--            raise exc.HTTPClientError(code=res.status_int)
 -        network_gateway = self.deserialize(fmt, res)
--        yield network_gateway
-         self._delete(networkgw.COLLECTION_NAME,
-                      network_gateway[self.resource]['id'])
 -
 -        self._delete(networkgw.NETWORK_GATEWAYS,
 -                     network_gateway[self.gw_resource]['id'])
 -        if device:
 -            self._delete(networkgw.GATEWAY_DEVICES,
 -                         device[self.dev_resource]['id'])
 -
 -    def _create_gateway_device(self, fmt, tenant_id,
 -                               connector_type, connector_ip,
 -                               client_certificate, name=None,
 -                               set_context=False):
 -        data = {self.dev_resource: {'tenant_id': tenant_id,
 -                                    'connector_type': connector_type,
 -                                    'connector_ip': connector_ip,
 -                                    'client_certificate': client_certificate}}
 -        if name:
 -            data[self.dev_resource]['name'] = name
 -        gw_dev_req = self.new_create_request(networkgw.GATEWAY_DEVICES,
 -                                             data, fmt)
 -        if (set_context and tenant_id):
 -            # create a specific auth context for this request
 -            gw_dev_req.environ['neutron.context'] = context.Context(
 -                '', tenant_id)
 -        return gw_dev_req.get_response(self.ext_api)
 -
 -    def _update_gateway_device(self, fmt, gateway_device_id,
 -                               connector_type=None, connector_ip=None,
 -                               client_certificate=None, name=None,
 -                               set_context=False, tenant_id=None):
 -        data = {self.dev_resource: {}}
 -        if connector_type:
 -            data[self.dev_resource]['connector_type'] = connector_type
 -        if connector_ip:
 -            data[self.dev_resource]['connector_ip'] = connector_ip
 -        if client_certificate:
 -            data[self.dev_resource]['client_certificate'] = client_certificate
 -        if name:
 -            data[self.dev_resource]['name'] = name
 -        gw_dev_req = self.new_update_request(networkgw.GATEWAY_DEVICES,
 -                                             data, gateway_device_id, fmt)
 -        if (set_context and tenant_id):
 -            # create a specific auth context for this request
 -            gw_dev_req.environ['neutron.context'] = context.Context(
 -                '', tenant_id)
 -        return gw_dev_req.get_response(self.ext_api)
 -
 -    @contextlib.contextmanager
 -    def _gateway_device(self, name='gw_dev',
 -                        connector_type='stt',
 -                        connector_ip='1.1.1.1',
 -                        client_certificate='xxxxxxxxxxxxxxx',
 -                        fmt='json', tenant_id=_uuid()):
 -        res = self._create_gateway_device(
 -            fmt,
 -            tenant_id,
 -            connector_type=connector_type,
 -            connector_ip=connector_ip,
 -            client_certificate=client_certificate,
 -            name=name)
 -        if res.status_int >= 400:
 -            raise exc.HTTPClientError(code=res.status_int)
 -        gateway_device = self.deserialize(fmt, res)
 -        yield gateway_device
 -
 -        self._delete(networkgw.GATEWAY_DEVICES,
 -                     gateway_device[self.dev_resource]['id'])
--
--    def _gateway_action(self, action, network_gateway_id, network_id,
--                        segmentation_type, segmentation_id=None,
--                        expected_status=exc.HTTPOk.code):
--        connection_data = {'network_id': network_id,
--                           'segmentation_type': segmentation_type}
--        if segmentation_id:
--            connection_data['segmentation_id'] = segmentation_id
--
-         req = self.new_action_request(networkgw.COLLECTION_NAME,
 -        req = self.new_action_request(networkgw.NETWORK_GATEWAYS,
--                                      connection_data,
--                                      network_gateway_id,
--                                      "%s_network" % action)
--        res = req.get_response(self.ext_api)
--        self.assertEqual(res.status_int, expected_status)
--        return self.deserialize('json', res)
--
--    def _test_connect_and_disconnect_network(self, segmentation_type,
--                                             segmentation_id=None):
--        with self._network_gateway() as gw:
--            with self.network() as net:
--                body = self._gateway_action('connect',
-                                             gw[self.resource]['id'],
 -                                            gw[self.gw_resource]['id'],
--                                            net['network']['id'],
--                                            segmentation_type,
--                                            segmentation_id)
--                self.assertIn('connection_info', body)
--                connection_info = body['connection_info']
--                for attr in ('network_id', 'port_id',
--                             'network_gateway_id'):
--                    self.assertIn(attr, connection_info)
--                # fetch port and confirm device_id
--                gw_port_id = connection_info['port_id']
--                port_body = self._show('ports', gw_port_id)
--                self.assertEqual(port_body['port']['device_id'],
-                                  gw[self.resource]['id'])
 -                                 gw[self.gw_resource]['id'])
--                # Clean up - otherwise delete will fail
--                body = self._gateway_action('disconnect',
-                                             gw[self.resource]['id'],
 -                                            gw[self.gw_resource]['id'],
--                                            net['network']['id'],
--                                            segmentation_type,
--                                            segmentation_id)
--                # Check associated port has been deleted too
--                body = self._show('ports', gw_port_id,
--                                  expected_code=exc.HTTPNotFound.code)
--
--    def test_create_network_gateway(self):
-         name = 'test-gw'
-         devices = [{'id': _uuid(), 'interface_name': 'xxx'},
-                    {'id': _uuid(), 'interface_name': 'yyy'}]
-         keys = [('devices', devices), ('name', name)]
-         with self._network_gateway(name=name, devices=devices) as gw:
-             for k, v in keys:
-                 self.assertEqual(gw[self.resource][k], v)
 -        with contextlib.nested(
 -            self._gateway_device(name='dev_1'),
 -            self._gateway_device(name='dev_2')) as (dev_1, dev_2):
 -            name = 'test-gw'
 -            dev_1_id = dev_1[self.dev_resource]['id']
 -            dev_2_id = dev_2[self.dev_resource]['id']
 -            devices = [{'id': dev_1_id, 'interface_name': 'xxx'},
 -                       {'id': dev_2_id, 'interface_name': 'yyy'}]
 -            keys = [('devices', devices), ('name', name)]
 -            with self._network_gateway(name=name, devices=devices) as gw:
 -                for k, v in keys:
 -                    self.assertEqual(gw[self.gw_resource][k], v)
--
--    def test_create_network_gateway_no_interface_name(self):
-         name = 'test-gw'
-         devices = [{'id': _uuid()}]
-         exp_devices = devices
-         exp_devices[0]['interface_name'] = 'breth0'
-         keys = [('devices', exp_devices), ('name', name)]
-         with self._network_gateway(name=name, devices=devices) as gw:
-             for k, v in keys:
-                 self.assertEqual(gw[self.resource][k], v)
 -        with self._gateway_device() as dev:
 -            name = 'test-gw'
 -            devices = [{'id': dev[self.dev_resource]['id']}]
 -            exp_devices = devices
 -            exp_devices[0]['interface_name'] = 'breth0'
 -            keys = [('devices', exp_devices), ('name', name)]
 -            with self._network_gateway(name=name, devices=devices) as gw:
 -                for k, v in keys:
 -                    self.assertEqual(gw[self.gw_resource][k], v)
--
-     def _test_delete_network_gateway(self, exp_gw_count=0):
-         name = 'test-gw'
-         devices = [{'id': _uuid(), 'interface_name': 'xxx'},
-                    {'id': _uuid(), 'interface_name': 'yyy'}]
-         with self._network_gateway(name=name, devices=devices):
-             # Nothing to do here - just let the gateway go
-             pass
 -    def test_delete_network_gateway(self):
 -        with self._gateway_device() as dev:
 -            name = 'test-gw'
 -            device_id = dev[self.dev_resource]['id']
 -            devices = [{'id': device_id,
 -                        'interface_name': 'xxx'}]
 -            with self._network_gateway(name=name, devices=devices) as gw:
 -                # Nothing to do here - just let the gateway go
 -                gw_id = gw[self.gw_resource]['id']
--        # Verify nothing left on db
--        session = db_api.get_session()
-         gw_query = session.query(networkgw_db.NetworkGateway)
-         dev_query = session.query(networkgw_db.NetworkGatewayDevice)
-         self.assertEqual(exp_gw_count, gw_query.count())
-         self.assertEqual(0, dev_query.count())
-     def test_delete_network_gateway(self):
-         self._test_delete_network_gateway()
 -        dev_query = session.query(
 -            networkgw_db.NetworkGatewayDevice).filter(
 -                networkgw_db.NetworkGatewayDevice.id == device_id)
 -        self.assertIsNone(dev_query.first())
 -        gw_query = session.query(networkgw_db.NetworkGateway).filter(
 -            networkgw_db.NetworkGateway.id == gw_id)
 -        self.assertIsNone(gw_query.first())
--
--    def test_update_network_gateway(self):
--        with self._network_gateway() as gw:
-             data = {self.resource: {'name': 'new_name'}}
-             req = self.new_update_request(networkgw.COLLECTION_NAME,
 -            data = {self.gw_resource: {'name': 'new_name'}}
 -            req = self.new_update_request(networkgw.NETWORK_GATEWAYS,
--                                          data,
-                                           gw[self.resource]['id'])
 -                                          gw[self.gw_resource]['id'])
--            res = self.deserialize('json', req.get_response(self.ext_api))
-             self.assertEqual(res[self.resource]['name'],
-                              data[self.resource]['name'])
 -            self.assertEqual(res[self.gw_resource]['name'],
 -                             data[self.gw_resource]['name'])
--
--    def test_get_network_gateway(self):
--        with self._network_gateway(name='test-gw') as gw:
-             req = self.new_show_request(networkgw.COLLECTION_NAME,
-                                         gw[self.resource]['id'])
 -            req = self.new_show_request(networkgw.NETWORK_GATEWAYS,
 -                                        gw[self.gw_resource]['id'])
--            res = self.deserialize('json', req.get_response(self.ext_api))
-             self.assertEqual(res[self.resource]['name'],
-                              gw[self.resource]['name'])
 -            self.assertEqual(res[self.gw_resource]['name'],
 -                             gw[self.gw_resource]['name'])
--
--    def test_list_network_gateways(self):
--        with self._network_gateway(name='test-gw-1') as gw1:
--            with self._network_gateway(name='test_gw_2') as gw2:
-                 req = self.new_list_request(networkgw.COLLECTION_NAME)
 -                req = self.new_list_request(networkgw.NETWORK_GATEWAYS)
--                res = self.deserialize('json', req.get_response(self.ext_api))
-                 key = self.resource + 's'
 -                key = self.gw_resource + 's'
--                self.assertEqual(len(res[key]), 2)
--                self.assertEqual(res[key][0]['name'],
-                                  gw1[self.resource]['name'])
 -                                 gw1[self.gw_resource]['name'])
--                self.assertEqual(res[key][1]['name'],
-                                  gw2[self.resource]['name'])
 -                                 gw2[self.gw_resource]['name'])
--
--    def _test_list_network_gateway_with_multiple_connections(
--        self, expected_gateways=1):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 777)
-                 req = self.new_list_request(networkgw.COLLECTION_NAME)
 -                req = self.new_list_request(networkgw.NETWORK_GATEWAYS)
--                res = self.deserialize('json', req.get_response(self.ext_api))
-                 key = self.resource + 's'
 -                key = self.gw_resource + 's'
--                self.assertEqual(len(res[key]), expected_gateways)
--                for item in res[key]:
--                    self.assertIn('ports', item)
-                     if item['id'] == gw[self.resource]['id']:
 -                    if item['id'] == gw[self.gw_resource]['id']:
--                        gw_ports = item['ports']
--                self.assertEqual(len(gw_ports), 2)
--                segmentation_ids = [555, 777]
--                for gw_port in gw_ports:
--                    self.assertEqual('vlan', gw_port['segmentation_type'])
--                    self.assertIn(gw_port['segmentation_id'], segmentation_ids)
--                    segmentation_ids.remove(gw_port['segmentation_id'])
--                # Required cleanup
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 777)
--
--    def test_list_network_gateway_with_multiple_connections(self):
--        self._test_list_network_gateway_with_multiple_connections()
--
--    def test_connect_and_disconnect_network(self):
--        self._test_connect_and_disconnect_network('flat')
--
--    def test_connect_and_disconnect_network_no_seg_type(self):
--        self._test_connect_and_disconnect_network(None)
--
--    def test_connect_and_disconnect_network_with_segmentation_id(self):
--        self._test_connect_and_disconnect_network('vlan', 999)
--
--    def test_connect_network_multiple_times(self):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 777)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 777)
--
--    def test_connect_network_multiple_gateways(self):
--        with self._network_gateway() as gw_1:
--            with self._network_gateway() as gw_2:
--                with self.network() as net_1:
--                    self._gateway_action('connect',
-                                          gw_1[self.resource]['id'],
 -                                         gw_1[self.gw_resource]['id'],
--                                         net_1['network']['id'],
--                                         'vlan', 555)
--                    self._gateway_action('connect',
-                                          gw_2[self.resource]['id'],
 -                                         gw_2[self.gw_resource]['id'],
--                                         net_1['network']['id'],
--                                         'vlan', 555)
--                    self._gateway_action('disconnect',
-                                          gw_1[self.resource]['id'],
 -                                         gw_1[self.gw_resource]['id'],
--                                         net_1['network']['id'],
--                                         'vlan', 555)
--                    self._gateway_action('disconnect',
-                                          gw_2[self.resource]['id'],
 -                                         gw_2[self.gw_resource]['id'],
--                                         net_1['network']['id'],
--                                         'vlan', 555)
--
--    def test_connect_network_mapping_in_use_returns_409(self):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                with self.network() as net_2:
--                    self._gateway_action('connect',
-                                          gw[self.resource]['id'],
 -                                         gw[self.gw_resource]['id'],
--                                         net_2['network']['id'],
--                                         'vlan', 555,
--                                         expected_status=exc.HTTPConflict.code)
--                # Clean up - otherwise delete will fail
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--
--    def test_connect_invalid_network_returns_400(self):
--        with self._network_gateway() as gw:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     'hohoho',
--                                     'vlan', 555,
--                                     expected_status=exc.HTTPBadRequest.code)
--
--    def test_connect_unspecified_network_returns_400(self):
--        with self._network_gateway() as gw:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     None,
--                                     'vlan', 555,
--                                     expected_status=exc.HTTPBadRequest.code)
--
--    def test_disconnect_network_ambiguous_returns_409(self):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 777)
--                # This should raise
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan',
--                                     expected_status=exc.HTTPConflict.code)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 777)
--
--    def test_delete_active_gateway_port_returns_409(self):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                body = self._gateway_action('connect',
-                                             gw[self.resource]['id'],
 -                                            gw[self.gw_resource]['id'],
--                                            net_1['network']['id'],
--                                            'vlan', 555)
--                # fetch port id and try to delete it
--                gw_port_id = body['connection_info']['port_id']
--                self._delete('ports', gw_port_id,
--                             expected_code=exc.HTTPConflict.code)
--                body = self._gateway_action('disconnect',
-                                             gw[self.resource]['id'],
 -                                            gw[self.gw_resource]['id'],
--                                            net_1['network']['id'],
--                                            'vlan', 555)
--
--    def test_delete_network_gateway_active_connections_returns_409(self):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'flat')
-                 self._delete(networkgw.COLLECTION_NAME,
-                              gw[self.resource]['id'],
 -                self._delete(networkgw.NETWORK_GATEWAYS,
 -                             gw[self.gw_resource]['id'],
--                             expected_code=exc.HTTPConflict.code)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'flat')
--
--    def test_disconnect_non_existing_connection_returns_404(self):
--        with self._network_gateway() as gw:
--            with self.network() as net_1:
--                self._gateway_action('connect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 999,
--                                     expected_status=exc.HTTPNotFound.code)
--                self._gateway_action('disconnect',
-                                      gw[self.resource]['id'],
 -                                     gw[self.gw_resource]['id'],
--                                     net_1['network']['id'],
--                                     'vlan', 555)
 -
 -    def test_create_gateway_device(
 -        self, expected_status=networkgw_db.STATUS_UNKNOWN):
 -        with self._gateway_device(name='test-dev',
 -                                  connector_type='stt',
 -                                  connector_ip='1.1.1.1',
 -                                  client_certificate='xyz') as dev:
 -            self.assertEqual(dev[self.dev_resource]['name'], 'test-dev')
 -            self.assertEqual(dev[self.dev_resource]['connector_type'], 'stt')
 -            self.assertEqual(dev[self.dev_resource]['connector_ip'], '1.1.1.1')
 -            self.assertEqual(dev[self.dev_resource]['status'], expected_status)
 -
 -    def test_get_gateway_device(
 -        self, expected_status=networkgw_db.STATUS_UNKNOWN):
 -        with self._gateway_device(name='test-dev',
 -                                  connector_type='stt',
 -                                  connector_ip='1.1.1.1',
 -                                  client_certificate='xyz') as dev:
 -            req = self.new_show_request(networkgw.GATEWAY_DEVICES,
 -                                        dev[self.dev_resource]['id'])
 -            res = self.deserialize('json', req.get_response(self.ext_api))
 -        self.assertEqual(res[self.dev_resource]['name'], 'test-dev')
 -        self.assertEqual(res[self.dev_resource]['connector_type'], 'stt')
 -        self.assertEqual(res[self.dev_resource]['connector_ip'], '1.1.1.1')
 -        self.assertEqual(res[self.dev_resource]['status'], expected_status)
 -
 -    def test_update_gateway_device(
 -        self, expected_status=networkgw_db.STATUS_UNKNOWN):
 -        with self._gateway_device(name='test-dev',
 -                                  connector_type='stt',
 -                                  connector_ip='1.1.1.1',
 -                                  client_certificate='xyz') as dev:
 -            self._update_gateway_device('json', dev[self.dev_resource]['id'],
 -                                        connector_type='stt',
 -                                        connector_ip='2.2.2.2',
 -                                        name='test-dev-upd')
 -            req = self.new_show_request(networkgw.GATEWAY_DEVICES,
 -                                        dev[self.dev_resource]['id'])
 -            res = self.deserialize('json', req.get_response(self.ext_api))
 -
 -        self.assertEqual(res[self.dev_resource]['name'], 'test-dev-upd')
 -        self.assertEqual(res[self.dev_resource]['connector_type'], 'stt')
 -        self.assertEqual(res[self.dev_resource]['connector_ip'], '2.2.2.2')
 -        self.assertEqual(res[self.dev_resource]['status'], expected_status)
 -
 -    def test_delete_gateway_device(self):
 -        with self._gateway_device(name='test-dev',
 -                                  connector_type='stt',
 -                                  connector_ip='1.1.1.1',
 -                                  client_certificate='xyz') as dev:
 -            # Nothing to do here - just note the device id
 -            dev_id = dev[self.dev_resource]['id']
 -        # Verify nothing left on db
 -        session = db_api.get_session()
 -        dev_query = session.query(networkgw_db.NetworkGatewayDevice)
 -        dev_query.filter(networkgw_db.NetworkGatewayDevice.id == dev_id)
 -        self.assertIsNone(dev_query.first())
--
--
--class TestNetworkGateway(NsxPluginV2TestCase,
--                         NetworkGatewayDbTestCase):
--
--    def setUp(self, plugin=PLUGIN_NAME, ext_mgr=None):
--        cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH)
 -        # Mock l2gwlib calls for gateway devices since this resource is not
 -        # mocked through the fake NVP API client
 -        create_gw_dev_patcher = mock.patch.object(
 -            l2gwlib, 'create_gateway_device')
 -        update_gw_dev_patcher = mock.patch.object(
 -            l2gwlib, 'update_gateway_device')
 -        delete_gw_dev_patcher = mock.patch.object(
 -            l2gwlib, 'delete_gateway_device')
 -        get_gw_dev_status_patcher = mock.patch.object(
 -            l2gwlib, 'get_gateway_device_status')
 -        mock_create_gw_dev = create_gw_dev_patcher.start()
 -        mock_create_gw_dev.return_value = {'uuid': 'callejon'}
 -        update_gw_dev_patcher.start()
 -        delete_gw_dev_patcher.start()
 -        self.mock_get_gw_dev_status = get_gw_dev_status_patcher.start()
 -
--        super(TestNetworkGateway,
--              self).setUp(plugin=plugin, ext_mgr=ext_mgr)
--
--    def test_create_network_gateway_name_exceeds_40_chars(self):
--        name = 'this_is_a_gateway_whose_name_is_longer_than_40_chars'
--        with self._network_gateway(name=name) as nw_gw:
--            # Assert Neutron name is not truncated
-             self.assertEqual(nw_gw[self.resource]['name'], name)
 -            self.assertEqual(nw_gw[self.gw_resource]['name'], name)
--
--    def test_update_network_gateway_with_name_calls_backend(self):
--        with mock.patch.object(
--            nsxlib.l2gateway, 'update_l2_gw_service') as mock_update_gw:
--            with self._network_gateway(name='cavani') as nw_gw:
-                 nw_gw_id = nw_gw[self.resource]['id']
-                 self._update(networkgw.COLLECTION_NAME, nw_gw_id,
-                              {self.resource: {'name': 'higuain'}})
 -                nw_gw_id = nw_gw[self.gw_resource]['id']
 -                self._update(networkgw.NETWORK_GATEWAYS, nw_gw_id,
 -                             {self.gw_resource: {'name': 'higuain'}})
--                mock_update_gw.assert_called_once_with(
--                    mock.ANY, nw_gw_id, 'higuain')
--
--    def test_update_network_gateway_without_name_does_not_call_backend(self):
--        with mock.patch.object(
--            nsxlib.l2gateway, 'update_l2_gw_service') as mock_update_gw:
--            with self._network_gateway(name='something') as nw_gw:
-                 nw_gw_id = nw_gw[self.resource]['id']
-                 self._update(networkgw.COLLECTION_NAME, nw_gw_id,
-                              {self.resource: {}})
 -                nw_gw_id = nw_gw[self.gw_resource]['id']
 -                self._update(networkgw.NETWORK_GATEWAYS, nw_gw_id,
 -                             {self.gw_resource: {}})
--                self.assertEqual(mock_update_gw.call_count, 0)
--
--    def test_update_network_gateway_name_exceeds_40_chars(self):
--        new_name = 'this_is_a_gateway_whose_name_is_longer_than_40_chars'
--        with self._network_gateway(name='something') as nw_gw:
-             nw_gw_id = nw_gw[self.resource]['id']
-             self._update(networkgw.COLLECTION_NAME, nw_gw_id,
-                          {self.resource: {'name': new_name}})
-             req = self.new_show_request(networkgw.COLLECTION_NAME,
 -            nw_gw_id = nw_gw[self.gw_resource]['id']
 -            self._update(networkgw.NETWORK_GATEWAYS, nw_gw_id,
 -                         {self.gw_resource: {'name': new_name}})
 -            req = self.new_show_request(networkgw.NETWORK_GATEWAYS,
--                                        nw_gw_id)
--            res = self.deserialize('json', req.get_response(self.ext_api))
--            # Assert Neutron name is not truncated
-             self.assertEqual(new_name, res[self.resource]['name'])
 -            self.assertEqual(new_name, res[self.gw_resource]['name'])
--            # Assert NSX name is truncated
--            self.assertEqual(
--                new_name[:40],
--                self.fc._fake_gatewayservice_dict[nw_gw_id]['display_name'])
--
--    def test_create_network_gateway_nsx_error_returns_500(self):
--        def raise_nsx_api_exc(*args, **kwargs):
--            raise api_exc.NsxApiException
--
--        with mock.patch.object(nsxlib.l2gateway,
--                               'create_l2_gw_service',
--                               new=raise_nsx_api_exc):
-             res = self._create_network_gateway(
-                 self.fmt, 'xxx', name='yyy',
-                 devices=[{'id': uuidutils.generate_uuid()}])
 -            with self._gateway_device() as dev:
 -                res = self._create_network_gateway(
 -                    self.fmt, 'xxx', name='yyy',
 -                    devices=[{'id': dev[self.dev_resource]['id']}])
--            self.assertEqual(500, res.status_int)
--
--    def test_create_network_gateway_nsx_error_returns_409(self):
--        with mock.patch.object(nsxlib.l2gateway,
--                               'create_l2_gw_service',
--                               side_effect=api_exc.Conflict):
-             res = self._create_network_gateway(
-                 self.fmt, 'xxx', name='yyy',
-                 devices=[{'id': uuidutils.generate_uuid()}])
 -            with self._gateway_device() as dev:
 -                res = self._create_network_gateway(
 -                    self.fmt, 'xxx', name='yyy',
 -                    devices=[{'id': dev[self.dev_resource]['id']}])
--            self.assertEqual(409, res.status_int)
--
--    def test_list_network_gateways(self):
--        with self._network_gateway(name='test-gw-1') as gw1:
--            with self._network_gateway(name='test_gw_2') as gw2:
-                 req = self.new_list_request(networkgw.COLLECTION_NAME)
 -                req = self.new_list_request(networkgw.NETWORK_GATEWAYS)
--                res = self.deserialize('json', req.get_response(self.ext_api))
--                # We expect the default gateway too
-                 key = self.resource + 's'
 -                key = self.gw_resource + 's'
--                self.assertEqual(len(res[key]), 3)
--                self.assertEqual(res[key][0]['default'],
--                                 True)
--                self.assertEqual(res[key][1]['name'],
-                                  gw1[self.resource]['name'])
 -                                 gw1[self.gw_resource]['name'])
--                self.assertEqual(res[key][2]['name'],
-                                  gw2[self.resource]['name'])
 -                                 gw2[self.gw_resource]['name'])
--
--    def test_list_network_gateway_with_multiple_connections(self):
--        self._test_list_network_gateway_with_multiple_connections(
--            expected_gateways=2)
-     def test_delete_network_gateway(self):
-         # The default gateway must still be there
-         self._test_delete_network_gateway(1)
--
--    def test_show_network_gateway_nsx_error_returns_404(self):
--        invalid_id = 'b5afd4a9-eb71-4af7-a082-8fc625a35b61'
-         req = self.new_show_request(networkgw.COLLECTION_NAME, invalid_id)
 -        req = self.new_show_request(networkgw.NETWORK_GATEWAYS, invalid_id)
--        res = req.get_response(self.ext_api)
--        self.assertEqual(exc.HTTPNotFound.code, res.status_int)
 -
 -    def test_create_gateway_device(self):
 -        self.mock_get_gw_dev_status.return_value = True
 -        super(TestNetworkGateway, self).test_create_gateway_device(
 -            expected_status=networkgw_db.STATUS_ACTIVE)
 -
 -    def test_create_gateway_device_status_down(self):
 -        self.mock_get_gw_dev_status.return_value = False
 -        super(TestNetworkGateway, self).test_create_gateway_device(
 -            expected_status=networkgw_db.STATUS_DOWN)
 -
 -    def test_get_gateway_device(self):
 -        self.mock_get_gw_dev_status.return_value = True
 -        super(TestNetworkGateway, self).test_get_gateway_device(
 -            expected_status=networkgw_db.STATUS_ACTIVE)
 -
 -    def test_get_gateway_device_status_down(self):
 -        self.mock_get_gw_dev_status.return_value = False
 -        super(TestNetworkGateway, self).test_get_gateway_device(
 -            expected_status=networkgw_db.STATUS_DOWN)
 -
 -    def test_update_gateway_device(self):
 -        self.mock_get_gw_dev_status.return_value = True
 -        super(TestNetworkGateway, self).test_update_gateway_device(
 -            expected_status=networkgw_db.STATUS_ACTIVE)
 -
 -    def test_update_gateway_device_status_down(self):
 -        self.mock_get_gw_dev_status.return_value = False
 -        super(TestNetworkGateway, self).test_update_gateway_device(
 -            expected_status=networkgw_db.STATUS_DOWN)
--
--
--class TestNetworkGatewayPlugin(db_base_plugin_v2.NeutronDbPluginV2,
--                               networkgw_db.NetworkGatewayMixin):
--    """Simple plugin class for testing db support for network gateway ext."""
--
--    supported_extension_aliases = ["network-gateway"]
--
--    def __init__(self, **args):
--        super(TestNetworkGatewayPlugin, self).__init__(**args)
--        extensions.append_api_extensions_path([NSXEXT_PATH])
--
--    def delete_port(self, context, id, nw_gw_port_check=True):
--        if nw_gw_port_check:
--            port = self._get_port(context, id)
--            self.prevent_network_gateway_port_deletion(context, port)
--        super(TestNetworkGatewayPlugin, self).delete_port(context, id)