os-traits-2.3.0/ 0000775 0001750 0001750 00000000000 13640201401 013452 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/tox.ini 0000664 0001750 0001750 00000002501 13640201323 014766 0 ustar zuul zuul 0000000 0000000 [tox]
minversion = 3.2
envlist = py37,pep8
ignore_basepython_conflict = true
[testenv]
basepython = python3
whitelist_externals =
rm
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:pep8]
commands = flake8 {posargs}
[testenv:venv]
commands = {posargs}
[testenv:docs]
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
whitelist_externals =
make
commands =
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes]
deps =
{[testenv:docs]deps}
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:debug]
commands = oslo_debug_helper {posargs}
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
#
# W504 skipped since you must choose either W503 or W504 (they conflict)
show-source = True
ignore = E123,E125,H405,W504
builtins = _
exclude=.venv,.git,.tox,dist,*lib/python*,*egg,build
os-traits-2.3.0/doc/ 0000775 0001750 0001750 00000000000 13640201401 014217 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/doc/source/ 0000775 0001750 0001750 00000000000 13640201401 015517 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/doc/source/conf.py 0000775 0001750 0001750 00000004270 13640201323 017027 0 ustar zuul zuul 0000000 0000000 # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -- General configuration ----------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = [
'sphinx.ext.autodoc',
'openstackdocstheme',
]
# openstackdocstheme options
repository_name = 'openstack/os-traits'
bug_project = 'os-traits'
# The suffix of source filenames.
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'os-traits'
copyright = u'2016, OpenStack Foundation'
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
add_module_names = True
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# -- Options for HTML output --------------------------------------------------
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
html_theme = 'openstackdocs'
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
html_last_updated_fmt = '%Y-%m-%d %H:%M'
# -- Options for LaTeX output -------------------------------------------------
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
# [howto/manual]).
latex_documents = [
('index', 'doc-os-traits.tex', u'os-traits Documentation',
u'OpenStack Foundation', 'manual'),
]
os-traits-2.3.0/doc/source/install/ 0000775 0001750 0001750 00000000000 13640201401 017165 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/doc/source/install/index.rst 0000664 0001750 0001750 00000000304 13640201323 021026 0 ustar zuul zuul 0000000 0000000 ============
Installation
============
At the command line::
$ pip install os-traits
Or, if you have virtualenvwrapper installed::
$ mkvirtualenv os-traits
$ pip install os-traits
os-traits-2.3.0/doc/source/index.rst 0000664 0001750 0001750 00000001241 13640201323 017361 0 ustar zuul zuul 0000000 0000000 =========
os-traits
=========
`os-traits` is a library containing standardized trait strings.
Traits are strings that represent a feature of some resource provider. This
library contains the catalog of constants that have been standardized in the
OpenStack community to refer to a particular hardware, virtualization, storage,
network, or device trait.
Installation Guide
------------------
.. toctree::
:maxdepth: 2
install/index
Usage Guide
-----------
.. toctree::
:maxdepth: 2
user/index
Contributor Guide
-----------------
.. toctree::
:maxdepth: 2
contributor/index
Reference
---------
.. toctree::
:maxdepth: 2
reference/index
os-traits-2.3.0/doc/source/user/ 0000775 0001750 0001750 00000000000 13640201401 016475 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/doc/source/user/index.rst 0000664 0001750 0001750 00000002774 13640201323 020353 0 ustar zuul zuul 0000000 0000000 =====
Usage
=====
`os-traits` is primarily composed of a set of constants that may be referenced
by simply importing the ``os_traits`` module and referencing one of the
module's traits constants::
$ python3
Python 3.6.8 (default, Oct 7 2019, 12:59:55)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os_traits as ot
>>> print(ot.HW_CPU_X86_SSE42)
HW_CPU_X86_SSE42
You can get a list of the ``os_traits`` symbols by simply doing a
``dir(os_traits)``.
Want to see the trait strings for a subset of traits? There's a method for that
too::
>>> import pprint
>>> pprint.pprint(ot.get_traits(prefix='HW_CPU_X86_'))
['HW_CPU_X86_FMA3',
'HW_CPU_X86_AVX',
'HW_CPU_X86_MMX',
'HW_CPU_X86_MPX',
'HW_CPU_X86_CLMUL',
'HW_CPU_X86_AVX512VL',
'HW_CPU_X86_AVX512CD',
'HW_CPU_X86_BMI',
'HW_CPU_X86_AVX512DQ',
'HW_CPU_X86_SSE3',
'HW_CPU_X86_ABM',
'HW_CPU_X86_SSE4A',
'HW_CPU_X86_AESNI',
'HW_CPU_X86_F16C',
'HW_CPU_X86_VMX',
'HW_CPU_X86_SVM',
'HW_CPU_X86_TSX',
'HW_CPU_X86_AVX512PF',
'HW_CPU_X86_SSE41',
'HW_CPU_X86_ASF',
'HW_CPU_X86_SGX',
'HW_CPU_X86_SSE',
'HW_CPU_X86_SSSE3',
'HW_CPU_X86_SHA',
'HW_CPU_X86_TBM',
'HW_CPU_X86_SSE42',
'HW_CPU_X86_3DNOW',
'HW_CPU_X86_BMI2',
'HW_CPU_X86_AVX512BW',
'HW_CPU_X86_XOP',
'HW_CPU_X86_AVX2',
'HW_CPU_X86_AVX512F',
'HW_CPU_X86_SSE2',
'HW_CPU_X86_FMA4',
'HW_CPU_X86_AVX512ER']
os-traits-2.3.0/doc/source/reference/ 0000775 0001750 0001750 00000000000 13640201401 017455 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/doc/source/reference/index.rst 0000664 0001750 0001750 00000007155 13640201323 021331 0 ustar zuul zuul 0000000 0000000 =========
Reference
=========
.. contents:: :local:
CUDA
----
Applications that need to perform massively parallel operations, like
processing large arrays, may use the CUDA framework to accelerate their
processing on graphics processing units (GPUs). The CUDA framework has two
complementary pieces to it.
There are a set of GPU instruction set extensions that are implemented by
various graphics cards. These instruction set extensions are known as the CUDA
Compute Capability.
The second part of the framework is an SDK that allows developers to take
advantage of the hardware's instruction set extensions of a particular version
(a specific CUDA Compute Capability version, that is).
An application will link with a version of the CUDA SDK, and the version of the
CUDA SDK controls which CUDA Compute Capability versions the application will
be able to work with.
The ``os_traits.hw.gpu.cuda`` module contains traits for both the CUDA compute
capability version as well as the CUDA SDK version. For example,
``os_traits.hw.gpu.cuda.COMPUTE_CAPABILITY_V3_2`` and
``os_traits.hw.gpu.cuda.SDK_V6_5``.
The ``os_traits.hw.gpu.cuda`` module contains a utility function called
``compute_capabilities_supported()`` that accepts a trait indicating the CUDA
SDK version and returns a ``set()`` containing the matching CUDA compute
capability traits that that version of the CUDA SDK knows how to utilize.
Here is an example of listing the CUDA compute capability version traits that
the CUDA SDK 8.0 is capable of working with::
>>> from os_traits.hw.gpu import cuda
>>> import pprint
>>>
>>> sdk8_caps = cuda.compute_capabilities_supported(cuda.SDK_V8_0)
>>> pprint.pprint(sdk8_caps)
set(['HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_1',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_2',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_5',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_7',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V5_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V5_2',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V5_3',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V6_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V6_1',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V6_2'])
For more information on CUDA, see the `Wikipedia article`_.
.. _Wikipedia article: https://en.wikipedia.org/wiki/CUDA
AMD SEV
-------
While data is typically encrypted today when stored on disk, it is
stored in DRAM in the clear. This can leave the data vulnerable to
snooping by unauthorized administrators or software, or by hardware
probing. New non-volatile memory technology (NVDIMM) exacerbates this
problem since an NVDIMM chip can be physically removed from a system
with the data intact, similar to a hard drive. Without encryption any
stored information such as sensitive data, passwords, or secret keys
can be easily compromised.
`AMD's SEV (Secure Encrypted Virtualization)
`_ is a VM protection technology which
transparently encrypts the memory of each VM with a unique key. It
can also calculate a signature of the memory contents, which can be
sent to the VM's owner as an attestation that the memory was encrypted
correctly by the firmware. SEV is particularly applicable to cloud
computing since it can reduce the amount of trust VMs need to place in
the hypervisor and administrator of their host system.
The ``os_traits.hw.cpu.amd.SEV`` trait is reserved in order to
indicate that a compute host contains support for SEV not only on-CPU,
but also in all other layers of the hypervisor stack required in order
to take advantage of this feature.
os-traits-2.3.0/doc/source/contributor/ 0000775 0001750 0001750 00000000000 13640201401 020071 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/doc/source/contributor/index.rst 0000664 0001750 0001750 00000002154 13640201323 021737 0 ustar zuul zuul 0000000 0000000 ============
Contributing
============
Trait lifecycle policy
======================
It is the policy of this project that once registered, traits should
never be removed, even those which will never be used by code (e.g. as
a result of pivots in design or changes to the namespaces).
The general principle behind this policy is simply that an
extensible-only enumeration is easier to manage than one than can be
shrunk. One particular example concerns the need for the placement
service to keep its database in sync with the strings in os-traits.
Whenever a placement service sees a new version of os-traits it syncs
up its database with the strings that are in the package, creating a
row in the traits table, with an id that becomes a foreign key in other
tables. If traits could be removed, then extra clean-up code might be
needed in several places to handle this, and this would be
particularly error-prone when execution of that code would need to be
correctly orchestrated across multiple projects.
Generic instructions for contributing
=====================================
.. include:: ../../../CONTRIBUTING.rst
os-traits-2.3.0/doc/requirements.txt 0000664 0001750 0001750 00000000316 13640201323 017506 0 ustar zuul zuul 0000000 0000000 sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD
openstackdocstheme>=1.18.1 # Apache-2.0
# releasenotes
reno>=2.5.0 # Apache-2.0
os-traits-2.3.0/PKG-INFO 0000664 0001750 0001750 00000003362 13640201401 014553 0 ustar zuul zuul 0000000 0000000 Metadata-Version: 1.2
Name: os-traits
Version: 2.3.0
Summary: A library containing standardized trait strings
Home-page: https://docs.openstack.org/os-traits/latest/
Author: OpenStack
Author-email: openstack-discuss@lists.openstack.org
License: UNKNOWN
Description: =========
os-traits
=========
`os-traits` is an OpenStack library containing standardized trait strings.
Traits are strings that represent a feature of a resource provider hosted by
the Placement_ service. This library contains the catalog of constants that
have been standardized in the OpenStack community to refer to a particular
hardware, virtualization, storage, network, or device trait.
* Free software: Apache license
* Documentation: https://docs.openstack.org/os-traits/latest/
* Source: http://opendev.org/openstack/os-traits
* Bugs: https://storyboard.openstack.org/#!/project/openstack/os-traits
* Release Notes: https://docs.openstack.org/releasenotes/os-traits
.. _Placement: https://docs.openstack.org/placement/latest/
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
os-traits-2.3.0/LICENSE 0000664 0001750 0001750 00000023637 13640201323 014475 0 ustar zuul zuul 0000000 0000000
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
os-traits-2.3.0/.stestr.conf 0000664 0001750 0001750 00000000062 13640201323 015724 0 ustar zuul zuul 0000000 0000000 [DEFAULT]
test_path=./os_traits/tests
top_dir=./
os-traits-2.3.0/os_traits/ 0000775 0001750 0001750 00000000000 13640201401 015461 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/misc/ 0000775 0001750 0001750 00000000000 13640201401 016414 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/misc/__init__.py 0000664 0001750 0001750 00000003357 13640201323 020540 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# Indicates that the resource provider decorated with this trait exposes
# its resources for consumption on *other* resource providers via an
# aggregate association. The canonical example here would be a shared
# storage pool.
#
# The deployer might create a resource provider, let's call it "NFS_SHARE"
# that has an inventory record of 2000 total DISK_GB resources.
#
# There may be 10 other resource providers, let's call them "CN_1" through
# "CN_10" that represent compute nodes. These compute node resource
# providers have inventory records for MEMORY_MB and VCPU resources, but no
# DISK_GB inventory.
#
# Both the "NFS_SHARE" resource provider and each of the "CN_x" resource
# providers are associated to the same aggregate, let's call it "AGG_A".
#
# Deployers would decorate the "NFS_SHARE" resource provider with the
# "MISC_SHARES_VIA_AGGREGATE" trait to indicate to the system that the
# DISK_GB inventory it provides can be consumed by consumers of resources
# on any of the other resource providers associated with any aggregate
# "NFS_SHARE" is associated to.
'SHARES_VIA_AGGREGATE',
]
os-traits-2.3.0/os_traits/hw/ 0000775 0001750 0001750 00000000000 13640201401 016077 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/cpu/ 0000775 0001750 0001750 00000000000 13640201401 016666 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/cpu/ppc64le/ 0000775 0001750 0001750 00000000000 13640201401 020143 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/cpu/ppc64le/__init__.py 0000664 0001750 0001750 00000001144 13640201323 022257 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
'POWER8',
'POWER9'
]
os-traits-2.3.0/os_traits/hw/cpu/x86/ 0000775 0001750 0001750 00000000000 13640201401 017313 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/cpu/x86/__init__.py 0000664 0001750 0001750 00000005744 13640201323 021441 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions
'AVX',
'AVX2',
'CLMUL',
'FMA3',
'FMA4',
'F16C',
'MMX',
'SSE',
'SSE2',
'SSE3',
'SSSE3',
'SSE41',
'SSE42',
'SSE4A',
'XOP',
'3DNOW',
# ref: https://en.wikipedia.org/wiki/AVX-512
'AVX512F', # foundation
'AVX512CD', # conflict detection
'AVX512PF', # prefetch
'AVX512ER', # exponential + reciprocal
'AVX512VL', # vector length extensions
'AVX512BW', # byte + word
'AVX512DQ', # double word + quad word
'AVX512VNNI', # vector neural network instructions
# ref: https://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets
'ABM',
'BMI',
'BMI2',
'TBM',
# ref: https://en.wikipedia.org/wiki/AES_instruction_set
'AESNI',
# ref: https://en.wikipedia.org/wiki/Intel_SHA_extensions
'SHA',
# ref: https://en.wikipedia.org/wiki/Intel_MPX
'MPX',
# ref: https://en.wikipedia.org/wiki/Software_Guard_Extensions
'SGX',
# ref:
# https://en.wikipedia.org/wiki/Transactional_Synchronization_Extensions
'TSX',
# ref: https://en.wikipedia.org/wiki/Advanced_Synchronization_Facility
'ASF',
# ref: https://en.wikipedia.org/wiki/VT-x
# NOTE(kchamart): The 'VMX' trait is Intel-only, and does not belong
# in this file (which is supposed to be a "common" file for all
# x86-related). But we need to retain it here forever to not cause
# Placement breakage.
'VMX',
# ref: https://en.wikipedia.org/wiki/AMD-V
# NOTE(kchamart): The 'SVM' trait is AMD-only, and does not belong
# in this "common" file. But we need to retain it here forever to
# not cause Placement breakage.
'SVM',
# ref: https://git.qemu.org/?p=qemu.git;a=blob;f=docs/qemu-cpu-models.texi
# Recommended to allow guest OS to use 1 GB size memory pages. Not
# included by default in any of the Intel and AMD CPU models. So
# this should be explicitly turned on for all Intel and AMD CPU
# models.
'PDPE1GB',
# ref: https://git.qemu.org/?p=qemu.git;a=blob;f=docs/qemu-cpu-models.texi
# Required to enable stronger Spectre v2 (CVE-2017-5715) fixes in
# some operating systems. This flag must be explicitly turned on
# for *all* Intel and AMD CPU models. (Prerequisite: host CPU
# microcode needs to support this feature before it can be used for
# guest CPUs).
'STIBP',
]
os-traits-2.3.0/os_traits/hw/cpu/x86/amd.py 0000664 0001750 0001750 00000001671 13640201323 020436 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html # noqa
'SEV',
# ref: https://en.wikipedia.org/wiki/AMD-V
'SVM',
# ref: https://git.qemu.org/?p=qemu.git;a=blob;f=docs/qemu-cpu-models.texi
# (Important CPU features for AMD x86 hosts)
'IBPB',
'NO_SSB',
'SSBD',
'VIRT_SSBD',
]
os-traits-2.3.0/os_traits/hw/cpu/x86/intel.py 0000664 0001750 0001750 00000001634 13640201323 021007 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# Required as mitigation for "MDS" (Microarchitectural Data
# Sampling) security flaws
'MD_CLEAR',
# ref: https://git.qemu.org/?p=qemu.git;a=blob;f=docs/qemu-cpu-models.texi
# (Important CPU features for Intel x86 hosts)
'PCID',
'SPEC_CTRL',
'SSBD',
# ref: https://en.wikipedia.org/wiki/VT-x
'VMX',
]
os-traits-2.3.0/os_traits/hw/cpu/__init__.py 0000664 0001750 0001750 00000002076 13640201323 021007 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# A few generalized capabilities of some RP
TRAITS = [
# The resource provider decorated with this trait indicates that
# hyperthreading is enabled on the provider.
# Operators of resource-constrained systems would be able to decorate a
# single NUMA node resource provider on a multi-socket system with this
# HW_CPU_HYPERTHREADING trait to “carve out” a part of the host system
# for guests that can tolerate hyperthread siblings providing CPU
# resources.
'HYPERTHREADING',
]
os-traits-2.3.0/os_traits/hw/cpu/aarch64.py 0000664 0001750 0001750 00000004361 13640201323 020477 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Copyright 2017 Arm Limited.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=9703d9d7f
'FP',
'ASIMD',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=46efe547a
'EVTSTRM',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=4bff28ccd
'AES',
'PMULL',
'SHA1',
'SHA2',
'CRC32',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=bf5006184
'FPHP',
'ASIMDHP',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=f92f5ce01
'ASIMDRDM',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=40a1db243
'ATOMICS',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=c8c3798d2
'JSCVT',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=cb567e79f
'FCMA',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=c651aae5a
'LRCPC',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=7aac405eb
'DCPOP',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=f5e035f86
'SHA3',
'SM3',
'SM4',
'ASIMDDP',
'SHA512',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=43994d824
'SVE',
# ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
# linux.git/commit/?id=77c97b4ee
'CPUID',
]
os-traits-2.3.0/os_traits/hw/cpu/amd.py 0000664 0001750 0001750 00000002665 13640201323 020015 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://docs.openstack.org/os-traits/latest/contributor/index.html#trait-lifecycle-policy # noqa
# NOTE(kchamart): This file is deprecated. The 'SEV' trait is
# AMD-only, so it is copied to hw/cpu/amd.py; it is retained here
# not to cause Placement breakage. All AMD-only traits are being
# tracked under: hw/cpu/x86/amd.py. And the traits common to both
# AMD _and_ Intel are being tracked here: hw/cpu/x86/__init__.py.
#
# NOTE(aspiers): This trait was never used for anything, since the
# first bit of SEV code to use an SEV trait will land after this
# https://review.opendev.org/#/c/638680/ which has an explicit
# 'Depends-On' against the change I1c9a72d19ef ("hw: cpu: Rework the
# directory layout; add missing traits"), and is actually blocked
# until I1c9a72d19ef merges *and* gets released.
'SEV',
]
os-traits-2.3.0/os_traits/hw/gpu/ 0000775 0001750 0001750 00000000000 13640201401 016672 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/gpu/resolution.py 0000664 0001750 0001750 00000002001 13640201323 021443 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://en.wikipedia.org/wiki/Display_resolution
'W320H240',
'W640H480',
'W800H600',
'W1024H600',
'W1024H768',
'W1152H864',
'W1280H720',
'W1280H768',
'W1280H800',
'W1280H1024',
'W1360H768',
'W1366H768',
'W1440H900',
'W1600H900',
'W1600H1200',
'W1680H1050',
'W1920H1080',
'W1920H1200',
'W2560H1440',
'W2560H1600',
'W3840H2160',
'W7680H4320',
]
os-traits-2.3.0/os_traits/hw/gpu/cuda.py 0000664 0001750 0001750 00000006251 13640201323 020167 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://en.wikipedia.org/wiki/CUDA
# ref: https://developer.nvidia.com/cuda-toolkit-archive
'COMPUTE_CAPABILITY_V1_0',
'COMPUTE_CAPABILITY_V1_1',
'COMPUTE_CAPABILITY_V1_2',
'COMPUTE_CAPABILITY_V1_3',
'COMPUTE_CAPABILITY_V2_0',
'COMPUTE_CAPABILITY_V2_1',
'COMPUTE_CAPABILITY_V3_0',
'COMPUTE_CAPABILITY_V3_2',
'COMPUTE_CAPABILITY_V3_5',
'COMPUTE_CAPABILITY_V3_7',
'COMPUTE_CAPABILITY_V5_0',
'COMPUTE_CAPABILITY_V5_2',
'COMPUTE_CAPABILITY_V5_3',
'COMPUTE_CAPABILITY_V6_0',
'COMPUTE_CAPABILITY_V6_1',
'COMPUTE_CAPABILITY_V6_2',
'COMPUTE_CAPABILITY_V7_0',
'COMPUTE_CAPABILITY_V7_1',
'COMPUTE_CAPABILITY_V7_2',
'SDK_V6_5',
'SDK_V7_5',
'SDK_V8_0',
'SDK_V9_0',
'SDK_V9_1',
'SDK_V9_2',
'SDK_V10_0',
]
_CAPS_V1 = [
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_1',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_2',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_3',
]
_CAPS_V2 = [
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_1',
]
_CAPS_V3 = [
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_2',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_5',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_7',
]
_CAPS_V5 = [
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V5_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V5_2',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V5_3',
]
_CAPS_V6 = [
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V6_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V6_1',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V6_2',
]
_CAPS_V7 = [
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V7_0',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V7_1',
'HW_GPU_CUDA_COMPUTE_CAPABILITY_V7_2',
]
_SDK_COMPUTE_CAP_SUPPORT = {
'HW_GPU_CUDA_SDK_V6_5': set(
_CAPS_V1 + _CAPS_V2 + _CAPS_V3 + _CAPS_V5
),
'HW_GPU_CUDA_SDK_V7_5': set(
_CAPS_V2 + _CAPS_V3 + _CAPS_V5
),
'HW_GPU_CUDA_SDK_V8_0': set(
_CAPS_V2 + _CAPS_V3 + _CAPS_V5 + _CAPS_V6
),
'HW_GPU_CUDA_SDK_V9_0': set(
_CAPS_V3 + _CAPS_V5 + _CAPS_V6 + _CAPS_V7
),
'HW_GPU_CUDA_SDK_V9_1': set(
_CAPS_V3 + _CAPS_V5 + _CAPS_V6 + _CAPS_V7
),
'HW_GPU_CUDA_SDK_V9_2': set(
_CAPS_V3 + _CAPS_V5 + _CAPS_V6 + _CAPS_V7
),
'HW_GPU_CUDA_SDK_V10_0': set(
_CAPS_V3 + _CAPS_V5 + _CAPS_V6 + _CAPS_V7
),
}
def compute_capabilities_supported(sdk_trait):
"""Given an SDK trait, returns a set of compute capability traits that the
version of the SDK supports.
Returns None if no matches were found for the SDK trait.
"""
return _SDK_COMPUTE_CAP_SUPPORT.get(sdk_trait)
os-traits-2.3.0/os_traits/hw/gpu/__init__.py 0000664 0001750 0001750 00000000000 13640201323 020774 0 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/gpu/max_display_heads.py 0000664 0001750 0001750 00000001254 13640201323 022727 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# The maximal number of display outputs or heads.
'1',
'2',
'4',
'6',
'8',
]
os-traits-2.3.0/os_traits/hw/gpu/api.py 0000664 0001750 0001750 00000003425 13640201323 020024 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://en.wikipedia.org/wiki/DirectX
'DIRECTX_V10',
'DIRECTX_V11',
'DIRECTX_V12',
# ref: https://en.wikipedia.org/wiki/Direct2D
'DIRECT2D',
# ref: https://en.wikipedia.org/wiki/Direct3D
'DIRECT3D_V6_0',
'DIRECT3D_V7_0',
'DIRECT3D_V8_0',
'DIRECT3D_V8_1',
'DIRECT3D_V9_0',
'DIRECT3D_V9_0B',
'DIRECT3D_V9_0C',
'DIRECT3D_V9_0L',
'DIRECT3D_V10_0',
'DIRECT3D_V10_1',
'DIRECT3D_V11_0',
'DIRECT3D_V11_1',
'DIRECT3D_V11_2',
'DIRECT3D_V11_3',
'DIRECT3D_V12_0',
# ref: https://en.wikipedia.org/wiki/Vulkan_(API)
'VULKAN',
# ref: https://en.wikipedia.org/wiki/DirectX_Video_Acceleration
'DXVA',
# ref: https://en.wikipedia.org/wiki/OpenCL
'OPENCL_V1_0',
'OPENCL_V1_1',
'OPENCL_V1_2',
'OPENCL_V2_0',
'OPENCL_V2_1',
'OPENCL_V2_2',
# ref: https://en.wikipedia.org/wiki/OpenGL
'OPENGL_V1_1',
'OPENGL_V1_2',
'OPENGL_V1_3',
'OPENGL_V1_4',
'OPENGL_V1_5',
'OPENGL_V2_0',
'OPENGL_V2_1',
'OPENGL_V3_0',
'OPENGL_V3_1',
'OPENGL_V3_2',
'OPENGL_V3_3',
'OPENGL_V4_0',
'OPENGL_V4_1',
'OPENGL_V4_2',
'OPENGL_V4_3',
'OPENGL_V4_4',
'OPENGL_V4_5',
]
os-traits-2.3.0/os_traits/hw/__init__.py 0000664 0001750 0001750 00000000000 13640201323 020201 0 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/numa/ 0000775 0001750 0001750 00000000000 13640201401 017037 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/numa/__init__.py 0000664 0001750 0001750 00000001634 13640201323 021157 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# Characteristics of NUMA nodes/cells/sockets/etc.
TRAITS = [
# A provider representing the subtree root of a NUMA node should be
# decorated with this trait so that requests can represent NUMA affinity
# even when no resources are requested from the NUMA node provider itself.
# See https://review.opendev.org/#/c/662191/
'ROOT',
]
os-traits-2.3.0/os_traits/hw/nic/ 0000775 0001750 0001750 00000000000 13640201401 016650 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/hw/nic/accel.py 0000664 0001750 0001750 00000001502 13640201323 020272 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
'SSL', # SSL crypto
'IPSEC', # IP-Sec crypto
'TLS', # TLS crypto
'DIFFIEH', # Diffie-Hellmann crypto
'RSA', # RSA crypto
'ECC', # Eliptic Curve crypto
'LZS', # LZS compression
'DEFLATE', # Deflate compression
]
os-traits-2.3.0/os_traits/hw/nic/sriov.py 0000664 0001750 0001750 00000002156 13640201323 020373 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# Individual virtual functions can restrict transmit rates
'QOS_TX',
# Individual virtual functions can restrict receive rates
'QOS_RX',
# Individual virtual functions can set up multiple receive and transmit
# queues for receive-side scaling
'MULTIQUEUE',
# If associated with a resource provider representing a physical function,
# all VFs on the PF are marked as trusted. If set on a resource provider
# representing a single virtual function, the VF is individually marked as
# trusted.
'TRUSTED',
]
os-traits-2.3.0/os_traits/hw/nic/offload.py 0000664 0001750 0001750 00000002567 13640201323 020651 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
'TSO', # TCP segmentation
'GRO', # Generic receive
'GSO', # Generic segmentation
'UFO', # UDP Fragmentation
'LRO', # Large receive
'LSO', # Large send
'TCS', # TCP Checksum
'UCS', # UDP Checksum
'SCS', # SCTP Checksum
'L2CRC', # Layer-2 CRC
'FDF', # Intel Flow-Director Filter
'RXVLAN', # VLAN receive tunnel segmentation
'TXVLAN', # VLAN transmit tunnel segmentation
'VXLAN', # VxLAN tunneling
'GRE', # GRE tunneling
'GENEVE', # Geneve tunneling
'TXUDP', # UDP transmit tunnel segmentation
'QINQ', # QinQ specification
'RDMA', # remote direct memory access
'RXHASH', # receive hashing
'RX', # RX checksumming
'TX', # RX checksumming
'SG', # scatter-gather
'SWITCHDEV', # Offload datapath rules
]
os-traits-2.3.0/os_traits/hw/nic/__init__.py 0000664 0001750 0001750 00000001623 13640201323 020766 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# A few generalized capabilities of some NICs
TRAITS = [
'SRIOV', # NIC supports partitioning via SR-IOV
'MULTIQUEUE', # >1 receive and transmit queues
'VMDQ', # Virtual machine device queues
# Some NICs allow processing pipelines to be programmed via FPGAs embedded
# in the NIC itself...
'PROGRAMMABLE_PIPELINE',
]
os-traits-2.3.0/os_traits/hw/nic/dcb.py 0000664 0001750 0001750 00000001375 13640201323 017763 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# IEEE 802.1Qbb Priority-flow control
'PFC',
# IEEE 802.1Qaz Enhanced Transmission Selection
'ETS',
# IEEE 802.1Qau Quantized Congestion Notification
'QCN',
]
os-traits-2.3.0/os_traits/__init__.py 0000664 0001750 0001750 00000013077 13640201323 017605 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import importlib
import pkgutil
import re
import sys
import pbr.version
THIS_NAME = __name__
THIS_LIB = sys.modules[THIS_NAME]
TEST_DIR = "%s.tests" % THIS_NAME
__version__ = pbr.version.VersionInfo(THIS_NAME).version_string()
# Any user-specified feature/trait is prefixed with the custom namespace
CUSTOM_NAMESPACE = 'CUSTOM_'
def _symbolize(mod_name, props):
"""Given a reference to a Python module object and an iterable of short
string names for traits, registers symbols in the module corresponding to
the full namespaced name for each trait.
"""
for prop in props:
leaf_mod = sys.modules[mod_name]
value_base = '_'.join([m.upper() for m in mod_name.split('.')[1:]])
value = value_base + '_' + prop.upper()
setattr(THIS_LIB, value, value) # os_traits.HW_CPU_X86_SSE
setattr(leaf_mod, prop, value) # os_traits.hw.cpu.x86.SSE
def _visualize(mod_name, props, seen=None):
if mod_name in seen:
return
seen.add(mod_name)
components = mod_name.split('.')
tab = ' '
# Print the module name
indent = tab * (len(components) - 1)
print('%s%s:' % (indent, components[-1].upper()))
# Print the properties
indent = tab * len(components)
if props:
print('%s%s' % (indent, ', '.join(props)))
def _walk_submodules(package, recursive, callback, **kwargs):
"""Recursively walk the repository's submodules and invoke a callback for
each module with the list of short trait names found therein.
:param package: The package (name or module obj) to start from.
:param recursive: If True, recurse depth-first.
:param callback: Callable to be invoked for each module. The signature is::
callback(mod_name, props, **kwargs)
* mod_name: the string name of the module (e.g. 'os_traits.hw.cpu').
* props: an iterable of short string names for traits, gleaned from the
TRAITS member of that module, defaulting to [].
* kwargs: The same kwargs as passed to _walk_submodules, useful for
tracking data across calls.
:param kwargs: Arbitrary keyword arguments to be passed to the callback on
each invocation.
"""
if isinstance(package, str):
package = importlib.import_module(package)
for loader, mod_name, is_pkg in pkgutil.walk_packages(
package.__path__, package.__name__ + '.'):
if TEST_DIR in mod_name:
continue
imported = importlib.import_module(mod_name)
props = getattr(imported, "TRAITS", [])
callback(mod_name, props, **kwargs)
if recursive and is_pkg:
_walk_submodules(mod_name, recursive, callback, **kwargs)
# This is where the names defined in submodules are imported by recursively
# importing all submodules/subpackages and symbolizing their TRAITS
_walk_submodules(sys.modules.get(__name__), True, _symbolize)
def get_traits(prefix=None, suffix=None):
"""Returns the trait strings in the os_traits module, optionally filtered
by a supplied prefix and suffix.
:param prefix: Optional string prefix to filter by. e.g. 'HW_'
:param suffix: Optional string suffix to filter by, e.g. 'SSE'
"""
prefix = prefix or ""
suffix = suffix or ""
return [
v for k, v in sys.modules[__name__].__dict__.items()
if isinstance(v, str) and
not k.startswith('_') and
v.startswith(prefix) and
v.endswith(suffix) and
# skip module constants
k not in ('CUSTOM_NAMESPACE', 'THIS_NAME', 'THIS_LIB', 'TEST_DIR')
]
def check_traits(traits, prefix=None):
"""Returns a tuple of two trait string sets, the first set contains valid
traits, and the second contains others.
:param traits: An iterable contains trait strings.
:param prefix: Optional string prefix to filter by. e.g. 'HW_'
"""
trait_set = set(traits)
valid_trait_set = set(get_traits(prefix))
valid_traits = trait_set & valid_trait_set
return (valid_traits, trait_set - valid_traits)
def is_custom(trait):
"""Returns True if the trait string represents a custom trait, or False
otherwise.
:param trait: String name of the trait
"""
return trait.startswith(CUSTOM_NAMESPACE)
def normalize_name(name):
"""Converts an input string to a legal* custom trait name.
Legal custom trait names are prefixed with CUSTOM_ and contain only the
characters A-Z, 0-9, and _ (underscore).
*Does not attempt to handle length restrictions.
:param name: A string to be converted.
:return: A legal* custom trait name.
"""
if name is None:
return None
# Replace non-alphanumeric characters with underscores
norm_name = re.sub('[^0-9A-Za-z]+', '_', name)
# Bug #1762789: Do .upper after replacing non alphanumerics.
return CUSTOM_NAMESPACE + norm_name.upper()
def print_tree():
"""Print (to stdout) a visual representation of all the namespaces and the
(short) trait names defined therein.
"""
_walk_submodules(sys.modules.get(__name__), True, _visualize, seen=set())
os-traits-2.3.0/os_traits/storage/ 0000775 0001750 0001750 00000000000 13640201401 017125 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/storage/__init__.py 0000664 0001750 0001750 00000000000 13640201323 021227 0 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/storage/disk.py 0000664 0001750 0001750 00000001205 13640201323 020432 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
'HDD', # spinning oxide
'SSD', # solid-state disks
]
os-traits-2.3.0/os_traits/tests/ 0000775 0001750 0001750 00000000000 13640201401 016623 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/tests/__init__.py 0000664 0001750 0001750 00000000000 13640201323 020725 0 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/tests/test_cuda.py 0000664 0001750 0001750 00000002754 13640201323 021163 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from os_traits.hw.gpu import cuda
from os_traits.tests import base
class TestCUDA(base.TestCase):
def test_unknown_sdk_support(self):
self.assertIsNone(cuda.compute_capabilities_supported('UNKNOWN'))
def test_sdk6_5_support(self):
expected = set([
cuda.COMPUTE_CAPABILITY_V1_0,
cuda.COMPUTE_CAPABILITY_V1_1,
cuda.COMPUTE_CAPABILITY_V1_2,
cuda.COMPUTE_CAPABILITY_V1_3,
cuda.COMPUTE_CAPABILITY_V2_0,
cuda.COMPUTE_CAPABILITY_V2_1,
cuda.COMPUTE_CAPABILITY_V3_0,
cuda.COMPUTE_CAPABILITY_V3_2,
cuda.COMPUTE_CAPABILITY_V3_5,
cuda.COMPUTE_CAPABILITY_V3_7,
cuda.COMPUTE_CAPABILITY_V5_0,
cuda.COMPUTE_CAPABILITY_V5_2,
cuda.COMPUTE_CAPABILITY_V5_3,
])
actual = cuda.compute_capabilities_supported(cuda.SDK_V6_5)
self.assertEqual(expected, actual)
os-traits-2.3.0/os_traits/tests/test_os_traits.py 0000664 0001750 0001750 00000011604 13640201323 022250 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import re
import os_traits as ot
from os_traits.hw.cpu import x86
from os_traits.hw.gpu import api
from os_traits.hw.gpu import resolution
from os_traits.hw.nic import offload
from os_traits.tests import base
class TestSymbols(base.TestCase):
def test_trait(self):
"""Simply tests that the constants from submodules are imported into
the primary os_traits module space.
"""
trait = ot.HW_CPU_X86_SSE42
self.assertEqual("HW_CPU_X86_SSE42", trait)
# And the "leaf-module" namespace...
self.assertEqual(x86.SSE42, ot.HW_CPU_X86_SSE42)
self.assertEqual(api.DIRECTX_V10, ot.HW_GPU_API_DIRECTX_V10)
self.assertEqual(resolution.W1920H1080,
ot.HW_GPU_RESOLUTION_W1920H1080)
self.assertEqual(offload.TSO, ot.HW_NIC_OFFLOAD_TSO)
def test_get_traits_filter_by_prefix(self):
traits = ot.get_traits('HW_CPU')
self.assertIn("HW_CPU_X86_SSE42", traits)
self.assertIn("HW_CPU_HYPERTHREADING", traits)
self.assertIn(ot.HW_CPU_X86_AVX2, traits)
self.assertNotIn(ot.STORAGE_DISK_SSD, traits)
self.assertNotIn(ot.HW_NIC_SRIOV, traits)
self.assertNotIn('CUSTOM_NAMESPACE', traits)
self.assertNotIn('os_traits', traits)
def test_dunderinit_and_nondunderinit(self):
"""Make sure we can have both dunderinit'd traits and submodules
co-exist in the same namespace.
"""
traits = ot.get_traits('COMPUTE')
self.assertIn("COMPUTE_DEVICE_TAGGING", traits)
self.assertIn(ot.COMPUTE_DEVICE_TAGGING, traits)
self.assertIn("COMPUTE_VOLUME_EXTEND", traits)
self.assertIn(ot.COMPUTE_NET_ATTACH_INTERFACE, traits)
def test_get_traits_filter_by_suffix(self):
traits = ot.get_traits(suffix='SSE42')
self.assertIn("HW_CPU_X86_SSE42", traits)
self.assertEqual(1, len(traits))
def test_get_traits_filter_by_prefix_and_suffix(self):
traits = ot.get_traits(prefix='HW_NIC', suffix='RSA')
self.assertIn("HW_NIC_ACCEL_RSA", traits)
self.assertNotIn(ot.HW_NIC_ACCEL_TLS, traits)
self.assertEqual(1, len(traits))
traits = ot.get_traits(prefix='HW_NIC', suffix='TX')
self.assertIn("HW_NIC_SRIOV_QOS_TX", traits)
self.assertIn("HW_NIC_OFFLOAD_TX", traits)
self.assertEqual(2, len(traits))
def test_check_traits(self):
traits = set(["HW_CPU_X86_SSE42", "HW_CPU_X86_XOP"])
not_traits = set(["not_trait1", "not_trait2"])
check_traits = []
check_traits.extend(traits)
check_traits.extend(not_traits)
self.assertEqual((traits, not_traits),
ot.check_traits(check_traits))
def test_check_traits_filter_by_prefix(self):
hw_trait = "HW_CPU_X86_SSE42"
storage_trait = "STORAGE_DISK_SSD"
check_traits = [hw_trait, storage_trait]
self.assertEqual((set([hw_trait]), set([storage_trait])),
ot.check_traits(check_traits, "HW"))
self.assertEqual((set([storage_trait]), set([hw_trait])),
ot.check_traits(check_traits, "STORAGE"))
self.assertEqual((set(), set([hw_trait, storage_trait])),
ot.check_traits(check_traits, "MISC"))
def test_is_custom(self):
self.assertTrue(ot.is_custom('CUSTOM_FOO'))
self.assertFalse(ot.is_custom('HW_CPU_X86_SSE42'))
def test_trait_names_match_regex(self):
traits = ot.get_traits()
valid_name = re.compile("^[A-Z][A-Z0-9_]*$")
for t in traits:
match = valid_name.match(t)
if not match:
self.fail("Trait %s does not validate name regex." % t)
def test_normalize_name(self):
values = [
("foo", "CUSTOM_FOO"),
("VCPU", "CUSTOM_VCPU"),
("CUSTOM_BOB", "CUSTOM_CUSTOM_BOB"),
("CUSTM_BOB", "CUSTOM_CUSTM_BOB"),
(u"Fu\xdfball", u"CUSTOM_FU_BALL"),
("abc-123", "CUSTOM_ABC_123"),
("Hello, world! This is a test ^_^",
"CUSTOM_HELLO_WORLD_THIS_IS_A_TEST_"),
(" leading and trailing spaces ",
"CUSTOM__LEADING_AND_TRAILING_SPACES_"),
]
for test_value, expected in values:
result = ot.normalize_name(test_value)
self.assertEqual(expected, result)
os-traits-2.3.0/os_traits/tests/base.py 0000664 0001750 0001750 00000001432 13640201323 020112 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Copyright 2010-2011 OpenStack Foundation
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslotest import base
class TestCase(base.BaseTestCase):
"""Test case base class for all unit tests."""
os-traits-2.3.0/os_traits/compute/ 0000775 0001750 0001750 00000000000 13640201401 017135 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits/compute/volume.py 0000664 0001750 0001750 00000001706 13640201323 021025 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# The virt driver supports attaching a volume after boot
'ATTACH',
# The virt driver supports attaching a volume after boot and specifying a
# device tag for the volume
'ATTACH_WITH_TAG',
# The virt driver supports extending a volume after boot
'EXTEND',
# The virt driver supports volumes that can be attached to multiple guests
'MULTI_ATTACH',
]
os-traits-2.3.0/os_traits/compute/status.py 0000664 0001750 0001750 00000001216 13640201323 021035 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# The compute node resource provider is disabled.
'DISABLED',
]
os-traits-2.3.0/os_traits/compute/__init__.py 0000664 0001750 0001750 00000003176 13640201323 021260 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# The virt driver supports associating a tag with a device *at boot time*
'DEVICE_TAGGING',
# A provider with this trait is a compute *node*. (As distinct from
# "compute host" or "hypervisor". These may be synonymous in some cases,
# but the distinction matters e.g. when using the ironic virt driver.)
'NODE',
# The virt driver supports trusted image certificate validation
'TRUSTED_CERTS',
# The virt driver supports cold migrating to the same compute service host.
# This really only works for a cluster-type hypervisor driver like the
# vCenter driver which is a single compute service host managing a vCenter
# cluster of potentially hundreds of ESXi hosts. Note that this trait will
# not make sense to use in GET /allocation_candidates until/unless there is
# a way to tie it to the condition of SAME_HOST-ness.
'SAME_HOST_COLD_MIGRATE',
# The virt driver supports rescuing boot from volume instances.
'RESCUE_BFV',
# The compute manager supports handling accelerator requests.
'ACCELERATORS',
]
os-traits-2.3.0/os_traits/compute/security.py 0000664 0001750 0001750 00000001417 13640201323 021364 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: https://specs.openstack.org/openstack/nova-specs/specs/stein/
# approved/add-emulated-virtual-tpm.html
# support for TPM 1.2
'TPM_1_2',
# support for TPM 2.0
'TPM_2_0'
]
os-traits-2.3.0/os_traits/compute/image.py 0000664 0001750 0001750 00000002321 13640201323 020572 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This is fed from the list at
# https://docs.openstack.org/glance/latest/user/formats.html#disk-format
# and should be kept up to date with same.
TRAITS = [
# Amazon kernel, machine, and ramdisk images
'TYPE_AKI',
'TYPE_AMI',
'TYPE_ARI',
# Optical media
'TYPE_ISO',
# Native format for QEMU
'TYPE_QCOW2',
# Unstructured generic byte-for-byte disk image
'TYPE_RAW',
# Native format for VirtualBox
'TYPE_VDI',
# VHD, VHDX disk (VMware, Xen, Microsoft, VirtualBox, etc)
'TYPE_VHD',
'TYPE_VHDX',
# Native format for VMware
'TYPE_VMDK',
# Native format for Virtuozzo
'TYPE_PLOOP',
]
os-traits-2.3.0/os_traits/compute/net.py 0000664 0001750 0001750 00000002444 13640201323 020304 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# The virt driver supports attaching a network interface after boot
'ATTACH_INTERFACE',
# The virt driver supports attaching a network interface after boot and
# specifying a device tag for the interface
'ATTACH_INTERFACE_WITH_TAG',
# traits corresponding to the allowed values of "hw_vif_model"
# image metadata property
# https://github.com/openstack/nova/blob/1f74441/nova/network/model.py#L136-L149
'VIF_MODEL_E1000',
'VIF_MODEL_E1000E',
'VIF_MODEL_LAN9118',
'VIF_MODEL_NETFRONT',
'VIF_MODEL_NE2K_PCI',
'VIF_MODEL_PCNET',
'VIF_MODEL_RTL8139',
'VIF_MODEL_SPAPR_VLAN',
'VIF_MODEL_SRIOV',
'VIF_MODEL_VIRTIO',
'VIF_MODEL_VMXNET',
'VIF_MODEL_VMXNET3',
]
os-traits-2.3.0/os_traits/compute/migrate.py 0000664 0001750 0001750 00000001372 13640201323 021145 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# ref: http://specs.openstack.org/openstack/nova-specs/specs/train/approved/expose-auto-converge-post-copy.html#proposed-change # noqa
'AUTO_CONVERGE',
'POST_COPY',
]
os-traits-2.3.0/os_traits/compute/storage.py 0000664 0001750 0001750 00000001637 13640201323 021165 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# traits corresponding to the allowed values of "hw_disk_bus"
# and "hw_cdrom_bus" image metadata properties
# https://github.com/openstack/nova/blob/1f74441/nova/objects/fields.py#L320-L332
'BUS_FDC',
'BUS_IDE',
'BUS_LXC',
'BUS_SATA',
'BUS_SCSI',
'BUS_USB',
'BUS_VIRTIO',
'BUS_UML',
'BUS_XEN',
]
os-traits-2.3.0/os_traits/compute/graphics.py 0000664 0001750 0001750 00000001622 13640201323 021313 0 ustar zuul zuul 0000000 0000000 # -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TRAITS = [
# traits corresponding to the allowed values of "hw_video_model"
# image metadata property
# https://github.com/openstack/nova/blob/1f74441/nova/objects/fields.py#L501-L509
'MODEL_CIRRUS',
'MODEL_GOP',
'MODEL_NONE',
'MODEL_QXL',
'MODEL_VGA',
'MODEL_VIRTIO',
'MODEL_VMVGA',
'MODEL_XEN',
]
os-traits-2.3.0/CONTRIBUTING.rst 0000664 0001750 0001750 00000001357 13640201323 016124 0 ustar zuul zuul 0000000 0000000 If you would like to contribute to the development of OpenStack, you must
follow the steps in this page:
https://docs.openstack.org/infra/manual/developers.html
If you already have a good understanding of how the system works and your
OpenStack accounts are set up, you can skip to the development workflow
section of this documentation to learn how changes to OpenStack should be
submitted for review via the Gerrit tool:
https://docs.openstack.org/infra/manual/developers.html#development-workflow
Pull requests submitted through GitHub will be ignored.
Bugs should be filed on StoryBoard, not GitHub:
https://storyboard.openstack.org/#!/project/openstack/os-traits
The code is hosted at:
https://opendev.org/openstack/os-traits
os-traits-2.3.0/README.rst 0000664 0001750 0001750 00000001344 13640201323 015146 0 ustar zuul zuul 0000000 0000000 =========
os-traits
=========
`os-traits` is an OpenStack library containing standardized trait strings.
Traits are strings that represent a feature of a resource provider hosted by
the Placement_ service. This library contains the catalog of constants that
have been standardized in the OpenStack community to refer to a particular
hardware, virtualization, storage, network, or device trait.
* Free software: Apache license
* Documentation: https://docs.openstack.org/os-traits/latest/
* Source: http://opendev.org/openstack/os-traits
* Bugs: https://storyboard.openstack.org/#!/project/openstack/os-traits
* Release Notes: https://docs.openstack.org/releasenotes/os-traits
.. _Placement: https://docs.openstack.org/placement/latest/
os-traits-2.3.0/babel.cfg 0000664 0001750 0001750 00000000021 13640201323 015174 0 ustar zuul zuul 0000000 0000000 [python: **.py]
os-traits-2.3.0/setup.cfg 0000664 0001750 0001750 00000002146 13640201401 015276 0 ustar zuul zuul 0000000 0000000 [metadata]
name = os-traits
summary = A library containing standardized trait strings
description-file =
README.rst
author = OpenStack
author-email = openstack-discuss@lists.openstack.org
home-page = https://docs.openstack.org/os-traits/latest/
python-requires = >=3.6
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython
[files]
packages =
os_traits
[compile_catalog]
directory = os_traits/locale
domain = os_traits
[update_catalog]
domain = os_traits
output_dir = os_traits/locale
input_file = os_traits/locale/os_traits.pot
[extract_messages]
keywords = _ gettext ngettext l_ lazy_gettext
mapping_file = babel.cfg
output_file = os_traits/locale/os_traits.pot
[egg_info]
tag_build =
tag_date = 0
os-traits-2.3.0/os_traits.egg-info/ 0000775 0001750 0001750 00000000000 13640201401 017153 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/os_traits.egg-info/PKG-INFO 0000664 0001750 0001750 00000003362 13640201401 020254 0 ustar zuul zuul 0000000 0000000 Metadata-Version: 1.2
Name: os-traits
Version: 2.3.0
Summary: A library containing standardized trait strings
Home-page: https://docs.openstack.org/os-traits/latest/
Author: OpenStack
Author-email: openstack-discuss@lists.openstack.org
License: UNKNOWN
Description: =========
os-traits
=========
`os-traits` is an OpenStack library containing standardized trait strings.
Traits are strings that represent a feature of a resource provider hosted by
the Placement_ service. This library contains the catalog of constants that
have been standardized in the OpenStack community to refer to a particular
hardware, virtualization, storage, network, or device trait.
* Free software: Apache license
* Documentation: https://docs.openstack.org/os-traits/latest/
* Source: http://opendev.org/openstack/os-traits
* Bugs: https://storyboard.openstack.org/#!/project/openstack/os-traits
* Release Notes: https://docs.openstack.org/releasenotes/os-traits
.. _Placement: https://docs.openstack.org/placement/latest/
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
os-traits-2.3.0/os_traits.egg-info/SOURCES.txt 0000664 0001750 0001750 00000004010 13640201401 021032 0 ustar zuul zuul 0000000 0000000 .stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
ChangeLog
HACKING.rst
LICENSE
MANIFEST.in
README.rst
babel.cfg
requirements.txt
setup.cfg
setup.py
test-requirements.txt
tox.ini
doc/requirements.txt
doc/source/conf.py
doc/source/index.rst
doc/source/contributor/index.rst
doc/source/install/index.rst
doc/source/reference/index.rst
doc/source/user/index.rst
os_traits/__init__.py
os_traits.egg-info/PKG-INFO
os_traits.egg-info/SOURCES.txt
os_traits.egg-info/dependency_links.txt
os_traits.egg-info/not-zip-safe
os_traits.egg-info/pbr.json
os_traits.egg-info/requires.txt
os_traits.egg-info/top_level.txt
os_traits/compute/__init__.py
os_traits/compute/graphics.py
os_traits/compute/image.py
os_traits/compute/migrate.py
os_traits/compute/net.py
os_traits/compute/security.py
os_traits/compute/status.py
os_traits/compute/storage.py
os_traits/compute/volume.py
os_traits/hw/__init__.py
os_traits/hw/cpu/__init__.py
os_traits/hw/cpu/aarch64.py
os_traits/hw/cpu/amd.py
os_traits/hw/cpu/ppc64le/__init__.py
os_traits/hw/cpu/x86/__init__.py
os_traits/hw/cpu/x86/amd.py
os_traits/hw/cpu/x86/intel.py
os_traits/hw/gpu/__init__.py
os_traits/hw/gpu/api.py
os_traits/hw/gpu/cuda.py
os_traits/hw/gpu/max_display_heads.py
os_traits/hw/gpu/resolution.py
os_traits/hw/nic/__init__.py
os_traits/hw/nic/accel.py
os_traits/hw/nic/dcb.py
os_traits/hw/nic/offload.py
os_traits/hw/nic/sriov.py
os_traits/hw/numa/__init__.py
os_traits/misc/__init__.py
os_traits/storage/__init__.py
os_traits/storage/disk.py
os_traits/tests/__init__.py
os_traits/tests/base.py
os_traits/tests/test_cuda.py
os_traits/tests/test_os_traits.py
releasenotes/notes/.placeholder
releasenotes/notes/add-suffix-get_traits-d1d91edcf7f65188.yaml
releasenotes/notes/drop-python2-support-d11499973c50713b.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
releasenotes/source/rocky.rst
releasenotes/source/stein.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder os-traits-2.3.0/os_traits.egg-info/top_level.txt 0000664 0001750 0001750 00000000012 13640201401 021676 0 ustar zuul zuul 0000000 0000000 os_traits
os-traits-2.3.0/os_traits.egg-info/pbr.json 0000664 0001750 0001750 00000000056 13640201401 020632 0 ustar zuul zuul 0000000 0000000 {"git_version": "bca5bac", "is_release": true} os-traits-2.3.0/os_traits.egg-info/not-zip-safe 0000664 0001750 0001750 00000000001 13640201401 021401 0 ustar zuul zuul 0000000 0000000
os-traits-2.3.0/os_traits.egg-info/dependency_links.txt 0000664 0001750 0001750 00000000001 13640201401 023221 0 ustar zuul zuul 0000000 0000000
os-traits-2.3.0/os_traits.egg-info/requires.txt 0000664 0001750 0001750 00000000023 13640201401 021546 0 ustar zuul zuul 0000000 0000000 pbr!=2.1.0,>=2.0.0
os-traits-2.3.0/setup.py 0000664 0001750 0001750 00000002006 13640201323 015165 0 ustar zuul zuul 0000000 0000000 # Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
# In python < 2.7.4, a lazy loading of package `pbr` will break
# setuptools if some other modules registered functions in `atexit`.
# solution from: http://bugs.python.org/issue15881#msg170215
try:
import multiprocessing # noqa
except ImportError:
pass
setuptools.setup(
setup_requires=['pbr>=2.0.0'],
pbr=True)
os-traits-2.3.0/ChangeLog 0000664 0001750 0001750 00000010274 13640201401 015230 0 ustar zuul zuul 0000000 0000000 CHANGES
=======
2.3.0
-----
* Switch to hacking 2.x
* Remove use of six
* setup.cfg: Remove unused 'build\_sphinx' configuration
* setup.cfg: Configure 'python-requires'
2.2.0
-----
* Add a trait that compute manager can handle accelerator requests
* Add COMPUTE\_RESCUE\_BFV trait
2.1.0
-----
* Add COMPUTE\_SAME\_HOST\_COLD\_MIGRATE trait
2.0.0
-----
* Add 'TYPE\_PLOOP' image type
* Stop testing with py2 and switch to ussuri jobs
1.1.0
-----
* Add COMPUTE\_NODE trait
1.0.0
-----
* Privatize and reorganize base package methods
* Add method to visualize the os-traits tree
* Build pdf docs
* Update README to be a bit more clear
* Add support for ppc64le platforms
* Followup: spec ref for auto-converge/post-copy
0.16.0
------
* Add new traits to flag live migration features
* CPU: add a trait for AVX512-VNNI support
* Add Python 3 Train unit tests
0.15.0
------
* Add COMPUTE\_STATUS\_DISABLED trait
* add GOP, NONE and VIRTIO grapics models
* add libvirt image metadata traits
* Sync Sphinx requirement
0.14.0
------
* Create trait for NUMA subtree affinity
0.13.0
------
* hw: cpu: Rework the directory layout; add missing traits
* Replace git.openstack.org URLs with opendev.org URLs
* Update SEV trait docs to avoid misleading people
* Document policy of never removing traits
* Dropping the py35 testing
* OpenDev Migration Patch
0.12.0
------
* Add contextual comment about image type traits
* Add COMPUTE\_IMAGE\_TYPE\_\* traits
* Update master for stable/stein
* Update bug links for storyboard
* Change python3.5 job to python3.7 job on Stein+
0.11.0
------
* Add HW\_CPU\_AMD\_SEV trait
* Add new traits for TPM support
* Update hacking version to latest
* Update author-email in setup.cfg
0.10.0
------
* Removed older version of python added 3.5
* clean up CUDA traits
* add python 3.6 unit test job
* switch documentation job to new PTI
* import zuul job settings from project-config
* Add CUDA versions 8 and 9
* Update reno for stable/rocky
* fix tox python3 overrides
0.9.0
-----
* Switch to stestr
* Follow the new PTI for document build
* tox: Remove '-constraints' targets
0.8.0
-----
* Add release note link in README
* Add COMPUTE\_TRUSTED\_CERTS trait
* normalize\_name helper
* Adds HW\_CPU\_HYPERTHREADING standard trait
0.7.0
-----
* Add compute capabilities traits
0.6.0
-----
* GPU: define traits for maximum display heads
* Updated from global requirements
* Add HW\_NIC\_SRIOV\_TRUSTED trait
* Update Usage information
* Add code hosting URL
* Updated from global requirements
* Update reno for stable/queens
* Add CPU features for AArch64
0.5.0
-----
* Updated from global requirements
* Add NIC Switchdev feature
0.4.0
-----
* Updated from global requirements
* Update the documentation urls
* Updated from global requirements
* doc: Remove cruft from conf.py
* doc: Switch from oslosphinx to openstackdocstheme
* Update reno for stable/pike
* Add a new parameter \`\`suffix\`\` to function \`\`get\_traits\`\`
0.3.3
-----
* Updated from global requirements
* doc: Create directory structure for docs migration
* setup.cfg: Add warning-is-error
* Remove AUTHORS and ChangeLog
0.3.2
-----
* Add NIC offload features
* Add filtering option in "check\_traits"
* GPU: add os traits for GPU - resolution
* GPU: add os traits for GPU - API
* Adjust module level constants to uppercase
0.3.1
-----
* Correctly recurse os\_traits packages
* Build\_sphinx always failed
0.3.0
-----
* Adds a validation test for trait names
* Remove 'CUSTOM\_NAMESPACE'/'os\_traits' from traits
* remove redundant get\_symbol\_names() func
* Adds MISC\_SHARES\_VIA\_AGGREGATE standard trait
* Automate the import of traits
* Add NIC namespace and features
* organize os\_traits for the future
* Updated from global requirements
0.2.0
-----
* Add storage and disk namespaces and features
* Add custom namespace
* normalize constants to align with resource classes
* update pep8/hacking and address failures
0.1.0
-----
* Manual sync from the openstack/requirements bot
* Add check\_traits function
* Add tests for os\_traits
* Fix testing with tox
* Correct .gitignore to exclude \*.egg\* generated by pbr
* Rename the rest capabilities to traits
* Rename capabilities to traits
* Initial commit of os-capabilities library
os-traits-2.3.0/AUTHORS 0000664 0001750 0001750 00000003016 13640201401 014522 0 ustar zuul zuul 0000000 0000000 Adam Spiers
Charles Short
Chris Dent
Corey Bryant
Dan Smith
Doug Hellmann
EdLeafe
Edan David
Eric Fried
Eric Fried
Ghanshyam Mann
Jay Pipes
Jianghua Wang
Kashyap Chamarthy
Kevin Zhao
Konstantinos Samaras-Tsakiris
Lee Yarwood
Matt Riedemann
Michael Davies
OpenStack Release Bot
Paul-Emile Element
Rodolfo Alonso Hernandez
Ruby Loo
Sean Mooney
Stephen Finucane
Sundar Nadathur
Takashi NATSUME
Tony Breeds
Victor Morales
Vu Cong Tuan
Wang Huaqiang
Yingxin
ZhijunWei
caoyuan
dineshbhor
ericxiett
gaozx
jacky06
jianghua wang
qingszhao
ya.wang
os-traits-2.3.0/.zuul.yaml 0000664 0001750 0001750 00000000241 13640201323 015413 0 ustar zuul zuul 0000000 0000000 - project:
templates:
- publish-openstack-docs-pti
- check-requirements
- openstack-python3-ussuri-jobs
- release-notes-jobs-python3
os-traits-2.3.0/MANIFEST.in 0000664 0001750 0001750 00000000136 13640201323 015213 0 ustar zuul zuul 0000000 0000000 include AUTHORS
include ChangeLog
exclude .gitignore
exclude .gitreview
global-exclude *.pyc
os-traits-2.3.0/requirements.txt 0000664 0001750 0001750 00000000363 13640201323 016743 0 ustar zuul zuul 0000000 0000000 # The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
pbr!=2.1.0,>=2.0.0 # Apache-2.0
os-traits-2.3.0/HACKING.rst 0000664 0001750 0001750 00000000214 13640201323 015250 0 ustar zuul zuul 0000000 0000000 os-traits Style Commandments
============================
Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
os-traits-2.3.0/test-requirements.txt 0000664 0001750 0001750 00000000612 13640201323 017715 0 ustar zuul zuul 0000000 0000000 # The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
hacking>=2.0.0,<2.1.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
os-traits-2.3.0/releasenotes/ 0000775 0001750 0001750 00000000000 13640201401 016143 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/source/ 0000775 0001750 0001750 00000000000 13640201401 017443 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/source/_static/ 0000775 0001750 0001750 00000000000 13640201401 021071 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/source/_static/.placeholder 0000664 0001750 0001750 00000000000 13640201323 023345 0 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/source/conf.py 0000664 0001750 0001750 00000004335 13640201323 020752 0 ustar zuul zuul 0000000 0000000 # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# os-traits Release Notes documentation build configuration file
#
# Refer to the Sphinx documentation for advice on configuring this file:
#
# http://www.sphinx-doc.org/en/stable/config.html
# -- General configuration ------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'openstackdocstheme',
'reno.sphinxext',
]
# openstackdocstheme options
repository_name = 'openstack/os-traits'
bug_project = 'os-traits'
# The suffix of source filenames.
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'os-traits Release Notes'
copyright = u'2017, OpenStack Foundation'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
# The full version, including alpha/beta/rc tags.
release = ''
# The short X.Y version.
version = ''
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'openstackdocs'
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
html_last_updated_fmt = '%Y-%m-%d %H:%M'
os-traits-2.3.0/releasenotes/source/queens.rst 0000664 0001750 0001750 00000000223 13640201323 021475 0 ustar zuul zuul 0000000 0000000 ===================================
Queens Series Release Notes
===================================
.. release-notes::
:branch: stable/queens
os-traits-2.3.0/releasenotes/source/index.rst 0000664 0001750 0001750 00000000231 13640201323 021303 0 ustar zuul zuul 0000000 0000000 =======================
os_traits Release Notes
=======================
.. toctree::
:maxdepth: 1
unreleased
stein
rocky
queens
pike
os-traits-2.3.0/releasenotes/source/stein.rst 0000664 0001750 0001750 00000000176 13640201323 021326 0 ustar zuul zuul 0000000 0000000 ==========================
Stein Series Release Notes
==========================
.. release-notes::
:branch: stable/stein
os-traits-2.3.0/releasenotes/source/rocky.rst 0000664 0001750 0001750 00000000176 13640201323 021333 0 ustar zuul zuul 0000000 0000000 ==========================
Rocky Series Release Notes
==========================
.. release-notes::
:branch: stable/rocky
os-traits-2.3.0/releasenotes/source/_templates/ 0000775 0001750 0001750 00000000000 13640201401 021600 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/source/_templates/.placeholder 0000664 0001750 0001750 00000000000 13640201323 024054 0 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/source/pike.rst 0000664 0001750 0001750 00000000172 13640201323 021130 0 ustar zuul zuul 0000000 0000000 =========================
Pike Series Release Notes
=========================
.. release-notes::
:branch: stable/pike
os-traits-2.3.0/releasenotes/source/unreleased.rst 0000664 0001750 0001750 00000000160 13640201323 022324 0 ustar zuul zuul 0000000 0000000 ==============================
Current Series Release Notes
==============================
.. release-notes::
os-traits-2.3.0/releasenotes/notes/ 0000775 0001750 0001750 00000000000 13640201401 017273 5 ustar zuul zuul 0000000 0000000 os-traits-2.3.0/releasenotes/notes/drop-python2-support-d11499973c50713b.yaml 0000664 0001750 0001750 00000000116 13640201323 026240 0 ustar zuul zuul 0000000 0000000 ---
upgrade:
- |
Python 2 is no longer supported. Python 3 is required.
os-traits-2.3.0/releasenotes/notes/add-suffix-get_traits-d1d91edcf7f65188.yaml 0000664 0001750 0001750 00000000301 13640201323 026664 0 ustar zuul zuul 0000000 0000000 ---
features:
- |
Added a new optional parameter ``suffix`` to function ``get_traits``. This
new parameter allows filtering the list of traits returned by the ending
of the name.
os-traits-2.3.0/releasenotes/notes/.placeholder 0000664 0001750 0001750 00000000000 13640201323 021547 0 ustar zuul zuul 0000000 0000000