Commit Graph

54 Commits

Author SHA1 Message Date
Thomas Goirand 8ca01a3abb Python 3 fix for sphinx doc
In Python 3, dict methods dict.keys() return “views” instead of lists.
Therefore, the code:

    impls = sorted(matrix.targets.keys())
    impls.sort()

should be replaced by:

    impls = sorted(matrix.targets.keys())

to be Python 3 compatible.

Change-Id: I50477b0ac43adff9e9b0220bd7c48d6ebb6471b3
2018-02-15 14:26:45 +01:00
Balazs Gibizer ff4f58fcd2 Fix the usage of instance.snapshot notification sample
The instance.snapshot.start and .end notification sample file was
attached to two different Notification ovo by mistake. This caused that
the samples are appeared in the notification dev-ref twice.

This patch removes the duplication and adds a simple check to the doc
generation code to detech such problems in the future.

Change-Id: I8478c134f9cdb08c02a44e1838dbacede5523914
Closes-Bug: #1732685
2017-11-21 11:03:52 +00:00
Balazs Gibizer 5a5155ea4e Factor out duplicated notification sample data
Versioned notifications are functionally tested against stored sample
data. Also most of the instance notitication shares payload structure.
Today we store a separate sample for every instance notification.
These samples store similar, mostly redundant data. When a new field
is added to the InstancePayload then every instance notification
related sample file needs to be modified. This leads to big and
redundant changes like I18af99479562e2fe5e74e6e1252b804b074fee58.

To remove the redundancy this patch proposes to use json references
in the sample files instead of copy pasting the same notification
sample fragment to every sample.

As a first step this patch introduces a small json ref resolver.
Then subsequent patches will replace the duplicated sample data
with references to common sample fragments.

This proposed resolver supports resolving the refs recursively so
a referenced json fragment can reference further fragments. However
the current implementation does not handle reference loops.
The resolver also supports overriding parts of the referenced
json fragment to support content customization needed in the next
patch.

Change-Id: Ic3ab7d60e4ac12b767fe70bef97b327545a86e74
2017-11-03 11:36:57 +01:00
Jenkins c57bfdfed1 Merge "doc: Remove deprecated call to sphinx.util.compat" 2017-09-06 18:14:40 +00:00
Balazs Gibizer 0499b28051 doc: fix show-hide sample in notification devref
The new doc template includes jquery too late and therefore showing
and hindig notification samples and auto hiding them by default doesn't
work.

This patch loads the jquery lib earlier for the notification devref.

Closes-Bug: #1713974
Closes-Bug: #1714363
Change-Id: I07db4755c69d493e591761578d1077bb44acda41
2017-09-01 12:39:01 +02:00
Stephen Finucane 46a5569fb1 doc: Remove deprecated call to sphinx.util.compat
This call generates the following deprecation warning:

  RemovedInSphinx17Warning: sphinx.util.compat.Directive is deprecated
  and will be removed in Sphinx 1.7, please use docutils' instead.

Resolve this.

Change-Id: I73a182248a64d1e931a1bcb3989aa96f0aec71ed
2017-08-29 15:12:10 +01:00
Stephen Finucane 62ccbe1c3f doc: Enable pep8 on doc generation code
As pep8 does not run on doc generation python code so we have some
style violations there. As it not too hard to fix the problems and
therefore enable pep8 on these files this patch proposes such a
change.

Change-Id: I26104ea66fc4f3e67f8227025f43202e483beb25
2017-07-12 14:20:25 +01:00
Stephen Finucane 6671ddc832 doc: Remove dead plugin
Whatever extra functionality the 'nova.ext.nova_todo' plugin provided
over the stock 'sphinx.ext.todo' extension, we're no longer using it and
it prevents us from using the stock one. Remove it and enable the stock
one instead.

Change-Id: I57fde86bf77dad87bb4d41ef8ad19f933f5c1260
2017-07-12 14:05:14 +01:00
Matt Riedemann 9269d35ea8 Fix error message when support matrix entry is missing a driver
This was noticed in change If10cffd0dc4c9879f6754ce39bee5fae1d04f474
which was missing the powervm driver target for the extend-volume entry.

