7815 Commits

Author SHA1 Message Date
Zuul
ab9b7afe7d Merge "Add rescue interface field to node-related notifications" 2018-01-28 05:23:02 +00:00
Zuul
131f7a31e0 Merge "Follow-up for API methods for rescue implementation" 2018-01-27 17:15:05 +00:00
Zuul
91561c8835 Merge "Add a timeout for powering on/off a node on oneview" 2018-01-27 10:58:41 +00:00
Zuul
2f85ad321d Merge "Fix persistent information when getting boot device" 2018-01-27 10:43:59 +00:00
Zuul
0a5de20c2a Merge "Remove python-oneviewclient from oneview hardware type." 2018-01-27 10:43:55 +00:00
Shivanand Tendulker
7394dbbacb Add rescue interface field to node-related notifications
This patch adds rescue_interface field to node-related notification
objects.

Co-Authored-By: Jay Faulkner <jay@jvf.cc>
Co-Authored-By: Josh Gachnang <josh@pcsforeducation.com>
Co-Authored-By: Jesse J. Cook <jesse.j.cook@member.fsf.org>
Co-Authored-By: Mario Villaplana <mario.villaplana@gmail.com>
Co-Authored-By: Aparna <aparnavtce@gmail.com>
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>

Change-Id: I8aa4c3c4701eae5f7838192bdbcf46a069370643
Partial-bug: #1526449
2018-01-27 09:19:47 +00:00
Zuul
68f566160d Merge "Resolve race in validating neutron networks due to caching" 2018-01-27 05:31:22 +00:00
Shivanand Tendulker
45d542e4b9 Follow-up for API methods for rescue implementation
This patch addresses outstanding comments for commit
49fabe6d7b7051cb78d6f7904a62ab6ae2bd8c0f

Change-Id: I566b219bc235c2dd318dfd0bd1a1b61f7757a88e
Related-Bug: #1526449
2018-01-26 23:15:01 -05:00
Zuul
359c882dcd Merge "Redundant alias in import statement" 2018-01-27 01:45:09 +00:00
Zuul
9e29d77988 Merge "Automatically migrate nodes to hardware types" 2018-01-27 01:12:28 +00:00
Zuul
cb2b2d191a Merge "iRMC:Support preparing rescue ramdisk in iRMC PXE" 2018-01-27 00:33:45 +00:00
Zuul
96010a07a4 Merge "Add API methods for [un]rescue" 2018-01-26 23:57:32 +00:00
Dmitry Tantsur
cc6f7bc73e Automatically migrate nodes to hardware types
This change adds a new data migration: migrate_to_hardware_types.
It works by walking through known classic drivers, detecting matching
hardware types and interfaces and updates nodes accordingly.

Nodes that cannot be updated (e.g. matching hardware type is not
enabled) are skipped. A new migration option reset_unsupported_interfaces
can be set to True to allow resetting optional interfaces to their
no-op versions.

The example implementation are provided for the community supported
IPMI and SNMP drivers, as well as for fake drivers based on them.

Change-Id: I732b44f2ab1ef73f56b352415ffd9cdd8a0e232b
Partial-Bug: #1690185
2018-01-26 21:17:26 +00:00
Jay Faulkner
49fabe6d7b Add API methods for [un]rescue
Adds API methods to support rescue and unrescue.

After rescuing a node, it will be left running a rescue ramdisk,
configured with the rescue_password, and listening with ssh on the
specified network interfaces.

Unrescuing a node will return the node to Active.

Change-Id: I3953ff0b1ca000f8ae83fb7b3c663f848a149345
Partial-bug: #1526449
Co-Authored-By: Jay Faulkner <jay@jvf.cc>
Co-Authored-By: Josh Gachnang <josh@pcsforeducation.com>
Co-Authored-By: Jesse J. Cook <jesse.j.cook@member.fsf.org>
Co-Authored-By: Mario Villaplana <mario.villaplana@gmail.com>
Co-Authored-By: Aparna <aparnavtce@gmail.com>
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>
2018-01-26 18:27:10 +00:00
Javier Pena
98570dc6ad Fix unit tests for UEFI iSCSI boot for ILO
https://review.openstack.org/468288 added some unit tests for the
UEFI iSCSI boot for ILO, which fail when proliantutils is installed
in the virtualenv (it was not in the gate).

