]> review.fuel-infra Code Review - openstack-build/neutron-build.git/log
openstack-build/neutron-build.git
10 years agoFix ValueError in ip_lib.IpRouteCommand.get_gateway()
Arata Notsu [Fri, 10 Jan 2014 10:54:10 +0000 (19:54 +0900)]
Fix ValueError in ip_lib.IpRouteCommand.get_gateway()

As metric is not necessarily the 5th word of the gateway line, the
method should search the string 'metric' in the line and pick the next
word as the metric value.

Change-Id: I2663ddbae82f80b912b364c07f9ab92c5b90b718
Closes-Bug: #1267790

10 years agoImported Translations from Transifex
OpenStack Jenkins [Wed, 12 Feb 2014 06:25:58 +0000 (06:25 +0000)]
Imported Translations from Transifex

Change-Id: I696ef1e400891af9d128b3badb9696a88217bb3b

10 years agoFix log-related tracebacks in nsx plugin
armando-migliaccio [Wed, 12 Feb 2014 03:39:11 +0000 (19:39 -0800)]
Fix log-related tracebacks in nsx plugin

Closes-bug: 1279163

Change-Id: I2a6f0fdbd4d72b74c6a4329cb5e02d9d979705dd

10 years agoadd router_id to response for CRU on fw/vip objs
berlin [Fri, 27 Sep 2013 03:09:36 +0000 (11:09 +0800)]
add router_id to response for CRU on fw/vip objs

Closes-Bug: #1231770
Change-Id: I3763d2af855d2ad28ff89b528264ba981e71c08a

10 years agoMove db migration of ml2 security groups to havana
Jakub Libosvar [Mon, 27 Jan 2014 17:09:26 +0000 (18:09 +0100)]
Move db migration of ml2 security groups to havana

ml2 plugin is a havana feature. Currently securitygroups table are
created in chain of migration after havana release. It causes db
migration failure when migrating from havana to current head because
securitygroups table is attempted to be created although it was already
created by create_all().

Closes-bug: #1271231
Change-Id: If450bd95de7a5fdfdb2219cfbf7eb0c1323044bb

10 years agoSync latest oslo.db code into neutron
Julia Varlamova [Tue, 11 Feb 2014 14:04:01 +0000 (18:04 +0400)]
Sync latest oslo.db code into neutron

Changes that were ported from oslo:

b4f72b2 Don't raise MySQL 2013 'Lost connection' errors
271adfb Format sql in db.sqlalchemy.session docstring
0334cb3 Handle exception messages with six.text_type
eff69ce Drop dependency on log from oslo db code
7a11a04 Automatic retry db.api query if db connection lost
11f2add Clean up docstring in db.sqlalchemy.session
1b5147f Only enable MySQL TRADITIONAL mode if we're running against MySQL
39e1c5c Move db tests base.py to common code
986dafd Fix parsing of UC errors in sqlite 3.7.16+/3.8.2+
9a203e6 Use dialect rather than a particular DB API driver
1779029 Move helper DB functions to db.sqlalchemy.utils
bcf6d5e Small edits on help strings
ae01e9a Transition from migrate to alembic
70ebb19 Fix mocking of utcnow() for model datetime cols
7aa94df Add a db check for CHARSET=utf8
aff0171 Remove "vim: tabstop=4 shiftwidth=4 softtabstop=4" from headers
fa0f36f Fix database connection string is secret
8575d87 Removed copyright from empty files
d08d27f Fix the obsolete exception message
8b2b0b7 Use hacking import_exceptions for gettextutils._
9bc593e Add docstring for exception handlers of session
855644a Removal of _REPOSITORY global variable.
ea6caf9 Remove string.lowercase usage
a33989e Remove eventlet tpool from common db.api
e40903b Database hook enabling traditional mode at MySQL
f2115a0 Replace xrange in for loop with range
c802fa6 SQLAlchemy error patterns improved
1c1f199 Remove unused import
6d0a6c3 Correct invalid docstrings
135dd00 Remove start index 0 in range()
28f8fd5 Make _extra_keys a property of ModelBase
45658e2 Fix violations of H302:import only modules
bb4d7a2 Enables db2 server disconnects to be handled pessimistically
915f8ab db.sqlalchemy.session add [sql].idle_timeout
e6494c2 Use six.iteritems to make dict work on Python2/3
48cfb7b Drop dependency on processutils from oslo db code
4c47d3e Fix locking in migration tests
c2ee282 Incorporating MIT licensed code
c5a1088 Typos fix in db and periodic_task module
fb0e86a Use six.moves.configparser instead of ConfigParser
1dd4971 fix typo in db session docstring
8a01dd8 The ability to run tests at various backend
0fe4e28 Use log.warning() instead of log.warn() in oslo.db
12bcdb7 Remove vim header
4c22556 Use py3kcompat urlutils functions instead of urlparse
ca7a2ab Don't use deprecated module commands
6603e8f Remove sqlalchemy-migrate 0.7.3 patching
274c7e2 Drop dependency on lockutils from oslo db code
97d8cf4 Remove lazy loading of database backend
2251cb5 Do not name variables as builtins
3acd57c Add db2 communication error code when check the db connection
c2dcf6e Add [sql].connection as deprecated opt for db
001729d Modify SQLA session due to dispose of eventlet
c2dcf6e Add [sql].connection as deprecated opt for db
001729d Modify SQLA session due to dispose of eventlet
4de827a Clean up db.sqla.Models.extra_keys interface
347f29e Use functools.wrap() instead of custom implementation
771d843 Move base migration test classes to common code
9721129 exception: remove
56ff3b3 Use single meta when change column type
3f2f70e Helper function to sanitize db url credentials
df3f2ba BaseException.message is deprecated since Python 2.6
c76be5b Add function drop_unique_constraint()
d4d8126 Change sqlalchemy/utils.py mode back to 644
cf41936 Move sqlalchemy migration from Nova
5758360 Raise ValueError if sort_dir is unknown
31c1995 python3: Add python3 compatibility support
3972c3f Migrate sqlalchemy utils from Nova
1a2df89 Enable H302 hacking check
3f503fa Add a monkey-patching util for sqlalchemy-migrate
7ba5f4b Don't use mixture of cfg.Opt() deprecated args

Change-Id: Ifddb91dc2c6b80668a07267f92f13074b974776b

