Commit Graph

544 Commits

Author SHA1 Message Date
Jenkins 77f80e8150 Merge "Verify os-aggregates.inc on sample files" 2016-08-25 14:53:02 +00:00
Sergey Nikitin 2132cfaa30 Updated common create server sample request because of microversion 2.37
Change I89b18709e0cfbbcbf9be96a91a13a1356cdf85b0 added new
microversion 2.37. This microversion added required field 'networks'
into create server request. By default Nova functional api tests use
samples from '/servers' directory to create a server. But now such
requests got 400 Bad Request because of missed 'networks' field.

We must handle this case if we are testing microversions >= 2.37.

This patch will add sample for microversion 2.37+

Closes-Bug: 1613998

Change-Id: I40cac263c97a4a871072d0efe5ebff295c2d917e
2016-08-22 18:39:35 +03:00
Jenkins 737f6c7915 Merge "Return HTTP 400 on list for invalid status" 2016-08-20 22:46:50 +00:00
Sean Dague 4461cdf4c4 don't report network limits after 2.35
We correctly stopped reporting the limits for things like security
groups and floating ips after mv 2.35. We completely missed that
limits are modified by the used_limits extension, and hilarity
ensued. We were reporting no maxSecurityGroups over the wire, but we
were reporting totalSecurityGroups through the magic of extensions.

Change-Id: I85b2b41d919ed6987d4c9288905ccce49c10c81f
Closes-Bug: #1614133
2016-08-18 23:55:58 +08:00
dineshbhor 984d00919f Return HTTP 400 on list for invalid status
Raised 400 HTTPBadRequest if user passes invalid status to list
server API. Increased API microversion to v2.38 to maintain
backward compatibility.

Implements: blueprint response-for-invalid-status

Co-Authored-By: Ed Leafe <ed@leafe.com>

Change-Id: I25608280c2f30e70802e173c183de4e8da9a983b
2016-08-17 13:47:53 +00:00
Matt Riedemann d727795d66 Add REST API support for get me a network
This adds the 2.37 microversion to the REST API for automatically
allocating a network, i.e. get me a network.

The majority of the changes to the REST API concern request
validation. 'networks' is now required in the server POST body
after this microversion. The 'auto' or 'none' special network
uuid values are used, but if specified, can not be specified
with any other requested network values.

The other special case that is checked is when the minimum
compute service version is not new enough to support this change,
i.e. a Mitaka compute will not have the network API code that
knows how to deal with the special auto/none network IDs. Because
the REST API is checking the service version, the service caches
the service version after the first check. Once all computes are
updated to Newton then a restart of the nova-api service(s) will
be required to flush the cache. A release note is provided for
this situation.

The api-ref docs are also updated for this microversion including
an example API sample request.

The matching Tempest change to test this is here:

I89b18709e0cfbbcbf9be96a91a13a1356cdf85b0

The matching python-novaclient change is here:

I6636ddcd3be7bf393d2d69cc6c1ba5c7d65ff674

Implements blueprint get-me-a-network

Change-Id: I89b18709e0cfbbcbf9be96a91a13a1356cdf85b0
2016-08-15 14:10:42 -04:00
Takashi NATSUME 51073b3132 api-ref: Example verification for os-simple-tenant-usage.inc
Change-Id: I575412d578d670bdc598c687256a33f0b579a99e
Implements: blueprint api-ref-in-rst
2016-08-09 23:52:42 +00:00
ghanshyam cbd3ec476f Strict ImageRef validation to UUID only
Currently imageRef in server create, rebuild and rescue
operation can be accepted as random url which contains image
UUID and fetch the UUID from that.

As /images proxy APIs are deprecated, and ImageRef in
server creation etc are UUID only and valid against glance.

This patch makes imageRef handling as UUID only and
return 400 if non UUID are requested.

NOTE- Previously nova use to allow the empty string which was
      ok in case of boot from volume.
      We will keep the same behavior of allowing empty string in case of
      boot from volume only and 400 in all other case.

Closes-Bug: #1607229

Change-Id: I49f4da62c1b5b3fd8c5f67039ae113f76722b26c
2016-08-04 02:22:15 +00:00
Jenkins ef65d79eac Merge ""nova list-extensions" not showing summary for all" 2016-07-27 14:13:47 +00:00
Pushkar Umaranikar 50c4033ac2 "nova list-extensions" not showing summary for all
Change nova extensions API to show summary
description for V2.1 API.

