Commit Graph

400 Commits

Author SHA1 Message Date
Matt Riedemann 0a461979df Implement granular policy rules for placement
This adds a granular policy checking framework for
placement based on nova.policy but with a lot of
the legacy cruft removed, like the is_admin and
context_is_admin rules.

A new PlacementPolicyFixture is added along with
a new configuration option, [placement]/policy_file,
which is needed because the default policy file
that gets used in config is from [oslo_policy]/policy_file
which is being used as the nova policy file. As
far as I can tell, oslo.policy doesn't allow for
multiple policy files with different names unless
I'm misunderstanding how the policy_dirs option works.

With these changes, we can have something like:

  /etc/nova/policy.json - for nova policy rules
  /etc/nova/placement-policy.yaml - for placement rules

The docs are also updated to include the placement
policy sample along with a tox builder for the sample.

This starts by adding granular rules for CRUD operations
on the /resource_providers and /resource_providers/{uuid}
routes which use the same descriptions from the placement
API reference. Subsequent patches will add new granular
rules for the other routes.

Part of blueprint granular-placement-policy

Change-Id: I17573f5210314341c332fdcb1ce462a989c21940
2018-05-17 11:12:16 -04:00
Matt Riedemann 4a55e260a4 Remove [scheduler]/host_manager config option
While this option itself was not technically deprecated,
the option only had two choices and the "ironic_host_manager"
choice has been deprecated since Queens:

  Iebc74a09990dcda8cf0ee2a41f9ae1058d2a182a

And was removed in Rocky:

  I695b250c82c8dcedcd8e2bee00c56bb2df19212c

Since the host_manager option only had one choice, which
is also the default, it's not really an option anymore and
we can simply remove it. Setting it will have no effect
so there should be no upgrade impact for its removal.

Change-Id: Ic61ae3a4f563aa54a3a2956667c702a81e610fc3
2018-05-03 09:39:26 -04:00
Matt Riedemann a55608897e Remove IronicHostManager and baremetal scheduling options
The use_baremetal_filters and baremetal_enabled_filters were
deprecated in Pike: I843353427c90142a366ae9ca63ee4298b4f3ecd4

The IronicHostManager was deprecated in Queens:
Iebc74a09990dcda8cf0ee2a41f9ae1058d2a182a

Note that the NUMATopologyFilter should be OK in a mixed
VM/BM deployment because ironic compute nodes will not
report 'numa_topology' so those "hosts" will be filtered
out from requests for a specific NUMA topology or CPU
policy.

This change drops the deprecated baremetal scheduling options
and since the IronicHostManager is really only useful when
using those scheduling options, it is also removed.

Baremetal scheduling is now required to go through resource
classes.

Change-Id: I695b250c82c8dcedcd8e2bee00c56bb2df19212c
2018-05-02 11:35:18 -04:00
Stephen Finucane c21ab6b134 Follow the new PTI for document build
The Project Testing Interface [1] asks that we list requirements in
'doc/requirements.txt' and build docs by calling 'sphinx-build' directly
instead of via the 'build_sphinx' setuptool/distutils wrapper. Start
doing this.

[1] https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: If9342c8ea757b1735f2488db751008984fb33baf
2018-03-16 14:39:36 +00:00
Zuul 975fdcfc3b Merge "setup.cfg: Explicitly set [build_sphinx] builder" 2018-03-12 22:59:03 +00:00
Stephen Finucane 936404b90a setup.cfg: Explicitly set [build_sphinx] builder
An recent change in pbr changed the default behavior of pbr's variants
of the 'sphinx_build' setuptools plugin [1]. Previously, pbr defaulted
to building both HTML and man page output, but it now builds only the
former. nova happens to be one of the rare projects that _does_ care
about man pages so mitigate the impact of this change by explicitly
setting the 'builder' configuration option to build HTML and man page
output.

While we're at it, the 'build_apiguide' section is removed as this
doesn't actually do anything and is a remnant of a broken cookiecutter
file [2].

[1] https://review.openstack.org/#/c/456157/
[2] https://review.openstack.org/#/c/448164/

Change-Id: I79efedd44b11c9832ae8cb36e54c2567f85fcf50
2017-12-27 13:53:10 +00:00
Matt Riedemann c99fc64271 Deprecate the IronicHostManager
The use_baremetal_filters and baremetal_enabled_filters options
along with the ExactRamFilter, ExactCoreFilter and ExactDiskFilter
filters were all deprecated in Pike:

  I843353427c90142a366ae9ca63ee4298b4f3ecd4

