<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/python-openstackclient.git/openstackclient/tests/functional/compute, branch stable/stein</title>
<subtitle>opendev.org: openstack/python-openstackclient
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/'/>
<entry>
<title>Fix openstack server list --deleted --marker option</title>
<updated>2020-01-21T21:56:03+00:00</updated>
<author>
<name>KeithMnemonic</name>
<email>keith.berger@suse.com</email>
</author>
<published>2019-10-24T18:39:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=3b48ef54c8ad205dd086520cc17e4f96583e88ec'/>
<id>3b48ef54c8ad205dd086520cc17e4f96583e88ec</id>
<content type='text'>
This patch removes using the "name" option for a marker when
--deleted is also used. The find_resource() function
that is being called does not correctly handle using the marker
as the "name" in the search when also using deleted=True.
One simple way to fix this is force the marker to only be an ID
when --deleted is used. This is how the nova client works.

Using the --deleted option is available to users with the admin
role by default. If you're an admin listing --deleted servers
with a marker by name, find_resource() is going to fail to find
it since it doesn't apply the --deleted filter to find_resource().

The find_resource() function is trying to find the marker server
by name if it's not found by id, and to find it by name it's
listing servers with the given marker as the name, but not
applying the --deleted filter so it doesn't get back any results.

In the story it was suggested modifying find_resource to include
the deleted query param when it's specified on the command line but
that didn't work because it still results in something like this:

http://192.168.1.123/compute/v2.1/servers?deleted=True&amp;name=4cecd49f-bc25-4a7e-826e-4aea6f9267d9

It seems like there are bugs in find_resource().

Restricting the marker to be the server ID when listing deleted servers
is probably OK since if you're using --deleted you're an admin and you could
be listing across all projects and if you're filtering by a server across all
projects anyway (not that you have to, I'm just saying if you are), or even
showing a server in another project, you have to do it by id rather than name
because find_resource() won't find the server in another project by name, only ID.

story: 2006761
Task: 37258

The server test case was removed from the cherry-pick as it used
features of the openstack client that are not in stable/stein

Change-Id: Ib878982b1d469212ca3483dcfaf407a8e1d2b417
(cherry picked from commit c42c27aa926e93a2507e686eeaf0c5510a29d245)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch removes using the "name" option for a marker when
--deleted is also used. The find_resource() function
that is being called does not correctly handle using the marker
as the "name" in the search when also using deleted=True.
One simple way to fix this is force the marker to only be an ID
when --deleted is used. This is how the nova client works.

Using the --deleted option is available to users with the admin
role by default. If you're an admin listing --deleted servers
with a marker by name, find_resource() is going to fail to find
it since it doesn't apply the --deleted filter to find_resource().

The find_resource() function is trying to find the marker server
by name if it's not found by id, and to find it by name it's
listing servers with the given marker as the name, but not
applying the --deleted filter so it doesn't get back any results.

In the story it was suggested modifying find_resource to include
the deleted query param when it's specified on the command line but
that didn't work because it still results in something like this:

http://192.168.1.123/compute/v2.1/servers?deleted=True&amp;name=4cecd49f-bc25-4a7e-826e-4aea6f9267d9

It seems like there are bugs in find_resource().

Restricting the marker to be the server ID when listing deleted servers
is probably OK since if you're using --deleted you're an admin and you could
be listing across all projects and if you're filtering by a server across all
projects anyway (not that you have to, I'm just saying if you are), or even
showing a server in another project, you have to do it by id rather than name
because find_resource() won't find the server in another project by name, only ID.

story: 2006761
Task: 37258

The server test case was removed from the cherry-pick as it used
features of the openstack client that are not in stable/stein

Change-Id: Ib878982b1d469212ca3483dcfaf407a8e1d2b417
(cherry picked from commit c42c27aa926e93a2507e686eeaf0c5510a29d245)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix functional tests for py3</title>
<updated>2020-01-12T07:51:11+00:00</updated>
<author>
<name>Eric Fried</name>
<email>openstack@fried.cc</email>
</author>
<published>2019-10-29T20:55:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=29ec8c8134072b9b3eb6ff89320506bef9ec358a'/>
<id>29ec8c8134072b9b3eb6ff89320506bef9ec358a</id>
<content type='text'>
Fix various things so the functional tests will work under python3:

- A hashlib.md5() can only be update()d with an encoded string in py3.
- There's no dict.iteritems(), change to dict.items() (which is already
  an iterator).
- Open temp files with 'w+' mode rather than the default 'w+b' (as an
  alternative to encoding all the write and expected-read payloads as
  bytes).
- (This is a weird one) Explicitly raise SkipTest from unittest (rather
  than unittest2, which is where cls.skipException landed). Not sure why
  this is busted, but this moves the ball.

Conflict/issue with raising SkipTest on this branch.

(cherry picked from commit f1d742f32adeb662a3fdf8fa3ef3bc391e71ed81)
(cherry picked from commit b866202f54afddca66a77cd989b082e193a96956)

Includes squash of:
Before writing object data to stdout, re-open it in binary mode

Otherwise, you can hit TypeErrors on Python3.

Closes-Bug: 1775482
(cherry picked from commit 415b48056d9d021e04ec972029040a89a6b13928)

Change-Id: Ic9b2b47848a600e87a3674289ae7ae8c3e091fee
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix various things so the functional tests will work under python3:

- A hashlib.md5() can only be update()d with an encoded string in py3.
- There's no dict.iteritems(), change to dict.items() (which is already
  an iterator).