10 years agoImported Translations from Transifex
OpenStack Jenkins [Tue, 11 Feb 2014 06:24:03 +0000 (06:24 +0000)]
Imported Translations from Transifex

Change-Id: I8c1944fd04f74b4d3623a5589cebac89f72f1ff3

10 years agoAdd migration support from agent to NSX dhcp/metadata services
armando-migliaccio [Fri, 11 Oct 2013 21:39:28 +0000 (14:39 -0700)]
Add migration support from agent to NSX dhcp/metadata services

This is feature patch (3 of 3) that introduces support for
transitioning existing NSX-based deployments from the agent
based model of providing dhcp and metadata proxy services
to the new agentless based mode. In 'combined' mode, existing
networks will still be served by the existing infrastructure,
whereas new networks will be served by the new infrastructure.

Networks may be migrated to the model using a new CLI tool
provided, called 'neutron-nsx-manage'. Currently the tool
provides two admin-only commands:

  neutron-nsx-manage net-report <net-id-or-name>

This will check that the network can be migrated and returns
the resources currently in use. And:

  neutron-nsx-manage net-migrate <net-id-or-name>

This will move the network over the new model and deallocate
resources from the agent. Once a network has been migrated
there is no turning back.

Completes-blueprint nsx-integrated-services

Change-Id: I37c9aa0e76124e1023899106406de7be6714c24d

10 years agoNSX plugin: fix floatingip re-association
Salvatore Orlando [Mon, 10 Feb 2014 21:03:08 +0000 (13:03 -0800)]
NSX plugin: fix floatingip re-association

The NSX plugin does not allow to reassociate a floating IP to
a different internal IP address on the same port where it's
currently associated.
This patch fixes this behaviour and adds a unit test to ensure
re-association on the same port with a different IP is possible.

A few tweaks to the unit test aux functions were necessary to
accomodate the newly introduced unit test.

Change-Id: Iafbc3c54ebc4509ca75155ef138cc6da869df7bd
Closes-Bug: #1278581

10 years agoRe-enable lazy translation
Luis A. Garcia [Wed, 15 Jan 2014 23:20:51 +0000 (23:20 +0000)]
Re-enable lazy translation

After enhancements to Oslo Message class, re-enable lazy translation to
enable REST API responses to be translated to the requested user locale.

bp i18n-messages

Change-Id: I80272fb0d063a78882611b3044c920e28cc57d6b

10 years agoDo not append to messages with +
Luis A. Garcia [Thu, 16 Jan 2014 00:01:05 +0000 (00:01 +0000)]
Do not append to messages with +

Some code was appending to translated messages using +, which
oslo-incubator's new gettextutils doesn't support.

The code was changed to use a substitution value in the message
instead.

Part of bp user-locale-api

Change-Id: If2bc1821d0057c4cd53ead7eac1712284464b9bf

10 years agoRemove psutil dependency
Terry Wilson [Fri, 24 Jan 2014 19:34:15 +0000 (13:34 -0600)]
Remove psutil dependency

The version of psutil that was being required is not hosted on
PyPi which caused some issues. This patch removes the psutil
dependency in favor of using the method that was proposed for
the havana backport of polling minimization.

Closes-bug: #1268711
Change-Id: I5a1672cfd195099d92578321153c42b8bfd09b7d

10 years agoLBaaS: move agent based driver files into a separate dir
Oleg Bondarev [Tue, 10 Dec 2013 15:10:38 +0000 (19:10 +0400)]
LBaaS: move agent based driver files into a separate dir

Replace agent based driver files from haproxy driver dir
Same for unit tests files

Finalizes blueprint lbaas-common-agent-driver

Change-Id: Ibff85a9c2e1f1c59d72616836d56a697dce72c59

10 years agomailmap: update .mailmap
Isaku Yamahata [Mon, 10 Feb 2014 06:47:59 +0000 (15:47 +0900)]
mailmap: update .mailmap

Change-Id: I20841bcaf29a6be44999a4ee33f2c85e2a41a27d

10 years agoFix binding:host_id is set to None when port update
hyunsun [Wed, 18 Dec 2013 09:03:34 +0000 (18:03 +0900)]
Fix binding:host_id is set to None when port update

when updating a port 'binding:host_id' is reset if not specified among
the parameter to be updated. As a result, a None value for
'binding:host_id' is sent from the notifier which might potentially
cause consumers to not work properly.

Closes-Bug: #1245310
Change-Id: Icfb5179940cca9f8a705eb36bdbfcbc8a421a272

10 years agoReturn request-id in API response
Akihiro Motoki [Thu, 5 Dec 2013 06:55:31 +0000 (15:55 +0900)]
Return request-id in API response

Import RequestIdMiddleware from oslo which ensures to request-id
in API response. CatchErrorsMiddleware is also imported to ensure
all internal exceptions are caught outermost.
api-paste.ini is updated to use them.

KeystonAuthContext middleware is updated so that it uses
request-id generated by RequestIdMiddleware.

Add middleware to openstack.conf and import all modules
under middleware directory from oslo.

DocImpact UpgradeImpact
This patch adds new WSGI middlewares "request_id" and "catch_errors".
They needs to be added to api-paste.ini when upgrading.

Change-Id: Icf01b7de697ef50bef53212da2cf520d1ff78b88
Closes-Bug: #1239923

10 years agoSkip extra logging when devices is empty
Yuanchao Sun [Sun, 9 Feb 2014 16:20:31 +0000 (00:20 +0800)]
Skip extra logging when devices is empty

Change-Id: Id9ae8aef0555109bd88600965adb2744ab924430
Closes-Bug: #1278271

10 years agoImprove handling of security group updates
Salvatore Orlando [Thu, 19 Dec 2013 08:26:38 +0000 (00:26 -0800)]
Improve handling of security group updates

Currently updates to security group rules or membership
are handled by immediately triggering a call to refresh_firewall.
This call is quite expensive, and it is often executed with a
very high frequency.

With this patch, the notification handler simply adds devices for
which the firewall should be refreshed to a set, which will then
be processed in another routine. The latter is supposed to
be called in the main agent loop.

This patch for 'provider updates' simply sets a flag for refreshing
the firewall for all devices.

In order to avoid breaking other agents leveraging the security
group RPC mixin, the reactive behaviour is still available, and is
still the default way of handling security group updates.

Partial-Bug: #1253993
Partially implements blueprint: neutron-tempest-parallel

Change-Id: I1574544734865506ff5383404516cc9349c16ec4

