Commit Graph

72 Commits

Author SHA1 Message Date
Mark McLoughlin 3409c0e26d Normalize API extension updated timestamp format
It's unusual to include a '+00:00' offset in an ISO8601 timestamp
rather than just using the 'Z' suffix. It's also very weird for our
API to be returning timestamps which aren't in UTC.

Let's make these timestamps consistent with other timestamps by
using UTC always and representing that with a 'Z' suffix. Also,
enforce this in the API sample tests by using a new 'isotime' regexp.

A small number of the extensions in the API sample templates
specified the exact timestamp, so templatize those before regenerating
the API samples for GET /extensions.

Full context here:

  http://lists.openstack.org/pipermail/openstack-dev/2014-April/033971.html

Change-Id: Idf429e55e4ae13738ac531a25ce54b20d395410d
2014-04-29 14:50:33 +01:00
Mark McLoughlin 702e57d0d6 Regenerate API samples for GET /extensions
In a subsequent commit, I make a change which requires regenerating
this API sample but doing so shows up a bunch of unrelated changes.
This commit simply regenerates the API sample without any functional
changes to highlight the non-functional sample changes.

Change-Id: I5fafff90f20af17d787039568245f598e500405e
2014-04-29 14:50:06 +01:00
Aditi Raveesh ff5547883b Allow user to specify image to use during rescue - V2 API changes
This commit includes the V2 changes.
Making changes in v2 API to take an extra parameter rescue_image_ref
as part of the rescue action API.
If specified, this image_ref will be used to rescue the instance.
If the image is not specified, then the base image ref is used by
default.

Partially Implements: blueprint allow-image-to-be-specified-during-rescue

DocImpact

Change-Id: I985b21264841a6a18a66d19ccd41753f78576776
2014-04-10 09:35:57 +00:00
Debo Dutta aeda1f6e64 Add REST API for instance group api extension
Support the Creation, Read, Delete, and List of server groups.

Refactored the code to use objects (https://review.openstack.org/#/c/38979/
Renamed from "instance group" to "server group".

Implements: blueprint instance-group-api-extension

Change-Id: I650a8f191dea5eab5b4b1828f0b9f65e33edea2a
2014-03-06 23:30:44 -08:00
Dan Smith ce936ea5f3 Add os-server-external-events API
Related to blueprint admin-event-callback-api

Change-Id: Ib09d5370622809e4bf1b5825eb9c223a115f7d33
2014-03-06 07:40:43 -08:00
Jenkins 97ab2840e4 Merge "Adds get_console_connect_info API" 2014-03-03 20:21:44 +00:00
Alessandro Pilotti 630a349bc3 Adds get_console_connect_info API
Implements: blueprint hyper-v-rdp-console

Currently graphical console access to Nova instances is limited to
clients which are part of Nova itself (novnc, xvpvnc, spice-html5).
The mentioned clients verify the validity of a console access token
with the following private API:
nova.consoleauth.rpcapi.ConsoleAuthAPI.check_token

The usage of a private API precludes the possibility of employing
external graphical console clients, including FreeRDP-WebConnect, used
to connect to Hyper-V instances via RDP.

This change adds a public API method that wraps the aforementioned
check_token private API. This allows external clients to obtain the
necessary protocol connection information by providing a token
previously obtained with calls to get_vnc_console, get_spice_console
or get_rdp_console.

Includes V2 and V3 API implementations.

Change-Id: Idd1e4f57b16bd1488f3b72bb064cef51321a7c79
2014-02-28 22:05:29 +02:00
Jenkins 8311578248 Merge "Remove broken quota-classes API" 2014-02-28 02:53:49 +00:00
Jenkins 50d3ddaedc Merge "Adds host_ip to hypervisor show API" 2014-02-23 07:21:39 +00:00
Joe Gordon 7d22153d05 Remove broken quota-classes API
It turns out os-quota-classes-sets never worked
(http://lists.openstack.org/pipermail/openstack-dev/2014-February/027574.html). Since this doesn't work no need to keep it around.

V3 removal: Id1f288baa723df825151bd84aa27089271c2b8e4
Original commit: I6b6477481187d16af225d33c1989430e4071d5a8

This patch just removes the API it doesn't remove the quota-class
internals, that will be done in a subsequent patch.

Change-Id: I1110022d6f628d03aaf363da707f2d2ef1600437
2014-02-21 15:14:04 -08:00
Jason Dillaman ac3972b0bc Add a new compute API method for deleting retired services
Services and related compute nodes cannot currently be deleted
from the command-line.  If a node is retired, the service list
will continue to show the retired services.

A delete service REST method has been added to the compute
APIs to support the command-line removal of retired services.

Blueprint: remove-nova-compute
Change-Id: I655a7f818bb59c8971feb5841feeefafc3a4580a
Flags: DocImpact
2014-02-21 16:50:23 -05:00
Jay Lau e05566de71 Adds host_ip to hypervisor show API
After no-compute-fanout-to-scheduler, host_ip was stored in the table
of compute_nodes. Host ip address should be considered as the hypervisor
attribute similar to the hypervisor_type, hypervisor_version etc, and
now those attributes such as hypervisor_type, hypervisor_version etc
are all listed as the hypervisor attribute when calling "nova
hypervisor-show host", so we can also set "host_ip" as a new attribute
output for this command.

DocImpact
1) Only administrators can view hypervisor detail in nova.
2) It can help improve debug capabilities for nova. For example, if
admin using SimpleCIDRAffinityFilter, then after VM is deployed, admin
can check if the VM was deployed successfully to the desired host by
checking ip address of the host via "nova hypervisor-show host".
3) Add host_ip to the output for "nova hypervisor-show"