- Open temp files with 'w+' mode rather than the default 'w+b' (as an
  alternative to encoding all the write and expected-read payloads as
  bytes).
- (This is a weird one) Explicitly raise SkipTest from unittest (rather
  than unittest2, which is where cls.skipException landed). Not sure why
  this is busted, but this moves the ball.

Conflict/issue with raising SkipTest on this branch.

(cherry picked from commit f1d742f32adeb662a3fdf8fa3ef3bc391e71ed81)
(cherry picked from commit b866202f54afddca66a77cd989b082e193a96956)

Includes squash of:
Before writing object data to stdout, re-open it in binary mode

Otherwise, you can hit TypeErrors on Python3.

Closes-Bug: 1775482
(cherry picked from commit 415b48056d9d021e04ec972029040a89a6b13928)

Change-Id: Ic9b2b47848a600e87a3674289ae7ae8c3e091fee
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix service discovery in functional tests</title>
<updated>2019-03-22T21:28:55+00:00</updated>
<author>
<name>Glenn Van de Water</name>
<email>glenn.van_de_water@nuagenetworks.net</email>
</author>
<published>2019-03-08T15:31:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=8fe45571b925bc6481c33fab7ccc6071f66f3c4f'/>
<id>8fe45571b925bc6481c33fab7ccc6071f66f3c4f</id>
<content type='text'>
If a required service is not enabled then we skip the test.
The discovery is done by tests/functional/base.py:is_service_enabled
but this method is broken, credentials are not passed to the
'openstack service show' command so every call will fail and every test
that relies on it will be skipped. This commit fixed that method and
the issues that popped up when re-enabling tests.

Network segment range:
 - issue where we assumed network-segment-range extension is always
   present
 - issue where we compare integers and string representations of numbers

Subnet:
 - issue where we try to deepcopy an uncopyable object in UnsetSubnet

Change-Id: Id3cc907c1ed2a25b49cf6f4a7233e0401a02383a
Story: 2005169
Task: 29908
(cherry picked from commit 7741347041b078ca4d687597897194d7797d202d)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a required service is not enabled then we skip the test.
The discovery is done by tests/functional/base.py:is_service_enabled
but this method is broken, credentials are not passed to the
'openstack service show' command so every call will fail and every test
that relies on it will be skipped. This commit fixed that method and
the issues that popped up when re-enabling tests.

Network segment range:
 - issue where we assumed network-segment-range extension is always
   present
 - issue where we compare integers and string representations of numbers

Subnet:
 - issue where we try to deepcopy an uncopyable object in UnsetSubnet

Change-Id: Id3cc907c1ed2a25b49cf6f4a7233e0401a02383a
Story: 2005169
Task: 29908
(cherry picked from commit 7741347041b078ca4d687597897194d7797d202d)
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace assertEqual(True/False, expr) with assertTrue/assertFalse</title>
<updated>2018-11-14T06:50:05+00:00</updated>
<author>
<name>liuyamin</name>
<email>liuyamin@fiberhome.com</email>
</author>
<published>2018-11-14T03:19:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=5bec3b7e3b7d4fed1bedd5a848294f550d30ed47'/>
<id>5bec3b7e3b7d4fed1bedd5a848294f550d30ed47</id>
<content type='text'>
In some cases, If the result of expr is a boolen value, we shoud
use assertTrue/assertFalse to instead. Because it is clear and simple.

Change-Id: I53b345fc3915a7b0e737e9dd4d58fe09c746d61c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In some cases, If the result of expr is a boolen value, we shoud
use assertTrue/assertFalse to instead. Because it is clear and simple.