10 years agoML2 plugin cannot raise NoResultFound exception
Édouard Thuleau [Sat, 8 Feb 2014 17:28:19 +0000 (18:28 +0100)]
ML2 plugin cannot raise NoResultFound exception

The ML2 plugin cannot raise NoResultFound exception because it does not
use the correct sqlalchemy library:
'from sqlalchemy import exc as ...' instead of 'from sqlalchemy.orm
import exc as ...'

Closes-Bug: #1277914
Change-Id: If3819adc62b9254f0c08eea6dcfcf5f06288e20e

10 years agoFix typo in rootwrap files: neuton -> neutron
Robert Collins [Sun, 9 Feb 2014 08:19:41 +0000 (21:19 +1300)]
Fix typo in rootwrap files: neuton -> neutron

The l3 filters one in particular breaks /usr/local installs because
its spelt wrongly.

Change-Id: I609e3f448256cb8c9211c4d67ae48cb2ee5b6094

10 years agoImported Translations from Transifex
OpenStack Jenkins [Sun, 9 Feb 2014 06:23:12 +0000 (06:23 +0000)]
Imported Translations from Transifex

Change-Id: Ie1523eac21f7222050cab5dc923810adfbb39f77

10 years agoPrepare for multiple cisco ML2 mech drivers
Henry Gessau [Fri, 7 Feb 2014 01:56:00 +0000 (20:56 -0500)]
Prepare for multiple cisco ML2 mech drivers

Code tree reorganization in preparation for ML2 mechanism drivers for
other cisco products. The cisco nexus ML2 mechanism driver and its
test cases need to move down into their own subdirectory.

Closes-bug: #1277222

Change-Id: I2ba366332276069545b3deb0bbd39016a893327b

10 years agoML2 Cisco Nexus MD: Create pre/post DB event handlers
Rich Curran [Thu, 14 Nov 2013 22:20:07 +0000 (17:20 -0500)]
ML2 Cisco Nexus MD: Create pre/post DB event handlers

Split ML2 cisco nexus event handers for update and delete
into precommit (called during DB transactions) and postcommit
(called after DB transactions) methods.

Also fixes some unit tests that were incorrectly accessing
context managers without using the "with" statement.

Closes-Bug: #1241098
Change-Id: I59b046342706230222c1be39d13a455ca5a884ea

10 years agoSupport building wheels (PEP-427)
Sascha Peilicke [Tue, 19 Nov 2013 08:57:32 +0000 (09:57 +0100)]
Support building wheels (PEP-427)

Universal is used to identify pure-Python module(by bdist_wheel). For
these, it is sufficient to build a wheel with _any_ Python ABI version
and publish that to PyPI (by whatever means).

Change-Id: Ibca65044d61d4b9b248013e4fe316f3c1a05f764

10 years agoNVP plugin:fix delete sec group when backend is out of sync
Salvatore Orlando [Fri, 15 Nov 2013 11:06:19 +0000 (03:06 -0800)]
NVP plugin:fix delete sec group when backend is out of sync

If a security group does not exist on the NVP backend, an error
should not be raised on deletion of the security group.

This patch changes the plugin behavior by deleting the record
from the database and just logging that the security group
was not found on the NVP backend.

Closes-Bug: #1251422

Change-Id: Ib8adf7a830ff336655fd83ad4118cde641adf284

10 years agoUse oslo.rootwrap library instead of local copy
Thierry Carrez [Thu, 6 Feb 2014 15:27:36 +0000 (16:27 +0100)]
Use oslo.rootwrap library instead of local copy

Remove rootwrap code copied from oslo-incubator, make the
{neutron,quantum}-rootwrap console_script entrypoints point to
oslo.rootwrap code instead.

Adjust bin/{neutron,quantum}-rootwrap[-xen-dom0] so that it calls
into oslo.rootwrap.cmd.

Change-Id: I22df4060d6bca6affd7761fec49d2767ca8f59cf
Implements: blueprint neutron-oslo-rootwrap

10 years agoFix misspellings in neutron
Shane Wang [Fri, 7 Feb 2014 07:27:36 +0000 (15:27 +0800)]
Fix misspellings in neutron

Fix misspellings detected by:
* pip install misspellings
* git ls-files | grep -v locale | misspellings -f -

Change-Id: I93d9e2a65b0c1d1d801cae59b74d7258fbdb17dc
Closes-Bug: #1257295

10 years agoRefactor to remove _recycle_ip
Carl Baldwin [Thu, 2 Jan 2014 20:56:29 +0000 (20:56 +0000)]
Refactor to remove _recycle_ip

Since _recycle_ip is now just a pass-through to _delete_ip_allocation
it can be removed.

Change-Id: Ifba3da902de599f748038a33ef3bd98ff77c22b9
Closes-Bug: #1269501

10 years agoAllow multiple DNS forwarders for dnsmasq
Sylvain Afchain [Thu, 12 Dec 2013 23:12:29 +0000 (00:12 +0100)]
Allow multiple DNS forwarders for dnsmasq

This patch change the dnsmasq_server configuration option to a ListOpt
in order to enable user to specify multiple DNS forwarders for each
dnsmasq instance.

DocImpact

Change-Id: I21963b4a6c99e4edb11040d77a6aeaa35ff44641
Closes-bug: #1240027

10 years agoFix passing keystone token to neutronclient instance
Ihar Hrachyshka [Thu, 30 Jan 2014 12:42:29 +0000 (13:42 +0100)]
Fix passing keystone token to neutronclient instance

Neutron client expects token to be passed as token= argument, while
neutron-metadata-agent passes auth_token= instead. This effectively makes the
client to authenticate against keystone each time it's instantiated. In
neutron-metadata-agent case, it means 'each time a client sends a metadata
request.'

The issue results in high cpu utilization on keystone side when simultaneously
invoking multiple nova instances with cloud-init.

Change-Id: I2a31f9c0c3cfa915975ecc53d71168a3895528d8
Closes-Bug: 1274487

10 years agoDon't document non-existing flag '--hide-elapsed'
Sascha Peilicke [Fri, 17 Jan 2014 14:27:44 +0000 (15:27 +0100)]
Don't document non-existing flag '--hide-elapsed'

Closes-Bug: 1277051
Change-Id: I4435645025dabcecf3dc1b7168ce17f10d6df534

10 years agoFix race condition in network scheduling to dhcp agent
Eugene Nikanorov [Wed, 5 Feb 2014 21:52:35 +0000 (01:52 +0400)]
Fix race condition in network scheduling to dhcp agent

