| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This patch creates openstack.common.testutils which includes some
decorators used to conditionally skip tests. This is needed for the
rpc unit tests.
Change-Id: Ic6bc8d58f7dfcd9eb3acd2749c475b9d760b9578
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both Glance and Nova make use of (almost) the same policy system,
defined in glance/common/policy.py and nova/common/policy.py,
respectively. They also have independent glue code
(glance/api/policy.py and nova/policy.py), so that the common
policy system is substantially similar. This makes policies a
perfect candidate for incorporation into openstack-common,
particularly given that this same code will soon be used by
Quantum.
This change adds the common policy module (along with some minor
interface changes and bug fixes) to openstack-common, along with
a test suite.
Change-Id: I0022a91f16ded28f9dc6b4975ef1b6e4cc8460ac
|
|
|
|
|
|
| |
Fixes bug #1008065
Change-Id: I72aba29eea4637643cb7742f2fd4b1f05d15667f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implements blueprint cfg-global-object
Add an instance of the CommonConfigOpts class to the cfg module's
global namespace.
The usage pattern is:
from openstack.common import cfg
opts = [
cfg.StrOpt('foo', default='blaa'),
cfg.StrOpt('bar', default='blaa'),
]
CONF = cfg.CONF
CONF.register_opts(opts)
def do_something_later():
print CONF.foo, CONF.bar
def main():
CONF(project='pulsar')
Change-Id: I77e87b1e186c243b2638a4b1c202f865249dafce
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have a few places now where we do:
for opt in self.opts:
foo(opt)
for group in self.groups:
for opt in group.opts:
foo(opt, group)
Use generators to turn this into simply:
for opt, group in self.all_opts():
foo(opt, group)
Change-Id: I7a32779c20caeb1bacb85528d7e36c3c18c6c16a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to effectively use a global ConfigOpts object, you
need to be able to initialize the global object with none of
the information we currently require at construction.
By moving those constructor args to the __call__() method,
we enable the global object usage model but also make the API
generally more flexible. For example, you can now reset the
object and re-use it for parsing a different set of config
files with the same options.
There are a couple of other minor behavior changes as a
result:
- print_usage() and print_help() no longer works before
the object has been called to parse options
- registration of duplicate short options are no longer
detected until the options are parsed
- the --config-file and --config-dir options aren't
registered until just before parsing the options since
the default set of config files can be specified at
that time
- find_file() can't be used until after the options have
been parsed, again because of the late registration
of --config-file and --config-dir
Finally, an unregister_opt() method is added to support
the re-registeration of the --config-file and --config-dir
options.
Change-Id: I650d8e299e92cbc5d10da47a7ce1b73ca8066bd0
|
|
|
|
|
|
|
|
|
| |
If we want to use github zipballs as a source of depends sometimes
(which we do) - we need to have the pip-requires parsing understand
that lines starting with http:// or https:// are urls and should go
to dependency_links.
Change-Id: I9218159872d6edfebd4b820e6db912e9aabdf7d7
|
|
|
|
|
|
|
|
| |
Fixes bug #1001361
Removes backslash continuations
Change-Id: I86fbb950b48a7681b3c1a010b0d0007cd2f12632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch creates a new module, jsonutils. It is based on some code
from nova.utils that is used by nova.rpc. It is being added to
openstack-common as another step toward being able to eventually move
nova.rpc to openstack-common.
This module provides a few things:
1) A handy function for getting an object down to something that can
be JSON serialized. See to_primitive().
2) Wrappers around loads() and dumps(). The dumps() wrapper will
automatically use to_primitive() for you if needed.
3) This sets up anyjson to use the loads() and dumps() wrappers if
anyjson is available.
Change-Id: I41e5759360d515ed53defe69f3e8247aafbcc83a
|
|
|
|
|
|
| |
In preparation for enabling alphabetized import checking in Nova
Change-Id: I709fca6a121ba44df193757e5ad838de710c2f15
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes bug #998396
Both Nova and Keystone need to clear the overrides on their config
object between test runs. It's reasonable to expect the reset()
method would do this, so let's make it so.
Also add a clear() method with the old behaviour.
Change-Id: I192c5bb07e81f0fb844fa2fd429dc2e7133800de
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Implements blueprint cfg-auto-create-groups
Remove the restriction that groups must be explicitly created. Often
you only need a group to have a name (not e.g. a title or help string)
so we can easily just auto-create groups for that case.
Change-Id: I150ab3900e3aad0068b93487c8d396d21d26cfea
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Implements blueprint cfg-required-options
Add a 'required' flag to option schemas:
StrOpt('foo', required=True)
which causes a RequiredOptError exception to be raised if the
user fails to supply a value for the option on the CLI or in
a config file.
Change-Id: Ied7bb25f0c1582c4991d0f212f4871b9358b73fb
|
|/
|
|
| |
Change-Id: Iaccb71d83d957aae77fa0f6bc71952b899d3a159
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pattern of running generate_authors and write_git_changelog
at sdist time is (and should be) repeated in all project's setup.py.
Instead of copying the creation of the two classes and injection
of them into a cmdclass dict, we can do it here and have it
be consistent.
Related to bug 986462.
Change-Id: I0b7b44d58685551482f874b2a6091dec29e6bed6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug: 994957
Mailmap might contain mapping with full name. This commit fixes
it to handle these combinations:
Foo ZZ <email@foo.com> Bar YY <email@bar.com>
Foo <email@foo.com> Bar <email@bar.com>
<email@foo.com> <email@bar.com>
This is inline with mailmap convention described here:
http://man.github.com/git/git-shortlog.html
* openstack/common/setup.py
parse_mailmap(): Pull out canonical and alias email addresses.
Change-Id: Iabe9612efecbd18f7a5b0725de7d2515ab24125d
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch adds save_and_reraise_exception() to a new module,
openstack.common.excutils. This is based on the function of the same
name from nova.utils. It is used by nova.rpc, so something equivalent
is needed in openstack-common before nova.rpc can be moved here.
Change-Id: Icec574a081837e0f2d0548a5759d21b0352dbee6
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This patch removes the usage of common.exception from
common.importutils. Instead of raising exception.NotFound() from
importutils.import_class(), just use the built-in ImportError.
Change-Id: I95e84908d1f80c5ca3bbac049eda8faa64212ae0
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Most services have the need to locate files like api-paste.ini or
policy.json.
This new method attempts to find these files by looking alongside
the config files already parsed by ConfigOpts and, failing that,
falls back to a standard set of directories.
Change-Id: I95897816485b88f78854df194cab7872d7c5452a
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Implements bp cfg-config-dir
Allow multiple config files to be pulled in from a config directory,
as opposed to individual config files being explicitly enumerated.
This logic is enabled using the --config-dir=/path/to/config CLI option,
causing config to be retrived from all matching /path/to/config/*.conf
files.
Sections may be re-opened across config files, and all config items
must reside in an explicitly specified section (i.e. it does not default
to [DEFAULT]). This behavior is unchanged.
Change-Id: Ia29dffe82dfb4742dcf3e8d36b376d906a2492cf
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update the message included in the exception from
importutils.import_class() to include what the inner exception was.
This is quite helpful as the real error may not have been that the class
was not found. It may have failed to import the module that contains
that class, and it's nice to know that and why that happened.
Change-Id: I085864d230b46adce8921e362f058f9421a5a674
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug: 976267
The list of such authors are stored in AUTHORS.in file. When
auto generating AUTHORS file, include them as well.
* openstack/common/setup.py
__doc__: For all methods, remove space and include period.
generate_authors(): If AUTHORS.in file exist, append the
content to AUTHORS file.
Change-Id: I05da1e561383cc151e7ef34e75a4600e3afdda6e
|
|
|
|
|
|
| |
* Allow an extension to be passed to find_config files, defaulting to '.conf'
Change-Id: I022a3b28d9067158e9ed0da741a5e72cb73af167
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A fairly misc bunch of changes:
- init cache before registering config-file and just let
register_cli_opt() clear the empty cache
- use @__clear_cache on set_default() and set_override() since
these are just used by the unit tests and doing so allows us
to kill _remove_from_cache()
- use @__clear_cache on reset() too
- remove recursion from _get() and the substitute param
- just use (group_name, opt_name) as the cache key
Change-Id: I66934e748eca9ec03e44d7f80a7e10d96a77d8eb
|
|
|
|
|
|
|
| |
Speedup of 'nova list' benchmark by up to 40%, eliminates 3 lines in
top-10 cProfile methods.
Change-Id: I2d4636f94d88b4a7e38d1565fdd4d1b8a89e560e
|
|
|
|
| |
Change-Id: I0adbf0755a0191c7b68af9ca2f6e50c787ee7043
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix bug 972859.
Prior to this patch, utils.import_object(foo) and
utils.import_class(foo) would return the same thing if foo was the path
to a class. This patch changes utils.import_object() to return an
instance of the class, instead, also allowing you to pass in arguments
to the constructor.
This patch also removes the odd behavior of import_object() to be able
to also import a module. Instead, a new function import_module() has
been added.
Finally, the three import helpers have been moved to a new module,
importutils.
Change-Id: Ia2ea64c965692f8c3a29adec332dd93a83980070
|
|
|
|
|
|
|
| |
This patch moves auth_str_utils() to a new module, authutils, for
helper functions related to authentication.
Change-Id: I83f174486269701deed3500f890832a71ff3e315
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Split time related utility functions out of openstack.common.utils into
a new module, timeutils.
Change-Id: Ic09952cd48e0b4548e410926cc456cbd515a4e56
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These generic factories allow us to dump copied and pasted
app_factory and filter_factory methods.
The main difference is the paste configuration changes from:
[app:myapp]
paste.app_factory = myapp:app_factory
...
[filter:myfilter]
paste.filter_factory = myapp:filter_factory
to this:
[app:myapp]
paste.app_factory = openstack.common.pastedeploy:app_factory
openstack.app_factory = myapp:App
...
[filter:myfilter]
paste.filter_factory = openstack.common.pastedeploy:filter_factory
openstack.filter_factory = myapp:Filter
Apart from reducing code duplication, this will also allow us to have
the generic factories inject other data into the apps and filters.
This could implemented as a new feature in PasteDeploy itself - e.g.
allow the loadapp() caller supply a python object which is passed on
to the factories.
In the meantime, Glance has code like this to pass a ConfigOpts instance
to factories. Keystone is moving a similar way, as will other projects
as they move away from a global config object.
Change-Id: I928d1f6da154f0f41edd624e25b8918a0e12cb28
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Thread local storage is obviously a very useful facility to have
available.
Nova has a very simple API for this which uses eventlet's corolocal
module and weakrefs. This looks to be generally useful and complete,
so let's pull it into openstack-common.
Change-Id: I52a08124297c9cb79def447436859bd8d2c0b622
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adds yes, Yes, and all other capitalizations as a true boolean.
Updated unit tests to test for these.
Change-Id: I97915f870dd6bba612f74f0ceb78f2399fd81a93
|
| | |
| | |
| | |
| | | |
Change-Id: I67473bb847759ce719876e08f8a894e000f11bb3
|
|/ /
| |
| |
| |
| |
| | |
Fixes bug 967400
Change-Id: I0c028f6b5285cd641dedbcea3132224e404b004e
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes bug 955308
Previously only multiple string options from the CLI were supported.
This change adds support for config files too and merges the results
from both CLI and config files.
Change-Id: I642408c03ed295fac050105fd4380940e876f228
|
|\ \ \
| |/ /
|/| | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Implements bp cfg-password-options
Allow options to be declared secret so that their value is
obfuscated before logging.
Change-Id: Ie2168d218b029d9c12fa5b48342cd5b17b2cc77a
|