11347 Commits

Author SHA1 Message Date
Julia Kreger
7f6b24c700 Follow-up on project scoped trait tests
Apparently missed a trait test and fixed the result that is expected.

Change-Id: I9d50b5861968c6b02e0e8312bca0866dfd126279
2021-03-04 09:48:24 -08:00
Julia Kreger
5dff46a700 Project scope driver vendor pass-through
The tests were not enabled earlier on, for endpoints that
are not going to be exposed to users, really. So this patch
just updates them so they are tested as expected.

Change-Id: If3c989d5bcf03de5704e30165747642134952f75
2021-03-04 09:48:07 -08:00
Julia Kreger
e870bd34d0 Volume targets/connectors Project Scoped RBAC
This patch adds project scoped access, as part of the work
to delineate system and project scope access.

Adds policies:
* baremetal:volume:list_all
* baremetal:volume:list
* baremetal:volume:view_target_properties

Change-Id: I898310b515195b7065a3b1c7998ef3f29f5e8747
2021-03-04 09:47:36 -08:00
Riccardo Pittau
00eb6dcfa2 Enforce autospec in test_port
Remove filter from tox.ini

Change-Id: Ic8990ac3cb2ddb6e243ce00918793fc96684fde0
2021-03-04 17:21:31 +01:00
Riccardo Pittau
b0696ea0a8 Enforce autospec in test_volume_connector
Adjust unit tests and remove filter from tox.ini

Change-Id: Ide7ac1a29f6e07842462d6e39fe797a309218884
2021-03-04 16:06:31 +01:00
Riccardo Pittau
b4cae9b828 Enforce autospec in test_volume_target
Adapt unit tests and remove filter from tox.ini

Change-Id: I67fe1dd81ae7fe384c869e73d88182fcde402826
2021-03-03 18:24:29 +01:00
Bill Dodd
d7f4da2376 Add Redfish RAID management to Ironic
The Redfish hardware type does not currently implement the RAID
hardware interface.

This patch implements the Redfish RAID interface, allowing operators
to specify the desired RAID configuration on Ironic Redfish nodes.

Story: 2003514
Task: 24789

Depends-On: https://review.opendev.org/c/openstack/sushy/+/774532
Change-Id: Icf5ca865e0c1e168b96659229df622698bea1503
2021-03-03 10:41:56 -06:00
Julia Kreger
e9dfe5ddaa Port/Portgroup project scoped access
This patch implements the project scoped rbac policies for a
system and project scoped deployment of ironic. Because of the
nature of Ports and Portgroups, along with the subcontroller
resources, this change was a little more invasive than was
originally anticipated. In that process, along with some
discussion in the #openstack-ironic IRC channel, that it
would be most security concious to respond only with 404s if
the user simply does not have access to the underlying node
object.

In essence, their view of the universe has been restricted as
they have less acess rights, and we appropriately enforce that.
Not expecting that, or not conciously being aware of that, can
quickly lead to confusion though. Possibly a day or more of
Julia's life as well, but it comes down to perceptions and
awareness.

Change-Id: I68c5f2bae76ca313ba77285747dc6b1bc8b623b9
2021-03-02 15:45:03 -08:00
Julia Kreger
f1641468bb Project Scoping Node endpoint
* Adds additional policies:
  * baremetal:node_get:last_error
  * baremetal:node:get:reservation
  * baremetal:node:get:driver_internal_info
  * baremetal:node:get:driver_info
  * baremetal:node:update:driver_info
  * baremetal:node:update:properties
  * baremetal:node:update:chassis_uuid
  * baremetal:node:update:instance_uuid
  * baremetal:node:update:lessee
  * baremetal:node:update:driver_interfaces
  * baremetal:node:update:network_data
  * baremetal:node:update:conductor_group
  * baremetal:node:update:name

* With new policies, responses of filtering and posted data is
  performed. Testing has been added to the RBAC testing files
  to align with this and the defaults where pertinant.

* Adds another variation of the common policy check method
  which may be useful in the long term. This is too soon to
  tell, but the overall purpose is to allow similar logic
  patterns to the authorize behavior. This is because the
  standard policies are, at present, also used to control
  behavior of response, and node response sanitization needs
  to be carefully navigated.

This change excludes linked resources such as /nodes/<uuid>/ports,
portgroups, volumes/[targets|connectors]. Those will be in later
changes, as the node itself is quite a bit.

Special note:
* The indicator endpoint code in the API appears to be broken
  and given that should be fixed in a separate patch.

Change-Id: I2869bf21f761cfc543798cf1f7d97c5500cd3681
2021-03-02 15:43:29 -08:00
Jacob Anders
aa42582ac4 Add support for using NVMe specific cleaning
This change adds support for utilising NVMe specific cleaning tools
on supported devices. This will remove the neccessity of using shred to
securely delete the contents of a NVMe drive and enable using nvme-cli
tools instead, improving cleaning performance and reducing wear on the device.
(this specific change adds extra documentation to the earlier set of
patches implementing this).