Rarely dhcp agent rpc call get_active_networks_info() can interleave
with network scheduling initiated by create.port.end notification.
In this case scheduling raises and port creation returns 500.
Need to synchronize on DhcpNetworkBindings table.

Closes-Bug: #1276552
Change-Id: I52d94a40772a99c7032dba15b200bf0f21362f93

10 years agoadd quota support for ryu plugin
Yoshihiro Kaneko [Tue, 7 Jan 2014 06:48:38 +0000 (15:48 +0900)]
add quota support for ryu plugin

This patch adds Quota extension support to Ryu plugin and db migration
script.

Closes-Bug: #1266650
Change-Id: I4328ebf7bf307390461807bd8bb3318ac2f64845

10 years agoImported Translations from Transifex
OpenStack Jenkins [Thu, 6 Feb 2014 06:24:36 +0000 (06:24 +0000)]
Imported Translations from Transifex

Change-Id: I05e158928b76ba1d8aeb1b74fcf07035e419825d

10 years agoEnables BigSwitch/Restproxy ML2 VLAN driver
Kevin Benton [Tue, 28 Jan 2014 01:26:12 +0000 (17:26 -0800)]
Enables BigSwitch/Restproxy ML2 VLAN driver

Refactors Bigswitch/Restproxy plugin by separating into
reusable libraries that can be used by the plugin as well
as the ml2 driver to proxy calls to the backend controller.

Enables basic unit tests for the ML2 driver.

Removes deprecated separate unplug/plug operations on ports.

Implements: blueprint bigswitch-ml2-driver
Change-Id: I4e22ba7e20ec4f405b9fd34a1bf08a48544f317d

10 years agoAdd and update subnet properties in Cisco N1kv plugin
Dhanashree Gosavi [Tue, 4 Feb 2014 18:07:39 +0000 (10:07 -0800)]
Add and update subnet properties in Cisco N1kv plugin

Add dns nameservers and dhcp info in subnet create.
Update subnet properties.

Change-Id: I70e3f0261f6ba5433bbf08d33e2a34cdbb20fed2
Closes-Bug: #1276876

10 years agoFix error message typo
Fawad Khaliq [Wed, 5 Feb 2014 18:15:13 +0000 (10:15 -0800)]
Fix error message typo

 * Fix error message typo in "_network_admin_state"
   function where "Network Admin State Validation Falied"
   should be changed to "Network Admin State Validation Failed"

Change-Id: I767e93c300250b4422e3980f799862ceb976c951
Closes-Bug: #1276409
Signed-off-by: Fawad Khaliq <fawad@plumgrid.com>
10 years agoConfigure floating IPs addresses after NAT rules
Salvatore Orlando [Tue, 14 Jan 2014 20:47:46 +0000 (12:47 -0800)]
Configure floating IPs addresses after NAT rules

Change the behaviour of the L3 agent in order to set the IP addresses
for the floating IPs on the external gateway interface after the
relevant NAT rules have been applied.
This will avoid a transitory period in which the floating IP exists
and is reachable but it not yet wired to the actual target.

Partial-Bug: #1265505

Change-Id: Ib382fde021868bab2185f2fa5bdee86559148ba7

10 years agoAdd an explicit tox job for functional tests
Maru Newby [Tue, 14 Jan 2014 18:43:22 +0000 (18:43 +0000)]
Add an explicit tox job for functional tests

This change is in support of adding a new jenkins job dedicated
to functional testing.  Functional tests will no longer be
run as part of the unit tests.

Change-Id: Ia99940f7e5a2165720ae2a74aadf62ff17ad3d75

10 years agoimprove UT coverage for nicira_db operations
armando-migliaccio [Tue, 14 Jan 2014 21:35:06 +0000 (13:35 -0800)]
improve UT coverage for nicira_db operations

Also, ensure that a rollback is issued in the
event of any DB error.

Change-Id: I706db09f11fb5f6b369a1bd0cb1016df7d0359b5
Related-bug: #1265472

10 years agoAvoid re-wiring ports unnecessarily
Salvatore Orlando [Sat, 21 Dec 2013 00:59:05 +0000 (16:59 -0800)]
Avoid re-wiring ports unnecessarily

In the majority of cases a port_update notification pertains
a change in the properties affecting port filter, and does
not affect port wiring, ie: the local vlan tag.

This patch simply avoids doing port wiring/unwiring if the
local vlan tag did not change.
The extra overhead for the ovs-db get operation is offset
by the fact that get commands are generally faster than
set commands, and by avoiding executing the ovs-ofctl operation.

Partial-Bug: #1253993
Partially implements blueprint: neutron-tempest-parallel

Change-Id: Ia0bd2dc4e5a2634a4c863ff32ccc5cabe8e21337

10 years agoProcess port_update notifications in the main agent loop
Salvatore Orlando [Thu, 12 Dec 2013 14:02:13 +0000 (06:02 -0800)]
Process port_update notifications in the main agent loop

Instead of processing a port update notification directly in
the RPC call, the actual processing is moved into the main
rpc loop, whereas the RPC call just adds the updated port
identifier to a set of updated ports.
In this way, a port_update notification won't compete with the
main rpc loop, causing long delays into its completion under
heavy load. Also, repeated port_update notifications received
within a single iteration of the main agent loop will be
coalesced and processed only once.
This will also avoid the risk of processing notifications out
of order thus ending up with an actual configuration which
differs from the desired one.

This patch still performs L2 wiring for updated ports even if
it is necessary only when the administrative state of a port
changes.

The update_ports method has been renamed to scan_ports as the latter
name appears to be more in line with what the method actually does.

Partial-Bug: #1253993
Partially implements blueprint: neutron-tempest-parallel
Change-Id: I219c6bdf63b0b5e945b655677f9e28fa591f03cd

10 years agoBase ML2 bulk support on the loaded drivers
Kevin Benton [Fri, 24 Jan 2014 19:43:54 +0000 (19:43 +0000)]
Base ML2 bulk support on the loaded drivers

Changes the ML2 plugin bulk support flag to
be based on the bulk support of the underlying
drivers.

Closes-Bug: #1272490
Change-Id: I28281c9ecc1696b929c7e0125d02a37946948744

10 years agoImported Translations from Transifex
OpenStack Jenkins [Wed, 5 Feb 2014 06:24:10 +0000 (06:24 +0000)]
Imported Translations from Transifex

