Cinder deprecated the GlusterFS volume driver
in Newton and deleted it in Ocata:
I10c576602dd0e65947d1a1af5d04b8ada54f4625
Since it's unused, unmaintained and unsupported in
Cinder we should remove it from the libvirt driver.
This also removes the related configuration options.
A note is left in the code since I'm unsure if anything
relies on checking for the netfs disk source_protocol which
was added at the same time as the glusterfs support in
Ic6dd861b40b692b25df67c9d5b63fd436c690fde.
Change-Id: I2745f5578646ec994b53f6b5c0a5f62637b0948a
The Scality volume driver was removed from Cinder in Ocata:
a931f9db79554630d8d71fcff1334bb4e37cb398
It's unmaintained and therefore no longer supported, and won't
even work with recent Cinder, so let's remove it.
Change-Id: I0cfa0c4b3d7138f989225a44bdedfa716a035a14
This implements an auto-disable feature in nova-compute, where we
automatically set our service record to disabled if we consecutively
fail to build a certain number of instances.
While this is a very useful thing to do in general, disabling a failing
compute becomes more important in the future where scheduler retries due
to unknown failures may become either impossible or scoped to a single
cell. Since a compute that is consistently failing will look very
attractive to the scheduler, it may become a build magnet, that in the
absence of retries, would effectively kill all builds in a cloud until
fixed.
Change-Id: I02b7cd87d399d487dd1d650540f503a70bc27749
This should be much more efficient and capable of being run at a higher
frequency on more deployments.
Related to blueprint discover-hosts-faster
Change-Id: I8cbc27291c5f9cbeaef01340572974fdbd8d2656
This includes project id verification for flavor access calls.
Closes-Bug: #1544989
Implements bp:validate-project-with-keystone
Change-Id: I2620c3ebc2a6dc131946602f8aa36ec0b6e782e0
This adds the online data migration for populating the
services.uuid column on older records.
Part of blueprint service-hyper-uuid-in-api
Change-Id: I6baf546d7075f7671df0abeb1e7d68372fd177ed
This commit removes the cloudpipe API from nova. This has been
deprecated since change I415760ff634dd85974f0c3f79e788e633852efb5 and no
longer works without nova-cert and the pending removal of the deprecated
nova-network.
Implements bp remove-nova-cert
Change-Id: Ifd1fb13a5953cc66f9cc2561d30a9efcd3f4c92e
Multi-provider networks are a combination of vxlan and vlan networks.
such a network has a special "segments" field that holds a list
of networks. Each element of this list has the same structure as the 'provider
network attributes'.
These attributes are:
- provider:network_type
- provider:physical_network
- provider:segmentation_id
This patch will retrieve the relevant physical network name from a
multi-provider network
Change-Id: Icb9a546e6fcbf399fcef3e9ea686b35ec3817cd5
Closes-Bug: #1659467
This commit fixes a small typo in the wsgi-applications release note,
it's mod_proxy_uwsgi not mod_proxy_uwsgx.
Change-Id: Ibbd6c19b41c0290ffeaa0371a8d084191f0919be
This provides a brief explanation of the new nova-api-wsgi [1] and
nova-metadata-wsgi [2] scripts in the Architecture section of the devref
with links to the new doc added to the man pages for the eventlet
scripts.
The nova-api.rst mentioned ec2 so figured best to fix that now
rather than forget about it, despite not being entirely germane.
There is also a reno note that indicates the availability of the new
scripts.
There is a devstack change which is testing the new wsgi scripts as
well as forcing grenade to not use them at
If2d7e363a6541854f2e30c03171bef7a41aff745
[1] I7c4acfaa6c50ac0e4d6de69eb62ec5bbad72ff85
[2] Icb35fe2b94ab02c0ba8ba8129ae18aae0f794756
Change-Id: I351b2af3b256d3031bd2a65feba0495e815f8427
Related-Bug: #1661360
When discussing for the blueprint placement-claims we had a consensus on
using reserved values for helping operators to provide overhead limits
for all the instances.
Since we only had 2 opts for RAM and disk, we missed a possible CPU one.
This patch is adding that one.
Change-Id: Ic3162f0ab39a703798b4a2a7e860fed628da1e7e
Partially-Implements: blueprint placement-claims
This commit removes nova-cert which has been deprecated since change
Id7a1fc943cbe6d860a50d3cc776717b55351004b. The APIs have been hard coded
to return a 410 whenever they're called now. For the API ref a new
section for obsolete apis is added to the bottom of the page and the
certificates api ref is moved there.
Implements bp remove-nova-cert
Change-Id: I2c78a0c6599b92040146cf9f0042cff8fd2509c3
We have signaled many times the use of API extensions to change the API
has been deprecated, including:
04f8612aa9
This patch ensures we no longer check any of the discoverable rules when
compiling the list of extensions to list in the API. This stops users
from being able to use policy to hide certain API extensions. This was
never that useful, but now you can't turn any extensions off and we
report the API version number, it is basically useless.
Note the change in the policy cmd unit test is to ensure now there are
no rules that use the ANY rule, we correctly check we return an empty
list of rules that match.
blueprint remove-discoverable-policy-rules
Change-Id: I61d8063708731133177534888ba7f5f05a6bd901
This changes the response for the createImage and createBackup
server action APIs to no longer return a Location header and instead
returns a json dict body with the snapshot image ID. This is done
in a new microversion.
Implements blueprint remove-create-image-location-header-response
Closes-Bug: #1679285
Change-Id: Idc899ee76b8265b1c9e0871b6c7c277424cdd442
The following APIs which are considered as proxies of Neutron networking
API, are deprecated and will result in a 404 error response in new
Microversion:
POST /servers/{server_uuid}/action
{
"addFixedIp": {...}
}
POST /servers/{server_uuid}/action
{
"removeFixedIp": {...}
}
POST /servers/{server_uuid}/action
{
"addFloatingIp": {...}
}
POST /servers/{server_uuid}/action
{
"removeFloatingIp": {...}
And the nova-network specific API for query server's interfaces is
deprecated also:
GET /servers/{server_uuid}/os-virtual-interfaces
Partial implement blueprint deprecate-multinic-proxy-api
Change-Id: I1848db384a825d3b166f113b30ebad92113af8e5
Right now, the compute node is responsible for validating that the scheduler
honored the affinity policy of a server group. It does this by listing all
the instances in a server group and validating that affinity or anti-affinity
was kept true. With cellsv2, this check requires an upcall to the API
database as server groups are stored there. This violates our goal of not
allowing any upcalls to be congruent with known restrictions that actual
cells(v1) deployers require.
This adds a workaround flag, disabled by default, which defeats this check
in the compute node. For smaller deployments, isolation of the cell and api
services is not as big of a deal, so by default, this check will continue
to work as it does today. Larger deployments which care more about the
isolation than they do the absolute affinity guarantees can enable this
workaround to avoid the upcall check. A user can still detect a violation of
their affinity request by examining the obscured host identifier.
Longer-term, this problem goes away when we're doing claims in the scheduler
and placement has a notion of affinity that it can enforce early in the
boot process, eliminating the race and the need for this check entirely.
Related to blueprint cells-aware-api
Change-Id: I22e1a0736a269d89b55b71c2413fa763d5f1fd0c
As of change If1e03c9343b8cc9c34bd51c2b4d25acdb21131ff, using
"nova hypervisor-list" before compute hosts are mapped to a cell
will result in an empty list.
Our cells v2 install steps mention using 'nova hypervisor-list' after
creating a cell and starting compute services to tell when to run
the discover_hosts command, but now hypervisor-list won't work until
you've run discover_hosts, so it's a catch-22.
This change adds a release note to let people writing deployment tools
to know about the change in behavior and also updates the install steps
to use service-list instead of hypervisor-list, since service-list does
not require the compute host to be mapped to the cell first.
We are going to need to make a similar change in the OpenStack install
guide since that also mentions using 'nova hypervisor-list' before
discover_hosts.
Change-Id: If2baab40c2e2a3de20e561bba50688d615b002ef
Closes-Bug: #1682060
This patch deprecates os-hosts APIs including:
GET /os-hosts - list hosts
GET /os-hosts/{host_name} - show host details
PUT /os-hosts/{host_name} - update host status
GET /os-hosts/{host_name}/reboot - reboot host
GET /os-hosts/{host_name}/shutdown - shutdown host
GET /os-hosts/{host_name}/startup - start host
Much of the ``os-hosts`` API is duplicated with the ``os-services`` and
``os-hypervisors`` APIs. It's not a good idea to make nova have the
compute related API, so this patch deprecated them.
Implements blueprint deprecate-os-hosts
Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>
Change-Id: Ieb85653b85a1eff38a9fb0c9ff05e4cd39150ecc
In a microversion 1.7 change PUT /resource_classes/{name} so that
creation and existence validation of a custom resource class can
happen in a single request and prevent the previous behavior of
being able to update a single resource class to a new name, which is
not desirable.
The previous update_resource_class is still in place to support
microversion 1.2-1.6.
The original resource-classs.yaml sets the default microversion
header to 'latest' so for those existing tests that are using the
old style of PUT, a '1.6' header has been added. New files for
version 1.6 (to add a "no 1.7 behavior here" test) and 1.7 (testing
the new PUT behavior and explicitly verifying POST to create is
still around) are added.
Change-Id: I95f62ab2cb1ab76d18fb52b93f87ed28e4e7b5f3
Implements: bp placement-put-resource-class
With the advent of the '[neutron] default_floating_pool' option in
I2ce8ff3, it is no longer necessary to keep this option around for
neutron. Burn it. Burn it with fire.
Change-Id: Ib3a64ed297592778c08587af821a832dee11327f
Implements: blueprint centralize-config-options-pike
The neutron network driver in nova has subverted the meaning of the
'default_floating_pool' value for its own cruel and unusual purposes.
This cannot be allowed to stand. Give neutron its own config option,
stopping it from stealing others and allowing us to eventually retire
the venerable 'default_floating_pool' option. A warning is included to
alert any unsuspecting operators of the neutron network driver's ghastly
behavior and allow them to mitigate same.
Change-Id: I2ce8ff3d7c33a402b8af50182ec01f512859c388
Implements: blueprint centralize-config-options-pike
The os-pci API was never part of the v2.0 API and was added
to the v3 API, but when the v3 API turned into the v2.1 API
which is backward compatible with the v2.0 API, the os-pci
API was removed from v2.1. The original intent was to enable
it in a microversion but that never happened.
We should just delete this API since it has a number of issues
anyway:
1. It's not documented (which makes sense since it's not enabled).
2. The PciHypervisorController just takes the compute_nodes.pci_stats
dict and dumps it to json out of the REST API with no control over
the keys in the response. That means if we ever change the fields
in the PciDevicePool object, we implicitly introduce a backward
incompatible change in the REST API.
3. We don't want to be reporting host stats out of the API [1].
4. To make the os-hypervisors extension work in a multi-cell environment
we'd have to add uuids to the PciDevices model and change the API to
return and take in uuids to identify the devices for GET requests.
5. And last but not least, no one has asked for this in over two years.
As a result of removing this API we can also remove the join on the
pci_devices table when showing details about an instance or listing
instances, which were added years ago because of the PciServerController:
Id3c8a0b187e399ce2acecd4aaa37ac95e731d46c
Id3e60c3c56c2eb4209e8aca8a2c26881ca86b435
[1] https://docs.openstack.org/developer/nova/policies.html?#metrics-gathering
Closes-Bug: #1426241
Closes-Bug: #1673869
Change-Id: I9099744264eeec175672d10d04da69648dec1a9d
Currently it is not possible to decide from looking at the network
metadata whether an IPv6 subnet is using slaac, dhcpv6-stateless or
dhcpv6-stateful.
So we add ipv6_address_mode information into the subnet metadata when
it is available and use that to construct the subnet type.
As a result, the type for a subnet with mode SLAAC will be "ipv6_slaac"
instead of "ipv6_dhcp" and similarly for the other available modes.
Change-Id: I751200a354ec9be2bfd5f94d3e4bbf53dab2c8bb
Partial-Bug: 1676363
The introduction of this option predates Gerrit [1]. It is
not used consistently, since it's not used for createBackup
or shelve APIs which also create snapshots. And it's not
discoverable.
We need to deprecate this option and anyone that cares to
disable snapshots needs to do it via policy.
[1] https://github.com/openstack/nova/commit/9633e9877c7836c18c30b51c8494abfb025e64ca
Change-Id: I321c04376d86ddb1bb3c8f1fa938a7b424e658d0
This patch adds support for a REST API for CRUD operations on traits.
GET /traits: Returns all resource classes.
PUT /traits/{name}: To insert a single custom trait.
GET /traits/{name}: To check if a trait name exists.
DELETE /traits/{name}: To delete the specified trait.
GET /resource_providers/{uuid}/traits: a list of traits associated
with a specific resource provider
PUT /resource_providers/{uuid}/traits: Set all the traits for a
specific resource provider
DELETE /resource_providers/{uuid}/traits: Remove any existing trait
associations for a specific resource provider
Partial implement blueprint resource-provider-traits
Change-Id: Ia027895cbb4f1c71fd9470d8f9281d2bebb6d8a2