Before this change, the error message was:

  'libvirt-vz-ct' missing in '[operation.extend-volume]' section

This was really confusing because that driver is in the change. What
was missing was powervm, but because the error message is using the
wrong key that was not showing up.

Change-Id: I2e7ea49d5ba42cc633796222af47c1d4cd59f96b
Closes-Bug: #1702542
2017-07-05 15:15:50 -04:00
Balazs Gibizer 5a35a2b99e add missing notification samples to dev ref
The already transformed aggregate notifications were missing from the
notification dev-ref due to a missing import in the doc generation code.

This patch improves the doc generation to automatically pick up new modules
added under nova.notitications.objects.

Change-Id: I688bc59f19814956d73e04b4970add21ce64ba90
Closes-Bug: #1698779
2017-06-19 13:46:47 +02:00
Béla Vancsics ad56be6d22 Transform keypair.create notification
The keypair.create.start and keypair.create.end notifications
has been transformed to the versioned notification framework.

Change-Id: I71e9d8dae55653ad3ee70f708a6d92c98ed20c1c
Implements: bp versioned-notification-transformation-pike
2017-06-14 07:28:47 +02:00
Jenkins 6f3338612d Merge "Removes unnecessary utf-8 encoding" 2017-02-03 06:00:47 +00:00
liyingjun 8d9b3d6b9d Notifications for flavor operations
This patch implements the versioned notifications for flavor
create and destroy.

Implement blueprint: flavor-notifications

Change-Id: Icc2169b87ffba4e7e2079076a82029156c584c6a
2017-01-09 20:39:58 +08:00
Cao Xuan Hoang d99fd590b0 Removes unnecessary utf-8 encoding
trivialfix

Change-Id: I1294ecb5e85c9bf70a23992e92eeccfd35362551
2016-12-20 10:27:01 +07:00
Balazs Gibizer b8897aba72 Fix notification doc generator
The doc generator only picked up the event types related to instance
actions because the doc generator looked up the registered notification
classes only. Until now, only the instance related notifications were
imported in the doc generation environment so the other notification
classes were not registered.

This commit explicitly imports the modules that defines the notification
classes to make the doc complete.

Change-Id: I269e05ddb62ec6c6cc7f7922c1344186ccf850d1
Closes-bug: #1640818
2016-11-24 13:25:54 +00:00
Jenkins 6961ac9972 Merge "Fix invalid import order and remove import *" 2016-10-11 14:50:50 +00:00
ChangBo Guo(gcb) f8c1ee3950 Fix SafeConfigParser DeprecationWarning in Python 3.2
SafeConfigParser is deprecated in Python 3.2 and log warning
like " DeprecationWarning: The SafeConfigParser class has
been renamed to ConfigParser in Python 3.2. This alias will be
removed in future versions. Use ConfigParser directly instead."
So use ConfigParser in Python 3.2+.

Closes-Bug: #1618666
Change-Id: I225bde35b18bd410f3fe9d415759d1def0a91aca
2016-09-12 13:04:38 +08:00
TuanLAF dce1f7160c Fix invalid import order and remove import *
- Remove import * follow [H303] do not use wildcard * import [1]
- Made corrections in import order as per OpenStack import order template [1]
	{{stdlib imports in human alphabetical order}}
	\n
	{{third-party lib imports in human alphabetical order}}
	\n
	{{project imports in human alphabetical order}}
	\n
	\n
	{{begin your code}}

[1] http://docs.openstack.org/developer/hacking/#import-order-template

Change-Id: I3eded1b4bdc10d2a2bb36d41a1f9b5fd8ab2893a
2016-07-20 10:12:01 +07:00
Balazs Gibizer 8279b1ea2e Handle multiple samples per versioned notification
The notification_sample decorator is changed to handle
attaching multiple sample files to a notification object.