Change-Id: Iabfa4ccf4cfa145630fb5044bdeed76acb29ba6e

10 years agoRemoves an incorrect and unnecessary return
Mohammad Banikazemi [Tue, 4 Feb 2014 23:04:32 +0000 (18:04 -0500)]
Removes an incorrect and unnecessary return

The current return statement creates a new object that is
not used anywhere and does not provide a functionality

Change-Id: Id53f6fbc8cc6fb38419e5616a352279f1a9b917f
Closes-Bug: #1276367

10 years agoReassign IP to vlan interface when deleting a VLAN bridge
Ralf Haferkamp [Tue, 26 Nov 2013 16:38:44 +0000 (17:38 +0100)]
Reassign IP to vlan interface when deleting a VLAN bridge

When deleting a VLAN bridge that has an IP address assigned to it, don't delete
the VLAN interface, but reassigned the IP address back to the underlying VLAN
interface.

Closes-Bug: #1255153

Change-Id: I5e39877c0786b43eddba9b5e1394d4c2ec023c0a

10 years agoImported Translations from Transifex
OpenStack Jenkins [Tue, 4 Feb 2014 06:23:51 +0000 (06:23 +0000)]
Imported Translations from Transifex

Change-Id: I5d64e7d935354693146ac58bfe2d0b0ad04a7c24

10 years agoChange metadata-agent to have a configurable backlog
Brian Haley [Thu, 30 Jan 2014 20:05:49 +0000 (15:05 -0500)]
Change metadata-agent to have a configurable backlog

The metadata agent currently runs with a default socket backlog
of 128.  This isn't enough on a busy network node, even when
spawning multiple worker processes.

This change addes a new "metadata_backlog = XX" to the ini file
to support a configurable value to help improve performance.

Change-Id: Ibea398f3b65a56deb1418f39810d87d8360ea9f3
Closes-bug: #1274536

10 years agoSync with commit-id: 9d529dd324d234d7aeaa3e6b4d3ab961f177e2ed
Salvatore Orlando [Fri, 17 Jan 2014 16:48:44 +0000 (08:48 -0800)]
Sync with commit-id: 9d529dd324d234d7aeaa3e6b4d3ab961f177e2ed

(Pulling from the gate, neutron fail rates are currently too high
to have neutron jobs in the queue.)

Related-Bug: #1270212
Change-Id: I94965b395cfb34ed1576b84f21aa48edf991d629

10 years agoRemove unused RPC calls from n1kv plugin code
Abhishek Raut [Sat, 1 Feb 2014 01:47:19 +0000 (17:47 -0800)]
Remove unused RPC calls from n1kv plugin code

Change-Id: I75a70786827a5fd6c321b560f1f2ef02a69aa85d
Closes-Bug: #1275166

10 years agoChange metadata-agent to spawn multiple workers
Brian Haley [Thu, 30 Jan 2014 19:39:47 +0000 (14:39 -0500)]
Change metadata-agent to spawn multiple workers

There is currently only one metadata-agent per network node,
which could be handling connections from hundreds or thousands
of metadata-namespace-proxy processes.

This change addes a new "metadata_workers = XX" to the ini file
to support creating more workers to help improve performance.

Change-Id: Ib9ebcfc543a83982dd93db79c7dc631283fd3bfa
Partial-bug: #1274536

10 years agoExtending quota support for neutron LBaaS entities
Evgeny Fedoruk [Wed, 29 Jan 2014 07:39:01 +0000 (23:39 -0800)]
Extending quota support for neutron LBaaS entities

Note: This change is a continuation of abandoned
      change https://review.openstack.org/#/c/58720/
      Previous change was abandoned due to rebase problem.

Extending quota mechanism to support neutron
LBaaS entities. Adding quota for vips, pools, members
and health monitors.

This is one of four changes related to the BP.
This one is for neutron project.
Another one is for python-neutronclient package,
another one for tempest,
and another one for horizon/openstack-dashboard project

See blueprint neutron-quota-extension for another two changes.

Change-Id: I64a1d3647a4eb21833266346377416638667a931
Implements: blueprint neutron-quota-extension

10 years agoTweak version nvp/nsx version validation logic for router operations
armando-migliaccio [Thu, 30 Jan 2014 02:53:46 +0000 (18:53 -0800)]
Tweak version nvp/nsx version validation logic for router operations

This patch improves how the nsx/nvp controller version is validated
prior to some router operations. This is done by greatly simplifying
the boolean condition.

Missing unit tests are also added for increased coverage.

Closes-bug: 1274361

Change-Id: I1b21444fd86b6e6a0c72bb5a43f1707934dd70e4

10 years agoSimplify ip allocation/recycling to relieve db pressure
Carl Baldwin [Mon, 18 Nov 2013 23:32:19 +0000 (23:32 +0000)]
Simplify ip allocation/recycling to relieve db pressure

I found that multiple calls to delete_port can pile up on the
_recycle_ip operation.  This patch simplifies this operation.  It
reduces the _recycle_ip operation to a single row delete in the ip
allocations table and doesn't touch the availability table.

To acheive the recycling of ips in a pool, this code runs a more
complex operation of rebuilding the availability table when it is
exhausted.  Only one API process will perform this more expensive
operation and others waiting for allocation will immediately benefit.
The amortized cost of this operation is much less than the cumulative
cost of running the more expensive _recycle_ip operation for every
port delete.

IP allocation behaves a bit differently with this patch.  Instead of
giving out the first IP available in a pool, the entire pool will be
allocated before wrapping around and recycling ip addresses that have
been released.  This is a desirable feature as it puts ip addresses in
a sort of quarantine after they are released.  It is easier to
distinguish newly allocated ips from old ones.

Change-Id: Ia55b66128de9986e075b0f87acc401d211cd91d3
Closes-Bug: #1252506
Closes-Bug: #1257815

10 years agoRemove unused code
Mehdi Abaakouk [Wed, 29 Jan 2014 17:13:48 +0000 (18:13 +0100)]
Remove unused code

RouterInfo.enable_snat doesn't exists as class attribut, this patch
removes unused code

Change-Id: I9141db2cec51769a6489aead2ab6d4d0962929de

10 years agoReduce severity of log messages in validation methods
Carl Baldwin [Fri, 24 Jan 2014 22:35:48 +0000 (22:35 +0000)]
Reduce severity of log messages in validation methods