Change-Id: Iefd087baddd65a52a20f1b98ae3efe22b3c5085c
Closes-Bug: #1532098
2016-07-26 16:45:30 +00:00
jichenjc f277d643c2 Verify os-aggregates.inc on sample files
verified all sample files is correct and adjust
some format of the request Json file

part of bp:api-ref-in-rst

Change-Id: Ie9dd24858056337bcae9b03259d4f84de4fc1ab8
2016-07-26 02:06:28 +08:00
He Jie Xu 2f4f098c64 Add api-sample test for showing quota detail
The method of showing quota detail is missing the api sample test.
This patch adds that.

Part of bp:api-ref-in-rst

Change-Id: I943af1d856f890eab4c34674d251f698ee84a836
2016-05-09 10:49:22 +08:00
He Jie Xu 73eda1cb7d Remove the legacy v2 API test scenarios from API sample tests
This patches from the test scenarios for the legacy v2 from API
sample tests. There still have some codes for legacy v2 which should
be cleanup, but that can be done later patches. This patch just stop
the test on the legacy v2 API.

Partially implements blueprint remove-legacy-v2-api-code

Change-Id: I38626e5a4aa98cbfd7b65b5eb0edbcae96e5b3f2
2016-05-04 15:49:52 +08:00
Jenkins fc1b48380b Merge "Add functional test for v2.7" 2016-04-21 13:27:34 +00:00
srushti 3e527265b6 Fix invalid uuid warnings in api testcases
Currently, unit testcases of api emit FutureWarnings
from oslo.versionedobjects about invalid uuids as documented here[1].

This commit changes these tests to use valid uuids so
that when they are run these warnings are no longer emitted.

Made changes to project_id in fakes.py to use valid project_id
which removes warnings related to invalid uuids in testcases.

Also made changes to project_id in JSON headers to use valid
uuids in functional testcases same as that in unit testcases.

[1] http://docs.openstack.org/developer/oslo.versionedobjects/api/fields.html#oslo_versionedobjects.fields.UUIDField

Partial-Bug: #1557378
Change-Id: I5f69a2c3dc4d0279aed11750e6758b624debb64f
2016-04-12 07:31:15 +00:00
Sean Dague 78307643ac allow samples testing for PUT to not have a body
Previously all testing of the PUT method assumed that a body existed,
which is implied by the HTTP spec, but not strictly stated. The tags
api-wg spec specifies an interface with tags that uses PUT with no
payload.

This makes our _do_put able to handle that case, and removes empty
templates when not needed.

Change-Id: I3d869d63affd08e321944c0082ee9865124d38e2
2016-04-07 09:31:12 -04:00
Sergey Nikitin 537df23d85 Added server tags support in nova-api
Added new API microversion which allows the following:
- add tag to the server
- replace set of server tags with new set of tags
- get information about server, including list of tags for server
- get just list of tags for server
- check if tag exists on a server
- remove specified tag from server
- remove all tags from server
- search servers by tags

DocImpact
APIImpact

Implements: blueprint tag-instances

Change-Id: I9573aa52aae9f49945d8806ca5e52ada29fb087a
2016-04-06 16:38:21 +03:00
jichenjc fc164e3908 Add functional test for v2.7
microversion v2.7 was added without a functional test,
even though we can cover most cases in unit test
for negative case, it would be better to
have a functional test for a specific microversion API change.

Change-Id: I4d5576cc4ebcdeaa4e4f067fe9c6207280ad7eda
2016-03-20 19:59:24 +08:00
Sean Dague 0c57f3c4e0 Drop the use of magic openstack project_id
When we put validation into the project_id in urls we had to expand
the default set of allowed values to include 'openstack' and
'fake'. This cleans up all the instances of 'openstack' in the
functional tests, and api samples, and instead uses a constant string
which looks like a real project_id.

We need a stable project_id and not a sentinel otherwise the samples
will be arbitrarily changes on every update.

Change-Id: I1099fd43d2374abd1658b0917765d5375c4b8d1d
2016-03-08 19:34:56 +00:00
Jenkins 7e3e92e826 Merge "Update time is not updated when metadata of aggregate is updated" 2016-03-04 14:10:57 +00:00
Eli Qiao f18a46c072 API: Improve os-migrateLive input parameters
This is os-migrateLive API changes:

    * 2.25 - Make block_migration to support 'auto' value, remove
             disk_over_commit.

Partially implements: blueprint making-live-migration-api-friendly
APIImpact
DocImpact
Change-Id: Ibb0d50f0f7444028ef9d0c294aea41edf0024b31
2016-02-29 17:44:17 +00:00
Pallavi b4f7066e7c Update time is not updated when metadata of aggregate is updated
For example, When aggregate zone is updated, time is not getting updated
in updated_at field.

