Python’s default arguments are evaluated only once
when the function is defined, not each time the
function is called. This means that if you use a
mutable default argument (like list and dict) and
mutate it, you will and have mutated that object
for all future calls to the function as well.
More details about this wrong usage here:
http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments
In unit tests, most FakeXXX classes' methods take
mutable arguments with default values [] or {}.
We should change them to None.
Change-Id: Iea833b66aa1379829511ad5c6d4432b72f3488e2
Closed-bug: #1550320
* The --profile global option is deprecated but will be supported
through at least April 2017.
* Update man page
Closes-bug: #1571812
Change-Id: I2e623411a56096b4cc352f4eedbf770632ae2cc3
Add the following options to the 'os security group rule list'
command:
--long: Display direction and ethertype for Network v2
--all-projects: Display information from all projects for Compute v2
Change-Id: If8a1cbd7669cdfa6577d6d2f6fffd9e999a39a82
Partial-Bug: #1519512
Implements: blueprint neutron-client
OSC does not support to remove volume type access to project.
This feature will provide support to remove volume type access
from project.
Closes-Bug:#1554890
Implements: bp cinder-command-support
Change-Id: I029a4292da05f028e8937962cb845ec6e00b0279
Previously, if an AttributeError was raised in a plugin's make_client
method, the plugin simply wouldn't be an attribute of the ClientManager,
producing tracebacks like
Traceback (most recent call last):
File ".../openstackclient/shell.py", line 118, in run
ret_val = super(OpenStackShell, self).run(argv)
...
File ".../openstackclient/object/v1/container.py", line 150, in take_action
data = self.app.client_manager.object_store.container_list(
File ".../openstackclient/common/clientmanager.py", line 66, in __getattr__
raise AttributeError(name)
AttributeError: object_store
This made writing minimal third-party auth plugins difficult, as it
obliterated the original AttributeError.
Now, AttributeErrors that are raised during plugin initialization will
be re-raised as PluginAttributeErrors, and the original traceback will
be preserved. This gives much more useful information to plugin
developers, as in
Traceback (most recent call last):
File ".../openstackclient/shell.py", line 118, in run
ret_val = super(OpenStackShell, self).run(argv)
...
File ".../openstackclient/object/v1/container.py", line 150, in take_action
data = self.app.client_manager.object_store.container_list(
File ".../openstackclient/common/clientmanager.py", line 57, in __get__
err_val, err_tb)
File ".../openstackclient/common/clientmanager.py", line 51, in __get__
self._handle = self.factory(instance)
File ".../openstackclient/object/client.py", line 35, in make_client
interface=instance._interface,
File ".../openstackclient/common/clientmanager.py", line 258,
in get_endpoint_for_service_type
endpoint = self.auth_ref.service_catalog.url_for(
PluginAttributeError: 'NoneType' object has no attribute 'url_for'
Change-Id: I0eee7eba6eccc6d471a699a381185c4e76da10bd
The following patch adds the options "--external" & "--internal"
and the suboptions to "external": "--default" & "--no-default",
to "osc network set" CLI to provide the user an option to set
a network as an external network or remove the setting.
Change-Id: I3a7f2cb249bc8101cbb01322d7732e913237d6cd
Partial-Bug: #1545537
Existing --fixed-ip and --binding-profile information is
currently overwritten when a user executes 'port set', but
actually that data should be appended.
This patch fixes the issue.
Closes-Bug: #1564453
Change-Id: I62500c10ccbbc68167f24e9d4fa49e85345d82c4
Fixed "os subnet pool list" command to properly disply the
list of subnet pool prefixes in the "Prefixes" column. This
fix is consistent with the "os subnet pool create" and
"os subnet pool show" command output.
Change-Id: I431d85c3b7f5bf8a327500decf3a15063fc5b120
Closes-Bug: #1569480
Network objects don't have any method needs to fake.
keys() method is only used by _get_columns() helper
to obtain all attributes of an object. But in compute
network implementation, attributes are obtained from
obj._info directly, which is a dictionary itself. So
there is no need to fake this method.
Change-Id: Ie6a46ef6a3042641e55a7002573ef501db7b60e1
Add the --project and --project-domain options to the
'os security group rule create' command. These options
are for Network v2 only.
Change-Id: Ie3e136be076f0f2c22fbe7048d1d6eaebf5aa655
Partial-Bug: #1519512
Implements: blueprint neutron-client
Add the following network options to the "os security group rule"
command:
(1) --ingress and --egress
(2) --ethertype
These options enable egress and IPv6 security group rules for
Network v2.
Change-Id: Ie30b5e95f94e0c087b0ce81e518de72d2dda25ad
Partial-Bug: #1519512
Implements: blueprint neutron-client
OSC does not support to set volume type access to project.
This patch will provide support for adding volume type access
to existing project.
Closes-Bug:#1554889
Implements: bp cinder-command-support
Change-Id: Ie36e202bdde7de36eb263a476eb66699d82f7565
FakeXXX classes in network don't need to fake any method,
except keys(). But keys() can be put in FakeResource since
it just returns all attributes in _info.
This patch moves removes all unnecessary fake methods code,
moves keys() method to FakeResource.
This patch also finds out some missing attributes in
network and router tests.
Change-Id: I799822c8715b9ac4f95b98f8350f196757d79d3e
This patch adds --address-scope option to "subnet pool create/set"
commands, and --no-address-scope option to "subnet pool set"
command to clear the address scope setting.
Change-Id: Ie2c370a50b52574fa6ec268083ad013b7544361e
Partial-Bug: #1544586
Partial-Bug: #1544591
Existing values of --dns-nameserver, --allocation-pool and --houst-routes
is currently overwritten when a user executes 'port set', but
actually that data should be appended.
This patch fixes the issue.
Closes-Bug: #1564447
Change-Id: I3dba9afa68d869abb3960b55a6880401a10eebf7
This patch adds the option of "no-fixed-ip" and
"no-binding-profile" which is used to clear the
fixed-ip and binding:profile information from the
ports.
Change-Id: I946301eaf6c647bae55e4f416aa0d98e5f06e699