The IronicHostManager is configurable and relies on those options,
so if those options are deprecated then the IronicHostManager should
also be deprecated.

The sticky part with this is going to be filters that don't work with
ironic nodes today, like the NUMATopologyFilter, so a note is left
in the use_baremetal_filters option code to remind us that we can't
likely remove any of this until all filters work with ironic nodes.

Change-Id: Iebc74a09990dcda8cf0ee2a41f9ae1058d2a182a
2017-11-28 15:23:48 -05:00
Stephen Finucane 494fe90cf4 trivial: Rename 'policy_check' -> 'policy'
The executable is 'nova-policy' - not 'nova-policy-check'.

Change-Id: I3e875a3284935cbb9607f01c7139982da0e11945
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2017-10-25 17:56:40 +01:00
Michael Still 3f7995f586 Move the idmapshift binary into privsep.
I can't see any evidence that anyone else uses our nova-idmapshift
binary, and it adds a lot of complexity (flags we never call for
example). Move the code we do actually use into the privsep
directory and simplify our calls to it. Remove the extra binary
from our install and documentation.

Change-Id: Ibce28d20d166da154833376cf51f1877b829925e
blueprint: hurrah-for-privsep
2017-10-24 18:50:23 +11:00
Jesse Pretorius 10c4bf888f Add default configuration files to data_files
In order to make it simpler to use the default
configuration files when deploying services
from source, the files are added to pbr's
data_files section so that the files are
included in the built wheels and therefore
deployed with the code. Packaging and deployment
tools can then more easily use the default files
if they wish to.

This pattern is already established with similar
files for neutron and the glance metadefs as has
been mentioned in the related bug report.

Change-Id: I66e6525338e06f289a20ff2cdc2d108ffd6d30b2
Closes-Bug: #1718356
2017-09-22 11:36:56 +00:00
He Jie Xu d8928e4a7c Using plain routes for the microversions test
Few microversions unittest still depend on the stevedore to load few
fake controller. This patch uses the plain routes to instead of stevedore.

For the unittest can injects routes which are used for test, the `custom_routes`
parameter is added to the APIRouterV21.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I1a7c653ab21be41b1a41f748a35ec9a57dd8b15d
2017-07-23 22:43:53 +08:00
He Jie Xu c11e9c4848 Remove the unittest for plugin framework
The extension/plugin mechanism is removed from the Nova API. This
patch removed related unittest.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I1c5a1dccb08bd0b869cb206b247d6cb744e76163
2017-07-21 17:39:46 +08:00
He Jie Xu 80f0428033 Use plain routes list for versions instead of stevedore
This patch adds versions related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova

To support the redirection from '' to '/', this patch also
enables to put a target patch instead of a dict with supported
methods in the ROUTE_LIST.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Iba340c5dd66cf9d006e2e8d3d0674b2140915014
2017-07-21 17:39:46 +08:00
Jenkins e62d931025 Merge "Use plain routes list for extension_info instead of stevedore" 2017-07-21 06:35:48 +00:00
Jenkins c55c5196d5 Merge "Use plain routes list for os-snapshots instead of stevedore" 2017-07-21 06:20:27 +00:00
Jenkins 3093c8b9e0 Merge "Update URL home-page in documents according to document migration" 2017-07-19 17:31:51 +00:00
Jenkins 2e4417d57c Merge "Use plain routes list for os-baremetal-nodes endpoint instead of stevedore" 2017-07-19 11:45:07 +00:00
Luong Anh Tuan 1b385d9eda Update URL home-page in documents according to document migration
Change-Id: I48c04fdd693cfbe1c279fd26a181d65d84494aa2
2017-07-19 08:47:27 +00:00
Jenkins 52a7492bc0 Merge "Use plain routes list for os-security-group-default-rules instead of stevedore" 2017-07-19 08:45:26 +00:00
Jenkins 7ae3753874 Merge "Use plain routes list for os-security-group-rules instead of stevedore" 2017-07-19 06:01:56 +00:00
He Jie Xu 8acc357168 Use plain routes list for extension_info instead of stevedore
This patch adds extension_info related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I07c5e0dc34042d4f3cea8b1b933b11a624ec9512
2017-07-18 22:57:00 +08:00
He Jie Xu 2b912ccbf1 Use plain routes list for os-snapshots instead of stevedore
This patch adds os-snapshots related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: If2f073066fc4df533138409eec6c8ac0dd44d00a
2017-07-18 22:46:59 +08:00
Jenkins f5a07291ed Merge "Use plain routes list for image-metadata instead of stevedore" 2017-07-18 09:34:29 +00:00
Jenkins 84fc76e9f3 Merge "Use plain routes list for images instead of stevedore" 2017-07-18 09:23:43 +00:00
Jenkins 247f9b8120 Merge "Use plain routes list for os-networks instead of stevedore" 2017-07-18 03:27:22 +00:00
Jenkins 4bd9028aaa Merge "Use plain routes list for os-cells endpoint instead of stevedore" 2017-07-14 03:00:45 +00:00
ghanshyam 24fadbec46 Use plain routes list for os-baremetal-nodes endpoint instead of stevedore
This patch adds os-baremetal-nodes related routes
by a plain list, instead of using stevedore. After all the Nova
API endpoints moves to the plain routes list, the usage of stevedore
for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I2df8f897cf2d53d01e5e9156efbcddd7aa988473
2017-07-12 20:58:55 +08:00
He Jie Xu 7f484134fb Use plain routes list for os-security-group-default-rules instead of stevedore
This patch adds os-security-group-default-rules related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike
Change-Id: Ifd7c8fc508c0afdb3ce14a4514862805a1569a8b
2017-07-12 20:58:40 +08:00
He Jie Xu c4a95099ab Use plain routes list for os-security-group-rules instead of stevedore
This patch adds os-security-group-rules related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