I noticed this while reviewing Ic2c87174.  When I read through log
files, I don't want to see errors like this that come from validating
bad user input.  Info severity is more appropriate.

Change-Id: Ib8a4dd08570923c6cade6447b52bb73d20558258
Closes-Bug: #1272565

10 years agoDisallow non-admin users update net's shared attribute
Stephen Ma [Mon, 20 Jan 2014 15:48:28 +0000 (15:48 +0000)]
Disallow non-admin users update net's shared attribute

Currently non-admin user cannot create a network with
shared=True. But the user can create the network and then
change the shared attribute to True.

This patch will no longer allow non-admin user to update a
network's shared value to True.

Change-Id: Id596ee399c56b9882efab97a89dbf7d14c5cf7f4
Closes-Bug: 1268823

10 years agoFix error while connecting to busy NSX L2 Gateway
armando-migliaccio [Mon, 27 Jan 2014 22:05:12 +0000 (14:05 -0800)]
Fix error while connecting to busy NSX L2 Gateway

Ensure that a Conflict error is properly handled.

Change-Id: Ib468ee953aef0fc54ea88064f88637ed46bc6352
Closes-bug: 1270724

10 years agoRemove extra network scheduling from vmware nsx plugin
armando-migliaccio [Mon, 27 Jan 2014 20:40:15 +0000 (12:40 -0800)]
Remove extra network scheduling from vmware nsx plugin

Closes-bug: 1212555

Change-Id: I24dd51df4e3a966b66054fa55e70f6aa1e61da11

10 years agoL3 Agent restart causes network outage
Stephen Ma [Wed, 29 May 2013 01:52:27 +0000 (18:52 -0700)]
L3 Agent restart causes network outage

When a L3 agent controlling multiple qrouter namespaces
restarts, it destroys all qrouter namespaces even if
some of them are still in use.  As a result, network
traffic could be stopped on the VMs that use the
networks associated with these namespaces.

So what is needed is for the L3 agent to preserve those
qrouter namespaces a L3 agent instance recognizes and to
destroy those it does not know about.

Closes-Bug: #1175695

Change-Id: Idae77886bd195d773878c3d212ccfd56269216fb

10 years agoRemove garbage in vim header
Salvatore Orlando [Thu, 23 Jan 2014 23:13:56 +0000 (15:13 -0800)]
Remove garbage in vim header

Introduced by commit 9d01010e8826eafc48044fc4018944a34bc96ba4

Change-Id: I97c7789fa13e61d16466cddac49fc41d1f917e80

10 years agoEnable hacking H233 rule
ZhiQiang Fan [Thu, 23 Jan 2014 01:31:27 +0000 (09:31 +0800)]
Enable hacking H233 rule

H233: Check that all occurrences look like print functions, not print
operator.

Change-Id: I4600eb32e1a8ecba13fc252d7ef08681672a40a7

10 years agoRename nvp_cluster for VMware NSX plugin
Salvatore Orlando [Wed, 22 Jan 2014 12:55:46 +0000 (04:55 -0800)]
Rename nvp_cluster for VMware NSX plugin

Rename the module into nsx_cluster and the class into NSXCluster,
and update references accordingly.

Also, rename utility method create_nvp_cluster to create_nsx_cluster
and move it into nsx_utils.

Partial-implements blueprint: nicira-plugin-renaming

Change-Id: I1a943cc64730ea67f464c3804370dad46411f8a2

10 years agoMinimize the cost of checking for api worker exit
Maru Newby [Mon, 20 Jan 2014 19:28:03 +0000 (19:28 +0000)]
Minimize the cost of checking for api worker exit

A recent change to oslo allows the configuration of the interval
that ProcessLauncher waits between checks of child exit.  The
default interval of 0.01s resulted in the neutron service consuming
unnecessary cpu cycles checking whether api workers had exited (5%
cpu on idle in a VM).  This patch extends the interval to 1s to
minimize the cost of the checks.

Change-Id: I0407ccb2db65cd3839586faff15e70dbc35f005e
Closes-bug: #1095346

10 years agoRemove and recreate interface if already exists
Aaron Rosen [Mon, 13 Jan 2014 21:57:04 +0000 (13:57 -0800)]
Remove and recreate interface if already exists

If the dhcp-agent machine restarts when openvswitch comes up it logs the
following warning messages for all tap interfaces that do not exist:

bridge|WARN|could not open network device tap2cf7dbad-9d (No such device)

Once the dhcp-agent starts it recreates the interfaces and re-adds them to the
ovs-bridge. Unfortunately, ovs does not reinitialize the interfaces as they
are already in ovsdb and does not assign them a ofport number.

This situation corrects itself though the next time a port is added to the
ovs-bridge which is why no one has probably noticed this issue till now.

In order to correct this we should first remove interface that exist and
then readd them.

Closes-bug: #1268762

Change-Id: I4bb0019135ab7fa7cdfa6d5db3bff6eafe22fc85

10 years agoUse an independent iptables lock per namespace
Carl Baldwin [Fri, 17 Jan 2014 19:28:10 +0000 (19:28 +0000)]
Use an independent iptables lock per namespace

Since iptables is independent from namespace to namespace, it makes
sense to use an independent lock per namespace.  This improvement is
aimed at improving the parallel performance in the L3 agent.

Partially implements blueprint: neutron-tempest-parallel

Change-Id: I15e9c9da9a7c15981757a09bc744501722d62db2

10 years agoReport proper error message in PLUMgrid Plugin
Fawad Khaliq [Mon, 13 Jan 2014 18:42:55 +0000 (10:42 -0800)]
Report proper error message in PLUMgrid Plugin

Change-Id: Ifc1bb55f6b025bba77cf9858ed392dbf170075a7
Closes-Bug: #1268460
Signed-off-by: Fawad Khaliq <fawad@plumgrid.com>
10 years agoFix interprocess locks for run_tests.sh
Justin Hammond [Thu, 16 Jan 2014 20:47:58 +0000 (20:47 +0000)]
Fix interprocess locks for run_tests.sh

This was fixed for nova using this method and we are porting it here as we are
running into a similar bug as #1264058

Closes-Bug: #1269938
Change-Id: I06a2684629fd7b4d30e2d7716dc00a2ed0479f2f

10 years agoExpunge session contents between plugin requests
Salvatore Orlando [Wed, 15 Jan 2014 20:45:22 +0000 (12:45 -0800)]
Expunge session contents between plugin requests

