Revert "Revert "Search line with awk itself and avoid grep""

This commit was causing all tripleo ironic CI jobs to fail, this is
because every time we change a ssh string we need to first whitelist
it in the TripleO CI. Now the TripleO environment is ajusted and this
patch can be merged again.

The fix for the TripleO CI: https://review.openstack.org/#/c/120799/

Co-Authored-By: Motohiro OTSUKA <ootsuka@mxs.nes.nec.co.jp>
Change-Id: I60936ac36f4aa3810679c9f2420a29ae072dfb8a
Handle SNMP exception error.PySnmpError

In ironic.drivers.modules.snmp.py, SNMPClient._get_transport() could
raise an SNMP exception. This is now caught and the ironic exception
SNMPFailure is raised instead.

Change-Id: I8816729b1b9483c213bb9e94b0816a88e609a91d
Partial-Bug: #1267693
Updated from global requirements

Change-Id: I17d4f43ea03e7ab4ee504281aaa367aaff228323
add_node_capability and rm_node_capability unable to save changes to db

Changes to elements in existing node.properties dictionary will not get
saved to database by node.save(context) method. The properties dictionary
needs to be replaced by a new one to get the changes to be saved in the db.

Change-Id: I3bb65d00e141aedcb1278c1a700d12c9b29f7232
Closes-bug:#1371816
Imported Translations from Transifex

Change-Id: Ife44e7b55376d2393254421ae78e28bfaeb6fb55
Do not cache auth token in Neutron DHCP provider

Currently token expire after some time and deploy breaks.
Also refactored all tests for Neutron DHCP provider, as
many of them were just broken (e.g. using non-existing asserts).

Change-Id: I38a8e95a09fd4737682e37b1162eb445fbc8012f
Closes-Bug: #1371503
Merge "Handle SNMP exception error.PySnmpError"
Merge "add_node_capability and rm_node_capability unable to save changes to db"
Neutron DHCP implementation to raise exception if no ports have VIF

Currently only warning is risen, though deploy can't succeed in this
case for both PXE and Agent drivers.

Change-Id: If57a33818f5da820277c94b7b0ae642d29a698ce
Closes-Bug: #1362060
Merge "Do not cache auth token in Neutron DHCP provider"
Make context mandatory when instantiating a RPC object

RPC objects should have a context within it, this patch is making passing
the context mandatory when instantiating the object and is a plumbing
work to remove passing the context later for things like create(),
refresh(), destroy() and save().

Partial-Bug: #1314732
Change-Id: If9b175fa874bcb96c77cf22d176f1111f450f796
Merge "Updated from global requirements"
Do not set the context twice when forming RPC objects

The context is already being set once the object is instantiated so
there's no need to set it again. This patch fixes that and update tests
to validate if the right context has been added to the object.

Change-Id: I7eb3d734a990eb70e4fbfce6c539b268900b5241
Partial-Bug: #1314732
Merge "Make context mandatory when instantiating a RPC object"
Merge "Imported Translations from Transifex"
Merge "Do not set the context twice when forming RPC objects"
Merge "Neutron DHCP implementation to raise exception if no ports have VIF"
Pass ipa-driver-name to agent ramdisk

This commit adds the change to pass ipa-driver-name to
agent ramdisk.  This enables agent ramdisk to do
vendor-passthru lookup on the actual driver instead of
the default 'agent_ipmitool' driver.

Change-Id: I750097dc24e11b44d4ed6d7c314cb8fb470dfcb0
Closes-bug: #1371505
Do not use the context parameter on refresh()

Now all RPC objects already have a context embedded within them so we
can ignore the context parameter on the refresh() method (it was the
last method using this parameter). This patch also:

* Update the Docstrings from the @remotable methods to let the user know
  that the context parameter is not being used. The @remotable decorator
  still requires that the method it's decorating have a context as it's
  first argument, but that's going to change in the future.

* All code and tests were updated to not pass the context to refresh(),
  save() and destroy() methods.

Closes-Bug: #1314732
Change-Id: Ibb338b909d99862ae048d605e66b8831d8c2128d
Update devstack docs, require Ubuntu 14.04

We no longer test deploying Devstack + Ironic on Precise 12.04 anywhere,
so we should no longer promise that it is functional there.  This removes steps
of the DevStack documentation that sets up access to the Cloud Archive and
explains that Ubuntu 14.04 is the minimum supported OS.

Closes-bug: 1371300

Change-Id: I99b7705c2c78443c7a95ff499b8c9fde33964c46