Change-Id: I4c3df17d93282f6946221da65d26d0ca3194d3df
2016-06-21 09:39:54 +02:00
Balazs Gibizer 520ee65a55 Do not register notification objects
Only registering the notification objects during unit test.
Notification objects are never used in the Nova RPC interface
and shall not be mixed with such objects.

Change-Id: Iba9079bb204e6ef1302529ac159199ab9fa6272b
2016-06-08 11:32:53 +02:00
Balazs Gibizer 5e074a59d2 Move notification related code to separate package
To be able to separate the versioned notification related
object model from the nova internal object model a new
nova.notification.object package is introduced.

As nova had nova/notifications.py already in the tree
the code from that file is moved into the new nova.notification
package as a first step.

Implements: bp versioned-notification-transformation-newton
Change-Id: I315f548180c260c22a2ebcf7b7cb56d284b6e580
2016-06-08 11:32:53 +02:00
Andrey Volkov 9053a4685b Make available to build docs with python3
On Ubuntu 16.04 a tox package is for python3 by default
and this causes errors in building docs in tox enviroment.

In these changes iterators are replaced with lists where it's needed.
Also external command calls result are decoded from bytes to unicode.

Change-Id: I88ef54405b4bc13c269bdda55ae8289676311ee1
2016-05-23 15:30:20 +03:00
Jenkins 3c40b0a9fb Merge "Add prototype feature classification matrix" 2016-08-18 13:22:34 +00:00
Balazs Gibizer e5798f9f9d Enhance notification doc generation with samples
Until now the notification devref only contained a link to the sample file
and that link did only exist after the sample file was merged.
This is suboptimal as the locally generated doc might be incomplete.

This patch changes the doc to contain the content of the sample file.

Change-Id: I4343a2feb13de8b614e8d42d5f1db14102ab492e
2016-07-20 17:33:32 +00:00
John Garbutt 027b92dc4e Add prototype feature classification matrix
Add in feature_classification.ini that makes use of new sphinx
extension feature_matrix. While it is loosely based on the
support_matrix extension, longer term this extension will live
outside the Nova tree. As such, this has been created as a new
separate sphinx plugin.

The matrix has links to wiki page for the CI in the header of the
summary matrix. This is called a target.

Also, there are links to admin docs, API docs, and tempest test uuids
added into the feature details. An option is added to ensure these are
always present in the prototype matrix.

A maturity status is added to be clear about the level of maturity
of each feature. When in maturity mode, this is added into the summary
table in place of the status. There is also some formating for the
different maturity levels.

blueprint feature-classification

Change-Id: Ib5895e8de901f1a282d0f5c0ecb811ff8b451497
2016-07-18 18:31:03 +00:00
Jenkins ab4a5f8a55 Merge "Refactor _load_support_matrix" 2016-02-02 15:05:49 +00:00
Jenkins e5256c32a7 Merge "Add argument to support-matrix sphinx extension" 2016-02-01 14:36:10 +00:00
Balazs Gibizer 05adc8d006 Generate doc for versioned notifications
This commit adds a new sphinx extension that inspects the nova code
and adds information about the existing versioned notifications to
the nofitications devref. This way the devref is automatically kept
up to date with relevant information.

Partially-Implements: bp versioned-notification-api
Change-Id: If65d5d81e26cb2b4a9f57a8c7d37d3de310ebe00
2016-01-28 15:33:06 +01:00
John Garbutt fbbe1cf316 Refactor _load_support_matrix
In the Sphinx extension, split up the _load_support_matrix method, so
its easier to understand the additions for the feature_classification
table.

Change-Id: Ic3654017f63dda2c2505057b0063acbc6d5f83c2
2016-01-07 11:18:51 +00:00
John Garbutt b583604f05 Add argument to support-matrix sphinx extension
Make it easier to add additional support-matrix entries by making the
filename of the ini file a required argument of the directive.

As a side effect, its clearer in the rst file where the data is stored.

Change-Id: I05bd30b64152368b53c030a32754d0ed4a35bf88
2016-01-06 11:32:30 +00:00
En 313f60778f formely is not correct
message:
I change "formely" to "formerly".