The reason for this is that they do not pass a value to the constructor
of ilo_error.IloError and ilo_error.IloCommandNotSupportedInBiosError,
which makes the unit tests fail, as seen when the package was built
in RDO [1].

This patch adds the required value, as used by other unit tests.

[1] - 7371477064_0520bb51

Change-Id: I50d919047ddb9edf1a1ae1a994a8f71e420718d9
2018-01-26 17:01:28 +01:00
Zuul
e95f3de5c9 Merge "Updated from global requirements" 2018-01-26 14:59:47 +00:00
Hironori Shiina
b5a8953118 iRMC:Support preparing rescue ramdisk in iRMC PXE
Adds support to prepare rescue ramdisk to iRMC PXE boot interface,
which is a subclass of PXE boot interface by adding the new argument.

Also adds unit tests to confirm iRMC PXE boot interface passes the
same tests as generic PXE boot interface.

Change-Id: I1b4aeb207772a09cacf0bff910be4061ec5c74ee
Related-Bug: #1526449
2018-01-26 23:52:45 +09:00
Zuul
ca0cff144a Merge "Agent rescue implementation" 2018-01-26 12:03:24 +00:00
Luong Anh Tuan
ddac41b8de Redundant alias in import statement
Change-Id: I217563ed7509d89a0ebd46858c523c04193d1d98
2018-01-26 09:19:59 +07:00
Zuul
7371477064 Merge "Implementation for UEFI iSCSI boot for ILO" 2018-01-25 23:06:36 +00:00
Zuul
3258662dc4 Merge "Allow data migrations to accept options" 2018-01-25 22:50:18 +00:00
Shivanand Tendulker
4624c572e2 Agent rescue implementation
This implements agent based rescue interface.

Partial-Bug: #1526449

Co-Authored-By: Mario Villaplana <mario.villaplana@gmail.com>
Co-Authored-By: Aparna <aparnavtce@gmail.com>
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>

Change-Id: I9b4c1278dc5fab7888fbfe586c15e31ed3958978
2018-01-25 13:26:33 -05:00
Zuul
b539a6e256 Merge "[docs] mention new nova scheduler option" 2018-01-25 17:08:54 +00:00
Dmitry Tantsur
d8f10c01ae Allow data migrations to accept options
This allows migration to be tuned to a specific deployment. For example,
when we will migrate nodes to hardware types, an option will be used
to specify what to do with missing interfaces.

Change-Id: Ie5045b20b7420fc9b5d864bfb18258a4d8b93334
Related-Bug: #1690185
2018-01-25 16:51:42 +00:00
Sam Betts
78e689e539 Resolve race in validating neutron networks due to caching
This patch removes the caching from the code that validates neutron
network's name and UUID to solve a race caused by storing a network UUID
(which can now be different per node) on a singleton network interface
object.

Change-Id: Ib5fb1ff93ffecec4b5ffb033013d3ae09dcaf4bc
2018-01-25 15:41:31 +00:00
Zuul
f5654bfd00 Merge "Allow setting {provisioning,cleaning,rescuing}_network in driver_info" 2018-01-25 11:54:26 +00:00
kesper
8763637255 Implementation for UEFI iSCSI boot for ILO
This change adds new methods in management interface and enhance
boot interface of 'ilo' hardware type to support boot from iSCSI
volume in UEFI boot mode.