So, modified the code such that time gets updated in updated_at field
whenever the aggregate metadata content gets modified.

Change-Id: Icb65313ba85562fadeddbc1890ca5d463e74d3c2
Closes-Bug: #1538014
2016-02-29 16:59:10 +05:30
Andrea Rosa fa00292546 Abort an ongoing live migration
This change adds a DELETE call on the server-migrations object to cancel
a running live migration of a specific instance.
TO perform the cancellation the virtualization driver needs to support
it, in case that the feature is not supported we return an error.
We allow a cancellation of a migration only if the migration is
running at the moment of the request and if the migration type is equal
to 'live-migration'.
In this change we implement this feature for the libvirt driver.
When the cancellation of a live migration succeeded we rollback the live
migration and we set the state of the Migration object equals to
'cancelled'.
The implementation of this change is based on the work done by the
implementation of the feature called 'force live migration':
https://review.openstack.org/245921

DocImpact
ApiImpact

Implements blueprint: abort-live-migration
Change-Id: I1ff861e54997a069894b542bd764ac3ef1b3dbb2
2016-02-26 15:11:41 +00:00
ShaoHe Feng 98e4a64ad3 Add new APIs and deprecate old API for migrations
This patch does two things:
1. Add two APIs /servers/migrations:index/show for server migrations.
Two new novaclient commands server-migration-list and
server-migration-show will also be added.
ref: I071198fa9ba0699383bdebf4fab54714a435e6c3

2. Add ref link for /os-migrations
The old top-level resource `/os-migrations` won't be extended anymore.
It is deprecated.
Adding migration_type for it, also add ref link to
/servers/{uuid}/migrations/{id} for it when the migration is an
in progress migration.

Partially implements blueprint live-migration-progress-report

Change-Id: Ia92ecbe3c99082e3a34adf4fd29041b1a95ef21e
Co-authored-by: ShaoHe Feng <shaohe.feng@intel.com>
2016-02-26 14:25:48 +00:00
Pawel Koniszewski c9091d0871 Add new API to force live migration to complete
This change adds manual knob to force ongoing live migration to
complete. It is implemented as a new server-migrations API.

DocImpact
ApiImpact

Implements: blueprint pause-vm-during-live-migration
Change-Id: I034b4041414a797f65ede52db2963107f2ef7456
2016-02-08 08:59:52 +01:00
Mark Doffman 934a0e4ede Make os-instance-action read deleted instances.
Add a microversion change to the os-instance-actions API so that we
mutate the context to set 'read_deleted="yes"' when looking up the
instance.

Blueprint: os-instance-actions-read-deleted-instances
Change-Id: I607a28bbe06e20e17ee47a283e06b1d42b5c0e84
2016-02-05 07:59:52 -05:00
Jenkins 749cc08372 Merge "Enable volume operations for shelved instances" 2016-02-05 03:29:21 +00:00
Andrea Rosa cf34a32820 Enable volume operations for shelved instances
This change enables the attach and detach volume operations for
instances which are in shelve and shelved_offloaded state.
The code to manage the actual attach and detach is implemented by this
change: https://review.openstack.org/259528
New tempest tests are going to be written for testing the new feature.

APIImpact
DocImpact by this change we are allowing operations which were not
allowed before, we need to track this change in the documentation.

Partially implements blueprint: volume-ops-when-shelved

Change-Id: I43b67a50d998d43a6ff78c917093c513231b6ff2
2016-02-03 17:51:26 +00:00
Balazs Gibizer 1269f5aeb1 doc: fix malformed api sample
I74b1a340c5ab98fdea2186e87dd13f42ce7c7661 introduced a malformed api
sample and the tox -e docs fails since then. This patch fixes the
sample file.

Closes-bug: #1539071
Change-Id: Ica76db8928fc98db1a09074fdc46439c920e93d8
2016-01-28 14:08:16 +01:00
Ghanshyam 42e4126f05 Enable all extension for server PUT API sample tests
As extensions options has been deprecated, API sample tests
should run against all extension enable.

This commit enables all extensions for server PUT API tests and
remove its specific extensions tests and sample files.

Adding a hack for other tests which are still running with specific
extensions. That is needed to avoid all tests updates in single commit.

Partially implements blueprint api-sample-tests-with-all-extensions