Story: 2008290
Task: 41168
Change-Id: Ia6d34b31680967a0d14687e5a54d68a1f1644308
2021-03-03 07:23:05 +10:00
Riccardo Pittau
807a6d2bea Prepare to use tinycore 12 for tinyipa
Tinycore 12 requires some more RAM than its predecessor.

Change-Id: Ibced843f34c78af7780bfe1ade833208b458bb8b
2021-03-02 17:42:45 +01:00
Zuul
5857fa802d Merge "secure-rbac - minor follow-up for project scoped tests" 2021-03-02 11:38:01 +00:00
Arne Wiebalck
82cab603bb Lazy-load node details from the DB
In order to reduce the load on the database backend, only lazy-load
a node's ports, portgroups, volume_connectors, and volume_targets.
With the power-sync as the main user, this change should reduce the
number of DB operations by two thirds roughly.

Change-Id: Id9a9a53156f7fd866d93569347a81e27c6f0673c
2021-03-02 09:09:02 +01:00
ankit
755918343b Adds config parameter kernel_append_param for iLO
This commit adds a new config parameter kernel_append_param
for iLO.

Change-Id: Ie962672ef81c58f651c2395439a3c69e98c1a4c0
2021-03-02 06:36:36 +00:00
Zuul
178584ab99 Merge "Add support to manage certificates in iLO" 2021-03-01 17:47:00 +00:00
Zuul
3f2431001e Merge "Update oslo.policy requirement to version 3.6.2" 2021-03-01 17:25:38 +00:00
Julia Kreger
20acfc26e1 secure-rbac - minor follow-up for project scoped tests
Just a couple quick items needed to be fixed that were identified in
review of the original change.

https://review.opendev.org/c/openstack/ironic/+/772451/11/ironic/tests/unit/api/test_rbac_project_scoped.yaml

Change-Id: I01701c6908aebbb2e78527087a4f8f2f7a016e1b
2021-03-01 09:03:19 -08:00
Zuul
428956f276 Merge "Initial Project scoped tests" 2021-03-01 16:17:23 +00:00
Zuul
a22e191077 Merge "Switch iLO and iRMC to the new secure boot framework" 2021-03-01 16:16:00 +00:00
Zuul
b23f4d39ab Merge "[trivial] Remove default parameter from execute" 2021-03-01 11:27:26 +00:00
Zuul
c4d1248035 Merge "devstack: a safeguard for disabled tempurls" 2021-02-28 14:36:13 +00:00
Zuul
17cf7807a5 Merge "Add both IPv4 and IPv6 DHCP options if interface has both" 2021-02-28 02:54:46 +00:00
Zuul
545a1a3779 Merge "Enforce autospec in test_driver" 2021-02-27 18:49:00 +00:00
Zuul
af8c8e14dc Merge "Enforce autospec in test_notification_utils module" 2021-02-27 18:48:43 +00:00
Zuul
ab4a510cda Merge "Enforce autospec in test_node" 2021-02-27 18:48:37 +00:00
Zuul
4454bdf93c Merge "[Trivial] Fix testing of volume connector exception" 2021-02-27 00:59:13 +00:00
Mohammed Naser
367cdcd665 Add both IPv4 and IPv6 DHCP options if interface has both
It is possible that an interface has both IPv4 and IPv6 addresses,
primarily when using SLAAC with OpenStack Neutron.  When this is
the case, it is very likely that the first fixed IP would be a
SLAAC assigned port and the second IP is the IPv4 address.

In an environment where you are looking to boot via IPv4, no DHCPv6
infrastructure exists as IPv6 connectivity is provided via SLAAC,
you would not be able to use this network to boot off of.

This patch instead grabs all the fixed IP addresses, then inserts
the options that match the IP versions which are attached to the
interface, potentially resulting in both IPv4 and IPv6 options
being included (though the IPv6 ones would be largely omitted).

In environments where only IPv4 or IPv6 is in use on the port, it
will still only insert the options for those specific IP versions.

Story #2008660
Task #41933
Change-Id: I52e4ee022b17cb7f007534cb368136567b139a34
2021-02-26 23:39:44 +00:00
Zuul
f5d9cabef2 Merge "RBAC System Scope: observer -> reader" 2021-02-26 23:15:24 +00:00
Zuul
e8ffc75d5d Merge "Implement system scoped RBAC for the deploy templates APIs" 2021-02-26 23:15:16 +00:00
Zuul
9785383f70 Merge "Implement system scoped RBAC for the event APIs" 2021-02-26 20:03:54 +00:00
Arne Wiebalck
61c5b3fd2f [Trivial] Fix testing of volume connector exception
Restore test symmetry.