Implement bp hypervisor-show-ip
Change-Id: I006a504d030be1f47beb68a844647026a6daf0ce
2014-02-05 22:52:28 +08:00
Roman Podoliaka c557472496 Add preserve_ephemeral option to rebuild
The preserve_ephemeral option for rebuild will preserve the content of
the ephemeral partition, making stateful golden image based
deployments possible even when clouds haven't deployed Cinder, or the
hypervisor doesn't support Cinder (e.g. BareMetal / Ironic).

Partial-Bug: #1174154
blueprint: baremetal-preserve-ephemeral
Co-Authored-By: Robert Collins <rbtcollins@hp.com>

Change-Id: Id33d5d4107f89814842a3f0b7f33690dd7e3aadc
2014-01-16 16:24:05 +02:00
Chris Yeoh 0bfcfcdeec Remove V2 API version of coverage extensions
As discussed at the summit in the QA stream, this removes
the coverage extension from the V2 API.

According to the API Change Guidelines
https://wiki.openstack.org/wiki/APIChangeGuidelines
we should not be doing this. However the coverage
extension is a rather special case. It has security issues
such that it shouldn't be used in a production cloud
environment. It also doesn't work properly so its usefulness
to measure API coverage is limited. And in the past the presence of
this plugin has been used as a reason not to accept
an alternative technique to measure API coverage.

This is the proposed replacement

https://review.openstack.org/#/c/25882/

Change-Id: I07d798129ee277a6f7691c25f88c07a5204c0943
2013-11-18 22:35:39 +10:30
Melanie Witt e5a5a0f310 Expose additional status in baremetal API extension
Add fields: uuid, task_state, updated_at, and pxe_config_path
to aid system admins in troubleshooting issues.

Fixes bug 1184449

Change-Id: Ia4c03cb228b3efe602455bf05883ddf03b7f18da
2013-10-22 03:58:43 +00:00
Russell Bryant fa13644b05 Add os-assisted-volume-snapshots extension
Add a new API extension that exposes assisted volume snapshot
capabilities.  This extension is admin only by default.  We expect it to
only be called by Cinder.  If you have your deployment set up in such a
way that your adminURL is different from the public, this extension can
only be loaded in the admin API instance.  Cinder will pull that URL out
of the service catalog to use.

Part of blueprint qemu-assisted-snapshots