In the NVP plugin, metadata processing performs several plugin operations
with the same context (and db session). The first operation might leave
persisted objects in the session instance which then conflict with objects
created in the second operation.

Closes-Bug: #1266482

Change-Id: Ic9e2b952013610647aa222f1a8b6e33504b54b37

10 years agoRemove release_lease from the DHCP driver interface
Carl Baldwin [Wed, 13 Nov 2013 18:50:48 +0000 (18:50 +0000)]
Remove release_lease from the DHCP driver interface

Neither the midonet nor the linux dhcp driver needs a call to
release_lease.  Removing this from the driver API simplifies more code
in the DHCP agent.

Change-Id: Ib144b2bf3720b1b999205ace1a7d1ffe5ef3b167
Closes-Bug: #1269505

10 years agoFix the migration adding a UC to agents table
Roman Podoliaka [Thu, 12 Dec 2013 06:20:15 +0000 (08:20 +0200)]
Fix the migration adding a UC to agents table

The migration script mistakenly assumes that all core
plugins use agents extension, which is not true (e.g.
plumgrid and bigswitch don't).

Apply this migration script only for plugins that are
stated in the original migration script adding agents
table (511471cc46b_agent_ext_model_supp.py).

Related-Bug: #1254246

Change-Id: I7915ef8d183782eb5d46ac47f45014aa9e9640fb

10 years agoNVP: Add LOG.exception to see why router was not created
Aaron Rosen [Tue, 14 Jan 2014 21:03:32 +0000 (13:03 -0800)]
NVP: Add LOG.exception to see why router was not created

Add missing LOG.exception so that it exposes what error occurred.

Change-Id: I9194795678a6be59eb1d2555dfa99ca7a035c418
Closes-bug: #1269152

10 years agoFix race condition in delete_port method. Fix update_port method
Eugene Nikanorov [Mon, 13 Jan 2014 14:58:59 +0000 (18:58 +0400)]
Fix race condition in delete_port method. Fix update_port method

Port can be gone between
  l3plugin.prevent_l3_port_deletion(context, id)
and port query. Need to handle it properly.
ALso need to handle non-existing port in update_port properly.

Closes-Bug: #1266537

Change-Id: Ic203f21db277f83c604a8757a8c421b3fb9ae709

10 years agoUse information from the dnsmasq hosts file to call dhcp_release
Carl Baldwin [Tue, 12 Nov 2013 22:52:47 +0000 (22:52 +0000)]
Use information from the dnsmasq hosts file to call dhcp_release

Certain situations can cause the DHCP agent's local cache to get out
of sync with the leases held internally by dnsmasq.  This method of
detecting when to call dhcp_release is idempotent and not dependent on
the cache.  It is more robust.

Change-Id: I4eafd9cfb94a77a2f0229f89de5483dad23725cf
Closes-Bug: #1250644

10 years agoLBaaS: handle NotFound exceptions in update_status callback
Oleg Bondarev [Mon, 16 Dec 2013 09:17:48 +0000 (13:17 +0400)]
LBaaS: handle NotFound exceptions in update_status callback

LBaaS agent may send update_status requests to server on objects
which were already deleted from db: this is due to creating and
deleting objects with a high rate (like tempest API tests do).
As a result errors and stacktraces appear in server and agent logs.
The proposed solution is to catch NotFound exceptions and print a warning.

Change-Id: I4446b678893d0bda578ad7ccdf3f109cb1c91b4d
Closes-Bug: #1260682

10 years ago[ML2] l2-pop MD handle multi create/delete ports
Édouard Thuleau [Tue, 24 Dec 2013 10:48:46 +0000 (11:48 +0100)]
[ML2] l2-pop MD handle multi create/delete ports

If more than one port is added or removed simultaneously, port db entry
have status BUILD or DOWN and pass to ACTIVE when agent have finish to
configured it.
l2-pop mechanism driver use events port pass to ACTIVE or DOWN to send
fdb entries. In case of port is the first or the last network port on
an agent, the flooding entry need to be add or removed.

This patch fix the method to determine how many ports are active on a
agent by adding filter on status port to be ACTIVE.

Closes-bug: #1263881
Change-Id: I9c1f8bd69dee37bc01a5d42327aa5f737998c5aa

10 years agoDnsmasq uses all agent IPs as nameservers
Sylvain Afchain [Wed, 4 Dec 2013 20:01:06 +0000 (21:01 +0100)]
Dnsmasq uses all agent IPs as nameservers

Add dhcp option which provides all agent IPs
which will be used as nameserver entries when
neutron uses multiple dhcp agent per network and
when there is no dns nameserver provided by the
neutron server.

Change-Id: I639a844bba212a731616851ff479a5e735612cf8
Closes-bug: #1259482

10 years agoLBaaS: fix handling pending create/update members and health monitors
Oleg Bondarev [Thu, 12 Dec 2013 08:13:22 +0000 (12:13 +0400)]
LBaaS: fix handling pending create/update members and health monitors

When agent requests loadbalancer logical config from server,
server returns only active pool members and health_monitors.
Need to make server return also members and monitors which are in pending states.

Also a small refactoring moving ACTIVE_PENDING set to common place

Change-Id: I8e10004f199f982b055da18ea7a0e5e4d11fa7fb
Closes-Bug: #1259965

10 years agovalidate if the router has external gateway interface set
Yong Sheng Gong [Sat, 7 Dec 2013 08:59:18 +0000 (16:59 +0800)]
validate if the router has external gateway interface set

If the router wants to work with vpn service, we must
make sure external gateway interface is set.

This patch cannot prevent user from clearing the gateway interface
of the router after the vpnservice is created.

Change-Id: If0f00def949b31c1e3da7a2cd055454567201e4c
Closes-Bug: #1258379

10 years agoReview (build-)depends
Thomas Goirand [Thu, 13 Mar 2014 06:47:34 +0000 (14:47 +0800)]
Review (build-)depends

Change-Id: Ib04b481742a7eb102c905a1dbea030a95dc1c105

10 years agoAdded de.po
Thomas Goirand [Sun, 2 Mar 2014 09:17:37 +0000 (17:17 +0800)]
Added de.po

Change-Id: I013244d4e9fef736653fb6f77a2f4edd478025ab

10 years agoFix openstack-pkg-tools build-depends
Thomas Goirand [Mon, 17 Feb 2014 07:56:53 +0000 (15:56 +0800)]
Fix openstack-pkg-tools build-depends

Change-Id: Iedbd996c992a443aa8d32603355c72cb5d1252e1

10 years agoApplied changes from the Havana branch.
Thomas Goirand [Mon, 17 Feb 2014 07:42:00 +0000 (15:42 +0800)]
Applied changes from the Havana branch.

Change-Id: Idf16b5d2546c94864dcf9e135ac1f80d6bbec798

10 years agoFix /var/lib/neutron and /var/lib/neutron/dhcp folder rights.
Thomas Goirand [Thu, 13 Feb 2014 11:41:40 +0000 (19:41 +0800)]
Fix /var/lib/neutron and /var/lib/neutron/dhcp folder rights.

Change-Id: If0f2ab1ad50d12dc9af155314b962cbc25052167
(cherry picked from commit 619a80f61fbf5a65234ea2684952abb8cc991f3e)

Conflicts:
debian/neutron-common.postinst.in

10 years agoRestart daemons after logrotate
Thomas Goirand [Mon, 3 Feb 2014 08:37:04 +0000 (16:37 +0800)]
Restart daemons after logrotate

Change-Id: Ia989bdde7ae136c1e49a349cd3694276207ff7a3
(cherry picked from commit bd3e2763cb1fa4aca94f89295820e313d5d2e3f1)

10 years agoFixed (build-)depends for Icehouse b2.
Thomas Goirand [Wed, 29 Jan 2014 14:02:11 +0000 (22:02 +0800)]
Fixed (build-)depends for Icehouse b2.

Change-Id: I300c3a2db00349173ff680680c39478db345276e

10 years agoRefreshed patches.
Thomas Goirand [Wed, 29 Jan 2014 11:05:14 +0000 (19:05 +0800)]
Refreshed patches.

Change-Id: I22fc6c09e64cae9af11340f416f898abf4741b80

10 years agoNow packaging icehouse b2.
Thomas Goirand [Wed, 29 Jan 2014 10:50:07 +0000 (18:50 +0800)]
Now packaging icehouse b2.

Change-Id: I3b476109e8aeb7d262e5cf6555b878e2e8d3c538

10 years agoMerge tag '2014.1_b2' into debian/icehouse
Thomas Goirand [Wed, 29 Jan 2014 10:49:53 +0000 (18:49 +0800)]
Merge tag '2014.1_b2' into debian/icehouse

Neutron icehouse-2 milestone (2014.1.b2)

10 years agoMerge "Clean up ML2 Manager"
Jenkins [Sat, 18 Jan 2014 10:32:58 +0000 (10:32 +0000)]
Merge "Clean up ML2 Manager"

10 years agoMerge "VMware NSX: add sanity checks for NSX cluster backend"
Jenkins [Sat, 18 Jan 2014 05:50:11 +0000 (05:50 +0000)]
Merge "VMware NSX: add sanity checks for NSX cluster backend"

10 years agoMerge "Update RPC code from oslo"
Jenkins [Thu, 16 Jan 2014 16:25:15 +0000 (16:25 +0000)]
Merge "Update RPC code from oslo"

10 years agoMerge "Configure plugins by name"
Jenkins [Thu, 16 Jan 2014 11:56:25 +0000 (11:56 +0000)]
Merge "Configure plugins by name"

10 years agoClean up ML2 Manager
zhhuabj [Thu, 16 Jan 2014 06:34:14 +0000 (14:34 +0800)]
Clean up ML2 Manager

Some things need cleanup in the ML2Manager.

1) Replace sys.exit(1) with raise SystemExit(1)
2) Replace reserved keyword type with network_type