Change-Id: I54a9fed73e366a30545c3cd1982588d2f544d228
2021-02-26 15:14:23 +01:00
Zuul
dab69e1266 Merge "[trivial] fix typos in conductor" 2021-02-25 16:06:47 +00:00
Dmitry Tantsur
decd723344 Switch iLO and iRMC to the new secure boot framework
No longer explicit handle secure boot in PXE/iPXE derivatives since it's
now handled there.

Change-Id: I13b1d53578285b7171bfadb53bb2a7f69e7b53e3
Story: #2008270
Task: #41567
2021-02-25 12:19:34 +01:00
Dmitry Tantsur
7abac806a7 devstack: a safeguard for disabled tempurls
Change-Id: Id5fcd4cc1f73b80e8a9e9d2c50e2e4e1667c01cb
2021-02-25 12:09:30 +01:00
Zuul
010191e81e Merge "Enable swift temporary URLs in grenade and provide a good error message" 2021-02-24 23:17:09 +00:00
Zuul
148dda163e Merge "[doc-only] Add BFV basic flow and networking context" 2021-02-24 13:39:24 +00:00
Dmitry Tantsur
5533077c7d Enable swift temporary URLs in grenade and provide a good error message
The fixed configdrive_use_object_store requires them.

Change-Id: Ie7323ae107c7f801be010353c7c4f3b8a43c3a1a
2021-02-24 13:34:17 +01:00
Riccardo Pittau
f541d517c1 [trivial] Remove default parameter from execute
The param check_exit_code from the processutils extension execute has
default already at [0]
See:
https://opendev.org/openstack/oslo.concurrency/src/branch/master/oslo_concurrency/processutils.py#L214

Change-Id: Ife77ccc5e2aae696ffac14fa78f10125456f9b01
2021-02-24 10:35:14 +01:00
Julia Kreger
df69b7d147 Initial Project scoped tests
This patch proposes initial tests to perform validations in relation
to supporting project scope access in a deployment where system scope
is also delineated.

For now, these tests have been disabled with the exception of tests
whose scopes are unexpected to see project scope support.

* conductors
* drivers
* chassis
* deploy_templates

Change-Id: I29c2ea987464b5b210808d9ca806292b8ab2ddf4
2021-02-23 12:00:49 -08:00
Julia Kreger
eabb72b6bc RBAC System Scope: observer -> reader
One of the default role names in the RBAC model with system and
project scopes is reader. Reader replaces observer, and while this
was not done earlier to the tests in system scope was because it is
better to evolve the tests being able to run individual groups with
the same name as opposed to different names.

Change-Id: I57bab93adaf7e562c4c46febd612e1f27ea50bfa
2021-02-23 12:00:24 -08:00
Lance Bragstad
27a8898540 Implement system scoped RBAC for the deploy templates APIs
This commit updates the policies for baremetal deploy template policies to
understand scope checking and account for a read-only role. This is part of a
broader series of changes across OpenStack to provide a consistent RBAC
experience and improve security.

Change-Id: I1d1d1bdae0171c44e122018a8a83b35dbb093c39
2021-02-23 12:00:07 -08:00
Lance Bragstad
046e99c0b4 Implement system scoped RBAC for the event APIs
This commit updates the policies for baremetal event policies to understand
scope checking and account for a read-only role. This is part of a broader
series of changes across OpenStack to provide a consistent RBAC experience and
improve security.

Change-Id: I9543b0524f2e85eae0d4fd4331ea1ed9a66322d8
2021-02-23 11:58:39 -08:00
Zuul
6e0682377c Merge "Fix broken configdrive_use_object_store" 2021-02-23 18:08:57 +00:00
Riccardo Pittau
d5b5356d60 [trivial] fix typos in conductor
Change-Id: Ib431c3507cb4bdbd9ba30b58e30b078e855e7754
2021-02-23 17:54:53 +01:00
Zuul
227966b586 Merge "Implement system scoped RBAC for the allocation APIs" 2021-02-23 15:13:52 +00:00
Zuul
9c9c7c6b46 Merge "Implement system scoped RBAC for conductor APIs" 2021-02-23 15:12:42 +00:00
Zuul
9760e66f83 Merge "Implement system scoped RBAC for volume APIs" 2021-02-23 15:11:53 +00:00
Zuul
5a66dafbf1 Merge "Implement system scoped RBAC for utility APIs" 2021-02-23 15:11:24 +00:00
Zuul
34d9805b9f Merge "Implement system scoped RBAC for node and driver passthru" 2021-02-23 14:43:23 +00:00
Zuul
092afaa1d2 Merge "Implement system scoped RBAC for baremetal drivers" 2021-02-23 14:42:35 +00:00