Change-Id: I79e22ab6ef66fa16dc534a4336e766065702b2f5
2013-09-03 13:18:25 -04:00
Nikola Dipanov 8c3475706d Servers API for the new BDM format
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
2013-07-26 12:33:01 +02:00
Jenkins f9b154fc97 Merge "Per-project-user-quotas for more granularity" 2013-07-26 03:54:52 +00:00
Vishvananda Ishaya 8f51b120b4 Add support for volume swap
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
2013-07-24 15:09:39 -07:00
liyingjun 77b4012a02 Per-project-user-quotas for more granularity
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
2013-07-24 12:23:32 +08:00
Andrew Laski e53fb7dcdd API for shelving
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
2013-07-16 20:17:49 -04:00
Oleg Bondarev e354a56933 Add "ExtendedVolumes" API extension
- 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
2013-07-10 11:09:21 +04:00
Mahesh Panchaksharaiah 405ebb9028 List migrations through Admin API
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
2013-07-09 11:25:35 +05:30
Jenkins 7b18e1433f Merge "Enhance the validation of the quotas update" 2013-06-14 17:25:41 +00:00
gengjh d5bbfad3d0 Enhance the validation of the quotas update
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
2013-06-13 15:36:08 +08:00
Andrea Rosa c741e862fd Give a way to save why a service has been disabled.
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
2013-06-12 11:27:25 +10:00
Jenkins 00d0e2c187 Merge "Return Customer's Quota Usage through Admin API" 2013-06-11 20:39:00 +00:00
Kaushik Chandrashekar b27a6cb399 API to get the Cell Capacity
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
2013-06-05 12:52:55 -05:00
Andrew Melton f5d790df0a Launch_at and terminated_at on server(s) response
Implements bp usage-details-on-instance

Change-Id: I0a9101c43a51d597a1eaff9d5a5d08d602024e72
2013-05-31 15:50:40 -04:00
Aarti Kriplani cdd998c418 Delete a quota through admin api.
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
2013-05-23 16:25:29 +05:30
Mahesh K P 9f9c40d569 Return Customer's Quota Usage through Admin API
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
2013-05-17 10:42:07 +05:30
Rick Harris 5613818b1d 'm1.tiny' now has root_gb=1
`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
2013-05-16 23:18:22 +00:00
Russell Bryant 56f5172f33 Revert "Include list of attached volumes with instance info"
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
2013-05-15 20:10:00 -04:00
Jenkins 3492d83140 Merge "Include list of attached volumes with instance info" 2013-05-15 18:41:27 +00:00
Phil Day 1b2c121f13 Allow a floating IP to be associated to a specific fixed IP
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
2013-05-10 01:29:27 +01:00
Oleg Bondarev dd66f235ec Include list of attached volumes with instance info
Fixes bug 1112998

Change-Id: I1c3eb578339aabbcfed107043f39e30daf633c4a
2013-05-08 10:18:10 +04:00
Zhi Yan Liu 262b285a04 Add an extension to show the mac address of a ip in server(s)
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>
2013-04-12 13:37:03 +08:00
Zhi Yan Liu 50e30a6b13 Add an extension to show the network id of a virtual interface
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>
2013-04-08 16:35:26 +08:00
Jenkins a41d9c6c10 Merge "Add an extension to show image size." 2013-02-21 04:44:15 +00:00
Jenkins 6d0ed8f86f Merge "Add support for network adapter hotplug." 2013-02-20 06:16:33 +00:00
Andrew Laski d2b553030e Add an extension to show image size.
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
2013-02-19 18:53:10 -05:00
Dan Smith a9add7d35e Add support for network adapter hotplug.
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
2013-02-19 14:12:54 -05:00
Morgan Fainberg 59aaf1dff9 Default SG rules for the Security Group "Default"
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
2013-02-19 01:50:51 +00:00
Andrew Laski 9ed8d398c2 API extension for accessing instance_actions
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
2013-02-13 14:53:43 -05:00
Vishvananda Ishaya 80bd1de65a Simplify and optimize az server output extension.
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
2013-02-12 09:00:33 -08:00
Vishvananda Ishaya 64fcd4de11 Add an extension to show the type of an ip.
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
2013-02-12 09:00:13 -08:00
Kravchenko Pavel 01a25e9890 Extension for rebuild-for-ha
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>
2013-02-07 14:38:38 +02:00
gtt116 0d813e44ff Add REST API to show availability_zone of instance.
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
2013-02-03 08:57:20 +00:00
Arata Notsu 0a8cc37c0c Add REST api to manage bare-metal nodes
* create/delete/list/show bare-metal nodes
* add/remove interfaces to/from bare-metal nodes

blueprint general-bare-metal-provisioning-framework

Change-Id: I1e76f7e3f7f74087e844cfb23dc92154f4c3e127
2013-01-23 17:39:32 +09:00
Jenkins a88152a476 Merge "Cells: Add cells API extension" 2013-01-15 21:39:16 +00:00