Change-Id: I77366aa1d84c31e5ffdfaa0a5fd5c99a77e3a19c
Closes-Bug: #1481271
2015-08-04 17:58:16 +08:00
Maxim Nestratov bc3b6cca47 libvirt: rename parallels driver to virtuozzo
As Parallels Cloud Server product was renamed within Parallels company rebranding
we need to change its reference in feature support matrix and documents accordingly.
A parameter 'virt_type' in libvirt section of nova.conf will remain 'parallels'.

Since libvirt version that supports 'vz' starts to report it as a hypervisor type,
we add a new hv_type 'vz' in the list of known hypervisors.

DocImpact.

Change-Id: I536e4284927508a813edd05f185f7ba0ed76d38c
implements: blueprint rename-pcs-to-virtuozzo
2015-07-29 18:40:12 +03:00
Markus Zoeller 6a6059a9a6 hypervisor support matrix: add CLI commands to features
Some features could be made clearer if the CLI commands which are
related to that feature are listed. This patch set allows to set
CLI commands per feature.
This is an interim solution until the new feature classification
system is established.

Change-Id: If599627187080a8349811f50f6561e9efbc35138
2015-06-26 08:11:18 +00:00
Markus Zoeller 36f7451c33 hypervisor support matrix: add status "unknown"
When a new feature gets added to the hypervisor support matrix it
was not possible to state that the hypervisor did not make a support
statement yet. You had to choose between "complete", "partial" and
"missing" wich could be missleading.
This change set adds the status "unknown" which could make the
statements more precise.

Change-Id: If94fc772796742de88af5893839945834b9d3eb6
2015-06-15 10:18:37 +02:00
Jenkins 2108a66572 Merge "Use six.moves.range for Python 3" 2015-05-22 18:04:43 +00:00
Jenkins 98f7e8dae3 Merge "Replace unicode with six.text_type" 2015-05-21 00:47:36 +00:00
Victor Stinner b259659a22 Use six.moves.range for Python 3
The function xrange() was renamed to range() in Python 3.

Use "from six.moves import range" to get xrange() on Python 2 and range() on
Python 3 as the name "range", and replace "xrange()" with "range()".

The import is omitted for small ranges (1024 items or less).

This patch was generated by the following tool (revision 0c1d096b3903)
with the "xrange" operation:
https://bitbucket.org/haypo/misc/src/tip/python/sixer.py

Manual change:

* Replace range(n) with list(range(n)) in a loop of
  nova/virt/libvirt/driver.py which uses list.pop()

Blueprint nova-python3
Change-Id: Iceda35cace04cc8ddc6adbd59df4613b22b39793
2015-05-20 15:19:51 -07:00
Victor Stinner 67eedf4fa0 Replace unicode with six.text_type
The Unicode type is 'unicode' in Python 2 and 'str' on Python 3: replace
unicode with six.text_type to make Nova compatible with Python 2 and
Python 3.

This patch was generated by the following tool (revision e760664379c3) with the
operation "unicode":
https://bitbucket.org/haypo/misc/src/tip/python/sixer.py

Manual change:

* Replace "isinstance(value, str) or isinstance(value, unicode)"
  with "isinstance(value, six.string_types)" in nova/api/ec2/ec2utils.py

* Revert changes in strings in:

  - nova/compute/api.py
  - nova/hacking/checks.py
  - nova/tests/unit/api/openstack/test_wsgi.py
  - nova/utils.py

* Revert changes in nova/tests/unit/test_hacking.py: tests must use
  "unicode()". The nova.hacking module will probably need other changes
  to support Python 3.

* Reformat nova/tests/unit/objects/test_instance_action.py and
  nova/tests/unit/virt/hyperv/test_hypervapi.py to 80 columns