The API sample tests are missed for os-security-group-rules API,
this patch adds them to ensure the route working correctly.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I2d3ac79fdb0314014f4b8b69a9c5f27a922d9046
2017-07-12 20:58:26 +08:00
He Jie Xu 25e9b0129a Use plain routes list for image-metadata instead of stevedore
This patch adds image-metadata related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I466d2e1693f56ee32fa32fd74789f88c1d0a1f7c
2017-07-12 20:57:46 +08:00
He Jie Xu d0093c5cc3 Use plain routes list for images instead of stevedore
This patch adds images related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I884dbfef8032a34d155a7022037f5690d86ef532
2017-07-12 20:57:33 +08:00
ghanshyam 53393ca27e Use plain routes list for os-networks instead of stevedore
This patch adds os-networks related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from
Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I49a424979394d0de7d8eae564468e29ee94b8bfa
2017-07-12 17:36:35 +08:00
Takashi NATSUME ed66612268 Fix a missing classifier
Add Python 3 in classifier.

TrivialFix
Change-Id: Iaaee1776bbbb1f9dfa5d9ad3a238d0e1422394a0
2017-07-10 14:02:39 +00:00
jichenjc 408fcfd604 Use plain routes list for os-cells endpoint instead of stevedore
This patch adds os-cells related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Iec6e720b4e225251ce06ddfecb316569f9260913
2017-07-04 00:07:40 +00:00
iswarya_vakati 3c868cefb4 Add python 3.5 in classifier
Now we can support py35 in classifier.

Change-Id: I56ecc2b9d82779de0c96e46bad73beb13603edf0
2017-06-27 16:36:24 +05:30
Stephen Finucane 7c73d39df6 Use plain routes list for os-remote-consoles instead of stevedore
This patch adds os-remote-consoles related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Id192220445e296656eedb79e39042cd00bbe65a7
2017-06-19 16:49:34 +01:00
Stephen Finucane e2020996ae Remove multiple create from stevedore
The stevedore will be removed from the nova API code. And the extension info
API already is implemented by a hard-code list. So this multiple create extension
entry is useless anymore.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I57caf68d62393b32f800300d4504dd726c3a37c4
2017-06-19 16:49:34 +01:00
ghanshyam e32ce7cf94 Use plain routes list for os-tenant-networks instead of stevedore
This patch adds os-tenant-networks related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I54c03a5ec3311677fc095425b71c2b590ff5c987
2017-06-19 16:44:19 +01:00
jichenjc facfe2ac42 Use plain routes list for os-cloudpipe endpoint instead of stevedore
This patch adds os-cloudpipe related routes by a plain list,
instead of using stevedore.