Change-Id: I9c44da3d9df39c1db0948194502be52f4f15acf2
2016-01-28 14:06:36 +09:00
Chuck Carmack 4841cab03e REST API changes for user settable server description
This patches adds changes to the Nova REST API to allow
users to create a server with a description, rebuild
a server with a description, update the description,
and get the description in the server details.

Note: Future commits will be done to support the server
description in python-novaclient and openstack-client.

APIImpact

Implements blueprint: user-settable-server-description

Change-Id: I74b1a340c5ab98fdea2186e87dd13f42ce7c7661
2016-01-25 21:33:30 +00:00
Sean Dague 1f16a763e7 Make project_id optional in v2.1 urls
This introduces microversion 2.18 which signals that the {project_id}
is no longer required in URLs.

It tests this with an additional scenario in api_samples which makes
all the requests without the project_id in the url (using a different
noauth middleware to accomplish this).

Update the link fixer in the ApiSamples matching code to also update
for optional project_id. This is the least worse approach here,
because if we set request_api_version, then we have to duplicate the
entire template tree as well, which we definitely don't want to do, as
it now correctly handles either url form.

This updates the auth tests to bifurcate with testscenarios instead of
the subclass model, which makes for more consistent tests.

In order to support adding routes without project_id we have to be
able to restrict project_id something that doesn't match any of our
top level routes.

The default for this is [0-9a-f\-]+ which will match all of the
following:

 - keystone default generated project_ids [0-9a-f]{32}
 - integer project_ids (\d+) - known in use by RAX
 - uuids with dashes (no known users, but suspect there might be)

This can be overrided with the new (but already deprecated)
``project_id_regex`` config option.

NOTE: we used this feature to expand the regex to match 'fake' and
'openstack' as valid project ids in tests. Those concepts are deeply
embedded in our tests, and need to be unwound independently.

APIImpact

Implements bp:service-catalog-tng

Co-Authored-By: Augustina Ragwitz <auggy@cpan.org>
Change-Id: Id92251243d9e92f30e466419110fce5781304823
2016-01-24 06:38:15 -05:00
Jenkins 833face153 Merge "Add a REST API to trigger crash dump in an instance." 2016-01-22 23:45:08 +00:00
Jenkins 8101d14625 Merge "ServerGroupsV213SampleJsonTest should actually test v2.13" 2016-01-22 11:12:55 +00:00
Ken'ichi Ohmichi 7608b430cc Fix indents of servers-detail-resp.json
servers-detail-resp.json of microversion v2.16 contains some invalid
indents which are made with tabs instead of spaces.
This patch fixes them by replacing with spaces.

Change-Id: I1ee55e7b8ec78bde1d2e6097585b8d3db07d68f2
2016-01-20 23:37:34 +00:00
Tang Chen 30c6f49817 Add a REST API to trigger crash dump in an instance.
Change I9b649aafba011d537e3fe4eebef7a678ff6733e4 has added a
compute API to trigger crash dump in instance. This patch adds
the REST API to nova. It enables users to trigger crash dump in
an instance through REST API.

Change-Id: I6ed777ff637254b4b79417008f9055dd19fc7405
Implements: blueprint instance-crash-dump
Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2016-01-20 09:42:50 +08:00
Tomi Juvonen 9345d5835f Add host_status attribute for servers/detail and servers/{server_id}
When a compute service fails, the power states of the hosted VMs are not
updated. A normal user querying his or her VMs does not get any indication
about the failure. Also there is no indication about maintenance.

This change will expose new attribute host_status to user querying his
VMs. Attribute is only seen if policy allows.

DocImpact: This adds API microversion
Implements blueprint get-valid-server-state
APIImpact

Change-Id: I5abea08bdc27624a7f23a7db8964f8c2a7b0eaa7
2016-01-16 20:07:49 +02:00
Matt Riedemann 0875a411aa ServerGroupsV213SampleJsonTest should actually test v2.13
This API samples test was not using testscenarios properly,
and it wasn't extending the correct test class, so it was:

1. Not actually running tests.
2. Not running tests at the correct microversion (v2.13).

This fixes the testscenarios setup for the subclass and the
API samples and templates (since it's not using subs for the
intended project_id that was in the samples).

Also fixes a typo in ApiSampleTestBaseV21.

Change-Id: I27e8fce5d456914d88098c6cfabe05fa8afbc8eb
Closes-Bug: #1534354
2016-01-14 14:48:40 -08:00
Balazs Gibizer 1c30edc5b2 api: add soft-affinity policies for server groups
Allows soft-affinity and soft-anti-affinity to be used as a policy
for the server group api extension. Add soft policies
to the JSONSchema, which validates server group definitions.
Bump API microversion to 2.15.