Change-Id: I921bfaec7d3e31503942b3ca4a1b2218c44b14ac
Closes-Bug: #1259646

10 years agoMerge "Fix negative unit test for sec group rules"
Jenkins [Thu, 16 Jan 2014 04:57:02 +0000 (04:57 +0000)]
Merge "Fix negative unit test for sec group rules"

10 years agoMerge "Add binding:host_id when creating port for probe"
Jenkins [Wed, 15 Jan 2014 18:30:52 +0000 (18:30 +0000)]
Merge "Add binding:host_id when creating port for probe"

10 years agoVMware NSX: add sanity checks for NSX cluster backend
armando-migliaccio [Thu, 9 Jan 2014 13:53:09 +0000 (05:53 -0800)]
VMware NSX: add sanity checks for NSX cluster backend

Ensure that all transport nodes registered are up
and running. A failure here, may prevent a lot of
failures down the lines.

Change-Id: I3473928e296ec6792f34bc27a4ae797fed337e7c
Closes-bug: #1267468

10 years agoMerge "LBaaS: synchronize haproxy deploy/undeploy_instance methods"
Jenkins [Wed, 15 Jan 2014 12:43:38 +0000 (12:43 +0000)]
Merge "LBaaS: synchronize haproxy deploy/undeploy_instance methods"

10 years agoUpdate RPC code from oslo
Gary Kotton [Mon, 30 Dec 2013 08:48:15 +0000 (00:48 -0800)]
Update RPC code from oslo

The common RPC code has been updated to include the following:
    8575d87af49ea276341908f83c8c51db13afca44
    8b2b0b743e84ceed7841cf470afed6a5da8e1d07
    23f602940c64ba408d77ceb8f5ba0f67ee4a18ef
    6d0a6c3083218cdac52758a8b6aac6b03402c658
    7cac1ac1bd9df36d4e5183afac3b643df10b1d4d
    8159efddabb09dd9b7c99963ff7c9de0a6c62b62

Updated to include the following in modules in openstack-common.conf:
py3kcompat, sslutils, and versionutils.

The update also includes imports from the RPC code

Change-Id: I84c5b8e2b17da0018dd69ecb354d123a609afe98

10 years agoConfigure plugins by name
Zang MingJie [Fri, 10 Jan 2014 10:35:49 +0000 (18:35 +0800)]
Configure plugins by name

To configure core plugin or service plugins, instead of using class names,
simpler names can also be used, ex:

service_plugins = router, firewall, lbaas

For compatibility with previous versions, the class name of a plugin can be
specified instead of its entrypoint name, ex:

service_plugins = router, neutron.services.firewall.fwaas_plugin.FirewallPlugin, lbaas

DocImpact

Implements: blueprint config-plugin-by-name
Change-Id: Ia4aaa1d305b160a4d6dab9e227c744727a4c78c2