Many deprecations are triggered early (on imports, for example).
To make sure all DeprecationWarning messages are emitted we enable
them via the PYTHONWARNINGS environment variable.
Note: this copy from 1be35ff039d67c50866f2556ef847b048cbf3578
Change-Id: Iac2fc6fdbf9596209ab44fa2274bd66620043a49
Before bashate was only running on the devstack/ directory. Have it
now run on the entire project for *.sh files.
Fix issues detected by bashate.
Also check the files:
devstack/files/hooks/qemu
devstack/lib/ironic
These files were located by doing:
$ find openstack/ironic/ -not \( -type d -name .?\* -prune \) \
-type f -not -name '*.sh' | xargs file | grep -i "shell script"
Change-Id: I238b7ab650781143fe8231e01250ab56120ff94f
This installs the basic directories and content pointing to the current
Ironic Installation Guide. Simply having this in our repo will not lead
to it being published, this is only the first step. Having these items
in our repository is a good first step to building out our install
guide.
Change-Id: I6a0e69bd3b6f5074ae61505f82f27bcf9df84bab
Partial-bug: #1612278
Implements more fine-grained policy support within our API service,
following the oslo policy-in-code spec, while maintaining compatibility
with the previous default policy.json file. An empty policy.json file is
included, along with a sample file listig all supported policy settings
and their default values.
A new tox target "genpolicy" has been added to ease automation of
sample policy file generation.
All calls to policy.enforce() have been replaced with with
policy.authorize() to avoid silent failures when a rule is undefined,
because enforce() does not raise() if the target rule does not exist.
NOTE: policy.enforce() is not removed by this patch, but a deprecation
warning will be logged if it this method is invoked.
Updates unit test coverage for the new authorize() method, as well as
more general unit test updates for some of the new rules.
Partial-bug: #1526752
Change-Id: Ie4398f840601d027e2fe209c17d854421687c7b7
Since we're running python 3.5 tests now, we should also be
running thme when running all tests with just `tox`.
Change-Id: I6ec077878906fd48e9e4dc654c63da3dbc83173b
oslo_config provide a utility for generating sample config files,
which provide more detail about opts, like Minimum/Maximum value
and Allowed values.
So drop Ironic's "generate_sample.sh" which was copied from
oslo-incubator long time ago.
Add a new entry point "ironic" under oslo.config.opts namespace to
explore config options to oslo-config-generator.
After this patch, new config options of Ironic code should register
with ironic/conf/opts.py. New external libraries should
register with tools/config/ironic-config-generator.conf
There is a bug #1554657 with oslo-config about deprecated_group.
This bug have impact of some configs from keystonemiddleware
and oslo.messaging in ironic.conf.sample
So currently, deprecated option should always add the deprecated_group
even it didn't alter the group, otherwise the deprecated group value will
be 'DEFAULT'.
Update etc/ironic/ironic.conf.sample via running 'tox -egenconfig'.
Closes-Bug: #1564195
Change-Id: If7721e98e69b6f54f1ee04a07477396b86583371
This updates the API root documentation, which was non-existent,
and the Node documentation significantly, replacing many of the samples
and adding more verbiage to each property.
It's not perfect, but this is vastly more correct than the current docs.
Change-Id: Iaeb1c80ac0655fc0d73fa495ed43e3c02b345495
This currently gives a warning about the 'rm' command not being
installed in the venv. Whitelist bash and run rm under bash (like we do
with other external commands) to squash this warning.
Closes-Bug: #1581778
Change-Id: Id26926ad7a75b94f0f57ea3c2083312c66663b34
Per this email[0], it's time to migrate our API docs into our tree.
This copies the sphinx extension from nova into our tree as well, which
will be later split into its own python module. At that time we can cut
over to the module and drop it from our tree.
The conf.py and the tox environment are also cribbed from nova.
[0] http://lists.openstack.org/pipermail/openstack-dev/2016-May/093765.html
Change-Id: I683cc4d6459d77c42951a06247b6f9ff8f8456bd
This will force pip install to use the upper-constraints.txt specified
version of pip modules. When you don't do this, you are out on the
bleeding edge and become unstable everytime some python library in the
wide world changes in a way that you don't expect.
Post jobs are not yet compatible with the upper-constraints file, so
override the install_command there to skip upper-constraints.
Blatantly cribbed from the equivalent trove patch:
https://review.openstack.org/#/c/298850
Change-Id: I73aa8cf37adc36db2c56a8f29ea165775a83dc7f
Closes-Bug: #1563038
This patch is enabling the D000 error (duplicated target names) in doc8
and fixing the occurrences of this error in the docs.
Change-Id: Iac048d213e0571b99696ec708f5c07d6e1bebb19
This patch is enabling the doc8 style checker for the *.rst files in
Ironic.
Since this patch is just the first stab at enabling this new check two
errors are currently being ignored by doc8 because of the number of
occurrences in our docs:
* D000 - Duplicated target names. We do have many links with generic
names scattered around the docs (e.g "see", "link")
* D001 - Line's too long
These errors will be fixed in a following patch.
Change-Id: I32fb5a3104b9773c55a80a84dd81e49c567c76ac
This makes tox use a simple wrapper around flake8 like
Nova, which can be told to restrict the check to only
files changed in the current command. This can be invoked
in a simple manner with 'tox -epep8 -- -HEAD'. Since most
commits only touch a handful of files, this will usually
be far faster than checking all source files.
To check an entire branch for bisectability it can be
automated via
git rebase -i master -x 'tox -epep8 -- -HEAD'
Change-Id: I75b1cfe3198b1217f8b25877714a4af47ae7069f
This removes 'bashate' from the envlist in tox.ini because it doesn't
cause bashate to be run. Rather, it causes 'tox' to run the unit
tests :-(
'tox pep8' will invoke bashate.
Change-Id: I235ed7b20b45f2052f0ca0e9e4d96e379667b567
Ironic remove oslo incubator (ironic/openstack/*), so removes
them in flake8 too.
A follow-patch on d7741ea1eebde2fb9966dd53372eb8655bdb12ac
Co-Authored-By: Tan Lin <lin.tan@intel.com>
Change-Id: I9d8fd28f53e8b4bc289a1015e464585b8bdeebd9
This patch allows flake8 to run against the scripts under tools/ and
devstack/tools directories.
It also fix the current pep8 errors where it's needed.
Change-Id: I3f447564dd528c6efdee10a4a13f1ff1d7e1c3b1
Apparently # is treated as a comment inside the string and as
consequence the rest of the command gets stripped. This patch drops
those comments from the bashate command.
This patch also moves the bashate command to its own script under
tools/.
Change-Id: Ic44bb64419ca1465f69c91fd579e8c84d69f84b8
Closes-Bug: #1527562
In order to save gate resources we could just run bashate as part of the
the pep8 command.
The tox bashate command is removed and bashate is added as a dependency
in the test-requirements.txt file.
Change-Id: I75df4103c0154c5424b8781c1db3480336a5e1d2
This patch is fixing the syntax errors/warnings in the shell scripts
under devstack/tools and add that directory to the tox bashate command.
Change-Id: I957a88f5b7009fe92078eb3d53e225943d28a539
Partial-Bug: #1526518
Now that we copied the devstack code to our tree we need to ensure that
the bash scripts we have are correct. This patch is adding a tox command
(bashate) that will check the syntax of the shell scripts under
the devstack/ directory.
The scripts under devstack/tools/ are not being checked, that's because
they weren't check when the code was in devstack as well and there's
loads to fix. It will be fixed in a following patch.
Change-Id: I8f66492081e0fd10e1de057febb9324a81411c7a
Partial-Bug: #1526518
This patch applies the instruction in [1] to ensure that the release
notes render properly and without warnings by adding "-W" to the
sphinx-build line in tox.ini so that Sphinx can treat warnings as
errors.
[1] [openstack-dev] [release] better linting of release notes
http://lists.openstack.org/pipermail/openstack-dev/2015-November/080521.html
Change-Id: I64c05014e88a48b6336ce92c87da47dbe34b20d8
Mostly cargo-culted from I9549e6b491b26232f4dac900b0bf05f10eb0e30a.
Note that reno automatically inserts version numbers; liberty.rst is
sufficient for intermediate release models.
Change-Id: Ic700d719242b17532b0b43a68b7eff507cb3a43c
After the move to os-testr the 'tox -epy34' unit tests will fail when
LANG=C is set in the environment.
Set LC_ALL=en_US.UTF-8 in the testenv to solve the issue. This is
in-line with our curent method of running the unit tests in US English
so that logging, messages, and exceptions can be validated by unit
tests.
Closes-Bug: #1501415
Change-Id: Ifefdd67c9e5edf22f3b7a1fce56f21c788ac9ead
Two of the testenvs are using bash. So we need to have
'whitelist_externals = bash' for them.
Closes-Bug: #1501119
Change-Id: I62cd35e87f33cb97a2d7cf4a6ebbc34b996a8def
This commit switches the tox command to use ostestr instead of calling
testr through setup.py. The primary advantage here is that it uses the
subunit-trace output filter. ostestr primarily exists as a replacement
for pretty_tox.sh bash scripts which spread like a plague through
OpenStack projects after Nova copied it from Tempest. (although ostestr
also provides some other useful features) Granted ironic wasn't using
that, but this commit makes the switch to enable getting the
subunit-trace output which is generally useful.
Note that this dramatically increases output while running tests.
However, test failures are still at the bottom of the output, so it
shouldn't cause much pain, if any.
Change-Id: I1acc2deadc01421baec256352b35a646676445e5
Prepare for functional testing by creating two new directories:
* ironic/tests/unit
* ironic/tests/functional
Move all files currently in ironic/tests/* to ironic/tests/unit/
Update imports from 'ironic.tests.YYY' to 'ironic.tests.unit.YYY'
Fix any PEP8 issues due to longer lines
Partial-Bug: #1491670
Change-Id: I1166f20adf8c84b2042b62e348926502a4851e08
This adds a pip install command to tox.ini that is only used when the
tox env is passed with the 'constraints' factor appended onto it.
As such this will not effect developer workflows or current unit tests.
The initial use of this will be in a non-voting job, to verify that the
constrained checks with tox are stable. DevStack is already running
constrained jobs, as such problems are not expected.
To run a tox with pip using constraints on a developer system a
developer should run the desired tox environment with -constraints.
For example: $(tox -epy27-constraints)
Pip will pull the current version of the upper-constraints.txt file down
from the git.openstack.org, however this method can be overriden to use
a local file setting the environment variable "UPPER_CONSTRAINTS_FILE"
to the local path or a different URL, it is passed directly to pip.
This is currently not enabled in the default tox run, however it is
possible to enable it as a default by adding it to 'envlist' in tox.ini
Backport of Nova commit ad38ce1fc98692ee59ef061de1a35f355d219aa1
Change-Id: Ia3cfb30fd1d8529bb4fbcf8873036149ea6f483c
Implements Blueprint: Requirements-Management
To solve the problem of "db type could not be determined" on py34
we have to run first the py34 env to, then, run py27. This patch
puts py34 first on the tox.ini list of envs to avoid this problem
to happen.
Change-Id: Ib09cbc71149ffcc1f36495faf1c6586c4e0a0a86
Closes-bug: #1489059
As discussed in the Liberty Design Summit "Moving apps to Python 3"
cross-project workshop, the way forward in the near future is to
switch to the pure-python PyMySQL library as a default.
https://etherpad.openstack.org/p/liberty-cross-project-python3
Also set the OS_TEST_DBAPI_ADMIN_CONNECTION override variable so
that oslo.db opportunistic detection will know to use PyMySQL until
I12b32dc097a121bd43991bc38dd4d289b65e86c1 makes it the default
behavior.
Change-Id: Icd91a065d3c4f62791ba0dca99a822e3a1a0ad44
Co-Authored-By: Victor Sergeyev <vsergeyev@mirantis.com>
When a development environment is under a proxy, tox is failed even if
environment variables of the proxy are set.
This patch fix this problem.
Change-Id: I650019ae86e223d5e9c2d4a5b51b92377f3c471e
The directory ironic/nova/* was being excluded from the flake8 check.
Make some minor whitespace and comment changes to
ironic/nova/compute/manager.py to make it pass the flake8 checks.
Change-Id: I5a76550db3b28a87964d1505441246cdb0354ee7
This patch enforces the rules E123, E126, E127, and E128 in the ironic
code base:
E123 - closing bracket does not match indentation of opening
bracket’s line
E126 - continuation line over-indented for hanging indent
E127 - continuation line over-indented for visual indent
E128 - continuation line under-indented for visual indent
This fixes any parts of the current code which fails these rules and
removes these rules from the tox.ini flake8 ignore list.
Change-Id: Ia96582b5e9abc088d6c1694afc93c59be4a4065c
Closes-Bug: 1421522
This reverts commit fe2f445418ad7cb7741a7d237fd2ad69c27833a4.
WSME has been updated to 0.7 which fixes the underlying issue with
'simplegeneric' not being pulled in as a dependency.
Change-Id: Ia224eafb2c2220c970367580a8818746f9479f9d
Depends-On: I28861178fac89e6f3fabd34b048f53b6506eda5e
simplegeneric suppoosed to be installed by WSME, but for a some reasons
it was missed in py3 env. We can't add this library to requirements.txt,
because it missed in global requirements, so I've added simplegeneric
to the `deps` section in py34 environment.
This if a fast-and-dirty way to unblock python34 gates for ironic.
Change-Id: Ib0cddf7541defbdfe1b17448b52becf8bd4ef3de
A lot of fixes to be compatible with python 3:
- fix encoding/decoding errors
- fix issues with comparison
- use `reload`, `reraise`, ext. modules from six
- use items() instead of iteritems()
- add a new file with py3 specific test requirements
- drop passing the arbitrary arguments to object.__new__ method.
See bug [1] for more details.
- add a workaround to bug in `mock` library
- add py33 and py34 test environment to tox.ini
[1] http://bugs.python.org/issue1683368
Change-Id: I90936cb6b6eaaf4b5e1ce67732caec3c8bdc1cc2
Instead of requiring manual understanding of how to generate
the states diagram, add an explicit virtualenv that can be
used to create and generate that docs diagram (and replace the
existing file with it).
Change-Id: I1738da9bf08bfda9b9be01489e8456569a31709e
This was done in the venv environment to fix docs builds in the gate,
but they still fail randonly locally when using the tox environment to
build them. This change ensures the gendocs environment works for
generating documentation locally.
Change-Id: I41e4af9edaaa76b837a6c92a296b5738c85b632b