After all the Nova API endpoints moves to the plain routes list,
the usage of stevedore for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Id02d878867dec642fab72981cd0b492c62c846fb
2017-06-19 16:44:19 +01:00
jichenjc ceed63ff7d Use plain routes list for os-quota-classes endpoint instead of stevedore
This patch adds os-quota-classes related routes by a plain list, instead
of using stevedore. After all the Nova API endpoints moves to the plain
routes list, the usage of stevedore for API loading will be removed from
Nova.

Because of os-server-group-quotas is never loaded, we can safely removed
the logic check for server-group data and possibily return it though a
microversion update if needed.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I34c776bedc0bc5fc0ef4d29dd3b8f84e914d83e2
2017-06-19 16:38:03 +01:00
Kevin_Zheng b15041e81c Use plain routes list for os-server-groups endpoint instead of stevedore
This patch adds os-server-groups related routes by a plain list,
instead of using stevedore. After all the Nova API endpoints moves to the
plain routes list, the usage of stevedore for API loading will be removed
from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I2df31cc04fbd2d54103a412f461cfd665209dfa7
2017-06-13 14:04:07 +00:00
Kevin_Zheng 7626b8c6aa Use plain routes list for user_data instead of stevedore
This patch adds user_data related routes by a plain list, instead
of using stevedore. After all the Nova API endpoints moves to the
plain routes list, the usage of stevedore for API loading
will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Ie0f806b1231da7676b1929de1eaece7435afe58a
2017-06-13 14:04:00 +00:00
Kevin_Zheng 9b98781015 Use plain routes list for block_device_mapping instead of stevedore
This patch adds block_device_mapping related routes by a plain list, instead
of using stevedore. After all the Nova API endpoints moves to the
plain routes list, the usage of stevedore for API loading
will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I3d1774943708db3c285ca6597898393349970c7b
2017-06-12 15:48:56 +01:00
Kevin_Zheng 9452aafd08 Use plain routes list for os-consoles, os-console-auth-tokens endpoint instead of stevedore
This patch adds os-consoles and os-console-auth-tokens related routes by
a plain list, instead of using stevedore. After all the Nova API
endpoints moves to the plain routes list, the usage of stevedore for API
loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I0e7433e6b470fc535b5954de7dcdcf66ac5ac41d
2017-06-12 15:48:19 +01:00
jichenjc 95add6a97b Use plain routes list for os-services endpoint instead of stevedore
This patch adds os-services related routes by a plain list, instead of
using stevedore. After all the Nova API endpoints moves to the plain
routes list, the usage of stevedore for API loading will be removed from
Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Ib145494b9fc3c660176098e4168cf72db507f34d
2017-06-07 14:25:58 +08:00
Stephen Finucane 50e825c861 use plain routes list for os-virtual-interfaces
This patch adds os-virtual-interfaces related routes by a plain list,
instead of using stevedore. After all the Nova API endpoints moves to
the plain routes list, the usage of stevedore for API loading will be
removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I47ccef43e41da0a85bff3da71655c33b6fea4fe4
2017-06-07 14:25:58 +08:00
jichenjc f4e3a8c4f9 use plain routes list for hypervisor endpoint instead of stevedore
This patch adds hypervisors related routes by a plain list,
instead of using stevedore. After all the Nova API endpoints moves
to the plain routes list, the usage of stevedore for API loading
will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I1095e91b5ef84995b32b38445b0876b132b9627a
2017-06-07 14:25:58 +08:00
jichenjc 1f7f4fceef Use plain routes list for hosts endpoint instead of stevedore
This patch adds hosts related routes by a plain list, instead
of using stevedore. After all the Nova API endpoints moves to the
plain routes list, the usage of stevedore for API loading
will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I1a205faab6f34158744436e79ae2ed9f80132b58
2017-06-07 14:25:58 +08:00
ghanshyam b9a055971e Use plain routes list for os-fping endpoint
This patch adds os-fping related routes
by a plain list, instead of using stevedore. After all the Nova
API endpoints moves to the plain routes list, the usage of stevedore
for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: Id58263258fe3cc28961fb095b4d758eef234ca47
2017-06-07 14:25:58 +08:00
ghanshyam f41fe082ba Use plain routes list for instance actions endpoint
This patch adds instance actions related routes
by a plain list, instead of using stevedore. After all the Nova
API endpoints moves to the plain routes list, the usage of stevedore
for API loading will be removed from Nova.

Partial-implement-blueprint api-no-more-extensions-pike

Change-Id: I1ae0797ac8ca1cd64bb0d92d4c14aa96d4a59d62
2017-06-07 14:25:58 +08:00