Implements: blueprint soft-affinity-for-server-group
Change-Id: I376bdba7df1344d269aa126f4896610baf2e16a2
2016-01-07 10:43:57 +01:00
Jenkins 73ce34ad61 Merge "Makes GET extension info sample tests run for v2 also" 2016-01-05 04:57:00 +00:00
Jenkins c5c99fe968 Merge "remove nova-cert from most functional tests" 2015-12-21 09:05:10 +00:00
Sean Dague f9f3946e0d Use just ids in all request templates for flavors/images
While the API allows for strings which happen to end in an ID for
flavorRef/imageRef, the common path is really just the ID itself, and
we should have the samples do this. The use of full urls in our
samples makes it seem like this is more meaningful than it really is,
and that you could pass a url to a remote system, for instance, which
won't work at all.

Change-Id: I669619b627f954232712d54498b3744353d25451
2015-12-17 13:01:28 -05:00
Jenkins f4a566eac3 Merge "Remove onSharedStorage from evacuate API" 2015-12-17 17:54:01 +00:00
Sean Dague af55385203 remove nova-cert from most functional tests
nova-cert is only needed for 1 API resource (os-certificates) and the
ec2 api. We don't need to run it on all the other functional
tests. Getting rid of a service start / stop on all of them shaves a
little time off each test, and means noise in logs.

Change-Id: I175b8913fe5d19c8b552c60c793565c042c6b874
2015-12-17 10:54:08 -05:00
Jenkins ada4eca47d Merge "Remove cells service from api samples that don't test cells" 2015-12-15 20:52:55 +00:00
Balazs Gibizer c01d16e81a Remove onSharedStorage from evacuate API
The patch I4217bd00d8c253db522241885dba2847a26af6df made the
on_shared_storge flag optional in the compute api in Liberty.
This patch removes the corresponding onSharedStorage flag from the
REST API as nova can easily detect this information.

APIImpact
DocImpact

Implements: bp remove-shared-storage-flag-in-evacuate-api
Change-Id: I54bfa1275e188573c1b95d770d89160a86cdf52c
2015-12-15 11:23:11 +01:00
Sean Dague 7974f83743 Remove cells service from api samples that don't test cells
Instead of having cells service started for every api samples test,
whether or not it is used, only start it on test_cells. This saves
some setup / teardown time, and makes things a bit more explicit.

It also removes the cells service from service listing for a couple of
api samples (az and hosts). That's more indicative of what people will
see in real systems as cells is still a minority and experimental
deploy option.

Change-Id: Ie6d7e8978fd2b3441a141c69d4191266d76e7327
2015-12-14 10:16:52 -05:00
Ghanshyam 40dc5847e2 Makes GET extension info sample tests run for v2 also
Currently get extension info test runs only for v2.1 and
v2 compatible mode. Because this tests get "os-create-backup"
extension info which does not exsist in v2 as separate extension.

This commit make that test to run to get 'os-agents' extension
info and run that for v2 also.

NOTE- Due to namespace link and updated date used in extension
detail info, we need to keep separate sample for v2 and v2.1

Change-Id: I643d278bf1916df6f5755c094a4ce7956551403e
2015-12-14 15:06:37 +09:00
Kevin_Zheng 6c74a145bc Add project-id and user-id when list server-groups
Currently, command "nova server-group-list" and
"nova server-group-get" doesn't return groups'
project id and user id information. It is really
hard to identify which group belong to which
project/user when admin user use this command
with option "--all-projects".

This patch add project-id and user-id to the list.
All os-server-groups APIs will contain the above
mentioned data in the response data.

DocImpact: This adds API microversion
APIImpact: Project id information will be returned for
os-servers-group API

Change-Id: I0405ed6271c33981578841cfade220758615b1fd
Implements: blueprint add-project-id-and-user-id
Partial-bug: #1481210
Depends-On: I167141676ef4f597a1c022c1fd5dc96fd55d02ad
2015-12-10 20:11:33 +08:00
ghanshyam 14eb1d7483 Enable all extension for image API sample tests
As extensions options has been deprecated, API sample tests
should run against all extension enable.

This commit enables all extensions for Image API tests and remove its specific
extensions tests and sample files.
Also adds some basic hack to merge all APIs tests for all extension.

Partially implements blueprint api-sample-tests-with-all-extensions

Change-Id: Ib603fbccfdc09b25d4c69c872d79e4cafc30fff5
2015-10-20 14:42:53 +09:00