This patch makes the nova API aware and able to accept the new block
device mapping format introduced in
If30afdb59d4c4268b97d3d10270df2cc729a0c4c when booting an instance.
It does so by introducing a new extension into the v2 API. There is no
v3 extension as part of this patch because volume extension is going
away in v3 and thus this functionality can be part of the core servers
extension. This will be done in a subsequent patch.
The compute API create method will still convert these back to the
legacy format for the time being until the compute API will know how to
take advantage of the new format.
As this change adds the new API extension, marking it as DocImpact so
that the changes and the API data format can be documented.
blueprint: improve-block-device-handling
Change-Id: I2c1b63e41deca26f727fb9ed912a55494db9c76c
Adds support for transparently swapping an attached volume with
another volume. Note that this overwrites all data on the new
volume with data from the old volume.
Implements blueprint volume-swap
Change-Id: Iaace71f46acd33cf1531d953d569c0b6d0bbe680
Implements blueprint per-user-quotas.
Fixes bug 968175
Based on the original quotas structure.
NOTE:
quota_instances, quota_cores, quota_ram, quota_key_pairs and
quota_security_groups are supported per user.
Add CRUD methods for project user quotas API. DocImpact
- Shows quotas for a user.
GET v2/{tenant_id}/os-quota-sets/{tenant_id}?user_id={user_id}
- Updates quotas for a user.
POST v2/{tenant_id}/os-quota-sets/{tenant_id}?user_id={user_id}
Add commands for project user quotas management.
- Show user quotas:
nova-manage project quota --project <Project name> --user <User name>
- Update/Create user quotas:
nova-manage project quota --project <Project name> --user <User name>
--key <key> --value <value>
Change-Id: I24af1f6bc439d5d740303c6fe176a9bffe754579
Adds new 'shelve', 'shelveOffload'/'shelve_offload'(V3), and 'unshelve'
actions to the API. Exposes the functionality already provided in the
compute api.
Part of bp shelve-instance
Co-author: Dan Smith <danms@us.ibm.com> (Instance objects)
Change-Id: Idd485b591730c6ac025ee57a1242afdd02191b2f
- adds an API extension to include list of attached volumes with instance info
- adds v3 api porting as well
DocImpact
Implements blueprint servers-add-volume-list
Change-Id: If58dc40b093c2f61c6ae6b82fcd8f0bf53be464a
The os-migrations extension exposes endpoint to fetch all migrations.
The migrations can filtered by host and status. If cells are
enabled migrations can be listed for all cells or can be filtered for a
particular cell.
The route for fetching migrations for
a region is - v2/{tenant_id}/os-migrations. Filters can be passed as
query parameters -
v2/{tenant_id}/os-migrations?host=host1&status=finished&cell_name=Child
DocImpact
Change-Id: Id70dbece344a722b2dc8c593dd340ef747eb43d3
Implements: blueprint list-resizes-through-admin-api
Need check whether the already used and reserved exceeds the new quota
before update it.
DocImpact
Implements a validation to validate whether already used and reserved
quota exceeds the new quota when run 'nova quota-update', it will throw
error if the quota exceeds. This check will be ignored if admin want to
force update when run 'nova quota-update' with additional option
'--force'.
This validation help admin to be aware of whether the quotas are
oversold when they try to update quota and also provide an option
'--force' to allow admin force update the quotas.
Fix bug 1160749
Change-Id: Iba3cee0f0d92cf2e6d64bc83830b0091992d1ee9
Implements blueprint record-reason-for-disabling-service
We added a field to the service table to log a reason when a service has
been disabled.
We added a new API extension called os-extended-services. The new extension
will extend the os-services extension adding:
- A method for disabling a service and specify a reason for that.
PUT /v2/{tenant_id}/os-services/disable-log-reason
When the os-extended-extension is loaded the call:
GET /V2/{tenant_id}/os-services
will return the list of services with reason information it that exists.
DocImpact
Change-Id: I87a4affc45160796ff11c7b03e591e6aba73d62a
The total RAM and the available RAM are stored in memory of CellStateManager.
This API gets the available slots per flavor for a given cell.
Implements: blueprint get-cell-free-ram
Change-Id: I2a6dbb8835cad04f3ee058c3012490782d7c8e67
Added 'extended-quotas' extension that has provides ability for admins
to be able to delete a non-default quota (absolute limit) for a tenant,
so that tenant's quota will revert back to the configured default.
Implements blueprint admin-api-for-delete-quota
Change-Id: I7375420a466823b3e099aebff71a8f7d7f922afb
DocImpact: This patch adds an extension 'UsedLimitsForAdmin'. If this
extention is enabled then it extends the used limits API behavior, such
that admin can fetch the details of any customer's quota usage by passing
the customer's tenant id in query parameters.The API signature for the
same is 'v2/{tenant_id}/limits?tenant_id={customer_tenant_id}'
Change-Id: I89b8b5083e46b899458407426c89a3865e960faa
Implements: blueprint customer-quota-through-admin-api
`root_gb=0` indicates that a disk-resize shouldn't occur which is not
something that a default flavor should have enabled. This is
especially true of one named 'tiny' since the unresized image could
potentially be very large, leading to the unexpected result of a
'tiny' instance consuming a massive amount of disk.
The no-resize behavior is still supported, so if it's being relied on
for testing, additional, non-default flavors can still be created that
enable it.
DocImpact
Fixes bug 1175383
Change-Id: Ifa5827c7f87dae95214bc4a585adce5735a05d83
This reverts commit dd66f235ec.
This changed the core servers API without doing it as an API extension,
so it's not an acceptable change as written.
Change-Id: I3787060583de1371e366647d38d69f37746317d5
The current floating IP API extension only accepts the instance ID
and the floating address to be assigned. Where the instance is
connected to more than one network the behaviour is to associated
the floating IP with the first fixed IP of the instances
(and to log a warning)
This change introduces a new extension which wehn loaded adds a
fixed IP address as an optional parameter, allowing the floating
IP to be associated with a specific fixed IP.
Without this extension, or without the optional parameters,
the API behaviour is unchanged.
If specified the fixed IP must be associated with the instance.
DocImpact
Implements blueprint multi-nic-floating-ip-assignment
Change-Id: I9241137ad794cdf7f452ed84e9445f0e11fdd44e
This extension adds the OS-EXT-IPS-MAC:mac_addr param
so that users can associate the mac address to the ip of the server in
one API call.
Implement bp: os-ext-ips-mac-api-extension
DocImpact
Change-Id: I01d0b3aa804b5218853a4bb568c85e31b87d04e4
Signed-off-by: Zhi Yan Liu <zhiyanl@cn.ibm.com>
This extension adds the OS-EXT-VIF-NET:net_id param
so that users can determine vif plunged into which network now.
DocImpact
Change-Id: I56bef5c45f7f545aa5e9b13760dff1c802da0f8f
Signed-off-by: Zhi Yan Liu <zhiyanl@cn.ibm.com>
Adds image size data that is returned from Glance into the API response.
This becomes really useful for users when they take a snapshot and want
to track the storage used by it. Since this information is already
being pulled by Nova we should display it.
DocImpact
Change-Id: I8a2d4001c21bcc54cac1a2992034dfc9fbe39d7e
This patch makes it possible to add/del instance
interface other than booting time.
Implement bp:network-adapter-hotplug
Originally from change Ibee003a9ec6cc9b3fd275417caccd0c67f6c871f
Co-authored-by: Yaguang Tang <heut2008@gmail.com>
Co-authored-by: Édouard Thuleau <edouard.thuleau@orange.com>
Change-Id: I4f8f677af58afcb928379e5cf859388d1da45d51
Added in the API os-security-group-default-rules
This allows create, delete, list, and get (of individual rules) for
rules that will be pre-populated into the Security Group "default"
that is populated in all projects on creation.
These rules will not be applied retroactively, as it is designed
to allow the creation of a "reasonable" base-line set of sg rules.
The new rules live in a separate table that mirrors the relevant
structures of the security_group_rules table.
Added unit tests/API samples for the new API calls
Related to bp default-rules-for-default-security-group
DocImpact
Change-Id: I7ab51e68aff562bb869538197a0eca158fc3220c
Adds a new API extension for accessing the recorded actions and events
on an instance. Usage is documented with api samples.
Additionally it modified the db api to retrieve actions by request_id
since the api does not return the db id. This extension is the first
consumer of that method so there's no issue of changing behaviour
elsewhere.
Blueprint instance-actions
DocImpact
Change-Id: I74109586cc762a7f51d2b114896cf071ee0671cb
Displaying two different az results to users is confusing, so just
return the az that the instance is actually in. Also, cache the
result from looking up the az by host for an hour to avoid making
lots of expensive db requests.
DocImpact
Change-Id: Ib39bf94c608874695aab00e61035e64f9594a985
There is currently no way to differentiate a fixed ip from a floating
ip in the servers list. This extension adds the OS-EXT-IPS:type param
so that users can determine if it is a fixed address or a floating
address.
Fixes bug 1117784
DocImpact
Change-Id: I8709a4f2f6792faa3d8e0cdcd330d751ef6633ae
Adds an extension for blueprint rebuild-for-ha
Evacuation of VM from a failed host for HA.
New api supports recreate/rebuild modes. With shared storage,
VM is recreated on the target from disk.
Otherwise, rebuild from original image is performed.
DocImpact
Change-Id: Id7e3e68dbaaf74e9314440d98195a92454078fd9
Co-authored-by: Oshrit Feder <oshritf@il.ibm.com>
Implement one workitem for bp:show-availability-zone
This show the availability zone and availability zone of its host in
API: GET /servers/details, GET /server/{uuid}.
When create instance if "availability_zone" doesn't specified, the
"availability_zone" of the instance will be None. But actually the instance
is in a zone which its host is in. So I think show both of them will be fine.
Change-Id: I2d742ee2d291b514bf783fa79293785cca8ea2a5
Enables cells-related functionality such as adding neighbor cells,
listing neighbor cells, and showing the capabilities of the local cell.
Implements blueprint nova-compute-cells
DocImpact
Change-Id: Iacc1e68721a7867aeaf233903cbe6d18f09ad96e
Merging the new os-networks extension upstream broke what was considered
a 'released' extension. This patch returns everything to normal and
renames the os-networks extension to os-tenant-networks
DocImpact
Implements: blueprint tenant-networks
Change-Id: I04b17d08c5760fd73736124b36cab0d383767020
fix the N402 errors that have slipped in in the last 48 hrs since
starting this patch series.
fix an N401 error that our scanner current can't find because it
only looks for doc strings on classes and defs.
this is the xeno's paradox of patch series, but we're getting close.
Change-Id: I4a763bb4c812335d853eae05c72464f18ab93297
Implements: blueprint tenant-networks
Adds a new API extension that supports a more tenant-centric model for
interacting with isolated networks. Additionally, the patch renames the
existing networks extension as os-admin-networks to more fully fit the
self-described implementation. Two new novaclient extensions and a
novaclient change accompany this patch.
DocImpact
Change-Id: Ib90a65c0a92445f86e930fab88ab4495aefff7c7
Fix N402 errors (single line docstring should end in a period)
for nova/api, part of a larger attempt to stop ignoring our own
hacking.py tests.
Fix tests that look at docs in extensions
Change-Id: I89d89d1fcf37c4e7740c36375da4c751d1b621ed
Password is stored in system_instance_metadata as four items with the
keys 'password_0' through 'password_3'. The extension adds a resource
endpoint with two methods:
GET v2/servers/<uuid>/os-server-password # get_password
DELETE v2/servers/<uuid>/os-server-password # reset_password
get_password retuns:
JSON: {"password": "xxx"}
XML: <?xml version='1.0' encoding='UTF-8'?><password>xxx</password>
Note that this is intended to be an encrypted password set by the
guest. Includes api tests for json and xml. Also includes api samples.
Part of blueprint get-password
Change-Id: I6c03f9c3bc8a2c70403bbb3e57917ab9522d75bd
* Servers in certain states will have network_info but it may change,
(eg. rescheduled build on another host). The extension allows the
operator to hide the address information in those states
* Fixes bug LP 1089092
Change-Id: Ie843e34a41c77903b201b45c5b67a6f75334cb5e
Adds API support to:
- Disassociate only host from network
- Disassociate only project from network
- Associate network with host (project already supported)
New functionality is added to a new extension networks_associate,
but the original networks extension is modified to allow networks_associate
to extend how it needs to. The original behavior of the networks extension is
preserved (no new functionality, nor change in existing behavior) in
terms of the API presented.
Bumps RPC API version for network RPC server version in order add
the associate function which allows to both associate and disassociate
a network with a host and or tenant. Has overlap with disassociate
and add_network_to_project but these are kept for backwards compatibility
DocImpact
Implmenents: blueprint apis-for-nova-manage
Change-Id: I78fd76e0696d1c872646355ab04d32f051551def
This adds a new extension to nova API. It allows for internal use of
Ned Batchelder's coverage_ module. (what is used for the nosecoverage
plugin)
The api allows for coverage to be enabled and a report to be output to
a file with API calls. The intended use of this is for instrumenting
client based tests like Tempest. Coverage on tempest will not give
information regarding how much of nova is covered.
Implements: blueprint coverage-extension
Change-Id: I47497f5be3fd5956250f2dcd1630c86c72725ce8
Signed-off-by: Matthew Treinish <treinish@linux.vnet.ibm.com>
This adds an extension that provides REST API for list/create/delete/
modify agent build. The interface is accessed via
GET /v2/{tenant_id}/os-agents
PUT /v2/{tenant_id}/os-agents/id
POST /v2/{tenant_id}/os-agents
DELETE /v2/{tenant_id}/os-agents
And this patch also create tests to get agent build API Samples.
DocImpact
Implements one workitem of blueprint apis-for-nova-manage
The agent is talking about guest agent.The host can use this for
things like accessing files on the disk, configuring networking,
or running other applications/scripts in the guest while it is
running. Typically this uses some hypervisor-specific transport
to avoid being dependent on a working network configuration.
Xen, VMware, and VirtualBox have guest agents,although the Xen
driver is the only one with an implementation for managing them
in openstack. KVM doesn't really have a concept of a guest agent
(although one could be written).
You can find the design of agent update in this link:
http://wiki.openstack.org/AgentUpdate
and find the code in nova.virt.xenapi.vmops.VMOps._boot_new_instance.
In this design We need update agent in guest from host, so we need
some interfaces to update the agent info in host.
You can find more information about the design of the GuestAgent in
the following link:
http://wiki.openstack.org/GuestAgenthttp://wiki.openstack.org/GuestAgentXenStoreCommunication
DocImpact
Change-Id: I5830388a894efce5b13680fc6916e0cd81a16624
This extends the cloudpipe REST API to allow the setting of the IP and port
for the VPN for each network in the project
/v2/{tenant_id/os-cloudpipe/configure-project # POST ip/port
This forms part of the work to provide APIs for functionality currently
implemented by nova-manage that needs direct db access so nova-manage
can eventually be removed
DocImpact
Implements: blueprint apis-for-nova-manage
Change-Id: I416c0bfbe1c88470638f1c2004d1dcaeb51a6c41
This also includes a bunch of updates to the actual samples that have
become stale as things have changed in the tree and naughty developers
haven't updated the docs. This new bit of logic in the samples test
should help prevent that in the future.
In order to verify the static doc/api_samples files, this adds a new
method to the base test, which allows the subclasses to refine their
subs into pattern matches after the server response is verified, and
before the doc/api_samples file is verified.
Change-Id: Ie46b24a65145c407d46974b63a97a84911223547
Updates the rxtx_factor validations in the instance_types modules so
that rxtx_factor is validated as a float. Given that rxtx_factor is stored
as a float in the database this makes sense... and also adheres
to some of the extension documentation as well (although some of
the extension docs were incorrect as well).
Previously rxtx_factor was being cast into an int which caused it to
be stored and displayed incorrectly via the API.
This patchset adds a test which fails with the old code.
Additionally some of the API docs are corrected so that rxtx_factor is
listed as a float in all examples.
Fixes LP Bug #1081287.
Change-Id: Iae98522a1f2ed63cbd2497b0b0af5ac2d9bb935c
part of blueprint:apis-for-nova-manage
os-services is a new module for to support getting
rid of nova-manage. Add this to the all_extensions
api listing.
DocImpact
Change-Id: I3a954de59b16fd86d81204a535f8b152f3073468