os-traits-0.5.0/0000775000175100017510000000000013225755211013470 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/0000775000175100017510000000000013225755211015477 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/tests/0000775000175100017510000000000013225755211016641 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/tests/__init__.py0000666000175100017510000000000013225754767020761 0ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/tests/base.py0000666000175100017510000000143213225754767020146 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/tests/test_os_traits.py0000666000175100017510000000735713225754767022316 0ustar zuulzuul00000000000000# -*- 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(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_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) os-traits-0.5.0/os_traits/hw/0000775000175100017510000000000013225755211016115 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/cpu/0000775000175100017510000000000013225755211016704 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/cpu/__init__.py0000666000175100017510000000000013225754767021024 0ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/cpu/x86.py0000666000175100017510000000350713225754767017731 0ustar zuulzuul00000000000000# -*- 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 # 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 'VMX', # ref: https://en.wikipedia.org/wiki/AMD-V 'SVM', ] os-traits-0.5.0/os_traits/hw/__init__.py0000666000175100017510000000000013225754767020235 0ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/gpu/0000775000175100017510000000000013225755211016710 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/gpu/api.py0000666000175100017510000000416513225754767020062 0ustar zuulzuul00000000000000# -*- 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', # ref: https://en.wikipedia.org/wiki/CUDA 'CUDA_V1_0', 'CUDA_V1_1', 'CUDA_V1_2', 'CUDA_V1_3', 'CUDA_V2_0', 'CUDA_V2_1', 'CUDA_V3_0', 'CUDA_V3_2', 'CUDA_V3_5', 'CUDA_V3_7', 'CUDA_V5_0', 'CUDA_V5_2', 'CUDA_V5_3', 'CUDA_V6_0', 'CUDA_V6_1', 'CUDA_V6_2', 'CUDA_V7_0', 'CUDA_V7_1', ] os-traits-0.5.0/os_traits/hw/gpu/__init__.py0000666000175100017510000000000013225754767021030 0ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/gpu/resolution.py0000666000175100017510000000200113225754767021477 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/hw/nic/0000775000175100017510000000000013225755211016666 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/hw/nic/offload.py0000666000175100017510000000256713225755007020671 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/hw/nic/__init__.py0000666000175100017510000000162313225754767021022 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/hw/nic/accel.py0000666000175100017510000000150213225754767020326 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/hw/nic/sriov.py0000666000175100017510000000154513225754767020430 0ustar zuulzuul00000000000000# -*- 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', ] os-traits-0.5.0/os_traits/hw/nic/dcb.py0000666000175100017510000000137513225754767020017 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/__init__.py0000666000175100017510000000701013225754767017627 0ustar zuulzuul00000000000000# -*- 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 sys import pbr.version import six 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, name): """Given a reference to a Python module object and a short string name for a trait, registers a symbol in the module that corresponds to the full namespaced trait name. """ leaf_mod = sys.modules[mod_name] value_base = '_'.join([m.upper() for m in mod_name.split('.')[1:]]) value = value_base + '_' + name.upper() setattr(THIS_LIB, value, value) # os_traits.HW_CPU_X86_SSE setattr(leaf_mod, name, value) # os_traits.hw.cpu.x86.SSE def import_submodules(package, recursive=True): """Import all submodules of a module, recursively, including subpackages :param package: package (name or actual module) :type package: str | module :rtype: dict[str, types.ModuleType] """ if isinstance(package, str): package = importlib.import_module(package) for loader, name, is_pkg in pkgutil.walk_packages( package.__path__, package.__name__ + '.'): if TEST_DIR in name: continue imported = importlib.import_module(name) for prop in getattr(imported, "TRAITS", []): symbolize(name, prop) if recursive and is_pkg: import_submodules(name) # This is where the names defined in submodules are imported import_submodules(sys.modules.get(__name__)) 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, six.string_types) 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) os-traits-0.5.0/os_traits/misc/0000775000175100017510000000000013225755211016432 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/misc/__init__.py0000666000175100017510000000335713225754767020574 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/storage/0000775000175100017510000000000013225755211017143 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits/storage/disk.py0000666000175100017510000000120513225754767020466 0ustar zuulzuul00000000000000# -*- 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-0.5.0/os_traits/storage/__init__.py0000666000175100017510000000000013225754767021263 0ustar zuulzuul00000000000000os-traits-0.5.0/HACKING.rst0000666000175100017510000000023713225754767015311 0ustar zuulzuul00000000000000os-traits Style Commandments =============================================== Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ os-traits-0.5.0/test-requirements.txt0000666000175100017510000000105613225754767017754 0ustar zuulzuul00000000000000# 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!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 python-subunit>=1.0.0 # Apache-2.0/BSD sphinx>=1.6.2 # BSD openstackdocstheme>=1.17.0 # Apache-2.0 oslotest>=1.10.0 # Apache-2.0 testrepository>=0.0.18 # Apache-2.0/BSD testscenarios>=0.4 # Apache-2.0/BSD testtools>=2.2.0 # MIT # releasenotes reno>=2.5.0 # Apache-2.0 os-traits-0.5.0/CONTRIBUTING.rst0000666000175100017510000000121713225754767016153 0ustar zuulzuul00000000000000If 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 Launchpad, not GitHub: https://bugs.launchpad.net/os-traits os-traits-0.5.0/ChangeLog0000664000175100017510000000323113225755210015240 0ustar zuulzuul00000000000000CHANGES ======= 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-0.5.0/requirements.txt0000666000175100017510000000040513225754767016774 0ustar zuulzuul00000000000000# 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 six>=1.10.0 # MIT os-traits-0.5.0/LICENSE0000666000175100017510000002363713225754767014531 0ustar zuulzuul00000000000000 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-0.5.0/AUTHORS0000664000175100017510000000067313225755210014545 0ustar zuulzuul00000000000000Chris Dent EdLeafe Edan David Jay Pipes OpenStack Release Bot Rodolfo Alonso Hernandez Stephen Finucane Tony Breeds Yingxin Zuul gaozx jianghua wang os-traits-0.5.0/PKG-INFO0000664000175100017510000000301313225755211014562 0ustar zuulzuul00000000000000Metadata-Version: 1.1 Name: os-traits Version: 0.5.0 Summary: A library containing standardized trait strings Home-page: https://docs.openstack.org/os-traits/latest/ Author: OpenStack Author-email: openstack-dev@lists.openstack.org License: UNKNOWN Description-Content-Type: UNKNOWN Description: ========= 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. * Free software: Apache license * Documentation: https://docs.openstack.org/os-traits/latest/ * Source: http://git.openstack.org/cgit/openstack/os-traits * Bugs: https://bugs.launchpad.net/os-traits 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 :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 os-traits-0.5.0/MANIFEST.in0000666000175100017510000000013613225754767015247 0ustar zuulzuul00000000000000include AUTHORS include ChangeLog exclude .gitignore exclude .gitreview global-exclude *.pyc os-traits-0.5.0/tox.ini0000666000175100017510000000352213225754767015026 0ustar zuulzuul00000000000000[tox] minversion = 2.0 envlist = py34-constraints,py27-constraints,pypy-constraints,pep8-constraints skipsdist = True [testenv] usedevelop = True install_command = constraints: {[testenv:common-constraints]install_command} pip install -U {opts} {packages} setenv = VIRTUAL_ENV={envdir} deps = -r{toxinidir}/test-requirements.txt commands = python setup.py testr --slowest --testr-args='{posargs}' [testenv:common-constraints] install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages} [testenv:pep8] commands = flake8 {posargs} [testenv:pep8-constraints] install_command = {[testenv:common-constraints]install_command} commands = flake8 {posargs} [testenv:venv] commands = {posargs} [testenv:venv-constraints] install_command = {[testenv:common-constraints]install_command} commands = {posargs} [testenv:cover] commands = python setup.py test --coverage --testr-args='{posargs}' [testenv:cover-constraints] install_command = {[testenv:common-constraints]install_command} commands = python setup.py test --coverage --testr-args='{posargs}' [testenv:docs] commands = python setup.py build_sphinx [testenv:releasenotes] commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:docs-constraints] install_command = {[testenv:common-constraints]install_command} commands = python setup.py build_sphinx [testenv:debug] commands = oslo_debug_helper {posargs} [testenv:debug-constraints] install_command = {[testenv:common-constraints]install_command} commands = oslo_debug_helper {posargs} [flake8] # E123, E125 skipped as they are invalid PEP-8. show-source = True ignore = E123,E125,H405 builtins = _ exclude=.venv,.git,.tox,dist,*lib/python*,*egg,build os-traits-0.5.0/releasenotes/0000775000175100017510000000000013225755211016161 5ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/source/0000775000175100017510000000000013225755211017461 5ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/source/conf.py0000666000175100017510000000433513225754767021006 0ustar zuulzuul00000000000000# 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-0.5.0/releasenotes/source/_static/0000775000175100017510000000000013225755211021107 5ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/source/_static/.placeholder0000666000175100017510000000000013225754767023401 0ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/source/unreleased.rst0000666000175100017510000000016013225754767022360 0ustar zuulzuul00000000000000============================== Current Series Release Notes ============================== .. release-notes:: os-traits-0.5.0/releasenotes/source/index.rst0000666000175100017510000000025013225754767021340 0ustar zuulzuul00000000000000============================================ os_traits Release Notes ============================================ .. toctree:: :maxdepth: 1 unreleased pike os-traits-0.5.0/releasenotes/source/_templates/0000775000175100017510000000000013225755211021616 5ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/source/_templates/.placeholder0000666000175100017510000000000013225754767024110 0ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/source/pike.rst0000666000175100017510000000021713225754767021164 0ustar zuulzuul00000000000000=================================== Pike Series Release Notes =================================== .. release-notes:: :branch: stable/pike os-traits-0.5.0/releasenotes/notes/0000775000175100017510000000000013225755211017311 5ustar zuulzuul00000000000000os-traits-0.5.0/releasenotes/notes/add-suffix-get_traits-d1d91edcf7f65188.yaml0000666000175100017510000000030113225754767026720 0ustar zuulzuul00000000000000--- 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-0.5.0/releasenotes/notes/.placeholder0000666000175100017510000000000013225754767021603 0ustar zuulzuul00000000000000os-traits-0.5.0/.testr.conf0000666000175100017510000000054213225754767015600 0ustar zuulzuul00000000000000[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./os_traits/tests} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list os-traits-0.5.0/README.rst0000666000175100017510000000105413225754767015200 0ustar zuulzuul00000000000000========= 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. * Free software: Apache license * Documentation: https://docs.openstack.org/os-traits/latest/ * Source: http://git.openstack.org/cgit/openstack/os-traits * Bugs: https://bugs.launchpad.net/os-traits os-traits-0.5.0/doc/0000775000175100017510000000000013225755211014235 5ustar zuulzuul00000000000000os-traits-0.5.0/doc/source/0000775000175100017510000000000013225755211015535 5ustar zuulzuul00000000000000os-traits-0.5.0/doc/source/user/0000775000175100017510000000000013225755211016513 5ustar zuulzuul00000000000000os-traits-0.5.0/doc/source/user/index.rst0000666000175100017510000000302313225754767020373 0ustar zuulzuul00000000000000===== 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:: $ python Python 2.7.11+ (default, Apr 17 2016, 14:00:29) [GCC 5.3.1 20160413] on linux2 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:: >>> pprint.pprint(ot.get_traits(ot.NAMESPACES['X86'])) ['HW_CPU_X86_AES-NI', 'HW_CPU_X86_AVX512ER', 'HW_CPU_X86_AVX512CD', 'HW_CPU_X86_TBM', 'HW_CPU_X86_TSX', 'HW_CPU_X86_FMA3', 'HW_CPU_X86_SVM', 'HW_CPU_X86_FMA4', 'HW_CPU_X86_MPX', 'HW_CPU_X86_SSE2', 'HW_CPU_X86_SSE3', 'HW_CPU_X86_MMX', 'HW_CPU_X86_SSSE3', 'HW_CPU_X86_SSE4A', 'HW_CPU_X86_AVX2', 'HW_CPU_X86_SGX', 'HW_CPU_X86_AVX', 'HW_CPU_X86_AVX512BW', 'HW_CPU_X86_AVX512DQ', 'HW_CPU_X86_SSE', 'HW_CPU_X86_SHA', 'HW_CPU_X86_AVX512F', 'HW_CPU_X86_F16C', 'HW_CPU_X86_SSE41', 'HW_CPU_X86_SSE42', 'HW_CPU_X86_VMX', 'HW_CPU_X86_ASF', 'HW_CPU_X86_BMI2', 'HW_CPU_X86_CLMUL', 'HW_CPU_X86_AVX512VL', 'HW_CPU_X86_AVX512PF', 'HW_CPU_X86_XOP', 'HW_CPU_X86_BMI', 'HW_CPU_X86_ABM', 'HW_CPU_X86_3DNOW'] os-traits-0.5.0/doc/source/conf.py0000777000175100017510000000352713225754767017067 0ustar zuulzuul00000000000000# 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' os-traits-0.5.0/doc/source/install/0000775000175100017510000000000013225755211017203 5ustar zuulzuul00000000000000os-traits-0.5.0/doc/source/install/index.rst0000666000175100017510000000030413225754767021062 0ustar zuulzuul00000000000000============ Installation ============ At the command line:: $ pip install os-traits Or, if you have virtualenvwrapper installed:: $ mkvirtualenv os-traits $ pip install os-traits os-traits-0.5.0/doc/source/index.rst0000666000175100017510000000124113225754767017415 0ustar zuulzuul00000000000000========= 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-0.5.0/doc/source/reference/0000775000175100017510000000000013225755211017473 5ustar zuulzuul00000000000000os-traits-0.5.0/doc/source/reference/index.rst0000666000175100017510000000004513225754767021354 0ustar zuulzuul00000000000000========= Reference ========= TODO. os-traits-0.5.0/doc/source/contributor/0000775000175100017510000000000013225755211020107 5ustar zuulzuul00000000000000os-traits-0.5.0/doc/source/contributor/index.rst0000666000175100017510000000011713225754767021770 0ustar zuulzuul00000000000000============ Contributing ============ .. include:: ../../../CONTRIBUTING.rst os-traits-0.5.0/os_traits.egg-info/0000775000175100017510000000000013225755211017171 5ustar zuulzuul00000000000000os-traits-0.5.0/os_traits.egg-info/requires.txt0000664000175100017510000000003713225755210021570 0ustar zuulzuul00000000000000pbr!=2.1.0,>=2.0.0 six>=1.10.0 os-traits-0.5.0/os_traits.egg-info/SOURCES.txt0000664000175100017510000000247013225755211021060 0ustar zuulzuul00000000000000.testr.conf 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/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/hw/__init__.py os_traits/hw/cpu/__init__.py os_traits/hw/cpu/x86.py os_traits/hw/gpu/__init__.py os_traits/hw/gpu/api.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/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_os_traits.py releasenotes/notes/.placeholder releasenotes/notes/add-suffix-get_traits-d1d91edcf7f65188.yaml releasenotes/source/conf.py releasenotes/source/index.rst releasenotes/source/pike.rst releasenotes/source/unreleased.rst releasenotes/source/_static/.placeholder releasenotes/source/_templates/.placeholderos-traits-0.5.0/os_traits.egg-info/pbr.json0000664000175100017510000000005613225755210020647 0ustar zuulzuul00000000000000{"git_version": "e0a3a6e", "is_release": true}os-traits-0.5.0/os_traits.egg-info/dependency_links.txt0000664000175100017510000000000113225755210023236 0ustar zuulzuul00000000000000 os-traits-0.5.0/os_traits.egg-info/not-zip-safe0000664000175100017510000000000113225755174021427 0ustar zuulzuul00000000000000 os-traits-0.5.0/os_traits.egg-info/PKG-INFO0000664000175100017510000000301313225755210020262 0ustar zuulzuul00000000000000Metadata-Version: 1.1 Name: os-traits Version: 0.5.0 Summary: A library containing standardized trait strings Home-page: https://docs.openstack.org/os-traits/latest/ Author: OpenStack Author-email: openstack-dev@lists.openstack.org License: UNKNOWN Description-Content-Type: UNKNOWN Description: ========= 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. * Free software: Apache license * Documentation: https://docs.openstack.org/os-traits/latest/ * Source: http://git.openstack.org/cgit/openstack/os-traits * Bugs: https://bugs.launchpad.net/os-traits 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 :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 os-traits-0.5.0/os_traits.egg-info/top_level.txt0000664000175100017510000000001213225755210021713 0ustar zuulzuul00000000000000os_traits os-traits-0.5.0/setup.cfg0000666000175100017510000000227213225755211015316 0ustar zuulzuul00000000000000[metadata] name = os-traits summary = A library containing standardized trait strings description-file = README.rst author = OpenStack author-email = openstack-dev@lists.openstack.org home-page = https://docs.openstack.org/os-traits/latest/ 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 :: 2 Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 Programming Language :: Python :: 3.3 Programming Language :: Python :: 3.4 [files] packages = os_traits [build_sphinx] all-files = 1 warning-is-error = 1 source-dir = doc/source build-dir = doc/build [upload_sphinx] upload-dir = doc/build/html [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-0.5.0/babel.cfg0000666000175100017510000000002113225754767015230 0ustar zuulzuul00000000000000[python: **.py] os-traits-0.5.0/setup.py0000666000175100017510000000200613225754767015221 0ustar zuulzuul00000000000000# 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)