Change-Id: I585e0ef90f4397af1f09920c3a1bc47ddbcb1a97
Related-Bug: #1526861
2018-01-25 06:33:21 +00:00
Zuul
a8a57048eb Merge "Add node traits to API reference" 2018-01-25 05:20:11 +00:00
Zuul
33e19070ec Merge "API: Node Traits API" 2018-01-25 05:20:08 +00:00
Zuul
e98540f08d Merge "Add RPC API and conductor manager for traits" 2018-01-25 03:48:59 +00:00
Zuul
bafc12aaf3 Merge "Be more sane about cleaning" 2018-01-25 02:55:42 +00:00
Zuul
5854f8caf5 Merge "Fix node update with PostgreSQL" 2018-01-25 02:14:44 +00:00
Mark Goddard
223e9b1faa Add node traits to API reference
The node traits API was added in API microversion 1.37.

Change-Id: I8c48f2e7662ae9641ec823dc3802d5979a7ea03e
Partial-Bug: #1722194
2018-01-25 01:36:54 +00:00
Hugo Nicodemos
b47d251152 Add a timeout for powering on/off a node on oneview
There is an aditional timeout parameter when powering on/off
an Ironic node that is not being used at ``oneview`` hardware
type.

Change-Id: Ie6006cd40c8b2895d7326eec680be071bb871838
Closes-Bug: 1722616
2018-01-25 01:33:15 +00:00
Hugo Nicodemos
5847431e9c Fix persistent information when getting boot device
This patches fixes the get_boot_device methods for ``oneview``
hardware type to consider onetime boot option on the machine's iLO.
if onetime boot is set to 'Once' on iLO, the method will return
persistent as False (not persistent), True otherwise (persistent).

Change-Id: I48d8b01ff37263a19c889f242a7ce2a99eee597e
Closes-Bug: #1706725
2018-01-25 01:31:50 +00:00
Hugo Nicodemos
f8bf0ad51b Remove python-oneviewclient from oneview hardware type.
This patch removes the ``python-oneviewclient`` library from
``oneview`` hardware type since it was migrated to ``hponeview``
and ``python-ilorest-library``.

Change-Id: I3393189abdff6a0e56f54375877cc310d72ff5b1
Closes-Bug: #1693788
2018-01-25 01:30:27 +00:00
Zuul
22711ba98b Merge "Migrate python-oneviewclient validations to oneview hardware type" 2018-01-25 01:14:11 +00:00
John Garbutt
864331a94b API: Node Traits API
Adds basic CRUD on traits, including set and delete of individual
traits.

Bumps the API microversion to 1.37.

NOTE: This patch does not implement the advanced filtering outlined in
the OpenStack API working group's tags guidelines[1]. That will be
implemented in a separate microversion as a follow up patch.

[1] http://specs.openstack.org/openstack/api-wg/guidelines/tags.html

Change-Id: I313fa01fbf20bf0ff19f102ea63b02e72ac2b856
Partial-Bug: #1722194
Co-Authored-By: Mark Goddard <mark@stackhpc.com>
2018-01-25 00:11:44 +00:00
Mark Goddard
c1cce7eb45 Add RPC API and conductor manager for traits
Adds two new methods to the conductor RPC API, add_node_traits and
remove_node_traits, and provides implementations for them in the
conductor manager. add_node_traits can be used to add one or more traits
to a node, or to replace all the traits for a node.  remove_node_traits
can be used to remove one or more traits from a node, or to remove all
traits from a node.

The conductor RPC API version is bumped to 1.44.

Change-Id: I0181df6a41e603874677246066d84bf4ac4f433c
Partial-Bug: #1722194
2018-01-24 21:23:05 +00:00
Julia Kreger
904f44522b Be more sane about cleaning
Seems that by default we now run cleaning
on all jobs. However, this is extremely wasteful
and time consuming. Also, if a cloud is IO resource
constrained, it can result in jobs failing erroneously
due to unpredictable IO performance, particularly with
the multinode jobs.

As such, slightly extend the wait timeout before we
fail for nodes not being ready, and flag multinode
jobs not to run cleaning.

Change-Id: I12011743fa197caef08a3d6d1297d662dfa7640a
2018-01-24 12:57:05 -08:00
Mark Goddard
d8a291a1e1 Fix node update with PostgreSQL
In the node traits RPC object change [1], the _do_update_node method in
the sqlalchemy DB API was modified to use a select query joined with the
node_tags and node_traits tables in the node update DB operation. This
was done to ensure that the returned NodeModel had its tags and traits
attributes populated rather than lazy loaded. This was found not to work
on PostgreSQL, which presents the following error message [2]:

Exception during message handling: DBNotSupportedError:
(psycopg2.NotSupportedError) FOR UPDATE cannot be applied to the
nullable side of an outer join

This issue is resolved in this commit by reverting to the original query
without joins for the node update, and performing a joined query after
the update.

[1] https://review.openstack.org/#/c/532268/13
[2]
http://logs.openstack.org/69/532269/22/check/ironic-tempest-dsvm-pxe_ipmitool-postgres/562b2ea/logs/screen-ir-cond.txt.gz?level=ERROR#_Jan_23_23_59_05_062967

Change-Id: Ib0d49f7e781f1aa0c4496957b00f6c8e3da0ecc0
Related-Bug: #1722194
2018-01-24 20:11:59 +00:00
Zuul
6a1a8efb5f Merge "Migrate oneview hardware type to use python-hpOneView" 2018-01-24 14:29:13 +00:00
Hugo Nicodemos
b1aa04481f Migrate python-oneviewclient validations to oneview hardware type
As part of the process to stop the use of ``python-oneviewclient``
in favor of ``python-hpOneView`` and ``python-ilorest-library``, the
validations of the ``python-oneviewclient`` have to be migrated to
the ``oneview`` hardware type.

Change-Id: I9031f6e9a59901d3241c6802938252bb63cfe6ca
Partial-Bug: #1693788
2018-01-24 11:32:04 +00:00
OpenStack Proposal Bot
c2b6611ddf Updated from global requirements
Change-Id: I9c7368b19c3774746c9562d52876021baac2e880
2018-01-24 00:55:27 +00:00
John Garbutt
2cd7232f14 Add RPC object for traits
Adds a new traits object to expose traits DB operations to the API. It
also adds a new traits field into the node object, with the appropriate
version compatibility logic.

get_node_by_port_addresses is modified to ensure we correctly join in
the tags and traits in that DB call, this avoids a orphaned db object
lazy load style failure.

_set_from_db_object in the base object is modified such that the new
traits object doesn't have to include the dictionary style compatibility
mix-in.

Change-Id: I69403b9875a020fab7a7975810b57bf646417953
Partial-Bug: #1722194
Co-Authored-By: Mark Goddard <mark@stackhpc.com>
2018-01-23 22:58:59 +00:00
Zuul
248296a4f5 Merge "remeber spelling error" 2018-01-23 19:50:59 +00:00
Zuul
2c630d9337 Merge "Add rescuewait timeout periodic task" 2018-01-23 16:25:40 +00:00
M V P Nitesh
95d7e602e5 Allow setting {provisioning,cleaning,rescuing}_network in driver_info
These values have priority over ones defined in ironic.conf. Also modify
validation code to only used network UUID cached on task.network if:
1. the requested XXX_network is UUID, not name
2. the requested XXX_network is the same as the cached one.

Co-Authored-By: Dmitry Tantsur <dtantsur@redhat.com>
Closes-Bug: #1614876
Change-Id: I4caec34d85304fe887bcc28b7528cceceb3acfe8
2018-01-23 17:11:56 +01:00
Zuul
6ee297f7a5 Merge "Add rescue related methods to network interface" 2018-01-23 16:00:50 +00:00
Fellype Cavalcante
c6b615cc5b Migrate oneview hardware type to use python-hpOneView
Migrate the code on ``oneview`` hardware type to stop using
``python-oneviewclient`` in order to use ``python-hpOneView``
and ``python-ilorest-library``. The library ``python-hpOneView``
is more recent and is being more actively developed and maintained.

Co-Authored-By: Hugo Nicodemos <nicodemos@lsd.ufcg.edu.br>
Co-Authored-By: Xavier <marcusrafael@lsd.ufcg.edu.br>

Change-Id: I2c5b1703603b1401be637b6172cc4297f705332f
Partial-Bug: #1693788
2018-01-23 09:16:01 -03:00