11140 Commits

Author SHA1 Message Date
Aija Jauntēva
383afc2d89 Update iDRAC doc on Redfish vendor passthru interface
Change-Id: I6ebbfd5a4b42ad0c8321b59e2a07fcc9829115bd
2021-03-08 06:23:28 -05:00
Zuul
d3dd6b29b2 Merge "Revert "Update iDRAC doc with missing interfaces"" 2021-03-08 10:09:34 +00:00
Zuul
42df92e7dd Merge "Allow instance_info to override node interface" 2021-03-08 03:19:40 +00:00
Tzu-Mainn Chen
a165fe3264 Allow instance_info to override node interface
This change allows instance_info values to override node interface
definitions, so non-admins can make temporary changes to various
interfaces.

Story: #2008652
Task: #41918
Change-Id: I6c3dc74705bde02bd02882d14838f184f8d4a5e3
2021-03-05 18:32:46 +00:00
Zuul
d0ae891d9b Merge "Lazy-load node details from the DB" 2021-03-05 17:50:31 +00:00
Aija Jauntēva
a8b5137db3 Revert "Update iDRAC doc with missing interfaces"
This reverts commit b0df0960e2c53a4fe6673ba0a1ed546ffd156dc7.

Reason for revert: Need to split in separate patches and backport virtual media boot part.

Change-Id: Ib182ee6f2894fcdcea369a60dc5bd922a16434e2
2021-03-05 11:35:33 +00: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
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
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
Zuul
999e340212 Merge "Implement system scoped RBAC for chassis" 2021-02-23 14:36:48 +00:00
Riccardo Pittau
f18fec2329 Enforce autospec in test_driver
And remove filter from tox.ini

Change-Id: I90efb9f309df46c9b0ef073e789e1f1aaa1b1a1c
2021-02-23 10:55:18 +01:00
Zuul
97e644e54a Merge "Implement system scoped RBAC for port groups" 2021-02-23 09:38:16 +00:00
Zuul
2be3f75760 Merge "Implement "system" scoped RBAC for ports" 2021-02-23 05:43:02 +00:00