Blueprint nova-python3
Change-Id: I7ced236b6f8f8b6a5d2e7fee3c4f0ba4d72c21fb
2015-05-12 12:31:20 +02:00
Markus Zoeller dcc2cc40a6 Hypervisor Support Matrix renders links in notes
The sphinx-extension which renders the support_matrix.ini file into
HTML did not recognize URLs in the notes which have to be written as
an HTML anchor element. This commit changes that. The links are
clickable now.

Closes-Bug: 1451468

Change-Id: Ia05610afb32c7a86536b7f462d3cfc44f9a2ca7d
2015-05-12 11:02:20 +02:00
Daniel P. Berrange 4837c42127 Add formal doc recording hypervisor feature capability matrix
Add document to replace / obsolete the giant table on

  https://wiki.openstack.org/wiki/HypervisorSupportMatrix

This initial draft is a fairly straightforward conversion of
that table. Over time, it needs much work to improve the coverage
of API operations and and coverage of important configuration
information that users will care about.

It is using the .ini file syntax in order to record the data in
an easily machine parsable format, while remaining human friendly
by avoiding the syntax heavy approach of XML / JSON / YAML

An extension is registered with sphinx that can convert the
.ini file content into docutils content that then gets rendered
into the developer docs, linked from the index page

Change-Id: I4d3db4bce5737dba30a026a11083a9ea64459cd4
2015-02-03 15:15:49 +00:00
Boris Pavlovic 2dce8c92f6 Remove usage of locals() for formatting from nova.api.*
Using of locals() for formatting string is a nasty thing because:
1) It is not so clear as using explicit dicts
2) It could produce hidden errors during refactoring
3) Changing name of variable causes change in message
4) Creating a lot of unused variables

fixes bug 1171936
Change-Id: I293d7ebb875f65cce322d4938d1ae323f3aded8d
2013-05-18 00:04:17 +04:00
lrqrun 9ddd714f08 Fix PEP8 issues.
Fix some pep8 issues in doc/ext/nova_todo.py make the code looks pretty.

Change-Id: I026c873b487b507a758a2cdb70b444b64702b7fa
2012-08-28 23:13:11 +08:00
Ray Chen 9424514e6f Fix PEP8 issues
Fix some PEP8 issues in doc/ext/nova_todo.py and doc/source/conf.py
and make the code look more clearly.

Change-Id: I2b0ce1b09a4a707cffaa565747aabd5346eb9f41
2012-08-17 11:35:57 +08:00
Monty Taylor eb2de037a3 Update common setup code to latest.
This gets us up to date with common/setup.py and replaces custom nova
autodoc generation with the port of that code found in common.

Change-Id: I2a1c5d2c0fdcf40dbea50cc123b537adb068cdc2
2012-07-07 16:32:19 -05:00
Monty Taylor 702a4743f0 Get rid of all of the autodoc import errors.
This hasn't worked right in a bazillion years.

Change-Id: I4db20ce97f920cdb7254d51e18a0630b0283b39d
2012-03-05 20:22:51 -08:00
Doug Hellmann 1ea445c377 blueprint sphinx-doc-cleanup
bug 944381

Add logic to generate_autodoc_index.sh to produce rst underlines to match the heading strings.

Change-Id: Ib0f54a45fcc4ab6dfaa593c756682f1a25fdb420
2012-03-01 17:03:01 -05:00
Vishvananda Ishaya 20b4d89512 Remove a whole bunch of unused imports
Change-Id: I6759e5b6250c48cc0deb4b198b44c948c64c47d1
2012-01-13 13:55:38 -08:00
Lorin Hochstein d4a3962a2d Fix deprecation warnings
Fixed some warnings like this:

DeprecationWarning: docutils.nodes.Element.set_class deprecated; append to
Element['classes'] list attribute directly
  lists[i].set_class('todo_list')

Change-Id: I94e564f561f95a66e6e98767ccfaa78769b5c0f1
2011-11-24 10:54:21 -05:00
Eric Windisch 5f6a58c7c2 execvp: fix docs 2011-03-09 17:22:54 -05:00
Ed Leafe 68c9c89300 Completed first pass at converting all localized strings with multiple format substitutions. 2011-01-18 21:00:28 -05:00