Change-Id: I53b345fc3915a7b0e737e9dd4d58fe09c746d61c
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Default --nic to 'auto' if creating a server with &gt;= 2.37"</title>
<updated>2018-10-26T03:20:17+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.openstack.org</email>
</author>
<published>2018-10-26T03:20:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=0fa3c84b4fff273c75de454736cd0d631ee40a08'/>
<id>0fa3c84b4fff273c75de454736cd0d631ee40a08</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Slow down and retry aggregate create/delete to lessen race</title>
<updated>2018-07-06T18:15:59+00:00</updated>
<author>
<name>Dean Troyer</name>
<email>dtroyer@gmail.com</email>
</author>
<published>2018-07-06T18:15:59+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=26c268a910eaa9a36112aff0c38892759057c351'/>
<id>26c268a910eaa9a36112aff0c38892759057c351</id>
<content type='text'>
Change-Id: I676894c1bfd3156313d88e6457250b9ff226118b
Signed-off-by: Dean Troyer &lt;dtroyer@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I676894c1bfd3156313d88e6457250b9ff226118b
Signed-off-by: Dean Troyer &lt;dtroyer@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Retry floating IP tests</title>
<updated>2018-07-06T10:24:16+00:00</updated>
<author>
<name>Dean Troyer</name>
<email>dtroyer@gmail.com</email>
</author>
<published>2018-06-28T18:35:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=83a9db280d2c9dd749c65ff635c430348bd356c0'/>
<id>83a9db280d2c9dd749c65ff635c430348bd356c0</id>
<content type='text'>
test_server_attach_detach_floating_ip() has a test for server
add/remove floating IP that seems to be racy, add a retry loop
to let neutron and nova do their thing before calling it bad.

Change-Id: I999a0d7dae1706d746053bafb7ab4e3b791d0042
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
test_server_attach_detach_floating_ip() has a test for server
add/remove floating IP that seems to be racy, add a retry loop
to let neutron and nova do their thing before calling it bad.

Change-Id: I999a0d7dae1706d746053bafb7ab4e3b791d0042
</pre>
</div>
</content>
</entry>
<entry>
<title>Default --nic to 'auto' if creating a server with &gt;= 2.37</title>
<updated>2018-03-21T01:44:29+00:00</updated>
<author>
<name>Matt Riedemann</name>
<email>mriedem.os@gmail.com</email>
</author>
<published>2018-02-19T18:14:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=1008544882fbdae16b045abca05cf3e2e8a14787'/>
<id>1008544882fbdae16b045abca05cf3e2e8a14787</id>
<content type='text'>
Compute API version &gt;= 2.37 requires a 'networks' value in
the server create request. The novaclient CLI defaults this
to 'auto' if not specified, but the novaclient ServerManager.create
python API binding code does not, as it wants clients to be explicit.

For the purposes of the OSC CLI, we should follow suit and if the
user is requesting OS_COMPUTE_API_VERSION&gt;=2.37 without specific
nics, we should just default to 'auto'.

Change-Id: Ib760c55e31209223338a4086ff1f4fee88dc6959
Closes-Bug: #1750395
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Compute API version &gt;= 2.37 requires a 'networks' value in
the server create request. The novaclient CLI defaults this
to 'auto' if not specified, but the novaclient ServerManager.create
python API binding code does not, as it wants clients to be explicit.

For the purposes of the OSC CLI, we should follow suit and if the
user is requesting OS_COMPUTE_API_VERSION&gt;=2.37 without specific
nics, we should just default to 'auto'.

Change-Id: Ib760c55e31209223338a4086ff1f4fee88dc6959
Closes-Bug: #1750395
</pre>
</div>
</content>
</entry>
<entry>
<title>Add missing parameters on openstack server rescue</title>
<updated>2017-10-27T14:52:04+00:00</updated>
<author>
<name>Jose Castro Leon</name>
<email>jose.castro.leon@cern.ch</email>
</author>
<published>2017-10-19T13:59:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=fd23ebfbf3080b96f7ef8ba516b64e67a111971d'/>
<id>fd23ebfbf3080b96f7ef8ba516b64e67a111971d</id>
<content type='text'>
Change-Id: I27afca9e826378dbcb7feb7528e0c65c528b04b0
Closes-Bug: #1703278
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I27afca9e826378dbcb7feb7528e0c65c528b04b0
Closes-Bug: #1703278
</pre>
</div>
</content>
</entry>
<entry>
<title>Attempt to work around chronically failing server issues with aggregates and qos</title>
<updated>2017-09-15T17:34:15+00:00</updated>
<author>
<name>Dean Troyer</name>
<email>dtroyer@gmail.com</email>
</author>
<published>2017-09-15T17:33:55+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/openstack/python-openstackclient.git/commit/?id=949e0cb3c6fab156d7c067158c3cfd616dbfc1c7'/>
<id>949e0cb3c6fab156d7c067158c3cfd616dbfc1c7</id>
<content type='text'>
So yeah, this is not kosher for functional tests, but we're testing the
client interaction, not the raciness of Nova or Neutron.  Failure to delete
is not our problem.

Change-Id: I21043f1de0fbacee1aec63110fb12a7cff42e0a0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So yeah, this is not kosher for functional tests, but we're testing the
client interaction, not the raciness of Nova or Neutron.  Failure to delete
is not our problem.

Change-Id: I21043f1de0fbacee1aec63110fb12a7cff42e0a0
</pre>
</div>
</content>
</entry>
</feed>
