Merge remote-tracking branch 'origin/master' into 0.1.x
Change-Id: I0f906989dd62bd4357308ce5d12ec13fbd9fb1c8
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..dd2946a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,64 @@
+*.py[cod]
+
+# C extensions
+*.so
+
+# Packages
+*.egg*
+*.egg-info
+dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+lib
+lib64
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+cover/
+.coverage*
+!.coveragerc
+.tox
+nosetests.xml
+.testrepository
+.venv
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# Complexity
+output/*.html
+output/*/index.html
+
+# Sphinx
+doc/build
+doc/source/_static/patrole.conf.sample
+
+# pbr generates these
+AUTHORS
+ChangeLog
+
+# Editors
+*~
+.*.swp
+.*sw?
+*.idea
+
+# Files created by releasenotes build
+releasenotes/build
+
+# Misc
+.stestr
+
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..2bf473a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,18 @@
+language: python
+
+install:
+ - pip install tox
+
+script:
+ - tox
+
+jobs:
+ include:
+ - stage: style
+ python: "3.5"
+ env: TOXENV=pep8
+ - stage: unit tests
+ python: "2.7"
+ env: TOXENV=py27
+ - python: "3.5"
+ env: TOXENV=py35
diff --git a/README.md b/README.md
index c0e0c8f..c3775b1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+[](https://travis-ci.com/tungstenfabric/tungsten-tempest)
+
Tempest Integration of Tungsten Fabric (Contrail)
=================================================
diff --git a/pylintrc b/pylintrc
deleted file mode 100644
index e33289b..0000000
--- a/pylintrc
+++ /dev/null
@@ -1,380 +0,0 @@
-[MASTER]
-
-# Specify a configuration file.
-#rcfile=
-
-# Python code to execute, usually for sys.path manipulation such as
-# pygtk.require().
-#init-hook=
-
-# Add files or directories to the blacklist. They should be base names, not
-# paths.
-ignore=CVS
-
-# Pickle collected data for later comparisons.
-persistent=yes
-
-# List of plugins (as comma separated values of python modules names) to load,
-# usually to register additional checkers.
-load-plugins=
-
-# Use multiple processes to speed up Pylint.
-jobs=1
-
-# Allow loading of arbitrary C extensions. Extensions are imported into the
-# active Python interpreter and may run arbitrary code.
-unsafe-load-any-extension=no
-
-# A comma-separated list of package or module names from where C extensions may
-# be loaded. Extensions are loading into the active Python interpreter and may
-# run arbitrary code
-extension-pkg-whitelist=
-
-
-[MESSAGES CONTROL]
-
-# Only show warnings with the listed confidence levels. Leave empty to show
-# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
-confidence=
-
-# Enable the message, report, category or checker with the given id(s). You can
-# either give multiple identifier separated by comma (,) or put this option
-# multiple time. See also the "--disable" option for examples.
-#enable=
-
-# Disable the message, report, category or checker with the given id(s). You
-# can either give multiple identifiers separated by comma (,) or put this
-# option multiple times (only on the command line, not in the configuration
-# file where it should appear only once).You can also use "--disable=all" to
-# disable everything first and then reenable specific checks. For example, if
-# you want to run only the similarities checker, you can use "--disable=all
-# --enable=similarities". If you want to run only the classes checker, but have
-# no Warning level messages displayed, use"--disable=all --enable=classes
-# --disable=W"
-
-disable=protected-access,fixme,too-many-branches,
- attribute-defined-outside-init,too-many-locals,
- too-many-arguments,too-many-statements,
- too-many-return-statements,too-few-public-methods,
- import-error,too-many-lines,too-many-instance-attributes,
- too-many-public-methods,duplicate-code,broad-except,
- redefined-builtin,missing-docstring,no-member,bad-continuation,
- bad-indentation,superfluous-parens,literal-comparison,unused-import,
- no-self-use,unused-variable,anomalous-backslash-in-string,
- line-too-long,len-as-condition,unnecessary-pass,
- # Crashes, see #743.
- redefined-variable-type,
- # bug in 1.7.2 https://github.com/PyCQA/pylint/issues/1493
- not-callable
-
-
-[REPORTS]
-
-# Set the output format. Available formats are text, parseable, colorized, msvs
-# (visual studio) and html. You can also give a reporter class, eg
-# mypackage.mymodule.MyReporterClass.
-output-format=parseable
-
-# Put messages in a separate file for each module / package specified on the
-# command line instead of printing them on stdout. Reports (if any) will be
-# written in a file name "pylint_global.[txt|html]".
-files-output=no
-
-# Tells whether to display a full report or only the messages
-reports=no
-
-# Python expression which should return a note less than 10 (10 is the highest
-# note). You have access to the variables errors warning, statement which
-# respectively contain the number of errors / warnings messages and the total
-# number of statements analyzed. This is used by the global evaluation report
-# (RP0004).
-evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
-
-# Template used to display messages. This is a python new-style format string
-# used to format the message information. See doc for all details
-#msg-template=
-
-
-[LOGGING]
-
-# Logging modules to check that the string format arguments are in logging
-# function parameter format
-logging-modules=logging
-
-
-[MISCELLANEOUS]
-
-# List of note tags to take in consideration, separated by a comma.
-notes=FIXME,XXX,TODO
-
-
-[SIMILARITIES]
-
-# Minimum lines number of a similarity.
-min-similarity-lines=4
-
-# Ignore comments when computing similarities.
-ignore-comments=yes
-
-# Ignore docstrings when computing similarities.
-ignore-docstrings=yes
-
-# Ignore imports when computing similarities.
-ignore-imports=no
-
-
-[VARIABLES]
-
-# Tells whether we should check for unused import in __init__ files.
-init-import=no
-
-# A regular expression matching the name of dummy variables (i.e. expectedly
-# not used).
-dummy-variables-rgx=_$|dummy
-
-# List of additional names supposed to be defined in builtins. Remember that
-# you should avoid to define new builtins when possible.
-additional-builtins=
-
-# List of strings which can identify a callback function by name. A callback
-# name must start or end with one of those strings.
-callbacks=cb_,_cb
-
-
-[FORMAT]
-
-# Maximum number of characters on a single line.
-max-line-length=100
-
-# Regexp for a line that is allowed to be longer than the limit.
-ignore-long-lines=^\s*(# )?<?https?://\S+>?$
-
-# Allow the body of an if to be on the same line as the test if there is no
-# else.
-single-line-if-stmt=no
-
-# List of optional constructs for which whitespace checking is disabled
-no-space-check=trailing-comma,dict-separator
-
-# Maximum number of lines in a module
-max-module-lines=1000
-
-# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
-# tab).
-indent-string=' '
-
-# Number of spaces of indent required inside a hanging or continued line.
-indent-after-paren=4
-
-# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
-expected-line-ending-format=
-
-
-[BASIC]
-
-# List of builtins function names that should not be used, separated by a comma
-bad-functions=map,filter,input
-
-# Good variable names which should always be accepted, separated by a comma
-good-names=i,j,k,ex,Run,_
-
-# Bad variable names which should always be refused, separated by a comma
-bad-names=foo,bar,baz,toto,tutu,tata
-
-# Colon-delimited sets of names that determine each other's naming style when
-# the name regexes allow several styles.
-name-group=
-
-# Include a hint for the correct naming format with invalid-name
-include-naming-hint=no
-
-# Regular expression matching correct function names
-function-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for function names
-function-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct variable names
-variable-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for variable names
-variable-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct constant names
-const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
-
-# Naming hint for constant names
-const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$
-
-# Regular expression matching correct attribute names
-attr-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for attribute names
-attr-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct argument names
-argument-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for argument names
-argument-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct class attribute names
-class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
-
-# Naming hint for class attribute names
-class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
-
-# Regular expression matching correct inline iteration names
-inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
-
-# Naming hint for inline iteration names
-inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$
-
-# Regular expression matching correct class names
-class-rgx=[A-Z_][a-zA-Z0-9]+$
-
-# Naming hint for class names
-class-name-hint=[A-Z_][a-zA-Z0-9]+$
-
-# Regular expression matching correct module names
-module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
-
-# Naming hint for module names
-module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
-
-# Regular expression matching correct method names
-method-rgx=[a-z_][a-z0-9_]{2,75}$
-
-# Naming hint for method names
-method-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression which should only match function or class names that do
-# not require a docstring.
-no-docstring-rgx=__.*__
-
-# Minimum line length for functions/classes that require docstrings, shorter
-# ones are exempt.
-docstring-min-length=-1
-
-# List of decorators that define properties, such as abc.abstractproperty.
-property-classes=abc.abstractproperty
-
-
-[TYPECHECK]
-
-# Tells whether missing members accessed in mixin class should be ignored. A
-# mixin class is detected if its name ends with "mixin" (case insensitive).
-ignore-mixin-members=yes
-
-# List of module names for which member attributes should not be checked
-# (useful for modules/projects where namespaces are manipulated during runtime
-# and thus existing member attributes cannot be deduced by static analysis
-ignored-modules=
-
-# List of classes names for which member attributes should not be checked
-# (useful for classes with attributes dynamically set).
-ignored-classes=SQLObject, optparse.Values, thread._local, _thread._local
-
-# List of members which are set dynamically and missed by pylint inference
-# system, and so shouldn't trigger E1101 when accessed. Python regular
-# expressions are accepted.
-generated-members=REQUEST,acl_users,aq_parent
-
-# List of decorators that create context managers from functions, such as
-# contextlib.contextmanager.
-contextmanager-decorators=contextlib.contextmanager
-
-
-[SPELLING]
-
-# Spelling dictionary name. Available dictionaries: none. To make it working
-# install python-enchant package.
-spelling-dict=
-
-# List of comma separated words that should not be checked.
-spelling-ignore-words=
-
-# A path to a file that contains private dictionary; one word per line.
-spelling-private-dict-file=
-
-# Tells whether to store unknown words to indicated private dictionary in
-# --spelling-private-dict-file option instead of raising a message.
-spelling-store-unknown-words=no
-
-
-[DESIGN]
-
-# Maximum number of arguments for function / method
-max-args=5
-
-# Argument names that match this expression will be ignored. Default to name
-# with leading underscore
-ignored-argument-names=_.*
-
-# Maximum number of locals for function / method body
-max-locals=15
-
-# Maximum number of return / yield for function / method body
-max-returns=6
-
-# Maximum number of branch for function / method body
-max-branches=12
-
-# Maximum number of statements in function / method body
-max-statements=50
-
-# Maximum number of parents for a class (see R0901).
-max-parents=7
-
-# Maximum number of attributes for a class (see R0902).
-max-attributes=7
-
-# Minimum number of public methods for a class (see R0903).
-min-public-methods=2
-
-# Maximum number of public methods for a class (see R0904).
-max-public-methods=20
-
-
-[CLASSES]
-
-# List of method names used to declare (i.e. assign) instance attributes.
-defining-attr-methods=__init__,__new__,setUp
-
-# List of valid names for the first argument in a class method.
-valid-classmethod-first-arg=cls
-
-# List of valid names for the first argument in a metaclass class method.
-valid-metaclass-classmethod-first-arg=mcs
-
-# List of member names, which should be excluded from the protected access
-# warning.
-exclude-protected=_asdict,_fields,_replace,_source,_make
-
-
-[IMPORTS]
-
-# Deprecated modules which should not be used, separated by a comma
-deprecated-modules=regsub,TERMIOS,Bastion,rexec
-
-# Create a graph of every (i.e. internal and external) dependencies in the
-# given file (report RP0402 must not be disabled)
-import-graph=
-
-# Create a graph of external dependencies in the given file (report RP0402 must
-# not be disabled)
-ext-import-graph=
-
-# Create a graph of internal dependencies in the given file (report RP0402 must
-# not be disabled)
-int-import-graph=
-
-
-[EXCEPTIONS]
-
-# Exceptions that will emit a warning when being caught. Defaults to
-# "Exception"
-overgeneral-exceptions=Exception
-
-
-
diff --git a/requirements.txt b/requirements.txt
index 84d7047..f45ae7a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,6 +2,4 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-Patrole>=0.2.0
-pylint
-
+Patrole
diff --git a/setup.cfg b/setup.cfg
index 5ee9609..6836aa1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev@lists.openstack.org
+author-email = openstack-discuss@lists.openstack.org
home-page = https://docs.openstack.org/tungsten-tempest/latest/
classifier =
Environment :: OpenStack
diff --git a/test-requirements.txt b/test-requirements.txt
index 2757893..45d7ddf 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,8 +1,6 @@
# 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.12.0,<0.13 # Apache-2.0
-sphinx>=1.6.2 # BSD
-openstackdocstheme>=1.17.0 # Apache-2.0
-
+hacking>=1.1.0,<1.2.0 # Apache-2.0
+pylint
diff --git a/tox.ini b/tox.ini
index 17529a8..e3d3ee0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -18,12 +18,14 @@
-r{toxinidir}/test-requirements.txt
commands =
find . -type f -name "*.pyc" -delete
- stestr --test-path ./tungsten_tempest_plugin/tests/unit run {posargs}
[testenv:pep8]
basepython = python3
-commands = flake8 {posargs}
- check-uuid --package tungsten_tempest_plugin.tests.api
+deps =
+ -r{toxinidir}/test-requirements.txt
+commands =
+ flake8
+ check-uuid --package tungsten_tempest_plugin.tests.api
[testenv:uuidgen]
basepython = python3
@@ -86,16 +88,15 @@
# [H205] Use assert(Greater|Less)(Equal) for comparison.
# [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
# [H904] Delay string interpolations at logging calls.
-enable-extensions = H106,H203,H204,H205,H210,H904
+enable-extensions = H106,H203,H204,H205,H210,H904,H306
show-source = True
# E123, E125 skipped as they are invalid PEP-8.
#
# H405 is another one that is good as a guideline, but sometimes
# multiline doc strings just don't have a natural summary
# line. Rejecting code for this reason is wrong.
-ignore = E123,E125,H405
builtins = _
-exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
+exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tungsten_tempest_plugin/services/contrail/json/
[hacking]
local-check-factory = tungsten_tempest_plugin.hacking.checks.factory
diff --git a/tungsten_tempest_plugin/config.py b/tungsten_tempest_plugin/config.py
index d1982ad..620c36a 100644
--- a/tungsten_tempest_plugin/config.py
+++ b/tungsten_tempest_plugin/config.py
@@ -38,6 +38,9 @@
cfg.StrOpt('catalog_type',
default='sdn-l-config',
help="Catalog type of the SDN service"),
+ cfg.StrOpt('contrail_version',
+ default='5.0',
+ help="Version of SDN service"),
]
tungsten_log_group = cfg.OptGroup(
diff --git a/tungsten_tempest_plugin/hacking/__init__.py b/tungsten_tempest_plugin/hacking/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tungsten_tempest_plugin/hacking/__init__.py
diff --git a/tungsten_tempest_plugin/hacking/checks.py b/tungsten_tempest_plugin/hacking/checks.py
new file mode 100644
index 0000000..3b05010
--- /dev/null
+++ b/tungsten_tempest_plugin/hacking/checks.py
@@ -0,0 +1,224 @@
+# Copyright 2013 IBM Corp.
+# Copyright 2017 AT&T Corporation.
+# All Rights Reserved.
+#
+# 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 os
+import re
+
+import pycodestyle
+
+
+PYTHON_CLIENTS = ['contrail']
+
+PYTHON_CLIENT_RE = re.compile('import (%s)client' % '|'.join(PYTHON_CLIENTS))
+TEST_DEFINITION = re.compile(r'^\s*def test.*')
+SETUP_TEARDOWN_CLASS_DEFINITION = re.compile(r'^\s+def (setUp|tearDown)Class')
+SCENARIO_DECORATOR = re.compile(r'\s*@.*services\((.*)\)')
+VI_HEADER_RE = re.compile(r"^#\s+vim?:.+")
+RAND_NAME_HYPHEN_RE = re.compile(r".*rand_name\(.+[\-\_][\"\']\)")
+MUTABLE_DEFAULT_ARGS = re.compile(r"^\s*def .+\((.+=\{\}|.+=\[\])")
+TESTTOOLS_SKIP_DECORATOR = re.compile(r'\s*@testtools\.skip\((.*)\)')
+CLASS = re.compile(r"^class .+")
+RBAC_CLASS_NAME_RE = re.compile(r'class .+RbacTest')
+RULE_VALIDATION_DECORATOR = re.compile(
+ r'\s*@rbac_rule_validation.action\(.*')
+IDEMPOTENT_ID_DECORATOR = re.compile(r'\s*@idempotent_id\((.*)\)')
+
+have_rbac_decorator = False
+
+
+def import_no_clients_in_api_tests(physical_line, filename):
+ """Check for client imports from tungsten_tempest_plugin/tests/api
+
+ T102: Cannot import python clients
+ """
+ if "tugnsten_tempest_plugin/tests/api" in filename:
+ res = PYTHON_CLIENT_RE.match(physical_line)
+ if res:
+ return (physical_line.find(res.group(1)),
+ ("T102: python clients import not allowed "
+ "in tungsten_tempest_plugin/tests/api/* or "
+ "tugnsten_tempest_plugin/tests/scenario/* tests"))
+
+
+def no_setup_teardown_class_for_tests(physical_line, filename):
+ """Check that tests do not use setUpClass/tearDownClass
+
+ T105: Tests cannot use setUpClass/tearDownClass
+ """
+ if pycodestyle.noqa(physical_line):
+ return
+
+ if SETUP_TEARDOWN_CLASS_DEFINITION.match(physical_line):
+ return (physical_line.find('def'),
+ "T105: (setUp|tearDown)Class can not be used in tests")
+
+
+def no_vi_headers(physical_line, line_number, lines):
+ """Check for vi editor configuration in source files.
+
+ By default vi modelines can only appear in the first or
+ last 5 lines of a source file.
+
+ T106
+ """
+ # NOTE(gilliard): line_number is 1-indexed
+ if line_number <= 5 or line_number > len(lines) - 5:
+ if VI_HEADER_RE.match(physical_line):
+ return 0, "T106: Don't put vi configuration in source files"
+
+
+def service_tags_not_in_module_path(physical_line, filename):
+ """Check that a service tag isn't in the module path
+
+ A service tag should only be added if the service name isn't already in
+ the module path.
+
+ T107
+ """
+ matches = SCENARIO_DECORATOR.match(physical_line)
+ if matches:
+ services = matches.group(1).split(',')
+ for service in services:
+ service_name = service.strip().strip("'")
+ modulepath = os.path.split(filename)[0]
+ if service_name in modulepath:
+ return (physical_line.find(service_name),
+ "T107: service tag should not be in path")
+
+
+def no_hyphen_at_end_of_rand_name(logical_line, filename):
+ """Check no hyphen at the end of rand_name() argument
+
+ T108
+ """
+ msg = "T108: hyphen should not be specified at the end of rand_name()"
+ if RAND_NAME_HYPHEN_RE.match(logical_line):
+ return 0, msg
+
+
+def no_mutable_default_args(logical_line):
+ """Check that mutable object isn't used as default argument
+
+ N322: Method's default argument shouldn't be mutable
+ """
+ msg = "N322: Method's default argument shouldn't be mutable!"
+ if MUTABLE_DEFAULT_ARGS.match(logical_line):
+ yield (0, msg)
+
+
+def no_testtools_skip_decorator(logical_line):
+ """Check that methods do not have the testtools.skip decorator
+
+ T109
+ """
+ if TESTTOOLS_SKIP_DECORATOR.match(logical_line):
+ yield (0, "T109: Cannot use testtools.skip decorator; instead use "
+ "decorators.skip_because from tempest.lib")
+
+
+def use_rand_uuid_instead_of_uuid4(logical_line, filename):
+ """Check that tests use data_utils.rand_uuid() instead of uuid.uuid4()
+
+ T113
+ """
+ if 'uuid.uuid4()' not in logical_line:
+ return
+
+ msg = ("T113: Tests should use data_utils.rand_uuid()/rand_uuid_hex() "
+ "instead of uuid.uuid4()/uuid.uuid4().hex")
+ yield (0, msg)
+
+
+def no_rbac_rule_validation_decorator(physical_line, filename):
+ """Check that each test has the ``rbac_rule_validation.action`` decorator.
+
+ Checks whether the test function has "@rbac_rule_validation.action"
+ above it; otherwise checks that it has "@decorators.idempotent_id" above
+ it and "@rbac_rule_validation.action" above that.
+
+ Assumes that ``rbac_rule_validation.action`` decorator is either the first
+ or second decorator above the test function; otherwise this check fails.
+
+ P100
+ """
+ global have_rbac_decorator
+
+ if ("tungsten_tempest_plugin/tests/api" in filename or
+ "tungsten_tempest_plugin/tests/scenario" in filename):
+
+ if RULE_VALIDATION_DECORATOR.match(physical_line):
+ have_rbac_decorator = True
+ return
+
+ if TEST_DEFINITION.match(physical_line):
+ if not have_rbac_decorator:
+ return (0, "Must use rbac_rule_validation.action "
+ "decorator for API and scenario tests")
+
+ have_rbac_decorator = False
+
+
+def no_rbac_suffix_in_test_filename(filename):
+ """Check that RBAC filenames end with "_rbac" suffix.
+
+ P101
+ """
+ if "tungsten_tempest_plugin/tests/api" in filename:
+
+ if filename.endswith('rbac_base.py'):
+ return
+
+ if not filename.endswith('_rbac.py'):
+ return 0, "RBAC test filenames must end in _rbac suffix"
+
+
+def no_rbac_test_suffix_in_test_class_name(physical_line, filename):
+ """Check that RBAC class names end with "RbacTest"
+
+ P102
+ """
+ if "tunsgten_tempest_plugin/tests/api" in filename:
+
+ if filename.endswith('rbac_base.py'):
+ return
+
+ if CLASS.match(physical_line):
+ if not RBAC_CLASS_NAME_RE.match(physical_line):
+ return 0, "RBAC test class names must end in 'RbacTest'"
+
+
+def no_client_alias_in_test_cases(logical_line, filename):
+ """Check that test cases don't use "self.client" to define a client.
+
+ P103
+ """
+ if "tungsten_tempest_plugin/tests/api" in filename:
+ if "self.client" in logical_line or "cls.client" in logical_line:
+ return 0, "Do not use 'self.client' as a service client alias"
+
+
+def factory(register):
+ register(import_no_clients_in_api_tests)
+ register(no_setup_teardown_class_for_tests)
+ register(no_vi_headers)
+ register(no_hyphen_at_end_of_rand_name)
+ register(no_mutable_default_args)
+ register(no_testtools_skip_decorator)
+ register(use_rand_uuid_instead_of_uuid4)
+ register(service_tags_not_in_module_path)
+ register(no_rbac_rule_validation_decorator)
+ register(no_rbac_suffix_in_test_filename)
+ register(no_rbac_test_suffix_in_test_class_name)
diff --git a/tungsten_tempest_plugin/services/contrail/json/contrail_client.py b/tungsten_tempest_plugin/services/contrail/json/contrail_client.py
new file mode 100644
index 0000000..949df68
--- /dev/null
+++ b/tungsten_tempest_plugin/services/contrail/json/contrail_client.py
@@ -0,0 +1,128 @@
+# Copyright 2018 AT&T Corp
+# All Rights Reserved.
+#
+# 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 oslo_serialization import jsonutils as json
+
+from six.moves import urllib
+from tempest.lib.common import rest_client as service_client
+
+from tungsten_tempest_plugin.services.contrail.json import base
+
+
+class ContrailClient(base.BaseContrailClient):
+ """Generic client for Contrail API
+
+ Client implements all basic CRUD functions for Contrail API.
+ http://www.opencontrail.org/documentation/api/r5.0/contrail_openapi.html
+ """
+
+ def _pluralize(self, resource_name):
+ """Contrail API ignores common rules for pluralization. For example:
+
+ .. Fetch a specific firewall-policy
+ .. GET /firewall-policy/{id}
+ and
+ .. List collection of firewall-policy
+ .. GET /firewall-policys
+
+ This method is created so if it will be ever changed we can update it
+ in one place.
+ """
+ return resource_name + 's'
+
+ def _underscore_to_dash(self, name):
+ return name.replace("_", "-")
+
+ def _build_uri(self, name, **kwargs):
+ uri = "/%s" % self._underscore_to_dash(name)
+ if kwargs:
+ uri += '?' + urllib.parse.urlencode(kwargs, doseq=1)
+ return uri
+
+ def _lister(self, plural_name):
+ def _list(**filters):
+ uri = self._build_uri(plural_name, **filters)
+ resp, body = self.get(uri)
+ result = {plural_name: json.loads(body)}
+ self.expected_success(200, resp.status)
+ return service_client.ResponseBody(resp, result)
+
+ return _list
+
+ def _deleter(self, resource_name):
+ def _delete(resource_id):
+ uri = '%s/%s' % (resource_name, resource_id)
+ uri = self._build_uri(uri)
+ resp, body = self.delete(uri)
+ self.expected_success(200, resp.status)
+ return service_client.ResponseBody(resp, body)
+
+ return _delete
+
+ def _shower(self, resource_name):
+ def _show(resource_id, **fields):
+ uri = '%s/%s' % (resource_name, resource_id)
+ uri = self._build_uri(uri)
+
+ if fields:
+ uri += '?' + urllib.parse.urlencode(fields, doseq=1)
+ resp, body = self.get(uri)
+ body = json.loads(body)
+ self.expected_success(200, resp.status)
+ return service_client.ResponseBody(resp, body)
+
+ return _show
+
+ def _creater(self, resource_name):
+ def _create(**kwargs):
+ uri = self._build_uri(self._pluralize(resource_name))
+ post_data = json.dumps({
+ self._underscore_to_dash(resource_name): kwargs})
+ resp, body = self.post(uri, post_data)
+ body = json.loads(body)
+ self.expected_success(200, resp.status)
+ return service_client.ResponseBody(resp, body)
+
+ return _create
+
+ def _updater(self, resource_name):
+ def _update(res_id, **kwargs):
+ uri = '%s/%s' % (resource_name, res_id)
+ uri = self._build_uri(uri)
+ put_data = json.dumps({
+ self._underscore_to_dash(resource_name): kwargs})
+ resp, body = self.put(uri, put_data)
+ body = json.loads(body) if body else {}
+ self.expected_success(200, resp.status)
+ return service_client.ResponseBody(resp, body)
+
+ return _update
+
+ def __getattr__(self, name):
+ """Client entry point
+
+ Once user will call CRUD method it will be managed here.
+ """
+ method_prefixes = ["list_", "delete_", "show_", "create_", "update_"]
+ method_functors = [self._lister,
+ self._deleter,
+ self._shower,
+ self._creater,
+ self._updater]
+ for index, prefix in enumerate(method_prefixes):
+ prefix_len = len(prefix)
+ if name[:prefix_len] == prefix:
+ return method_functors[index](name[prefix_len:])
+ raise AttributeError(name)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py b/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py
index 6a1b6c8..5a1fbd8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py
@@ -18,6 +18,10 @@
"""
from oslo_log import log as logging
+from patrole_tempest_plugin import rbac_utils
+from tempest import config
+from tempest.lib import exceptions
+from tempest import test
from tungsten_tempest_plugin.services.contrail.json.access_control_client \
import AccessControlClient
@@ -33,6 +37,8 @@
import BGPAsAServiceClient
from tungsten_tempest_plugin.services.contrail.json.config_client import \
ConfigClient
+from tungsten_tempest_plugin.services.contrail.json.contrail_client import \
+ ContrailClient
from tungsten_tempest_plugin.services.contrail.json.database_client import \
ContrailDatabaseClient
from tungsten_tempest_plugin.services.contrail.json.\
@@ -90,21 +96,26 @@
from tungsten_tempest_plugin.services.contrail.json.vm_contrail_client import \
VmContrailClient
-from patrole_tempest_plugin import rbac_utils
-
-from tempest import config
-from tempest import test
-
-from tempest.lib import exceptions
-
CONF = config.CONF
LOG = logging.getLogger(__name__)
-class BaseContrailTest(test.BaseTestCase):
+def get_contail_version():
+ return float(CONF.sdn.contrail_version)
+
+
+class BaseContrailTest(rbac_utils.RbacUtilsMixin, test.BaseTestCase):
"""Base class for Contrail tests."""
credentials = ['primary', 'admin']
+ required_contrail_version = None
+
+ @classmethod
+ def skip_if_contrail_version_less(cls, version):
+ if get_contail_version() < version:
+ msg = "The tests require Contrail >= %s" % version
+ raise cls.skipException(msg)
+
@classmethod
def skip_checks(cls):
super(BaseContrailTest, cls).skip_checks()
@@ -113,10 +124,8 @@
if "admin" not in CONF.auth.tempest_roles:
raise cls.skipException(
"%s skipped because tempest roles is not admin" % cls.__name__)
-
- @classmethod
- def setup_credentials(cls):
- super(BaseContrailTest, cls).setup_credentials()
+ if cls.required_contrail_version:
+ cls.skip_if_contrail_version_less(cls.required_contrail_version)
@classmethod
def get_auth_providers(cls):
@@ -130,7 +139,8 @@
cls.admin_client = cls.os_admin.networks_client
dscv = CONF.identity.disable_ssl_certificate_validation
ca_certs = CONF.identity.ca_certificates_file
- cls.rbac_utils = rbac_utils.RbacUtils(cls)
+ cls.setup_rbac_utils()
+
cls.access_control_client = AccessControlClient(
cls.auth_provider,
CONF.sdn.catalog_type,
@@ -376,28 +386,17 @@
CONF.sdn.endpoint_type,
disable_ssl_certificate_validation=dscv,
ca_certs=ca_certs)
+ cls.contrail_client = ContrailClient(
+ cls.auth_provider,
+ CONF.sdn.catalog_type,
+ CONF.identity.region,
+ CONF.sdn.endpoint_type,
+ disable_ssl_certificate_validation=dscv,
+ ca_certs=ca_certs)
@classmethod
def resource_setup(cls):
cls.tenant_name = cls.os_primary.credentials.tenant_name
- if CONF.auth.use_dynamic_credentials:
- # Create a contrail project for tests
- post_body = {
- 'parent_type': 'domain',
- 'fq_name': ['default-domain', cls.tenant_name]
- }
- try:
- resp_body = cls.project_client.create_projects(**post_body)
- cls.project_uuid = resp_body['project']['uuid']
- except exceptions.Conflict:
- resp_body = cls.project_client.list_projects()
- for project in resp_body['projects']:
- if cls.tenant_name in project['fq_name']:
- cls.project_uuid = project['uuid']
-
- @classmethod
- def resource_cleanup(cls):
- super(BaseContrailTest, cls).resource_cleanup()
@classmethod
def _try_delete_resource(cls, delete_callable, *args, **kwargs):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py b/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
index 36d8713..c95c349 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
@@ -17,22 +17,18 @@
Tempest test-case to test Access Control using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class AccessControlTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test Access Control objects using RBAC roles
- """
+ """Test class to test Access Control objects using RBAC roles"""
def _create_api_access_lists(self):
api_list_name = data_utils.rand_name('test-api-list')
@@ -78,44 +74,36 @@
return new_ctrl_list
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_api_access_lists")
- @idempotent_id('2bfde8fd-36fe-4e69-ba59-6f2db8941e7d')
+ rules=["list_api_access_lists"])
+ @decorators.idempotent_id('2bfde8fd-36fe-4e69-ba59-6f2db8941e7d')
def test_list_api_access_lists(self):
- """
- test method for list api access list
- """
+ """test method for list api access list"""
with self.rbac_utils.override_role(self):
self.access_control_client.list_api_access_lists()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_api_access_lists")
- @idempotent_id('b2b5f50c-07d8-4d79-b9a4-78187ad97353')
+ rules=["create_api_access_lists"])
+ @decorators.idempotent_id('b2b5f50c-07d8-4d79-b9a4-78187ad97353')
def test_create_api_access_lists(self):
- """
- test method for create api access list
- """
+ """test method for create api access list"""
with self.rbac_utils.override_role(self):
self._create_api_access_lists()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_api_access_list")
- @idempotent_id('b82e8e6b-83b5-424d-9652-ef6a34067f4f')
+ rules=["show_api_access_list"])
+ @decorators.idempotent_id('b82e8e6b-83b5-424d-9652-ef6a34067f4f')
def test_show_api_access_list(self):
- """
- test method for show api access list
- """
+ """test method for show api access list"""
new_api_list = self._create_api_access_lists()
with self.rbac_utils.override_role(self):
self.access_control_client.show_api_access_list(
new_api_list['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_api_access_list")
- @idempotent_id('edc88825-1e2e-47ff-b7b4-f68d6310fbad')
+ rules=["update_api_access_list"])
+ @decorators.idempotent_id('edc88825-1e2e-47ff-b7b4-f68d6310fbad')
def test_update_api_access_list(self):
- """
- test method for update api access list
- """
+ """test method for update api access list"""
new_api_list = self._create_api_access_lists()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -124,46 +112,38 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_api_access_list")
- @idempotent_id('f27d9044-95f2-4733-81ed-df9340dbd421')
+ rules=["delete_api_access_list"])
+ @decorators.idempotent_id('f27d9044-95f2-4733-81ed-df9340dbd421')
def test_delete_api_access_list(self):
- """
- test method for delete api access list
- """
+ """test method for delete api access list"""
new_api_list = self._create_api_access_lists()
with self.rbac_utils.override_role(self):
self.access_control_client.delete_api_access_list(
new_api_list['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_access_control_lists")
- @idempotent_id('c56a1338-a9d1-4286-8aeb-3a0d60d93037')
+ rules=["list_access_control_lists"])
+ @decorators.idempotent_id('c56a1338-a9d1-4286-8aeb-3a0d60d93037')
def test_list_access_control_lists(self):
- """
- test method for list access control list
- """
+ """test method for list access control list"""
with self.rbac_utils.override_role(self):
self.access_control_client.list_access_control_lists()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_access_control_lists")
- @idempotent_id('9f225d2b-5376-42f5-97aa-cf63be47fa19')
+ rules=["create_access_control_lists"])
+ @decorators.idempotent_id('9f225d2b-5376-42f5-97aa-cf63be47fa19')
def test_create_access_control(self):
- """
- test method for create access control list
- """
+ """test method for create access control list"""
# Create Security Group
sec_group = self._create_security_groups()
with self.rbac_utils.override_role(self):
self._create_access_control_lists(sec_group['name'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_access_control_list")
- @idempotent_id('f0ed882b-f3de-48b7-884a-637ee0b7d6b6')
+ rules=["show_access_control_list"])
+ @decorators.idempotent_id('f0ed882b-f3de-48b7-884a-637ee0b7d6b6')
def test_show_access_control_list(self):
- """
- test method for show access control list
- """
+ """test method for show access control list"""
# Create Security Group
sec_group = self._create_security_groups()
new_ctrl_list = self._create_access_control_lists(
@@ -173,12 +153,10 @@
new_ctrl_list['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_access_control_list")
- @idempotent_id('9a4b3133-dd07-4a1a-b282-f7770c372fb8')
+ rules=["update_access_control_list"])
+ @decorators.idempotent_id('9a4b3133-dd07-4a1a-b282-f7770c372fb8')
def test_update_access_control_list(self):
- """
- test method for update access control list
- """
+ """test method for update access control list"""
sec_group = self._create_security_groups()
new_ctrl_list = self._create_access_control_lists(
sec_group['name'])
@@ -189,12 +167,10 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_access_control_list")
- @idempotent_id('36a8ace1-71ca-4c7c-8667-d8387d6f964a')
+ rules=["delete_access_control_list"])
+ @decorators.idempotent_id('36a8ace1-71ca-4c7c-8667-d8387d6f964a')
def test_delete_access_control_list(self):
- """
- test method for delete access control list
- """
+ """test method for delete access control list"""
# Create Security Group
sec_group = self._create_security_groups()
new_ctrl_list = self._create_access_control_lists(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
index a191f45..b1cff9a 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
@@ -18,62 +18,43 @@
"""
from oslo_log import log as logging
+from patrole_tempest_plugin import rbac_rule_validation
+from tempest import config
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-from patrole_tempest_plugin import rbac_rule_validation
-
-from tempest import config
-
-from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
-
CONF = config.CONF
LOG = logging.getLogger(__name__)
class AlarmContrailTest(rbac_base.BaseContrailTest):
+ """Test class to test Alarm objects using RBAC roles"""
- """
- Test class to test Alarm objects using RBAC roles
- """
-
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
- def _create_alarm(self, global_system_config):
+ def _create_alarm(self):
post_body = {
- 'fq_name': [global_system_config,
+ 'fq_name': ['default-domain',
+ self.tenant_name,
data_utils.rand_name('alarm')],
'alarm_severity': 1,
- 'parent_type': 'global-system-config',
+ 'parent_type': 'project',
'uve_keys': {
- 'uve_key': ['analytics_node']
+ 'uve_key': ['virtual-network']
},
'alarm_rules': {
'or_list': [{
'and_list': [{
'operation': '!=',
- 'operand1': 'NodeStatus.process_info.process_state',
+ 'operand1': data_utils.rand_name('tempest-alarm'),
'operand2': {
- 'json_value': '"PROCESS_STATE_RUNNING"'
+ 'uve_attribute': 'name'
}
}]
}]
}
}
+
resp_body = self.alarm_client.create_alarms(
**post_body)
alarm_uuid = resp_body['alarm']['uuid']
@@ -89,62 +70,45 @@
self.alarm_client.update_alarm(alarm_uuid, **put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_alarms")
- @idempotent_id('dc7d19dd-dd5e-4ec8-bf0c-c6d9d83a60a8')
+ rules=["list_alarms"])
+ @decorators.idempotent_id('dc7d19dd-dd5e-4ec8-bf0c-c6d9d83a60a8')
def test_list_alarms(self):
- """
- test method for list alarms
- """
+ """test method for list alarms"""
with self.rbac_utils.override_role(self):
self.alarm_client.list_alarms()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_alarms")
- @idempotent_id('7fe55d0c-e54a-4bb7-95a6-9c53f9e9c4bf')
+ rules=["create_alarms"])
+ @decorators.idempotent_id('7fe55d0c-e54a-4bb7-95a6-9c53f9e9c4bf')
def test_create_alarms(self):
- """
- test method for create alarms
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for create alarms"""
with self.rbac_utils.override_role(self):
- self._create_alarm(global_system_config)
+ self._create_alarm()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_alarm")
- @idempotent_id('ab0ccbe4-7bfe-4176-890a-d438ee04290d')
+ rules=["show_alarm"])
+ @decorators.idempotent_id('ab0ccbe4-7bfe-4176-890a-d438ee04290d')
def test_show_alarm(self):
- """
- test method for show alarms
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- alarm_uuid = self._create_alarm(global_system_config)
+ """test method for show alarms"""
+ alarm_uuid = self._create_alarm()
with self.rbac_utils.override_role(self):
self.alarm_client.show_alarm(alarm_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_alarm")
- @idempotent_id('ab331cca-ee53-4106-9b30-7319bfb1bea7')
+ rules=["update_alarm"])
+ @decorators.idempotent_id('ab331cca-ee53-4106-9b30-7319bfb1bea7')
def test_update_alarm(self):
- """
- test method for update alarms
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- alarm_uuid = self._create_alarm(global_system_config)
+ """test method for update alarms"""
+ alarm_uuid = self._create_alarm()
with self.rbac_utils.override_role(self):
self._update_alarm(alarm_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_alarm")
- @idempotent_id('84fadb14-77c0-4f21-b5b2-1da7a2fd27e6')
+ rules=["delete_alarm"])
+ @decorators.idempotent_id('84fadb14-77c0-4f21-b5b2-1da7a2fd27e6')
def test_delete_alarm(self):
- """
- test method for delete alarms
- """
+ """test method for delete alarms"""
# Create global system config
- global_system_config = self._create_global_system_config()['name']
- alarm_uuid = self._create_alarm(global_system_config)
+ alarm_uuid = self._create_alarm()
with self.rbac_utils.override_role(self):
self.alarm_client.delete_alarm(alarm_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
index 69da2d3..a6cdcdb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
@@ -17,21 +17,18 @@
Tempest test-case to test Alias IP and IP pools objects using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class AliasIPsTest(rbac_base.BaseContrailTest):
- """
- Test class to test Alias IP and IP pools objects using RBAC roles
- """
+ """Test class to test Alias IP and IP pools objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -115,33 +112,27 @@
return new_alias_ip
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_alias_ips")
- @idempotent_id('899d6824-0755-41ef-adef-03eb1858bcb0')
+ rules=["list_alias_ips"])
+ @decorators.idempotent_id('899d6824-0755-41ef-adef-03eb1858bcb0')
def test_list_alias_ips(self):
- """
- test method for list alias IP
- """
+ """test method for list alias IP"""
with self.rbac_utils.override_role(self):
self.alias_ip_client.list_alias_ips()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_alias_ips")
- @idempotent_id('bc9aae29-22a8-4eed-a31f-c0ded300e3a3')
+ rules=["create_alias_ips"])
+ @decorators.idempotent_id('bc9aae29-22a8-4eed-a31f-c0ded300e3a3')
def test_create_alias_ips(self):
- """
- test method for create alias IP
- """
+ """test method for create alias IP"""
new_alias_ip_pool = self._create_alias_ip_pools()
with self.rbac_utils.override_role(self):
self._create_alias_ips(new_alias_ip_pool, '2.2.3.1')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_alias_ip")
- @idempotent_id('d20318b1-c204-44e7-a44c-66f6a1fbe7a0')
+ rules=["show_alias_ip"])
+ @decorators.idempotent_id('d20318b1-c204-44e7-a44c-66f6a1fbe7a0')
def test_show_alias_ip(self):
- """
- test method for show alias IP
- """
+ """test method for show alias IP"""
new_alias_ip_pool = self._create_alias_ip_pools()
new_alias_ip = self._create_alias_ips(new_alias_ip_pool, '2.2.3.2')
with self.rbac_utils.override_role(self):
@@ -149,12 +140,10 @@
new_alias_ip['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_alias_ip")
- @idempotent_id('c237b18f-d899-4b80-8e9b-068244a24612')
+ rules=["update_alias_ip"])
+ @decorators.idempotent_id('c237b18f-d899-4b80-8e9b-068244a24612')
def test_update_alias_ip(self):
- """
- test method for update alias IP
- """
+ """test method for update alias IP"""
new_alias_ip_pool = self._create_alias_ip_pools()
new_alias_ip = self._create_alias_ips(new_alias_ip_pool, '2.2.3.3')
update_name = data_utils.rand_name('test')
@@ -164,12 +153,10 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_alias_ip")
- @idempotent_id('456c641c-9066-4125-8dec-d1529ad8f1ba')
+ rules=["delete_alias_ip"])
+ @decorators.idempotent_id('456c641c-9066-4125-8dec-d1529ad8f1ba')
def test_delete_alias_ip(self):
- """
- test method for delete alias IP
- """
+ """test method for delete alias IP"""
new_alias_ip_pool = self._create_alias_ip_pools()
new_alias_ip = self._create_alias_ips(new_alias_ip_pool, '2.2.3.4')
with self.rbac_utils.override_role(self):
@@ -177,44 +164,36 @@
new_alias_ip['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_alias_ip_pools")
- @idempotent_id('ffe85f35-589a-4b90-a1d3-6aed92a85954')
+ rules=["list_alias_ip_pools"])
+ @decorators.idempotent_id('ffe85f35-589a-4b90-a1d3-6aed92a85954')
def test_list_alias_ip_pools(self):
- """
- est method for list alias IP pools
- """
+ """est method for list alias IP pools"""
with self.rbac_utils.override_role(self):
self.alias_ip_client.list_alias_ip_pools()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_alias_ip_pools")
- @idempotent_id('83abd2c0-d46a-4337-87d0-31cdb86e4226')
+ rules=["create_alias_ip_pools"])
+ @decorators.idempotent_id('83abd2c0-d46a-4337-87d0-31cdb86e4226')
def test_create_alias_ip_pools(self):
- """
- test method for create alias IP pool
- """
+ """test method for create alias IP pool"""
with self.rbac_utils.override_role(self):
self._create_alias_ip_pools()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_alias_ip_pool")
- @idempotent_id('a1cbe111-ccba-4fa4-ba59-7d1ee08a15db')
+ rules=["show_alias_ip_pool"])
+ @decorators.idempotent_id('a1cbe111-ccba-4fa4-ba59-7d1ee08a15db')
def test_show_alias_ip_pool(self):
- """
- test method for show alias IP pool
- """
+ """test method for show alias IP pool"""
new_alias_ip_pool = self._create_alias_ip_pools()
with self.rbac_utils.override_role(self):
self.alias_ip_client.show_alias_ip_pool(
new_alias_ip_pool['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_alias_ip_pool")
- @idempotent_id('7f3448d7-22f1-4808-b3eb-15eeb3f079aa')
+ rules=["update_alias_ip_pool"])
+ @decorators.idempotent_id('7f3448d7-22f1-4808-b3eb-15eeb3f079aa')
def test_update_alias_ip_pool(self):
- """
- test method for update alias IP pool
- """
+ """test method for update alias IP pool"""
new_alias_ip_pool = self._create_alias_ip_pools()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -223,12 +202,10 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_alias_ip_pool")
- @idempotent_id('f59ea4fb-d10f-40c8-a8fa-dcd948ca89c8')
+ rules=["delete_alias_ip_pool"])
+ @decorators.idempotent_id('f59ea4fb-d10f-40c8-a8fa-dcd948ca89c8')
def test_delete_alias_ip_pool(self):
- """
- test method for delete alias IP pool
- """
+ """test method for delete alias IP pool"""
new_alias_ip_pool = self._create_alias_ip_pools()
with self.rbac_utils.override_role(self):
self.alias_ip_client.delete_alias_ip_pool(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py b/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
index 9d94dba..36996c4 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
@@ -18,44 +18,24 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailAnalyticsNodeTest(rbac_base.BaseContrailTest):
+ """Test class to test analytics node objects using RBAC roles"""
- """
- Test class to test analytics node objects using RBAC roles
- """
-
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
- def _create_analytics_node(self, global_system_config):
+ def _create_analytics_node(self):
node_name = data_utils.rand_name('analytics-node')
post_data = {
- 'fq_name': [global_system_config, node_name],
+ 'fq_name': ['default-global-system-config', node_name],
'parent_type': 'global-system-config'
}
new_node = self.analytics_node_client.create_analytics_nodes(
@@ -66,64 +46,46 @@
return new_node
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_analytics_nodes")
- @idempotent_id('d3002e37-4b42-446d-b144-1b53f0dadfd3')
+ rules=["list_analytics_nodes"])
+ @decorators.idempotent_id('d3002e37-4b42-446d-b144-1b53f0dadfd3')
def test_list_analytics_nodes(self):
- """
- test method for list analytics nodes
- """
+ """test method for list analytics nodes"""
with self.rbac_utils.override_role(self):
self.analytics_node_client.list_analytics_nodes()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_analytics_node")
- @idempotent_id('b51043fd-77ba-4312-b96f-569ed5153338')
+ rules=["show_analytics_node"])
+ @decorators.idempotent_id('b51043fd-77ba-4312-b96f-569ed5153338')
def test_show_analytics_node(self):
- """
- test method for show analytics nodes
- """
- # create global system config
- global_system_config = self._create_global_system_config()['name']
- new_node = self._create_analytics_node(global_system_config)
+ """test method for show analytics nodes"""
+ new_node = self._create_analytics_node()
with self.rbac_utils.override_role(self):
self.analytics_node_client.show_analytics_node(new_node['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_analytics_nodes")
- @idempotent_id('c57482c9-fcb4-4f41-95b0-7f0ffeee3dc3')
+ rules=["create_analytics_nodes"])
+ @decorators.idempotent_id('c57482c9-fcb4-4f41-95b0-7f0ffeee3dc3')
def test_create_analytics_nodes(self):
- """
- test method for create analytics nodes
- """
- # create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for create analytics nodes"""
with self.rbac_utils.override_role(self):
- self._create_analytics_node(global_system_config)
+ self._create_analytics_node()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_analytics_node")
- @idempotent_id('ff50a2df-6283-409e-ab03-c13b63acc8a0')
+ rules=["update_analytics_node"])
+ @decorators.idempotent_id('ff50a2df-6283-409e-ab03-c13b63acc8a0')
def test_update_analytics_node(self):
- """
- test method for update analytics nodes
- """
- # create global system config
- global_system_config = self._create_global_system_config()['name']
- new_node = self._create_analytics_node(global_system_config)
+ """test method for update analytics nodes"""
+ new_node = self._create_analytics_node()
update_name = data_utils.rand_name('updated_node')
with self.rbac_utils.override_role(self):
self.analytics_node_client.update_analytics_node(
new_node['uuid'], display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_analytics_node")
- @idempotent_id('972f997a-c89f-4227-8ae9-5a2335ec0b0a')
+ rules=["delete_analytics_node"])
+ @decorators.idempotent_id('972f997a-c89f-4227-8ae9-5a2335ec0b0a')
def test_delete_analytics_node(self):
- """
- test method for delete analytics nodes
- """
- # create global system config
- global_system_config = self._create_global_system_config()['name']
- new_node = self._create_analytics_node(global_system_config)
+ """test method for delete analytics nodes"""
+ new_node = self._create_analytics_node()
with self.rbac_utils.override_role(self):
self.analytics_node_client.delete_analytics_node(new_node['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py b/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
index 950af4c..0281352 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
@@ -17,23 +17,18 @@
Tempest test-case to test attachment clients objects using RBAC roles
"""
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class AttachmentsClientTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test attachment client objects using RBAC roles
- """
+ """Test class to test attachment client objects using RBAC roles"""
def _create_provider_attachments(self):
provider_name = data_utils.rand_name('test-provider-attachment')
@@ -62,44 +57,36 @@
return new_customer
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_provider_attachments")
- @idempotent_id('961dbf54-ae4f-42e8-9d27-69fa7df39013')
+ rules=["list_provider_attachments"])
+ @decorators.idempotent_id('961dbf54-ae4f-42e8-9d27-69fa7df39013')
def test_list_provider_attachments(self):
- """
- test method for list provider attachment objects
- """
+ """test method for list provider attachment objects"""
with self.rbac_utils.override_role(self):
self.attachments_client.list_provider_attachments()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_provider_attachments")
- @idempotent_id('73ad032e-3e81-4dcc-be55-1987484207cd')
+ rules=["create_provider_attachments"])
+ @decorators.idempotent_id('73ad032e-3e81-4dcc-be55-1987484207cd')
def test_create_providerattach(self):
- """
- test method for create provider attachment objects
- """
+ """test method for create provider attachment objects"""
with self.rbac_utils.override_role(self):
self._create_provider_attachments()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_provider_attachment")
- @idempotent_id('7b5278bc-dd79-495a-9f74-448c04f52bd2')
+ rules=["show_provider_attachment"])
+ @decorators.idempotent_id('7b5278bc-dd79-495a-9f74-448c04f52bd2')
def test_show_provider_attachment(self):
- """
- test method for delete provider attachment objects
- """
+ """test method for delete provider attachment objects"""
new_provider = self._create_provider_attachments()
with self.rbac_utils.override_role(self):
self.attachments_client.show_provider_attachment(
new_provider['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_provider_attachment")
- @idempotent_id('3516ff99-eddf-4932-afa4-433a43a0e5ac')
+ rules=["update_provider_attachment"])
+ @decorators.idempotent_id('3516ff99-eddf-4932-afa4-433a43a0e5ac')
def test_update_provider_attachment(self):
- """
- test method for update provider attachment objects
- """
+ """test method for update provider attachment objects"""
new_provider = self._create_provider_attachments()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -108,56 +95,46 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_provider_attachment")
- @idempotent_id('234d5505-2abf-418b-b43b-ea6f5a724fd3')
+ rules=["delete_provider_attachment"])
+ @decorators.idempotent_id('234d5505-2abf-418b-b43b-ea6f5a724fd3')
def test_delete_provider_attachment(self):
- """
- test method for delete provider attachment objects
- """
+ """test method for delete provider attachment objects"""
new_provider = self._create_provider_attachments()
with self.rbac_utils.override_role(self):
self.attachments_client.delete_provider_attachment(
new_provider['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_customer_attachments")
- @idempotent_id('3eca8fd8-ec3c-4a0e-8f62-b15d28796b7f')
+ rules=["list_customer_attachments"])
+ @decorators.idempotent_id('3eca8fd8-ec3c-4a0e-8f62-b15d28796b7f')
def test_list_customer_attachments(self):
- """
- test method for list customer attachment objects
- """
+ """test method for list customer attachment objects"""
with self.rbac_utils.override_role(self):
self.attachments_client.list_customer_attachments()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_customer_attachments")
- @idempotent_id('53f93053-554c-4202-b763-0230d9a0553a')
+ rules=["create_customer_attachments"])
+ @decorators.idempotent_id('53f93053-554c-4202-b763-0230d9a0553a')
def test_create_customerattachments(self):
- """
- test method for create customer attachment objects
- """
+ """test method for create customer attachment objects"""
with self.rbac_utils.override_role(self):
self._create_customer_attachments()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_customer_attachment")
- @idempotent_id('c6671540-695c-4cba-bcee-4a5d1cddd412')
+ rules=["show_customer_attachment"])
+ @decorators.idempotent_id('c6671540-695c-4cba-bcee-4a5d1cddd412')
def test_show_customer_attachment(self):
- """
- test method for show customer attachment objects
- """
+ """test method for show customer attachment objects"""
new_customer = self._create_customer_attachments()
with self.rbac_utils.override_role(self):
self.attachments_client.show_customer_attachment(
new_customer['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_customer_attachment")
- @idempotent_id('50419cca-dd03-4d02-9c06-88446647fcba')
+ rules=["update_customer_attachment"])
+ @decorators.idempotent_id('50419cca-dd03-4d02-9c06-88446647fcba')
def test_update_customer_attachment(self):
- """
- test method for update customer attachment objects
- """
+ """test method for update customer attachment objects"""
new_customer = self._create_customer_attachments()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -166,12 +143,10 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_customer_attachment")
- @idempotent_id('5385c275-8e86-4739-9cb6-d1e0ed522807')
+ rules=["delete_customer_attachment"])
+ @decorators.idempotent_id('5385c275-8e86-4739-9cb6-d1e0ed522807')
def test_delete_customer_attachment(self):
- """
- test method for delete customer attachment objects
- """
+ """test method for delete customer attachment objects"""
new_customer = self._create_customer_attachments()
with self.rbac_utils.override_role(self):
self.attachments_client.delete_customer_attachment(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py b/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py
index 900d563..f9345b8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py
@@ -17,22 +17,18 @@
Tempest test-case to test BGP as a Service objects using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class BGPAsAServicesTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test BGP as a Service objects using RBAC roles
- """
+ """Test class to test BGP as a Service objects using RBAC roles"""
def _create_bgp_as_a_services(self):
bgp_name = data_utils.rand_name('test-bgp')
@@ -46,56 +42,46 @@
return new_bgp
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_bgp_as_a_services")
- @idempotent_id('d3153cd0-379e-4e62-9780-ef237e567fc5')
+ rules=["list_bgp_as_a_services"])
+ @decorators.idempotent_id('d3153cd0-379e-4e62-9780-ef237e567fc5')
def test_list_bgp_as_a_services(self):
- """
- test method for list bgp as a service objects
- """
+ """test method for list bgp as a service objects"""
with self.rbac_utils.override_role(self):
self.bgp_as_a_service_client.list_bgp_as_a_services()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_bgp_as_a_services")
- @idempotent_id('a039f0c4-b53a-492b-a5c5-fbdf046afcf4')
+ rules=["create_bgp_as_a_services"])
+ @decorators.idempotent_id('a039f0c4-b53a-492b-a5c5-fbdf046afcf4')
def test_create_bgp_as_a_services(self):
- """
- test method for create bgp as a service objects
- """
+ """test method for create bgp as a service objects"""
with self.rbac_utils.override_role(self):
self._create_bgp_as_a_services()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_bgp_as_a_service")
- @idempotent_id('c2fae8b4-929c-4d2f-914d-76a7414a56dc')
+ rules=["show_bgp_as_a_service"])
+ @decorators.idempotent_id('c2fae8b4-929c-4d2f-914d-76a7414a56dc')
def test_show_bgp_as_a_service(self):
- """
- test method for show bgp as a service objects
- """
+ """test method for show bgp as a service objects"""
new_bgp = self._create_bgp_as_a_services()
with self.rbac_utils.override_role(self):
self.bgp_as_a_service_client.show_bgp_as_a_service(
new_bgp['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_bgp_as_a_service")
- @idempotent_id('78c8389a-7bb5-4027-bae1-923af3d6e77c')
+ rules=["delete_bgp_as_a_service"])
+ @decorators.idempotent_id('78c8389a-7bb5-4027-bae1-923af3d6e77c')
def test_delete_bgp_as_a_service(self):
- """
- test method for delete bgp as a service objects
- """
+ """test method for delete bgp as a service objects"""
new_bgp = self._create_bgp_as_a_services()
with self.rbac_utils.override_role(self):
self.bgp_as_a_service_client.delete_bgp_as_a_service(
new_bgp['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_bgp_as_a_service")
- @idempotent_id('38ba2ecb-71e2-4a2f-be43-e82491dffa05')
+ rules=["update_bgp_as_a_service"])
+ @decorators.idempotent_id('38ba2ecb-71e2-4a2f-be43-e82491dffa05')
def test_update_bgp_as_a_service(self):
- """
- test method for update bgp as a service objects
- """
+ """test method for update bgp as a service objects"""
new_bgp = self._create_bgp_as_a_services()
with self.rbac_utils.override_role(self):
self.bgp_as_a_service_client.update_bgp_as_a_service(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py b/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
index 051138b..26aea25 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
@@ -17,27 +17,24 @@
Tempest test-case to test config objects using RBAC roles
"""
+import json
import random
+import testtools
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ConfigNodeTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test config node objects using RBAC roles
- """
+ """Test class to test config node objects using RBAC roles"""
@staticmethod
def _random_ip_generator():
@@ -48,7 +45,10 @@
def _create_config_node(self):
config_node_ip_address = self._random_ip_generator()
display_name = data_utils.rand_name('config_node')
- fq_name = ["default-global-system-config", display_name]
+ if rbac_base.get_contail_version() < 3.2:
+ fq_name = [display_name]
+ else:
+ fq_name = ['default-global-system-config', display_name]
config_node = self.config_client.create_config_nodes(
config_node_ip_address=config_node_ip_address,
display_name=display_name, fq_name=fq_name)
@@ -60,32 +60,26 @@
return config_node
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_config_nodes")
- @idempotent_id('b560e060-e4f0-45b0-93e2-55f0cb201e06')
+ rules=["list_config_nodes"])
+ @decorators.idempotent_id('b560e060-e4f0-45b0-93e2-55f0cb201e06')
def test_list_config_nodes(self):
- """
- test method for list config node objects
- """
+ """test method for list config node objects"""
with self.rbac_utils.override_role(self):
self.config_client.list_config_nodes()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_config_nodes")
- @idempotent_id('a8d20d0d-dc5a-4cae-87c5-7f6914c3701e')
+ rules=["create_config_nodes"])
+ @decorators.idempotent_id('a8d20d0d-dc5a-4cae-87c5-7f6914c3701e')
def test_create_config_nodes(self):
- """
- test method for create config node objects
- """
+ """test method for create config node objects"""
with self.rbac_utils.override_role(self):
self._create_config_node()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_config_node")
- @idempotent_id('16573a85-57ab-418c-bb23-5dd936e7be90')
+ rules=["delete_config_node"])
+ @decorators.idempotent_id('16573a85-57ab-418c-bb23-5dd936e7be90')
def test_delete_config_node(self):
- """
- test method for delete config node objects
- """
+ """test method for delete config node objects"""
config_node = self._create_config_node()
config_node_uuid = config_node['config-node']['uuid']
with self.rbac_utils.override_role(self):
@@ -93,24 +87,20 @@
config_node_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_config_node")
- @idempotent_id('a5b17108-4fa3-4d09-b861-e2857aab8f80')
+ rules=["show_config_node"])
+ @decorators.idempotent_id('a5b17108-4fa3-4d09-b861-e2857aab8f80')
def test_show_config_node(self):
- """
- test method for show config node objects
- """
+ """test method for show config node objects"""
config_node = self._create_config_node()
config_node_uuid = config_node['config-node']['uuid']
with self.rbac_utils.override_role(self):
self.config_client.show_config_node(config_node_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_config_node")
- @idempotent_id('8f70d2c0-594b-4a94-ab15-88bd8a2e62e5')
+ rules=["update_config_node"])
+ @decorators.idempotent_id('8f70d2c0-594b-4a94-ab15-88bd8a2e62e5')
def test_update_config_node(self):
- """
- test method for update config node objects
- """
+ """test method for update config node objects"""
config_node = self._create_config_node()
config_node_uuid = config_node['config-node']['uuid']
updated_name = data_utils.rand_name('new_config_node')
@@ -120,10 +110,7 @@
class ConfigRootTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test config root objects using RBAC roles
- """
+ """Test class to test config root objects using RBAC roles"""
def _create_config_root(self):
display_name = data_utils.rand_name('config_root')
@@ -138,22 +125,18 @@
return config_root
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_config_roots")
- @idempotent_id('291b28ea-d0d8-47cd-ac76-1f980047cb76')
+ rules=["create_config_roots"])
+ @decorators.idempotent_id('291b28ea-d0d8-47cd-ac76-1f980047cb76')
def test_create_config_roots(self):
- """
- test method for create config root service objects
- """
+ """test method for create config root service objects"""
with self.rbac_utils.override_role(self):
self._create_config_root()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_config_root")
- @idempotent_id('bd04c0fb-3deb-4904-ad2c-1a10933c30dd')
+ rules=["delete_config_root"])
+ @decorators.idempotent_id('bd04c0fb-3deb-4904-ad2c-1a10933c30dd')
def test_delete_config_root(self):
- """
- test method for delete config root service objects
- """
+ """test method for delete config root service objects"""
config_root = self._create_config_root()
config_root_uuid = config_root['config-root']['uuid']
with self.rbac_utils.override_role(self):
@@ -161,24 +144,20 @@
config_root_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_config_root")
- @idempotent_id('fba2c419-9a83-4d88-9a26-84770544bb3f')
+ rules=["show_config_root"])
+ @decorators.idempotent_id('fba2c419-9a83-4d88-9a26-84770544bb3f')
def test_show_config_root(self):
- """
- test method for show config root service objects
- """
+ """test method for show config root service objects"""
config_root = self._create_config_root()
config_root_uuid = config_root['config-root']['uuid']
with self.rbac_utils.override_role(self):
self.config_client.show_config_root(config_root_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_config_root")
- @idempotent_id('bfcc074f-5e1c-4b45-8a2a-857239f8acb0')
+ rules=["update_config_root"])
+ @decorators.idempotent_id('bfcc074f-5e1c-4b45-8a2a-857239f8acb0')
def test_update_config_root(self):
- """
- test method for update config root service objects
- """
+ """test method for update config root service objects"""
config_root = self._create_config_root()
config_root_uuid = config_root['config-root']['uuid']
updated_name = data_utils.rand_name('new_config_root')
@@ -187,21 +166,16 @@
config_root_uuid, display_name=updated_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_config_roots")
- @idempotent_id('316e7425-8fb0-41b4-9080-a76697abbafa')
+ rules=["list_config_roots"])
+ @decorators.idempotent_id('316e7425-8fb0-41b4-9080-a76697abbafa')
def test_list_config_roots(self):
- """
- test method for list config root service objects
- """
+ """test method for list config root service objects"""
with self.rbac_utils.override_role(self):
self.config_client.list_config_roots()
class GlobalSystemConfigTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test config node objects using RBAC roles
- """
+ """Test class to test config node objects using RBAC roles"""
def _create_global_system_config(self):
config_name = data_utils.rand_name('test-config')
@@ -219,44 +193,56 @@
return new_config
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_global_system_configs")
- @idempotent_id('d1d189a7-14c1-49c5-b180-cd42ed2ca123')
+ rules=["list_global_system_configs"])
+ @decorators.idempotent_id('d1d189a7-14c1-49c5-b180-cd42ed2ca123')
def test_list_global_system_configs(self):
- """
- test method for list global system config service objects
- """
+ """test method for list global system config service objects"""
with self.rbac_utils.override_role(self):
self.config_client.list_global_system_configs()
+ @testtools.skipUnless(rbac_base.get_contail_version() < 5,
+ 'Not supported in OpenContrail versions >= 5')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_global_system_configs")
- @idempotent_id('e0ba6a20-3e28-47ac-bf95-9a848fcee49a')
- def test_create_global_sys_configs(self):
- """
- test method for create global system config service objects
- """
+ rules=["create_global_system_configs"])
+ @decorators.idempotent_id('e0ba6a20-3e28-47ac-bf95-9a848fcee49a')
+ def test_create_global_system_configs(self):
+ """test method for create global system config service objects"""
with self.rbac_utils.override_role(self):
self._create_global_system_config()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_global_system_config")
- @idempotent_id('4b9f9131-cb34-4b7d-9d06-c6aca85cce3a')
+ rules=["show_global_system_config"])
+ @decorators.idempotent_id('4b9f9131-cb34-4b7d-9d06-c6aca85cce3a')
def test_show_global_system_config(self):
- """
- test method for show global system config service objects
- """
- new_config = self._create_global_system_config()
- with self.rbac_utils.override_role(self):
- self.config_client.show_global_system_config(
- new_config['uuid'])
+ if rbac_base.get_contail_version() < 5:
+ new_config = self._create_global_system_config()
+ with self.rbac_utils.override_role(self):
+ self.config_client.show_global_system_config(
+ new_config['uuid'])
+ else:
+ resp, resp_body = self.config_client.list_global_system_configs()
+ # There must exist just one global system config in Contrail
+ # verion > 4.x. There may be more than one in other versions
+ # which is bug fixed in later releases.
+ body = json.loads(resp_body)['global-system-configs']
+ self.assertGreater(len(body), 0,
+ msg="No global system config exists. "
+ "There must exists "
+ "default-global-sytem-config "
+ "at least by default")
+ for gsc in body:
+ if gsc['fq_name'][0] == 'default-global-system-config':
+ with self.rbac_utils.override_role(self):
+ self.config_client.show_global_system_config(
+ gsc['uuid'])
+ @testtools.skipUnless(rbac_base.get_contail_version() < 5,
+ 'Not supported in OpenContrail versions >= 5')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_global_system_config")
- @idempotent_id('4f90dc83-da59-45a4-8ab6-b387bd6c2df4')
- def test_update_global_sys_config(self):
- """
- test method for update global system config service objects
- """
+ rules=["update_global_system_config"])
+ @decorators.idempotent_id('4f90dc83-da59-45a4-8ab6-b387bd6c2df4')
+ def test_update_global_system_config(self):
+ """test method for update global system config service objects"""
new_config = self._create_global_system_config()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -264,14 +250,13 @@
new_config['uuid'],
display_name=update_name)
+ @testtools.skipUnless(rbac_base.get_contail_version() < 5,
+ 'Not supported in OpenContrail versions >= 5')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_global_system_config")
- @idempotent_id('fce1653c-e657-4a1e-8ced-7e02d297d6c9')
- def test_delete_global_sys_config(self):
- """
- test method for delete global system config service objects
- """
+ rules=["delete_global_system_config"])
+ @decorators.idempotent_id('fce1653c-e657-4a1e-8ced-7e02d297d6c9')
+ def test_delete_global_system_config(self):
+ """test method for delete global system config service objects"""
new_config = self._create_global_system_config()
with self.rbac_utils.override_role(self):
- self.config_client.delete_global_system_config(
- new_config['uuid'])
+ self.config_client.delete_global_system_config(new_config['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_database.py b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
index 97cadc7..020d595 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_database.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
@@ -18,46 +18,26 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailDatabaseTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test database objects using RBAC roles
- """
-
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
+ """Test class to test database objects using RBAC roles"""
def _delete_database_node(self, db_node_id):
return self.db_client.delete_database_node(db_node_id)
- def _create_database_node(self, global_system_config):
+ def _create_database_node(self):
name = data_utils.rand_name('database')
- fq_name = [global_system_config, name]
+ fq_name = ['default-global-system-config', name]
database_node_ip_address = '1.1.1.1'
parent_type = 'global-system-config'
db_node = self.db_client.create_databse_nodes(
@@ -72,54 +52,37 @@
return db_node
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_database_nodes")
- @idempotent_id('5ae6f965-6161-443f-b19e-dfa7b364c533')
+ rules=["list_database_nodes"])
+ @decorators.idempotent_id('5ae6f965-6161-443f-b19e-dfa7b364c533')
def test_list_database_nodes(self):
- """
- test method for list database objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- self._create_database_node(global_system_config)
+ """test method for list database objects"""
+ self._create_database_node()
with self.rbac_utils.override_role(self):
self.db_client.list_database_nodes()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_database_node")
- @idempotent_id('4a07d9a8-7b99-43bd-b628-06c023993aab')
+ rules=["show_database_node"])
+ @decorators.idempotent_id('4a07d9a8-7b99-43bd-b628-06c023993aab')
def test_show_database_node(self):
- """
- test method for show database objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- db_node = self._create_database_node(global_system_config)
- db_node_id = db_node['uuid']
+ """test method for show database objects"""
+ db_node = self._create_database_node()
with self.rbac_utils.override_role(self):
- self.db_client.show_database_node(db_node_id)
+ self.db_client.show_database_node(db_node['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_database_nodes")
- @idempotent_id('b9aa9c6b-9381-44f0-94fb-e4523bf2a87e')
+ rules=["create_database_nodes"])
+ @decorators.idempotent_id('b9aa9c6b-9381-44f0-94fb-e4523bf2a87e')
def test_create_database_nodes(self):
- """
- test method for update database objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for update database objects"""
with self.rbac_utils.override_role(self):
- self._create_database_node(global_system_config)
+ self._create_database_node()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_database_node")
- @idempotent_id('6e59f393-0e55-4327-871e-7f0ad53f2e17')
+ rules=["update_database_node"])
+ @decorators.idempotent_id('6e59f393-0e55-4327-871e-7f0ad53f2e17')
def test_update_database_node(self):
- """
- test method for update database objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- db_node = self._create_database_node(global_system_config)
+ """test method for update database objects"""
+ db_node = self._create_database_node()
db_node_id = db_node['uuid']
display_name = data_utils.rand_name('DatabaseNew')
with self.rbac_utils.override_role(self):
@@ -128,15 +91,11 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_database_node")
- @idempotent_id('0cbc5a52-d7e7-4a1c-a85d-6bf44012d99b')
+ rules=["delete_database_node"])
+ @decorators.idempotent_id('0cbc5a52-d7e7-4a1c-a85d-6bf44012d99b')
def test_delete_database_node(self):
- """
- test method for delete database objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- db_node = self._create_database_node(global_system_config)
+ """test method for delete database objects"""
+ db_node = self._create_database_node()
db_node_id = db_node['uuid']
with self.rbac_utils.override_role(self):
self._delete_database_node(db_node_id)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py b/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py
index f8209e0..0731440 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py
@@ -17,22 +17,20 @@
Tempest test-case to test discovery service assignment objects using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class DiscoveryServiceAssignmentTest(rbac_base.BaseContrailTest):
+ """Test class to test discovery service assignment objects using RBAC roles
"""
- Test class to test discovery service assignment objects using RBAC roles
- """
def _create_discovery_service_assignments(self):
dsa_name = [data_utils.rand_name('test-dsa')]
@@ -45,43 +43,36 @@
return new_dsa
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_discovery_service_assignments")
- @idempotent_id('9ac1e4ca-8983-403f-b644-7758935f2f36')
+ rules=["list_discovery_service_assignments"])
+ @decorators.idempotent_id('9ac1e4ca-8983-403f-b644-7758935f2f36')
def test_list_discovery_service(self):
- """
- test method for list discovery service assignment objects
- """
+ """test method for list discovery service assignment objects"""
with self.rbac_utils.override_role(self):
self.dsa_client.list_ds_assignments()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_discovery_service_assignments")
- @idempotent_id('40ad1208-a039-4809-8516-41b4dfcbd00c')
+ rules=["create_discovery_service_assignments"]
+ )
+ @decorators.idempotent_id('40ad1208-a039-4809-8516-41b4dfcbd00c')
def test_create_discovery_service(self):
- """
- test method for create discovery service assignment objects
- """
+ """test method for create discovery service assignment objects"""
with self.rbac_utils.override_role(self):
self._create_discovery_service_assignments()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_discovery_service_assignment")
- @idempotent_id('63660fe9-22b8-456c-a757-a7da1abfbce8')
+ rules=["show_discovery_service_assignment"])
+ @decorators.idempotent_id('63660fe9-22b8-456c-a757-a7da1abfbce8')
def test_show_discovery_service(self):
- """
- test method for show discovery service assignment objects
- """
+ """test method for show discovery service assignment objects"""
new_dsa = self._create_discovery_service_assignments()
with self.rbac_utils.override_role(self):
self.dsa_client.show_ds_assignment(new_dsa['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_discovery_service_assignment")
- @idempotent_id('71ce1404-965b-4670-abb7-5b6fea3b24b7')
+ rules=["update_discovery_service_assignment"])
+ @decorators.idempotent_id('71ce1404-965b-4670-abb7-5b6fea3b24b7')
def test_update_discovery_service(self):
- """
- test method for update discovery service assignment objects
- """
+ """test method for update discovery service assignment objects"""
new_dsa = self._create_discovery_service_assignments()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -91,12 +82,10 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_discovery_service_assignment")
- @idempotent_id('e7ff845d-2140-4eb0-9720-26370459723b')
+ rules=["delete_discovery_service_assignment"])
+ @decorators.idempotent_id('e7ff845d-2140-4eb0-9720-26370459723b')
def test_delete_discovery_service(self):
- """
- test method for delete discovery service assignment objects
- """
+ """test method for delete discovery service assignment objects"""
new_dsa = self._create_discovery_service_assignments()
with self.rbac_utils.override_role(self):
self.dsa_client.delete_ds_assignment(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
index 8e74adf..baa50fb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class DomainContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test domain objects using RBAC roles
- """
+ """Test class to test domain objects using RBAC roles"""
def _create_domains(self):
fq_name = data_utils.rand_name('domain')
@@ -57,54 +52,44 @@
self.domain_client.update_domain(domain_uuid, **put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_domains")
- @idempotent_id('fa02e27b-f661-4186-a522-69e8fcb6abf9')
+ rules=["list_domains"])
+ @decorators.idempotent_id('fa02e27b-f661-4186-a522-69e8fcb6abf9')
def test_list_domains(self):
- """
- test method for list domain objects
- """
+ """test method for list domain objects"""
with self.rbac_utils.override_role(self):
self.domain_client.list_domains()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_domains")
- @idempotent_id('3f18be91-c37b-4e17-bf5e-b704d993f738')
+ rules=["create_domains"])
+ @decorators.idempotent_id('3f18be91-c37b-4e17-bf5e-b704d993f738')
def test_create_domains(self):
- """
- test method for create domain objects
- """
+ """test method for create domain objects"""
with self.rbac_utils.override_role(self):
self._create_domains()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_domain")
- @idempotent_id('e79f8581-ba9f-420a-aa26-f1cb51cf4bbf')
+ rules=["show_domain"])
+ @decorators.idempotent_id('e79f8581-ba9f-420a-aa26-f1cb51cf4bbf')
def test_show_domain(self):
- """
- test method for show domain objects
- """
+ """test method for show domain objects"""
domain_uuid = self._create_domains()
with self.rbac_utils.override_role(self):
self.domain_client.show_domain(domain_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_domain")
- @idempotent_id('fdf72539-20b5-4bdb-b22b-70c86fbb52a4')
+ rules=["update_domain"])
+ @decorators.idempotent_id('fdf72539-20b5-4bdb-b22b-70c86fbb52a4')
def test_update_domain(self):
- """
- test method for update domain objects
- """
+ """test method for update domain objects"""
domain_uuid = self._create_domains()
with self.rbac_utils.override_role(self):
self._update_domain(domain_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_domain")
- @idempotent_id('abaad2b0-6bde-40b8-b257-20ca805c1dca')
+ rules=["delete_domain"])
+ @decorators.idempotent_id('abaad2b0-6bde-40b8-b257-20ca805c1dca')
def test_delete_domain(self):
- """
- test method for delete domain objects
- """
+ """test method for delete domain objects"""
domain_uuid = self._create_domains()
with self.rbac_utils.override_role(self):
self.domain_client.delete_domain(domain_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py b/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
index 95ed9a9..5d537f2 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailDSARuleTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test DSA rule objects using RBAC roles
- """
+ """Test class to test DSA rule objects using RBAC roles"""
def _create_discovery_service_assignments(self):
dsa_name = [data_utils.rand_name('test-dsa')]
@@ -61,22 +56,18 @@
return new_rule
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_dsa_rules")
- @idempotent_id('3227673b-96fc-4d26-ab0b-109347e9e9c2')
+ rules=["list_dsa_rules"])
+ @decorators.idempotent_id('3227673b-96fc-4d26-ab0b-109347e9e9c2')
def test_list_dsa_rules(self):
- """
- test method for list dsa rules objects
- """
+ """test method for list dsa rules objects"""
with self.rbac_utils.override_role(self):
self.dsa_rule_client.list_dsa_rules()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_dsa_rule")
- @idempotent_id('0f90ea4f-c050-4c31-93a7-1e0c58df914e')
+ rules=["show_dsa_rule"])
+ @decorators.idempotent_id('0f90ea4f-c050-4c31-93a7-1e0c58df914e')
def test_show_dsa_rule(self):
- """
- test method for show dsa rules objects
- """
+ """test method for show dsa rules objects"""
# create discover service assignment
discovery_service_assignment = \
self._create_discovery_service_assignments()['name']
@@ -85,12 +76,10 @@
self.dsa_rule_client.show_dsa_rule(new_rule['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_dsa_rules")
- @idempotent_id('c3774ca3-45d0-4ca8-a6b3-f895441b1d0e')
+ rules=["create_dsa_rules"])
+ @decorators.idempotent_id('c3774ca3-45d0-4ca8-a6b3-f895441b1d0e')
def test_create_dsa_rules(self):
- """
- test method for create dsa rules objects
- """
+ """test method for create dsa rules objects"""
# create discover service assignment
discovery_service_assignment = \
self._create_discovery_service_assignments()['name']
@@ -98,12 +87,10 @@
self._create_dsa_rules(discovery_service_assignment)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_dsa_rule")
- @idempotent_id('5cfe7e8e-d91c-4183-8e6c-733e826707be')
+ rules=["update_dsa_rule"])
+ @decorators.idempotent_id('5cfe7e8e-d91c-4183-8e6c-733e826707be')
def test_update_dsa_rule(self):
- """
- test method for update dsa rules objects
- """
+ """test method for update dsa rules objects"""
# create discover service assignment
discovery_service_assignment = \
self._create_discovery_service_assignments()['name']
@@ -114,12 +101,10 @@
new_rule['uuid'], display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_dsa_rule")
- @idempotent_id('d3b869db-fa49-48f0-861a-08efd9879b15')
+ rules=["delete_dsa_rule"])
+ @decorators.idempotent_id('d3b869db-fa49-48f0-861a-08efd9879b15')
def test_delete_dsa_rule(self):
- """
- test method for delete dsa rules objects
- """
+ """test method for delete dsa rules objects"""
# create discover service assignment
discovery_service_assignment = \
self._create_discovery_service_assignments()['name']
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_fabric.py b/tungsten_tempest_plugin/tests/api/contrail/test_fabric.py
new file mode 100644
index 0000000..1c9e380
--- /dev/null
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fabric.py
@@ -0,0 +1,101 @@
+# Copyright 2018 AT&T Corp
+# All Rights Reserved.
+#
+# 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 patrole_tempest_plugin import rbac_rule_validation
+from tempest import config
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
+
+CONF = config.CONF
+
+
+class FabricContrailTest(rbac_base.BaseContrailTest):
+
+ required_contrail_version = 5
+
+ @classmethod
+ def resource_setup(cls):
+ super(FabricContrailTest, cls).resource_setup()
+ cls.fabric_uuid = cls._create_fabric()
+
+ @classmethod
+ def _create_fabric(cls):
+ fabric = cls.contrail_client.create_fabric(
+ fq_name=["default-global-system-config",
+ data_utils.rand_name('fabric')],
+ parent_type="global-system-config")
+ cls.addClassResourceCleanup(cls._try_delete_resource,
+ cls.contrail_client.delete_fabric,
+ fabric["fabric"]["uuid"])
+ return fabric["fabric"]["uuid"]
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["list_fabrics"])
+ @decorators.idempotent_id('9005d1d6-3bd2-4378-b145-0fda130ce1d1')
+ def test_list_fabric_s(self):
+ """List fabrics
+
+ RBAC test for the Contrail list_fabrics policy
+ """
+ with self.rbac_utils.override_role(self):
+ self.contrail_client.list_fabrics()
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["create_fabric"])
+ @decorators.idempotent_id('9b216ca5-b332-41ca-9072-6c3ee325ea91')
+ def test_create_fabric(self):
+ """Create fabric
+
+ RBAC test for the Contrail create_fabric policy
+ """
+ with self.rbac_utils.override_role(self):
+ self._create_fabric()
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["show_fabric"])
+ @decorators.idempotent_id('244c3530-70e0-4efe-98be-4c2d1ffa0376')
+ def test_show_fabric(self):
+ """Show fabric
+
+ RBAC test for the Contrail show_fabric policy
+ """
+ with self.rbac_utils.override_role(self):
+ self.contrail_client.show_fabric(self.fabric_uuid)
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["delete_fabric"])
+ @decorators.idempotent_id('75edc6b9-c66a-46fc-a271-4c54e4cc77b1')
+ def test_delete_fabric(self):
+ """Delete fabric
+
+ RBAC test for the Contrail delete_fabric policy
+ """
+ fab_uuid = self._create_fabric()
+ with self.rbac_utils.override_role(self):
+ self.contrail_client.delete_fabric(fab_uuid)
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["update_fabric"])
+ @decorators.idempotent_id('f22c4c26-3843-4fc6-a8ff-7890d5ad1c39')
+ def test_update_fabric(self):
+ """Update fabric
+
+ RBAC test for the Contrail update_fabric policy
+ """
+ with self.rbac_utils.override_role(self):
+ put_body = {'display_name': data_utils.rand_name('update_fab')}
+ self.contrail_client.update_fabric(self.fabric_uuid, **put_body)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_fabric_namespaces.py b/tungsten_tempest_plugin/tests/api/contrail/test_fabric_namespaces.py
new file mode 100644
index 0000000..fe1ef6b
--- /dev/null
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fabric_namespaces.py
@@ -0,0 +1,125 @@
+# Copyright 2018 AT&T Corp
+# All Rights Reserved.
+#
+# 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 patrole_tempest_plugin import rbac_rule_validation
+from tempest import config
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
+
+CONF = config.CONF
+
+
+class FabricNamespacesContrailTest(rbac_base.BaseContrailTest):
+
+ required_contrail_version = 5
+
+ @classmethod
+ def resource_setup(cls):
+ super(FabricNamespacesContrailTest, cls).resource_setup()
+ cls.fabric_namespace_uuid = cls._create_fabric_namespace()
+
+ @classmethod
+ def _create_fabric(cls):
+ # Fabric object is required as parent for fabric-namespace
+ fabric = cls.contrail_client.create_fabric(
+ fq_name=["default-global-system-config",
+ data_utils.rand_name('fabric')],
+ parent_type="global-system-config")
+ cls.addClassResourceCleanup(cls._try_delete_resource,
+ cls.contrail_client.delete_fabric,
+ fabric["fabric"]["uuid"])
+ return fabric["fabric"]
+
+ @classmethod
+ def _create_fabric_namespace(cls):
+ fabric = cls._create_fabric()
+
+ parent_type = 'fabric'
+ name = data_utils.rand_name('fabric_namespace')
+ fq_name = fabric["fq_name"] + [name]
+
+ post_body = {
+ 'fq_name': fq_name,
+ 'parent_type': parent_type
+ }
+
+ resp_body = cls.contrail_client.create_fabric_namespace(**post_body)
+ cls.addClassResourceCleanup(
+ cls._try_delete_resource,
+ cls.contrail_client.delete_fabric_namespace,
+ resp_body['fabric-namespace']['uuid'])
+
+ return resp_body['fabric-namespace']['uuid']
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["list_fabric_namespaces"])
+ @decorators.idempotent_id('f9935e2a-c4b6-4694-8698-6148faf93e1a')
+ def test_list_fabric_namespaces(self):
+ """List fabric namespaces
+
+ RBAC test for the Contrail list_fabric_namespaces policy
+ """
+ with self.rbac_utils.override_role(self):
+ self.contrail_client.list_fabric_namespaces()
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["create_fabric_namespace"])
+ @decorators.idempotent_id('5bb85072-130d-4f36-a787-12b65bdd4c03')
+ def test_create_fabric_namespace(self):
+ """Create fabric namespace
+
+ RBAC test for the Contrail create_fabric_namespace policy
+ """
+ with self.rbac_utils.override_role(self):
+ self._create_fabric_namespace()
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["show_fabric_namespace"])
+ @decorators.idempotent_id('5ab5bc8f-7209-427a-9868-4fbc7a7e0d85')
+ def test_show_fabric_namespace(self):
+ """Show fabric namespace
+
+ RBAC test for the Contrail show_fabric_namespace policy
+ """
+ with self.rbac_utils.override_role(self):
+ self.contrail_client.show_fabric_namespace(
+ self.fabric_namespace_uuid)
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["delete_fabric_namespace"])
+ @decorators.idempotent_id('ff20e4bb-6110-476e-80b4-d6114981e8bf')
+ def test_delete_fabric_namespace(self):
+ """Delete fabric namespace
+
+ RBAC test for the Contrail delete_fabric_namespace policy
+ """
+ ns_uuid = self._create_fabric_namespace()
+ with self.rbac_utils.override_role(self):
+ self.contrail_client.delete_fabric_namespace(ns_uuid)
+
+ @rbac_rule_validation.action(service=CONF.sdn.service_name,
+ rules=["update_fabric_namespace"])
+ @decorators.idempotent_id('78514d86-fcdc-4bc6-99b9-11b5e91b5296')
+ def test_update_fabric_namespace(self):
+ """Update fabric namespace
+
+ RBAC test for the Contrail update_fabric_namespace policy
+ """
+ with self.rbac_utils.override_role(self):
+ put_body = {'display_name': data_utils.rand_name('update_fns')}
+ self.contrail_client.update_fabric_namespace(
+ self.fabric_namespace_uuid, **put_body)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
index ee325bc..e20b601 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class BaseFloatingIpTest(rbac_base.BaseContrailTest):
-
- """
- Base class to test floating IP objects using RBAC roles
- """
+ """Base class to test floating IP objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -70,13 +65,13 @@
'uuid': cls.ipam['uuid'],
'attr': {
'ipam_subnets': [{'subnet': subnet_ip_prefix}]
- }
}
- ],
+ }
+ ],
'virtual_network_properties': {
'forwarding_mode': 'l3'
- }
- }
+ }
+ }
body = cls.vn_client.create_virtual_networks(**post_body)
cls.network = body['virtual-network']
@@ -90,10 +85,7 @@
class FloatingIpPoolTest(BaseFloatingIpTest):
-
- """
- Test class to test Floating IP pool objects using RBAC roles
- """
+ """Test class to test Floating IP pool objects using RBAC roles"""
def _create_floating_ip_pool(self):
pool_name = data_utils.rand_name('rbac-fip-pool')
@@ -114,44 +106,36 @@
return fip_pool
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_floating_ip_pools")
- @idempotent_id('a83ca5e8-be4b-4161-869c-f981a724cf82')
+ rules=["create_floating_ip_pools"])
+ @decorators.idempotent_id('a83ca5e8-be4b-4161-869c-f981a724cf82')
def test_create_floating_ip_pools(self):
- """
- test method for create floating IP pool objects
- """
+ """test method for create floating IP pool objects"""
with self.rbac_utils.override_role(self):
self._create_floating_ip_pool()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_floating_ip_pools")
- @idempotent_id('9d20e78d-0463-4a0e-b30c-40770bee35bc')
+ rules=["list_floating_ip_pools"])
+ @decorators.idempotent_id('9d20e78d-0463-4a0e-b30c-40770bee35bc')
def test_list_floating_ip_pools(self):
- """
- test method for list floating IP pool objects
- """
+ """test method for list floating IP pool objects"""
self._create_floating_ip_pool()
with self.rbac_utils.override_role(self):
self.fip_client.list_floating_ip_pools()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_floating_ip_pool")
- @idempotent_id('1ec3124c-c15c-4ee6-b2de-2feed9599e38')
+ rules=["show_floating_ip_pool"])
+ @decorators.idempotent_id('1ec3124c-c15c-4ee6-b2de-2feed9599e38')
def test_show_floating_ip_pool(self):
- """
- test method for show floating IP pool objects
- """
+ """test method for show floating IP pool objects"""
uuid = self._create_floating_ip_pool()['uuid']
with self.rbac_utils.override_role(self):
self.fip_client.show_floating_ip_pool(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_floating_ip_pool")
- @idempotent_id('6563f2e7-ae6b-483b-8c07-0111efc86817')
+ rules=["update_floating_ip_pool"])
+ @decorators.idempotent_id('6563f2e7-ae6b-483b-8c07-0111efc86817')
def test_update_floating_ip_pool(self):
- """
- test method for update floating IP pool objects
- """
+ """test method for update floating IP pool objects"""
uuid = self._create_floating_ip_pool()['uuid']
with self.rbac_utils.override_role(self):
self.fip_client.update_floating_ip_pool(
@@ -159,22 +143,17 @@
display_name='rbac-fip-pool-new-name')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_floating_ip_pool")
- @idempotent_id('c4b449ae-2f12-49cf-9dec-2b21c143aff6')
+ rules=["delete_floating_ip_pool"])
+ @decorators.idempotent_id('c4b449ae-2f12-49cf-9dec-2b21c143aff6')
def test_delete_floating_ip_pool(self):
- """
- test method for delete floating IP pool objects
- """
+ """test method for delete floating IP pool objects"""
uuid = self._create_floating_ip_pool()['uuid']
with self.rbac_utils.override_role(self):
self.fip_client.delete_floating_ip_pool(uuid)
class FloatingIpTest(BaseFloatingIpTest):
-
- """
- Test class to test floating IP objects using RBAC roles
- """
+ """Test class to test floating IP objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -210,44 +189,36 @@
return fip
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_floating_ips")
- @idempotent_id('ff05f70f-9db9-43cb-a5ce-38cbbef2c430')
+ rules=["create_floating_ips"])
+ @decorators.idempotent_id('ff05f70f-9db9-43cb-a5ce-38cbbef2c430')
def test_create_floating_ips(self):
- """
- test method for create floating IP objects
- """
+ """test method for create floating IP objects"""
with self.rbac_utils.override_role(self):
self._create_floating_ip()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_floating_ips")
- @idempotent_id('e56046f9-32f9-41ce-9c1b-b982997ac347')
+ rules=["list_floating_ips"])
+ @decorators.idempotent_id('e56046f9-32f9-41ce-9c1b-b982997ac347')
def test_list_floating_ips(self):
- """
- test method for list floating IP objects
- """
+ """test method for list floating IP objects"""
self._create_floating_ip()
with self.rbac_utils.override_role(self):
self.fip_client.list_floating_ips()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_floating_ip")
- @idempotent_id('293f2c26-4101-4a2f-86d4-feb2878bd511')
+ rules=["show_floating_ip"])
+ @decorators.idempotent_id('293f2c26-4101-4a2f-86d4-feb2878bd511')
def test_show_floating_ip(self):
- """
- test method for show floating IP objects
- """
+ """test method for show floating IP objects"""
uuid = self._create_floating_ip()['uuid']
with self.rbac_utils.override_role(self):
self.fip_client.show_floating_ip(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_floating_ip")
- @idempotent_id('a09283c9-73d3-42f7-876d-f33040686d6d')
+ rules=["update_floating_ip"])
+ @decorators.idempotent_id('a09283c9-73d3-42f7-876d-f33040686d6d')
def test_update_floating_ip(self):
- """
- test method for update floating IP objects
- """
+ """test method for update floating IP objects"""
uuid = self._create_floating_ip()['uuid']
with self.rbac_utils.override_role(self):
self.fip_client.update_floating_ip(
@@ -255,12 +226,10 @@
display_name='rbac-fip-new-name')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_floating_ip")
- @idempotent_id('a26f162f-da56-4153-aed6-bffccba92bc7')
+ rules=["delete_floating_ip"])
+ @decorators.idempotent_id('a26f162f-da56-4153-aed6-bffccba92bc7')
def test_delete_floating_ip(self):
- """
- test method for delete floating IP objects
- """
+ """test method for delete floating IP objects"""
uuid = self._create_floating_ip()['uuid']
with self.rbac_utils.override_role(self):
self.fip_client.delete_floating_ip(uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py b/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
index 6f642f9..d2b8979 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
@@ -18,44 +18,24 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailForwardingClassTest(rbac_base.BaseContrailTest):
+ """Test class to test Forwarding class objects using RBAC roles"""
- """
- Test class to test Forwarding class objects using RBAC roles
- """
-
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
- def _create_qos_global_configs(self, global_system_config):
+ def _create_qos_global_configs(self):
name = data_utils.rand_name('test-rbac-qos-global-config')
parent_type = 'global-system-config'
- fq_name = [global_system_config, name]
+ fq_name = ['default-global-system-config', name]
qos_global_config = self.qos_client.create_global_qos_configs(
fq_name=fq_name,
parent_type=parent_type)['global-qos-config']
@@ -66,11 +46,10 @@
return qos_global_config
def _create_forwarding_class(self,
- global_system_config,
global_qos_config):
display_name = data_utils.rand_name('forwarding-class')
parent_type = 'global-qos-config'
- fq_name = [global_system_config, global_qos_config, "1"]
+ fq_name = ['default-global-system-config', global_qos_config, "1"]
forwarding_class_id = data_utils.rand_int_id(1, 200)
post_data = {
'fq_name': fq_name,
@@ -86,82 +65,60 @@
return new_fclass
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_forwarding_classs")
- @idempotent_id('807a66fd-d4a4-472c-a13d-7ba590509e6e')
+ rules=["list_forwarding_classs"])
+ @decorators.idempotent_id('807a66fd-d4a4-472c-a13d-7ba590509e6e')
def test_list_forwarding_classs(self):
- """
- test method for list forwarding classes objects
- """
+ """test method for list forwarding classes objects"""
with self.rbac_utils.override_role(self):
self.forwarding_class_client.list_forwarding_classs()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_forwarding_class")
- @idempotent_id('8ef21f71-72a4-4de9-af93-6e759aa463c0')
+ rules=["show_forwarding_class"])
+ @decorators.idempotent_id('8ef21f71-72a4-4de9-af93-6e759aa463c0')
def test_show_forwarding_class(self):
- """
- test method for show forwarding classes objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for show forwarding classes objects"""
# Create a global qos config
- global_qos_config = \
- self._create_qos_global_configs(global_system_config)['name']
- new_fclass = self._create_forwarding_class(global_system_config,
- global_qos_config)
+ self.global_qos_config = \
+ self._create_qos_global_configs()['name']
+ new_fclass = self._create_forwarding_class(self.global_qos_config)
with self.rbac_utils.override_role(self):
self.forwarding_class_client.show_forwarding_class(
new_fclass['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_forwarding_classs")
- @idempotent_id('d098859c-ad36-4385-8fb0-c00934a99b6f')
- def test_create_forwarding_classs(self):
- """
- test method for create forwarding classes objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ rules=["create_forwarding_classs"])
+ @decorators.idempotent_id('d098859c-ad36-4385-8fb0-c00934a99b6f')
+ def test_create_forwarding_class(self):
+ """test method for create forwarding classes objects"""
# Create a global qos config
- global_qos_config = \
- self._create_qos_global_configs(global_system_config)['name']
+ self.global_qos_config = \
+ self._create_qos_global_configs()['name']
with self.rbac_utils.override_role(self):
- self._create_forwarding_class(global_system_config,
- global_qos_config)
+ self._create_forwarding_class(self.global_qos_config)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_forwarding_class")
- @idempotent_id('589dc03d-a25d-48be-9d9c-d3f92ff2cfc6')
+ rules=["update_forwarding_class"])
+ @decorators.idempotent_id('589dc03d-a25d-48be-9d9c-d3f92ff2cfc6')
def test_update_forwarding_class(self):
- """
- test method for update forwarding classes objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for update forwarding classes objects"""
# Create a global qos config
- global_qos_config = \
- self._create_qos_global_configs(global_system_config)['name']
- new_fclass = self._create_forwarding_class(global_system_config,
- global_qos_config)
+ self.global_qos_config = \
+ self._create_qos_global_configs()['name']
+ new_fclass = self._create_forwarding_class(self.global_qos_config)
update_name = data_utils.rand_name('updated_fclass')
with self.rbac_utils.override_role(self):
self.forwarding_class_client.update_forwarding_class(
new_fclass['uuid'], display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_forwarding_class")
- @idempotent_id('a0348ffc-68c5-4d94-ba03-d08483503ced')
+ rules=["delete_forwarding_class"])
+ @decorators.idempotent_id('a0348ffc-68c5-4d94-ba03-d08483503ced')
def test_delete_forwarding_class(self):
- """
- test method for delete forwarding classes objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for delete forwarding classes objects"""
# Create a global qos config
- global_qos_config = \
- self._create_qos_global_configs(global_system_config)['name']
- new_fclass = self._create_forwarding_class(global_system_config,
- global_qos_config)
+ self.global_qos_config = \
+ self._create_qos_global_configs()['name']
+ new_fclass = self._create_forwarding_class(self.global_qos_config)
with self.rbac_utils.override_role(self):
self.forwarding_class_client.delete_forwarding_class(
new_fclass['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py b/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
index e8c8a3c..a798ed8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class FqnameIdTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test Fqname ID objects using RBAC roles
- """
+ """Test class to test Fqname ID objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -55,22 +50,18 @@
super(FqnameIdTest, cls).resource_cleanup()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="fqname_to_id")
- @idempotent_id('1fc1350b-3146-49bc-9af5-a61a98b55541')
+ rules=["fqname_to_id"])
+ @decorators.idempotent_id('1fc1350b-3146-49bc-9af5-a61a98b55541')
def test_fqname_to_id(self):
- """
- test method for fqname to id rules objects
- """
+ """test method for fqname to id rules objects"""
with self.rbac_utils.override_role(self):
self.fq_client.fqname_to_id(fq_name=self.network['fq_name'],
type=self.type)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="id_to_fqname")
- @idempotent_id('ecdd77d7-8508-4639-86cd-b97907b363ff')
+ rules=["id_to_fqname"])
+ @decorators.idempotent_id('ecdd77d7-8508-4639-86cd-b97907b363ff')
def test_id_to_fqname(self):
- """
- test method for id to fqname rules objects
- """
+ """test method for id to fqname rules objects"""
with self.rbac_utils.override_role(self):
self.fq_client.id_to_fqname(uuid=self.network['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
index d242ffd..92ff740 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class InstanceIPTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test instance IP objects using RBAC roles
- """
+ """Test class to test instance IP objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -65,13 +60,13 @@
'uuid': cls.ipam['uuid'],
'attr': {
'ipam_subnets': [{'subnet': subnet_ip_prefix}]
- }
}
- ],
+ }
+ ],
'virtual_network_properties': {
'forwarding_mode': 'l3'
- }
- }
+ }
+ }
body = cls.vn_client.create_virtual_networks(**post_body)
cls.network = body['virtual-network']
@@ -106,44 +101,36 @@
return iip
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_instance_ips")
- @idempotent_id('31db3b3f-c40b-4f7f-bb8b-0a110f099553')
+ rules=["list_instance_ips"])
+ @decorators.idempotent_id('31db3b3f-c40b-4f7f-bb8b-0a110f099553')
def test_list_instance_ips(self):
- """
- test method for list instance IP objects
- """
+ """test method for list instance IP objects"""
self._create_instance_ip()
with self.rbac_utils.override_role(self):
self.iip_client.list_instance_ips()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_instance_ips")
- @idempotent_id('78f5cd4d-345d-4d87-8b8b-4d5d3fec4a12')
+ rules=["create_instance_ips"])
+ @decorators.idempotent_id('78f5cd4d-345d-4d87-8b8b-4d5d3fec4a12')
def test_create_instance_ips(self):
- """
- test method for create instance IP objects
- """
+ """test method for create instance IP objects"""
with self.rbac_utils.override_role(self):
self._create_instance_ip()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_instance_ip")
- @idempotent_id('276f3838-d9cb-4432-bbb4-db31c4c1db5c')
+ rules=["show_instance_ip"])
+ @decorators.idempotent_id('276f3838-d9cb-4432-bbb4-db31c4c1db5c')
def test_show_instance_ip(self):
- """
- test method for update instance IP objects
- """
+ """test method for update instance IP objects"""
uuid = self._create_instance_ip()['uuid']
with self.rbac_utils.override_role(self):
self.iip_client.show_instance_ip(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_instance_ip")
- @idempotent_id('b85975a5-176f-44b1-a615-b6f0a39a7708')
+ rules=["update_instance_ip"])
+ @decorators.idempotent_id('b85975a5-176f-44b1-a615-b6f0a39a7708')
def test_update_instance_ip(self):
- """
- test method for update instance IP objects
- """
+ """test method for update instance IP objects"""
uuid = self._create_instance_ip()['uuid']
with self.rbac_utils.override_role(self):
self.iip_client.update_instance_ip(
@@ -151,12 +138,10 @@
display_name='rbac-iip-new-name')
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_instance_ip")
- @idempotent_id('d9c1d400-1dfb-4adb-8d97-0e8b498226b7')
+ rules=["delete_instance_ip"])
+ @decorators.idempotent_id('d9c1d400-1dfb-4adb-8d97-0e8b498226b7')
def test_delete_instance_ip(self):
- """
- test method for delete instance IP objects
- """
+ """test method for delete instance IP objects"""
uuid = self._create_instance_ip()['uuid']
with self.rbac_utils.override_role(self):
self.iip_client.delete_instance_ip(uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
index 9115fc2..b313d1d 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
@@ -18,49 +18,28 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class InterfacesTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test interfaces objects using RBAC roles
- """
+ """Test class to test interfaces objects using RBAC roles"""
router_name = data_utils.rand_name('rbac-physical-router')
physical_if_name = data_utils.rand_name('rbac-physical-interface')
logical_if_name = data_utils.rand_name('rbac-logical-interface')
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
def _create_physical_router(self):
- self.global_system_config = self._create_global_system_config()['name']
-
- fq_name = [self.global_system_config, self.router_name]
- post_body = {'parent_type': 'global-system-config', 'fq_name': fq_name}
+ fq_name = ['default-global-system-config', self.router_name]
+ post_body = {'parent_type': 'global-system-config'}
+ post_body['fq_name'] = fq_name
router = self.router_client.create_physical_routers(
**post_body)['physical-router']
@@ -70,9 +49,10 @@
return router
def _create_physical_interface(self):
- fq_name = [self.global_system_config, self.router_name,
+ fq_name = ['default-global-system-config', self.router_name,
self.physical_if_name]
- post_body = {'parent_type': 'physical-router', 'fq_name': fq_name}
+ post_body = {'parent_type': 'physical-router'}
+ post_body['fq_name'] = fq_name
physical_if = self.interface_client.create_physical_interfaces(
**post_body)['physical-interface']
@@ -82,9 +62,10 @@
return physical_if
def _create_logical_interface(self):
- fq_name = [self.global_system_config, self.router_name,
+ fq_name = ['default-global-system-config', self.router_name,
self.physical_if_name, self.logical_if_name]
- post_body = {'parent_type': 'physical-interface', 'fq_name': fq_name}
+ post_body = {'parent_type': 'physical-interface'}
+ post_body['fq_name'] = fq_name
logical_if = self.interface_client.create_logical_interfaces(
**post_body)['logical-interface']
@@ -94,34 +75,27 @@
return logical_if
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_physical_interfaces")
- @idempotent_id('c496a2b4-51b2-4674-a60e-483a315baccb')
+ rules=["list_physical_interfaces"])
+ @decorators.idempotent_id('c496a2b4-51b2-4674-a60e-483a315baccb')
def test_list_physical_interfaces(self):
- """
- test method for list physical interfaces objects
- """
+ """test method for list physical interfaces objects"""
with self.rbac_utils.override_role(self):
self.interface_client.list_physical_interfaces()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_physical_interfaces")
- @idempotent_id('066f53d8-3d2a-4ad6-983f-243de7c12962')
+ rules=["create_physical_interfaces"])
+ @decorators.idempotent_id('066f53d8-3d2a-4ad6-983f-243de7c12962')
def test_create_physical_interfaces(self):
- """
- test method for create physical interfaces objects
- """
-
+ """test method for create physical interfaces objects"""
self._create_physical_router()
with self.rbac_utils.override_role(self):
self._create_physical_interface()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_physical_interface")
- @idempotent_id('91c4fc90-ed0f-42ec-87c6-ff6c2a9ab8de')
+ rules=["update_physical_interface"])
+ @decorators.idempotent_id('91c4fc90-ed0f-42ec-87c6-ff6c2a9ab8de')
def test_update_physical_interface(self):
- """
- test method for update physical interfaces objects
- """
+ """test method for update physical interfaces objects"""
self._create_physical_router()
uuid = self._create_physical_interface()['uuid']
# Required for Contrail 3.0.3 but not for 3.1.1
@@ -136,59 +110,48 @@
uuid, **body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_physical_interface")
- @idempotent_id('5d77ea76-be8c-49cc-8f08-72fbdaf9028f')
+ rules=["delete_physical_interface"])
+ @decorators.idempotent_id('5d77ea76-be8c-49cc-8f08-72fbdaf9028f')
def test_delete_physical_interface(self):
- """
- test method for delete physical interfaces objects
- """
+ """test method for delete physical interfaces objects"""
self._create_physical_router()
uuid = self._create_physical_interface()['uuid']
-
with self.rbac_utils.override_role(self):
self.interface_client.delete_physical_interface(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_physical_interface")
- @idempotent_id('2c75c7e7-ef34-4e24-9c2f-5a2182db33a6')
+ rules=["show_physical_interface"])
+ @decorators.idempotent_id('2c75c7e7-ef34-4e24-9c2f-5a2182db33a6')
def test_show_physical_interface(self):
- """
- test method for show physical interfaces objects
- """
+ """test method for show physical interfaces objects"""
self._create_physical_router()
uuid = self._create_physical_interface()['uuid']
with self.rbac_utils.override_role(self):
self.interface_client.show_physical_interface(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_logical_interfaces")
- @idempotent_id('43ac3727-4a43-42d7-b52f-df75018915b9')
+ rules=["list_logical_interfaces"])
+ @decorators.idempotent_id('43ac3727-4a43-42d7-b52f-df75018915b9')
def test_list_logical_interfaces(self):
- """
- test method for list physical interfaces objects
- """
+ """test method for list physical interfaces objects"""
with self.rbac_utils.override_role(self):
self.interface_client.list_logical_interfaces()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_logical_interfaces")
- @idempotent_id('503facf2-0752-47e4-a0a4-7a3103133a61')
+ rules=["create_logical_interfaces"])
+ @decorators.idempotent_id('503facf2-0752-47e4-a0a4-7a3103133a61')
def test_create_logical_interfaces(self):
- """
- test method for create logical interfaces objects
- """
+ """test method for create logical interfaces objects"""
self._create_physical_router()
self._create_physical_interface()
with self.rbac_utils.override_role(self):
self._create_logical_interface()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_logical_interface")
- @idempotent_id('63c991f4-6aba-454c-9c49-522dc77b3f5c')
+ rules=["update_logical_interface"])
+ @decorators.idempotent_id('63c991f4-6aba-454c-9c49-522dc77b3f5c')
def test_update_logical_interface(self):
- """
- test method for update logical interfaces objects
- """
+ """test method for update logical interfaces objects"""
self._create_physical_router()
self._create_physical_interface()
uuid = self._create_logical_interface()['uuid']
@@ -204,12 +167,10 @@
uuid, **body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_logical_interface")
- @idempotent_id('a36743d1-3ea1-4cf5-89d8-9c0b885fa625')
+ rules=["delete_logical_interface"])
+ @decorators.idempotent_id('a36743d1-3ea1-4cf5-89d8-9c0b885fa625')
def test_delete_logical_interface(self):
- """
- test method for update logical interfaces objects
- """
+ """test method for update logical interfaces objects"""
self._create_physical_router()
self._create_physical_interface()
uuid = self._create_logical_interface()['uuid']
@@ -217,12 +178,10 @@
self.interface_client.delete_logical_interface(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_logical_interface")
- @idempotent_id('f0f7fab7-eeb9-4d29-8415-31a50180fb44')
+ rules=["show_logical_interface"])
+ @decorators.idempotent_id('f0f7fab7-eeb9-4d29-8415-31a50180fb44')
def test_show_logical_interface(self):
- """
- test method for show logical interfaces objects
- """
+ """test method for show logical interfaces objects"""
self._create_physical_router()
self._create_physical_interface()
uuid = self._create_logical_interface()['uuid']
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py b/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
index 647f053..4c220ce 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
@@ -18,24 +18,28 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+from tempest import test
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class BaseLoadBalancerTest(rbac_base.BaseContrailTest):
+ """Base class to test load balancer objects using RBAC roles"""
- """
- Base class to test load balancer objects using RBAC roles
- """
+ @classmethod
+ def skip_checks(cls):
+ super(BaseLoadBalancerTest, cls).skip_checks()
+ if not test.is_extension_enabled('lbaas', 'network') and \
+ not test.is_extension_enabled('lbaasv2', 'network'):
+ raise cls.skipException(
+ '%s skipped - lbaas extension not enabled' % cls.__name__)
def _create_load_balancer(self):
fq_name = data_utils.rand_name('load-balancer')
@@ -167,121 +171,98 @@
class LoadBalancerContrailTest(BaseLoadBalancerTest):
-
- """
- Test class to test load balancer objects using RBAC roles
- """
+ """Test class to test load balancer objects using RBAC roles"""
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_load_balancers")
- @idempotent_id('5d840b6b-3974-4945-916f-dd53ba27e42f')
+ rules=["list_load_balancers"])
+ @decorators.idempotent_id('5d840b6b-3974-4945-916f-dd53ba27e42f')
def test_list_load_balancers(self):
- """
- test method for list load balancer objects
- """
+ """test method for list load balancer objects"""
with self.rbac_utils.override_role(self):
self.load_balancer_client.list_load_balancers()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_load_balancers")
- @idempotent_id('6a18d506-0794-4eb9-a945-165bf146005d')
+ rules=["create_load_balancers"])
+ @decorators.idempotent_id('6a18d506-0794-4eb9-a945-165bf146005d')
def test_create_load_balancers(self):
- """
- test method for create load balancer objects
- """
+ """test method for create load balancer objects"""
with self.rbac_utils.override_role(self):
self._create_load_balancer()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_load_balancer")
- @idempotent_id('428012aa-cd0e-4702-89d2-459046d4bd5f')
+ rules=["show_load_balancer"])
+ @decorators.idempotent_id('428012aa-cd0e-4702-89d2-459046d4bd5f')
def test_show_load_balancer(self):
- """
- test method for show load balancer objects
- """
+ """test method for show load balancer objects"""
lb_uuid = self._create_load_balancer()
with self.rbac_utils.override_role(self):
self.load_balancer_client.show_load_balancer(lb_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_load_balancer")
- @idempotent_id('7cd3d7b2-b149-40c1-a801-a6a8a660bd24')
+ rules=["update_load_balancer"])
+ @decorators.idempotent_id('7cd3d7b2-b149-40c1-a801-a6a8a660bd24')
def test_update_load_balancer(self):
- """
- test method for update load balancer objects
- """
+ """test method for update load balancer objects"""
lb_uuid = self._create_load_balancer()
with self.rbac_utils.override_role(self):
self._update_load_balancer(lb_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_load_balancer")
- @idempotent_id('b28c6b11-d1b0-45d0-8942-638b6b590702')
+ rules=["delete_load_balancer"])
+ @decorators.idempotent_id('b28c6b11-d1b0-45d0-8942-638b6b590702')
def test_delete_load_balancer(self):
- """
- test method for delete load balancer objects
- """
+ """test method for delete load balancer objects"""
lb_uuid = self._create_load_balancer()
with self.rbac_utils.override_role(self):
self.load_balancer_client.delete_load_balancer(lb_uuid)
class LoadBalancerHealthMonitorContrailTest(BaseLoadBalancerTest):
+ """Test class to test load balancer Health Monitor objects using RBAC roles
"""
- Test class to test load balancer Health Monitor objects using RBAC roles
- """
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_load_balancer_health_monitors")
- @idempotent_id('3e3d8bdc-3621-4c5e-8130-1187f445a4e6')
+ rules=["list_load_balancer_health_monitors"])
+ @decorators.idempotent_id('3e3d8bdc-3621-4c5e-8130-1187f445a4e6')
def test_list_lb_health_monitors(self):
- """
- test method for list load balancer health monitor objects
- """
+ """test method for list load balancer health monitor objects"""
with self.rbac_utils.override_role(self):
self.load_balancer_client.list_lb_healthmonitors()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_load_balancer_health_monitors")
- @idempotent_id('bddb93ad-d331-4bbc-bac6-2763cae4eb2c')
+ rules=["create_load_balancer_health_monitors"]
+ )
+ @decorators.idempotent_id('bddb93ad-d331-4bbc-bac6-2763cae4eb2c')
def test_create_lb_health_monitors(self):
- """
- test method for create load balancer health monitor objects
- """
+ """test method for create load balancer health monitor objects"""
with self.rbac_utils.override_role(self):
self._create_load_balancer_health_monitor()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_load_balancer_health_monitor")
- @idempotent_id('30d23994-1e3a-4a76-8f18-e00d0854412a')
+ rules=["show_load_balancer_health_monitor"])
+ @decorators.idempotent_id('30d23994-1e3a-4a76-8f18-e00d0854412a')
def test_show_lb_health_monitor(self):
- """
- test method for show load balancer health monitor objects
- """
+ """test method for show load balancer health monitor objects"""
lb_hm_uuid = self._create_load_balancer_health_monitor()
with self.rbac_utils.override_role(self):
self.load_balancer_client.show_lb_healthmonitor(
lb_hm_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_load_balancer_health_monitor")
- @idempotent_id('c32ba92c-3a69-4255-867a-1423c93faa6f')
+ rules=["update_load_balancer_health_monitor"])
+ @decorators.idempotent_id('c32ba92c-3a69-4255-867a-1423c93faa6f')
def test_update_lb_health_monitor(self):
- """
- test method for update load balancer health monitor objects
- """
+ """test method for update load balancer health monitor objects"""
lb_hm_uuid = self._create_load_balancer_health_monitor()
with self.rbac_utils.override_role(self):
self._update_load_balancer_health_monitor(lb_hm_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_load_balancer_health_monitor")
- @idempotent_id('b4d7ea9d-fd8c-433b-96fc-c24866b3f6a7')
+ rules=["delete_load_balancer_health_monitor"])
+ @decorators.idempotent_id('b4d7ea9d-fd8c-433b-96fc-c24866b3f6a7')
def test_delete_lb_health_monitor(self):
- """
- test method for delete load balancer health monitor objects
- """
+ """test method for delete load balancer health monitor objects"""
lb_hm_uuid = self._create_load_balancer_health_monitor()
with self.rbac_utils.override_role(self):
self.load_balancer_client.delete_lb_healthmonitor(
@@ -289,61 +270,48 @@
class LoadBalancerListenerContrailTest(BaseLoadBalancerTest):
-
- """
- Base class to test load balancer Listener objects using RBAC roles
- """
+ """Base class to test load balancer Listener objects using RBAC roles"""
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_load_balancer_listeners")
- @idempotent_id('7e02882f-0eab-41c2-b48a-bf71e083b912')
+ rules=["list_load_balancer_listeners"])
+ @decorators.idempotent_id('7e02882f-0eab-41c2-b48a-bf71e083b912')
def test_list_lb_listeners(self):
- """
- test method for list load balancer listener objects
- """
+ """test method for list load balancer listener objects"""
with self.rbac_utils.override_role(self):
self.load_balancer_client.list_load_balancer_listeners()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_load_balancer_listeners")
- @idempotent_id('0551de87-fa4c-463f-8968-ec6f2a6098d0')
+ rules=["create_load_balancer_listeners"])
+ @decorators.idempotent_id('0551de87-fa4c-463f-8968-ec6f2a6098d0')
def test_create_lb_listeners(self):
- """
- test method for create load balancer listener objects
- """
+ """test method for create load balancer listener objects"""
with self.rbac_utils.override_role(self):
self._create_load_balancer_listener()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_load_balancer_listener")
- @idempotent_id('ade38959-9506-4262-8d3c-5ba5eb63d85f')
+ rules=["show_load_balancer_listener"])
+ @decorators.idempotent_id('ade38959-9506-4262-8d3c-5ba5eb63d85f')
def test_show_lb_listener(self):
- """
- test method for show load balancer listener objects
- """
+ """test method for show load balancer listener objects"""
lb_listener_uuid = self._create_load_balancer_listener()
with self.rbac_utils.override_role(self):
self.load_balancer_client.show_load_balancer_listener(
lb_listener_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_load_balancer_listener")
- @idempotent_id('e529e538-da31-4159-91c2-6c0a828282a4')
+ rules=["update_load_balancer_listener"])
+ @decorators.idempotent_id('e529e538-da31-4159-91c2-6c0a828282a4')
def test_update_lb_listener(self):
- """
- test method for update load balancer listener objects
- """
+ """test method for update load balancer listener objects"""
lb_listener_uuid = self._create_load_balancer_listener()
with self.rbac_utils.override_role(self):
self._update_load_balancer_listener(lb_listener_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_load_balancer_listener")
- @idempotent_id('feaf3e9a-ffd1-4327-ad7a-35f9e9e4989b')
+ rules=["delete_load_balancer_listener"])
+ @decorators.idempotent_id('feaf3e9a-ffd1-4327-ad7a-35f9e9e4989b')
def test_delete_lb_listener(self):
- """
- test method for delete load balancer listener objects
- """
+ """test method for delete load balancer listener objects"""
lb_listener_uuid = self._create_load_balancer_listener()
with self.rbac_utils.override_role(self):
self.load_balancer_client.delete_load_balancer_listener(
@@ -351,120 +319,94 @@
class LoadBalancerPoolContrailTest(BaseLoadBalancerTest):
-
- """
- Base class to test load balancer Pool objects using RBAC roles
- """
+ """Base class to test load balancer Pool objects using RBAC roles"""
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_load_balancer_pools")
- @idempotent_id('3d177a9e-7067-4e9e-b4e8-0acc5887dff0')
+ rules=["list_load_balancer_pools"])
+ @decorators.idempotent_id('3d177a9e-7067-4e9e-b4e8-0acc5887dff0')
def test_list_load_balancer_pools(self):
- """
- test method for list load balancer pool objects
- """
+ """test method for list load balancer pool objects"""
with self.rbac_utils.override_role(self):
self.load_balancer_client.list_load_balancer_pools()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_load_balancer_pools")
- @idempotent_id('a52c6ec7-a996-4191-9a70-7879a211a711')
+ rules=["create_load_balancer_pools"])
+ @decorators.idempotent_id('a52c6ec7-a996-4191-9a70-7879a211a711')
def test_create_load_balancer_pools(self):
- """
- test method for create load balancer pool objects
- """
+ """test method for create load balancer pool objects"""
with self.rbac_utils.override_role(self):
self._create_load_balancer_pool()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_load_balancer_pool")
- @idempotent_id('7923da4e-53b1-4024-9a40-5bc91cee8e2d')
+ rules=["show_load_balancer_pool"])
+ @decorators.idempotent_id('7923da4e-53b1-4024-9a40-5bc91cee8e2d')
def test_show_load_balancer_pool(self):
- """
- test method for show load balancer pool objects
- """
+ """test method for show load balancer pool objects"""
lb_pool_uuid = self._create_load_balancer_pool()
with self.rbac_utils.override_role(self):
self.load_balancer_client.show_load_balancer_pool(lb_pool_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_load_balancer_pool")
- @idempotent_id('391c0c5e-c218-4c98-9b58-6d2724ec4c20')
+ rules=["update_load_balancer_pool"])
+ @decorators.idempotent_id('391c0c5e-c218-4c98-9b58-6d2724ec4c20')
def test_update_load_balancer_pool(self):
- """
- test method for update load balancer pool objects
- """
+ """test method for update load balancer pool objects"""
lb_pool_uuid = self._create_load_balancer_pool()
with self.rbac_utils.override_role(self):
self._update_load_balancer_pool(lb_pool_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_load_balancer_pool")
- @idempotent_id('8b3617c0-4064-48f8-96b8-e2f996fce5c3')
+ rules=["delete_load_balancer_pool"])
+ @decorators.idempotent_id('8b3617c0-4064-48f8-96b8-e2f996fce5c3')
def test_delete_load_balancer_pool(self):
- """
- test method for delete load balancer pool objects
- """
+ """test method for delete load balancer pool objects"""
lb_pool_uuid = self._create_load_balancer_pool()
with self.rbac_utils.override_role(self):
self.load_balancer_client.delete_load_balancer_pool(lb_pool_uuid)
class LoadBalancerMemberContrailTest(BaseLoadBalancerTest):
-
- """
- Base class to test load balancer Member using RBAC roles
- """
+ """Base class to test load balancer Member using RBAC roles"""
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_load_balancer_members")
- @idempotent_id('b3c51463-8166-486a-a26e-0f7aeaa41e0f')
+ rules=["list_load_balancer_members"])
+ @decorators.idempotent_id('b3c51463-8166-486a-a26e-0f7aeaa41e0f')
def test_list_load_balancer_members(self):
- """
- test method for list load balancer member objects
- """
+ """test method for list load balancer member objects"""
with self.rbac_utils.override_role(self):
self.load_balancer_client.list_load_balancer_members()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_load_balancer_members")
- @idempotent_id('ad60688f-7a20-4dd5-8229-4076d85b9d55')
+ rules=["create_load_balancer_members"])
+ @decorators.idempotent_id('ad60688f-7a20-4dd5-8229-4076d85b9d55')
def test_create_lb_members(self):
- """
- test method for create load balancer member objects
- """
+ """test method for create load balancer member objects"""
with self.rbac_utils.override_role(self):
self._create_load_balancer_member()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_load_balancer_member")
- @idempotent_id('917602ff-24d5-4a07-a6a6-5e5b9539bbf1')
+ rules=["show_load_balancer_member"])
+ @decorators.idempotent_id('917602ff-24d5-4a07-a6a6-5e5b9539bbf1')
def test_show_load_balancer_member(self):
- """
- test method for show load balancer member objects
- """
+ """test method for show load balancer member objects"""
lb_member_uuid = self._create_load_balancer_member()
with self.rbac_utils.override_role(self):
self.load_balancer_client.show_load_balancer_member(lb_member_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_load_balancer_member")
- @idempotent_id('b1611005-5c77-4ac0-8fcc-4a035dfbaa84')
+ rules=["update_load_balancer_member"])
+ @decorators.idempotent_id('b1611005-5c77-4ac0-8fcc-4a035dfbaa84')
def test_update_lb_member(self):
- """
- test method for update load balancer member objects
- """
+ """test method for update load balancer member objects"""
lb_member_uuid = self._create_load_balancer_member()
with self.rbac_utils.override_role(self):
self._update_load_balancer_member(lb_member_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_load_balancer_member")
- @idempotent_id('dc21883a-a822-4d39-b815-4dfd6b505b0b')
+ rules=["delete_load_balancer_member"])
+ @decorators.idempotent_id('dc21883a-a822-4d39-b815-4dfd6b505b0b')
def test_delete_lb_member(self):
- """
- test method for delete load balancer member objects
- """
+ """test method for delete load balancer member objects"""
lb_member_uuid = self._create_load_balancer_member()
with self.rbac_utils.override_role(self):
self.load_balancer_client.delete_load_balancer_member(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
index a3b18ec..ab1dd9c 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
@@ -17,26 +17,20 @@
Tempest test-case to test namespace objects using RBAC roles
"""
-
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class NamespaceContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test namespace objects using RBAC roles
- """
+ """Test class to test namespace objects using RBAC roles"""
def _create_namespace(self):
fq_name = data_utils.rand_name('namespace')
@@ -58,54 +52,44 @@
self.namespace_client.update_namespace(namespace_uuid, **put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_namespaces")
- @idempotent_id('e436390d-d669-4047-9838-421ea93e94be')
+ rules=["list_namespaces"])
+ @decorators.idempotent_id('e436390d-d669-4047-9838-421ea93e94be')
def test_list_namespaces(self):
- """
- test method for list namespace objects
- """
+ """test method for list namespace objects"""
with self.rbac_utils.override_role(self):
self.namespace_client.list_namespaces()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_namespaces")
- @idempotent_id('503ae445-7e67-4db6-989a-af0b7f9a7e95')
+ rules=["create_namespaces"])
+ @decorators.idempotent_id('503ae445-7e67-4db6-989a-af0b7f9a7e95')
def test_create_namespaces(self):
- """
- test method for create namespace objects
- """
+ """test method for create namespace objects"""
with self.rbac_utils.override_role(self):
self._create_namespace()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_namespace")
- @idempotent_id('f916971a-7c07-4386-b887-8b78d8a1e528')
+ rules=["show_namespace"])
+ @decorators.idempotent_id('f916971a-7c07-4386-b887-8b78d8a1e528')
def test_show_namespace(self):
- """
- test method for show namespace objects
- """
+ """test method for show namespace objects"""
namespace_uuid = self._create_namespace()
with self.rbac_utils.override_role(self):
self.namespace_client.show_namespace(namespace_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_namespace")
- @idempotent_id('3649f65a-922a-4b8a-9b8b-520c333e192e')
+ rules=["update_namespace"])
+ @decorators.idempotent_id('3649f65a-922a-4b8a-9b8b-520c333e192e')
def test_update_namespace(self):
- """
- test method for update namespace objects
- """
+ """test method for update namespace objects"""
namespace_uuid = self._create_namespace()
with self.rbac_utils.override_role(self):
self._update_namespace(namespace_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_namespace")
- @idempotent_id('80e736bf-fc7d-4274-8173-a50c883776a9')
+ rules=["delete_namespace"])
+ @decorators.idempotent_id('80e736bf-fc7d-4274-8173-a50c883776a9')
def test_delete_namespace(self):
- """
- test method for delete namespace objects
- """
+ """test method for delete namespace objects"""
namespace_uuid = self._create_namespace()
with self.rbac_utils.override_role(self):
self.namespace_client.delete_namespace(namespace_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py b/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
index d8e72a4..755f7fe 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
@@ -17,22 +17,18 @@
Tempest test-case to test network ipam objects using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class NetworkIpamsTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test network ipam objects using RBAC roles
- """
+ """Test class to test network ipam objects using RBAC roles"""
def _create_network_ipams(self):
ipam_name = data_utils.rand_name('test-ipam')
@@ -46,54 +42,44 @@
return new_ipam
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_network_ipams")
- @idempotent_id('9ee2c4d8-3209-4ef8-86e1-0ecea2d4c5f2')
+ rules=["list_network_ipams"])
+ @decorators.idempotent_id('9ee2c4d8-3209-4ef8-86e1-0ecea2d4c5f2')
def test_list_network_ipams(self):
- """
- test method for list n/w ipam objects
- """
+ """test method for list n/w ipam objects"""
with self.rbac_utils.override_role(self):
self.network_ipams_client.list_network_ipams()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_network_ipams")
- @idempotent_id('ef2415ea-0810-413a-85a0-4508c9d7af91')
+ rules=["create_network_ipams"])
+ @decorators.idempotent_id('ef2415ea-0810-413a-85a0-4508c9d7af91')
def test_create_network_ipams(self):
- """
- test method for create n/w ipam objects
- """
+ """test method for create n/w ipam objects"""
with self.rbac_utils.override_role(self):
self._create_network_ipams()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_network_ipam")
- @idempotent_id('527b19e5-068a-44e3-b175-b504eafeec6e')
+ rules=["show_network_ipam"])
+ @decorators.idempotent_id('527b19e5-068a-44e3-b175-b504eafeec6e')
def test_show_network_ipam(self):
- """
- test method for show n/w ipam objects
- """
+ """test method for show n/w ipam objects"""
new_ipam = self._create_network_ipams()
with self.rbac_utils.override_role(self):
self.network_ipams_client.show_network_ipam(new_ipam['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_network_ipam")
- @idempotent_id('118c1620-efb6-4cc6-8eb5-71bf8631d365')
+ rules=["delete_network_ipam"])
+ @decorators.idempotent_id('118c1620-efb6-4cc6-8eb5-71bf8631d365')
def test_delete_network_ipam(self):
- """
- test method for delete n/w ipam objects
- """
+ """test method for delete n/w ipam objects"""
new_ipam = self._create_network_ipams()
with self.rbac_utils.override_role(self):
self.network_ipams_client.delete_network_ipam(new_ipam['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_network_ipam")
- @idempotent_id('44cbe2d9-583d-4215-964a-1c321f5e8d92')
+ rules=["update_network_ipam"])
+ @decorators.idempotent_id('44cbe2d9-583d-4215-964a-1c321f5e8d92')
def test_update_network_ipam(self):
- """
- test method for update n/w ipam objects
- """
+ """test method for update n/w ipam objects"""
new_ipam = self._create_network_ipams()
with self.rbac_utils.override_role(self):
self.network_ipams_client.update_network_ipam(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py b/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
index 572c145..b3ca053 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class NetworkPolicyTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test network policy objects using RBAC roles
- """
+ """Test class to test network policy objects using RBAC roles"""
def _create_policy(self):
fq_name = data_utils.rand_name('network-policy')
@@ -59,54 +54,44 @@
**put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_network_policys")
- @idempotent_id('fa2a28f3-a8bb-4908-95b9-1e11cf58b16f')
+ rules=["list_network_policys"])
+ @decorators.idempotent_id('fa2a28f3-a8bb-4908-95b9-1e11cf58b16f')
def test_list_policys(self):
- """
- test method for list n/w policy objects
- """
+ """test method for list n/w policy objects"""
with self.rbac_utils.override_role(self):
self.network_policy_client.list_network_policys()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_network_policys")
- @idempotent_id('a30be228-afba-40c9-8678-ae020db68d79')
+ rules=["create_network_policys"])
+ @decorators.idempotent_id('a30be228-afba-40c9-8678-ae020db68d79')
def test_create_network_policys(self):
- """
- test method for create n/w policy objects
- """
+ """test method for create n/w policy objects"""
with self.rbac_utils.override_role(self):
self._create_policy()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_network_policy")
- @idempotent_id('6cefe92e-8936-49a6-bce0-12da3396e7ab')
+ rules=["show_network_policy"])
+ @decorators.idempotent_id('6cefe92e-8936-49a6-bce0-12da3396e7ab')
def test_show_network_policy(self):
- """
- test method for show n/w policy objects
- """
+ """test method for show n/w policy objects"""
policy_uuid = self._create_policy()
with self.rbac_utils.override_role(self):
self.network_policy_client.show_network_policy(policy_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_network_policy")
- @idempotent_id('1d470505-3ad4-4870-87d7-3f0b0f9fc635')
+ rules=["update_network_policy"])
+ @decorators.idempotent_id('1d470505-3ad4-4870-87d7-3f0b0f9fc635')
def test_update_network_policy(self):
- """
- test method for update n/w policy objects
- """
+ """test method for update n/w policy objects"""
policy_uuid = self._create_policy()
with self.rbac_utils.override_role(self):
self._update_policy(policy_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_network_policy")
- @idempotent_id('aae9018f-e7a2-4a75-a68e-afd6c380640e')
+ rules=["delete_network_policy"])
+ @decorators.idempotent_id('aae9018f-e7a2-4a75-a68e-afd6c380640e')
def test_delete_network_policy(self):
- """
- test method for delete n/w policy objects
- """
+ """test method for delete n/w policy objects"""
policy_uuid = self._create_policy()
with self.rbac_utils.override_role(self):
self.network_policy_client.delete_network_policy(policy_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py b/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
index 82285a1..27fe4e8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailPortTupleTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test port tuple objects using RBAC roles
- """
+ """Test class to test port tuple objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -75,43 +70,35 @@
return new_tuple
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_port_tuples")
- @idempotent_id('3789eef8-0e80-4057-b7b0-926655144beb')
+ rules=["list_port_tuples"])
+ @decorators.idempotent_id('3789eef8-0e80-4057-b7b0-926655144beb')
def test_list_port_tuples(self):
- """
- test method for list port tuple objects
- """
+ """test method for list port tuple objects"""
with self.rbac_utils.override_role(self):
self.port_tuple_client.list_port_tuples()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_port_tuple")
- @idempotent_id('ae5a90ed-5771-4680-be6b-c7626caa3a52')
+ rules=["show_port_tuple"])
+ @decorators.idempotent_id('ae5a90ed-5771-4680-be6b-c7626caa3a52')
def test_show_port_tuple(self):
- """
- test method for show port tuple objects
- """
+ """test method for show port tuple objects"""
new_tuple = self._create_port_tuple()
with self.rbac_utils.override_role(self):
self.port_tuple_client.show_port_tuple(new_tuple['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_port_tuples")
- @idempotent_id('0e2283da-fe25-4204-b5b3-fef3c200d0c8')
+ rules=["create_port_tuples"])
+ @decorators.idempotent_id('0e2283da-fe25-4204-b5b3-fef3c200d0c8')
def test_create_port_tuples(self):
- """
- test method for create port tuple objects
- """
+ """test method for create port tuple objects"""
with self.rbac_utils.override_role(self):
self._create_port_tuple()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_port_tuple")
- @idempotent_id('b16f19e2-ec8e-4107-961d-561890183dd0')
+ rules=["update_port_tuple"])
+ @decorators.idempotent_id('b16f19e2-ec8e-4107-961d-561890183dd0')
def test_update_port_tuple(self):
- """
- test method for update port tuple objects
- """
+ """test method for update port tuple objects"""
new_tuple = self._create_port_tuple()
update_name = data_utils.rand_name('updated_tuple')
with self.rbac_utils.override_role(self):
@@ -119,12 +106,10 @@
new_tuple['uuid'], display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_port_tuple")
- @idempotent_id('3f28e8b8-f9de-437f-a398-0a11c7fcd652')
+ rules=["delete_port_tuple"])
+ @decorators.idempotent_id('3f28e8b8-f9de-437f-a398-0a11c7fcd652')
def test_delete_port_tuple(self):
- """
- test method for delete port tuple objects
- """
+ """test method for delete port tuple objects"""
new_tuple = self._create_port_tuple()
with self.rbac_utils.override_role(self):
self.port_tuple_client.delete_port_tuple(new_tuple['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_project.py b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
index ea6d045..d4faaf6 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_project.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ProjectContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test project objects using RBAC roles
- """
+ """Test class to test project objects using RBAC roles"""
def _create_project(self):
fq_name = data_utils.rand_name('project')
@@ -58,54 +53,44 @@
self.project_client.update_project(project_uuid, **put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_projects")
- @idempotent_id('7db819fd-ceee-4a6b-9ad7-2e837c055bdd')
+ rules=["list_projects"])
+ @decorators.idempotent_id('7db819fd-ceee-4a6b-9ad7-2e837c055bdd')
def test_list_projects(self):
- """
- test method for list project objects
- """
+ """test method for list project objects"""
with self.rbac_utils.override_role(self):
self.project_client.list_projects()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_projects")
- @idempotent_id('38b9b7a8-1568-417d-b0a3-e7adee88e4b9')
+ rules=["create_projects"])
+ @decorators.idempotent_id('38b9b7a8-1568-417d-b0a3-e7adee88e4b9')
def test_create_projects(self):
- """
- test method for create project objects
- """
+ """test method for create project objects"""
with self.rbac_utils.override_role(self):
self._create_project()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_project")
- @idempotent_id('c47e57c4-34b0-46c2-a678-83b1fe9afd25')
+ rules=["show_project"])
+ @decorators.idempotent_id('c47e57c4-34b0-46c2-a678-83b1fe9afd25')
def test_show_project(self):
- """
- test method for show project objects
- """
+ """test method for show project objects"""
project_uuid = self._create_project()
with self.rbac_utils.override_role(self):
self.project_client.show_project(project_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_project")
- @idempotent_id('3d4bd416-16cc-437c-9e95-f9ceda424f8b')
+ rules=["update_project"])
+ @decorators.idempotent_id('3d4bd416-16cc-437c-9e95-f9ceda424f8b')
def test_update_project(self):
- """
- test method for update project objects
- """
+ """test method for update project objects"""
project_uuid = self._create_project()
with self.rbac_utils.override_role(self):
self._update_project(project_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_project")
- @idempotent_id('787ebe8b-b88d-4488-b157-f70554bdd783')
+ rules=["delete_project"])
+ @decorators.idempotent_id('787ebe8b-b88d-4488-b157-f70554bdd783')
def test_delete_project(self):
- """
- test method for delete project objects
- """
+ """test method for delete project objects"""
project_uuid = self._create_project()
with self.rbac_utils.override_role(self):
self.project_client.delete_project(project_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
index fb1abde..91b7bbb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
LOG = logging.getLogger(__name__)
CONF = config.CONF
class QosConfigContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test QoS config objects using RBAC roles
- """
+ """Test class to test QoS config objects using RBAC roles"""
def _delete_qos_config(self, qos_config_id):
self.qos_client.delete_qos_config(qos_config_id)
@@ -53,55 +48,45 @@
return qos_config
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_qos_configs")
- @idempotent_id('6bc44b34-14d4-4e0e-b45d-fe3df047879f')
+ rules=["list_qos_configs"])
+ @decorators.idempotent_id('6bc44b34-14d4-4e0e-b45d-fe3df047879f')
def test_list_qos_configs(self):
- """
- test method for list QoS config objects
- """
+ """test method for list QoS config objects"""
self._create_qos_configs()
with self.rbac_utils.override_role(self):
self.qos_client.list_qos_configs()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_qos_configs")
- @idempotent_id('031b4a27-22cd-4d93-938d-ba6d0f3163ba')
+ rules=["create_qos_configs"])
+ @decorators.idempotent_id('031b4a27-22cd-4d93-938d-ba6d0f3163ba')
def test_create_qos_configs(self):
- """
- test method for create QoS config objects
- """
+ """test method for create QoS config objects"""
with self.rbac_utils.override_role(self):
self._create_qos_configs()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_qos_config")
- @idempotent_id('a9d82b49-3492-4667-b252-ef30b0ee6eb3')
+ rules=["show_qos_config"])
+ @decorators.idempotent_id('a9d82b49-3492-4667-b252-ef30b0ee6eb3')
def test_show_qos_config(self):
- """
- test method for show QoS config objects
- """
+ """test method for show QoS config objects"""
qos_config = self._create_qos_configs()
with self.rbac_utils.override_role(self):
self.qos_client.show_qos_config(qos_config['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_qos_config")
- @idempotent_id('d324a5e6-cc86-4444-91a2-74592283a7ec')
+ rules=["delete_qos_config"])
+ @decorators.idempotent_id('d324a5e6-cc86-4444-91a2-74592283a7ec')
def test_delete_qos_config(self):
- """
- test method for delete QoS config objects
- """
+ """test method for delete QoS config objects"""
qos_config = self._create_qos_configs()
with self.rbac_utils.override_role(self):
self.qos_client.delete_qos_config(qos_config['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_qos_config")
- @idempotent_id('7f1901a5-0cf0-40bd-98a5-f8a930b11cfe')
+ rules=["update_qos_config"])
+ @decorators.idempotent_id('7f1901a5-0cf0-40bd-98a5-f8a930b11cfe')
def test_update_qos_config(self):
- """
- test method for update QoS config objects
- """
+ """test method for update QoS config objects"""
qos_config = self._create_qos_configs()
display_name = data_utils.rand_name('qos_config')
with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
index 1325ab9..5389c8d 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
@@ -18,51 +18,31 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
LOG = logging.getLogger(__name__)
CONF = config.CONF
class QosContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test QoS Config objects using RBAC roles
- """
+ """Test class to test QoS Config objects using RBAC roles"""
@classmethod
def resource_setup(cls):
super(QosContrailTest, cls).resource_setup()
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
def _delete_qos_global_config(self, instance_id):
return self.qos_client.delete_global_qos_config(instance_id)
- def _create_qos_global_configs(self, global_system_config):
+ def _create_qos_global_configs(self):
name = data_utils.rand_name('test-rbac-qos-global-config')
parent_type = 'global-system-config'
- fq_name = [global_system_config, name]
+ fq_name = ['default-global-system-config', name]
qos_global_config = self.qos_client.create_global_qos_configs(
fq_name=fq_name,
parent_type=parent_type)['global-qos-config']
@@ -73,53 +53,37 @@
return qos_global_config
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_global_qos_configs")
- @idempotent_id('74e5a7b7-f538-4be3-90a5-6862b07fb118')
+ rules=["list_global_qos_configs"])
+ @decorators.idempotent_id('74e5a7b7-f538-4be3-90a5-6862b07fb118')
def test_list_global_qos_configs(self):
- """
- test method for list global QoS objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- self._create_qos_global_configs(global_system_config)
+ """test method for list global QoS objects"""
+ self._create_qos_global_configs()
with self.rbac_utils.override_role(self):
self.qos_client.list_global_qos_configs()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_global_qos_configs")
- @idempotent_id('d7da1ca0-7bf7-4d1b-982c-820cd37fe9fa')
+ rules=["create_global_qos_configs"])
+ @decorators.idempotent_id('d7da1ca0-7bf7-4d1b-982c-820cd37fe9fa')
def test_create_global_qos_configs(self):
- """
- test method for create global QoS objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for create global QoS objects"""
with self.rbac_utils.override_role(self):
- self._create_qos_global_configs(global_system_config)
+ self._create_qos_global_configs()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_global_qos_config")
- @idempotent_id('e3bd44e0-19a9-46e7-83d3-268dcc537ad9')
+ rules=["show_global_qos_config"])
+ @decorators.idempotent_id('e3bd44e0-19a9-46e7-83d3-268dcc537ad9')
def test_show_global_qos_config(self):
- """
- test method for show global QoS objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- test = self._create_qos_global_configs(global_system_config)
+ """test method for show global QoS objects"""
+ test = self._create_qos_global_configs()
with self.rbac_utils.override_role(self):
self.qos_client.show_global_qos_config(instance_id=test['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_global_qos_config")
- @idempotent_id('f834c4d7-bc81-4c59-bada-c4d752219a6e')
+ rules=["update_global_qos_config"])
+ @decorators.idempotent_id('f834c4d7-bc81-4c59-bada-c4d752219a6e')
def test_update_global_qos_config(self):
- """
- test method for update global QoS objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- qos = self._create_qos_global_configs(global_system_config)
+ """test method for update global QoS objects"""
+ qos = self._create_qos_global_configs()
display_name = data_utils.rand_name('qos_globale_config')
with self.rbac_utils.override_role(self):
self.qos_client.update_global_qos_config(
@@ -127,15 +91,10 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_global_qos_config")
- @idempotent_id('78b9a3da-4eb1-4f4b-8a23-a8a2e733b515')
+ rules=["delete_global_qos_config"])
+ @decorators.idempotent_id('78b9a3da-4eb1-4f4b-8a23-a8a2e733b515')
def test_delete_global_qos_config(self):
- """
- test method for delete global QoS objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- qos_global_config = self._create_qos_global_configs(
- global_system_config)
+ """test method for delete global QoS objects"""
+ qos_global_config = self._create_qos_global_configs()
with self.rbac_utils.override_role(self):
self.qos_client.delete_global_qos_config(qos_global_config['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
index 229811a..49c822e 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
@@ -18,32 +18,30 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
LOG = logging.getLogger(__name__)
CONF = config.CONF
class QosQueueContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test QoS Queue using RBAC roles
- """
+ """Test class to test QoS Queue using RBAC roles"""
def _delete_qos_queue(self, qos_queue_id):
self.qos_client.delete_qos_queue(qos_queue_id)
def _create_qos_queues(self):
name = data_utils.rand_name('test-rbac-qos-queue')
- fq_name = ["default-global-system-config", "default-global-qos-config",
- name]
+ if rbac_base.get_contail_version() < 3.2:
+ fq_name = [name]
+ else:
+ fq_name = ['default-global-system-config',
+ "default-global-qos-config", name]
qos_queue = self.qos_client.create_qos_queues(
fq_name=fq_name)['qos-queue']
self.addCleanup(self._try_delete_resource,
@@ -52,55 +50,45 @@
return qos_queue
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_qos_queues")
- @idempotent_id('3d3a4397-2afe-4bbd-be59-56a1bcc2e49d')
+ rules=["list_qos_queues"])
+ @decorators.idempotent_id('3d3a4397-2afe-4bbd-be59-56a1bcc2e49d')
def test_list_qos_queues(self):
- """
- test method for listing QoS queues
- """
+ """test method for listing QoS queues"""
self._create_qos_queues()
with self.rbac_utils.override_role(self):
self.qos_client.list_qos_queues()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_qos_queues")
- @idempotent_id('d89c45f4-c83c-47b3-8720-7feffab4519c')
+ rules=["create_qos_queues"])
+ @decorators.idempotent_id('d89c45f4-c83c-47b3-8720-7feffab4519c')
def test_create_qos_queues(self):
- """
- test method for creating QoS queues
- """
+ """test method for creating QoS queues"""
with self.rbac_utils.override_role(self):
self._create_qos_queues()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_qos_queue")
- @idempotent_id('d2773d5c-9858-4938-8a77-62cafd5034da')
+ rules=["show_qos_queue"])
+ @decorators.idempotent_id('d2773d5c-9858-4938-8a77-62cafd5034da')
def test_show_qos_queue(self):
- """
- test method for showing QoS queues
- """
+ """test method for showing QoS queues"""
qos_queue = self._create_qos_queues()
with self.rbac_utils.override_role(self):
self.qos_client.show_qos_queue(qos_queue['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_qos_queue")
- @idempotent_id('64c828d0-6594-472b-a504-40915067c7bd')
+ rules=["delete_qos_queue"])
+ @decorators.idempotent_id('64c828d0-6594-472b-a504-40915067c7bd')
def test_delete_qos_queue(self):
- """
- test method for deleting QoS queues
- """
+ """test method for deleting QoS queues"""
qos_queue = self._create_qos_queues()
with self.rbac_utils.override_role(self):
self.qos_client.delete_qos_queue(qos_queue['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_qos_queue")
- @idempotent_id('0733ab1a-f5aa-4e70-a011-174aa203dc33')
+ rules=["update_qos_queue"])
+ @decorators.idempotent_id('0733ab1a-f5aa-4e70-a011-174aa203dc33')
def test_update_qos_queue(self):
- """
- test method for deleting QoS queues
- """
+ """test method for deleting QoS queues"""
qos_queue = self._create_qos_queues()
display_name = data_utils.rand_name('qos_queue')
with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_route.py b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
index 06257c8..70488fa 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_route.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
@@ -20,24 +20,19 @@
import random
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailRouteTableTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test route objects using RBAC roles
- """
+ """Test class to test route objects using RBAC roles"""
def _delete_route_table(self, route_id):
self.route_client.delete_route_table(route_id)
@@ -55,44 +50,36 @@
return route_table
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_route_tables")
- @idempotent_id('ca5a5d42-6e49-40e4-a5ac-de07b397b775')
+ rules=["list_route_tables"])
+ @decorators.idempotent_id('ca5a5d42-6e49-40e4-a5ac-de07b397b775')
def test_list_route_tables(self):
- """
- test method for list route table objects
- """
+ """test method for list route table objects"""
self._create_route_tables()
with self.rbac_utils.override_role(self):
self.route_client.list_route_tables()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_route_table")
- @idempotent_id('084a2759-991a-4ae2-bde4-8f9915966f6e')
+ rules=["show_route_table"])
+ @decorators.idempotent_id('084a2759-991a-4ae2-bde4-8f9915966f6e')
def test_show_route_table(self):
- """
- test method for show route table objects
- """
+ """test method for show route table objects"""
route_table = self._create_route_tables()
with self.rbac_utils.override_role(self):
self.route_client.show_route_table(route_table['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_route_tables")
- @idempotent_id('3fab8105-c0be-4c9e-be5f-d2dce4deb921')
+ rules=["create_route_tables"])
+ @decorators.idempotent_id('3fab8105-c0be-4c9e-be5f-d2dce4deb921')
def test_create_route_tables(self):
- """
- test method for create route table objects
- """
+ """test method for create route table objects"""
with self.rbac_utils.override_role(self):
self._create_route_tables()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_route_table")
- @idempotent_id('2acee7ad-843e-40b0-b8f8-a6d90a51c6c8')
+ rules=["update_route_table"])
+ @decorators.idempotent_id('2acee7ad-843e-40b0-b8f8-a6d90a51c6c8')
def test_update_route_table(self):
- """
- test method for update route table objects
- """
+ """test method for update route table objects"""
route_table = self._create_route_tables()
display_name = data_utils.rand_name('RouteNew')
with self.rbac_utils.override_role(self):
@@ -101,22 +88,17 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_route_table")
- @idempotent_id('20a5086c-ec9a-43e0-ae2c-4161c0f4b280')
+ rules=["delete_route_table"])
+ @decorators.idempotent_id('20a5086c-ec9a-43e0-ae2c-4161c0f4b280')
def test_delete_route_table(self):
- """
- test method for delete route table objects
- """
+ """test method for delete route table objects"""
route_table = self._create_route_tables()
with self.rbac_utils.override_role(self):
self._delete_route_table(route_table['uuid'])
class ContrailInterfaceRouteTableTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test route interface table using RBAC roles
- """
+ """Test class to test route interface table using RBAC roles"""
def _delete_interface_route_table(self, route_id):
self.route_client.delete_interface_route_table(route_id)
@@ -136,45 +118,37 @@
return interface_route_table
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_interface_route_tables")
- @idempotent_id('b1f8f0a6-6074-4615-a439-19869a48bc49')
+ rules=["list_interface_route_tables"])
+ @decorators.idempotent_id('b1f8f0a6-6074-4615-a439-19869a48bc49')
def test_list_interface_route(self):
- """
- test method for list route interface table objects
- """
+ """test method for list route interface table objects"""
self._create_interface_route_tables()
with self.rbac_utils.override_role(self):
self.route_client.list_interface_route_tables()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_interface_route_table")
- @idempotent_id('94703a28-5e33-4003-b95b-6a3cc5752fd4')
+ rules=["show_interface_route_table"])
+ @decorators.idempotent_id('94703a28-5e33-4003-b95b-6a3cc5752fd4')
def test_show_interface_route(self):
- """
- test method for show route interface table objects
- """
+ """test method for show route interface table objects"""
interface_rte_table = self._create_interface_route_tables()
with self.rbac_utils.override_role(self):
self.route_client.show_interface_route_table(
interface_rte_table['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_interface_route_tables")
- @idempotent_id('b89ef437-4759-4c04-948b-d2ff9675ab07')
+ rules=["create_interface_route_tables"])
+ @decorators.idempotent_id('b89ef437-4759-4c04-948b-d2ff9675ab07')
def test_create_interface_route(self):
- """
- test method for create route interface table objects
- """
+ """test method for create route interface table objects"""
with self.rbac_utils.override_role(self):
self._create_interface_route_tables()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_interface_route_table")
- @idempotent_id('e9346d4f-7a07-41bc-8e88-e8ae9fa309ea')
+ rules=["update_interface_route_table"])
+ @decorators.idempotent_id('e9346d4f-7a07-41bc-8e88-e8ae9fa309ea')
def test_update_interface_route(self):
- """
- test method for update route interface table objects
- """
+ """test method for update route interface table objects"""
interface_rte_table = self._create_interface_route_tables()
display_name = data_utils.rand_name('InterfaceRouteNew')
with self.rbac_utils.override_role(self):
@@ -183,12 +157,10 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_interface_route_table")
- @idempotent_id('b00444a5-cb4c-45bc-b393-503e9e333e98')
+ rules=["delete_interface_route_table"])
+ @decorators.idempotent_id('b00444a5-cb4c-45bc-b393-503e9e333e98')
def test_delete_interface_route(self):
- """
- test method for delete route interface table objects
- """
+ """test method for delete route interface table objects"""
interface_rte_table = self._create_interface_route_tables()
with self.rbac_utils.override_role(self):
self._delete_interface_route_table(
@@ -196,10 +168,7 @@
class ContrailRouteTargetsTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test route targets using RBAC roles
- """
+ """Test class to test route targets using RBAC roles"""
def _delete_route_target(self, target_id):
self.route_client.delete_route_target(target_id)
@@ -219,44 +188,36 @@
return route_target
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_route_targets")
- @idempotent_id('757efd07-8027-4a16-887a-1e42f16b4140')
+ rules=["list_route_targets"])
+ @decorators.idempotent_id('757efd07-8027-4a16-887a-1e42f16b4140')
def test_list_route_targets(self):
- """
- test method for list route target objects
- """
+ """test method for list route target objects"""
self._create_route_targets()
with self.rbac_utils.override_role(self):
self.route_client.list_route_targets()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_route_target")
- @idempotent_id('76c60d98-dd5e-453a-bf0e-7854f78a1a5e')
+ rules=["show_route_target"])
+ @decorators.idempotent_id('76c60d98-dd5e-453a-bf0e-7854f78a1a5e')
def test_show_route_target(self):
- """
- test method for show route target objects
- """
+ """test method for show route target objects"""
target = self._create_route_targets()
with self.rbac_utils.override_role(self):
self.route_client.show_route_target(target['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_route_targets")
- @idempotent_id('fcdb4ebc-b92d-49f2-88e9-68c93aec94be')
+ rules=["create_route_targets"])
+ @decorators.idempotent_id('fcdb4ebc-b92d-49f2-88e9-68c93aec94be')
def test_create_route_targets(self):
- """
- test method for create route target objects
- """
+ """test method for create route target objects"""
with self.rbac_utils.override_role(self):
self._create_route_targets()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_route_target")
- @idempotent_id('dd830a77-4bfe-4a8c-b4e9-08b6ef2af3be')
+ rules=["update_route_target"])
+ @decorators.idempotent_id('dd830a77-4bfe-4a8c-b4e9-08b6ef2af3be')
def test_update_route_target(self):
- """
- test method for update route target objects
- """
+ """test method for update route target objects"""
target = self._create_route_targets()
display_name = data_utils.rand_name('RouteTargetNew')
with self.rbac_utils.override_role(self):
@@ -265,22 +226,17 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_route_target")
- @idempotent_id('dfaa58f9-ec29-4d51-a475-870fac08908d')
+ rules=["delete_route_target"])
+ @decorators.idempotent_id('dfaa58f9-ec29-4d51-a475-870fac08908d')
def test_delete_route_target(self):
- """
- test method for delete route target objects
- """
+ """test method for delete route target objects"""
target = self._create_route_targets()
with self.rbac_utils.override_role(self):
self._delete_route_target(target['uuid'])
class ContrailRouteAggregateTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test route aggregate using RBAC roles
- """
+ """Test class to test route aggregate using RBAC roles"""
def _delete_route_aggregate(self, route_aggr_id):
self.route_client.delete_route_aggregate(route_aggr_id)
@@ -299,45 +255,37 @@
return route_aggr
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_route_aggregates")
- @idempotent_id('15f2c30c-4404-4228-94a0-86c5ec5cf62e')
+ rules=["list_route_aggregates"])
+ @decorators.idempotent_id('15f2c30c-4404-4228-94a0-86c5ec5cf62e')
def test_list_route_aggregates(self):
- """
- test method for list route aggregate objects
- """
+ """test method for list route aggregate objects"""
self._create_route_aggregates()
with self.rbac_utils.override_role(self):
self.route_client.list_route_aggregates()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_route_aggregate")
- @idempotent_id('c8edee30-81c4-44e2-8485-055bed853384')
+ rules=["show_route_aggregate"])
+ @decorators.idempotent_id('c8edee30-81c4-44e2-8485-055bed853384')
def test_show_route_aggregate(self):
- """
- test method for show route aggregate objects
- """
+ """test method for show route aggregate objects"""
route_aggr = self._create_route_aggregates()
with self.rbac_utils.override_role(self):
self.route_client.show_route_aggregate(
route_aggr['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_route_aggregates")
- @idempotent_id('7553a54f-e41c-4555-b745-a858c5a70690')
+ rules=["create_route_aggregates"])
+ @decorators.idempotent_id('7553a54f-e41c-4555-b745-a858c5a70690')
def test_create_route_aggregates(self):
- """
- test method for create route aggregate objects
- """
+ """test method for create route aggregate objects"""
with self.rbac_utils.override_role(self):
self._create_route_aggregates()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_route_aggregate")
- @idempotent_id('de1e6102-0bc6-4f9b-a354-48eb051ab5e4')
+ rules=["update_route_aggregate"])
+ @decorators.idempotent_id('de1e6102-0bc6-4f9b-a354-48eb051ab5e4')
def test_update_route_aggregate(self):
- """
- test method for update route aggregate objects
- """
+ """test method for update route aggregate objects"""
route_aggr = self._create_route_aggregates()
display_name = data_utils.rand_name('RouteAggregateNew')
with self.rbac_utils.override_role(self):
@@ -346,12 +294,10 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_route_aggregate")
- @idempotent_id('e16dbdc6-d7cf-43c7-af9d-bd76cc220200')
+ rules=["delete_route_aggregate"])
+ @decorators.idempotent_id('e16dbdc6-d7cf-43c7-af9d-bd76cc220200')
def test_delete_route_aggregate(self):
- """
- test method for delete route aggregate objects
- """
+ """test method for delete route aggregate objects"""
# Create aggregate
route_aggr = self._create_route_aggregates()
with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
index 65133b2..c07ca42 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class BaseRouterTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test router objects using RBAC roles
- """
+ """Test class to test router objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -52,26 +47,11 @@
cls.network['uuid'])
super(BaseRouterTest, cls).resource_cleanup()
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
- def _create_physical_router(self, global_system_config):
+ def _create_physical_router(self):
fq_name = data_utils.rand_name('physical-router-template')
post_body = {
'parent_type': 'global-system-config',
- 'fq_name': [global_system_config, fq_name]}
+ 'fq_name': ['default-global-system-config', fq_name]}
router = self.router_client.create_physical_routers(
**post_body)['physical-router']
self.addCleanup(self._try_delete_resource,
@@ -105,11 +85,11 @@
router['uuid'])
return router
- def _create_global_vrouter_config(self, global_system_config):
+ def _create_global_vrouter_config(self):
fq_name = data_utils.rand_name('global-vrouter-config-template')
post_body = {
'parent_type': 'global-system-config',
- 'fq_name': [global_system_config, fq_name]}
+ 'fq_name': ['default-global-system-config', fq_name]}
router = self.router_client.create_global_vrouter_configs(
**post_body)['global-vrouter-config']
self.addCleanup(self._try_delete_resource,
@@ -129,11 +109,11 @@
router['uuid'])
return router
- def _create_virtual_router(self, global_system_config):
+ def _create_virtual_router(self):
fq_name = data_utils.rand_name('virtual-router-template')
post_body = {
'parent_type': 'global-system-config',
- 'fq_name': [global_system_config, fq_name]}
+ 'fq_name': ['default-global-system-config', fq_name]}
router = self.router_client.create_virtual_routers(
**post_body)['virtual-router']
self.addCleanup(self._try_delete_resource,
@@ -142,101 +122,74 @@
return router
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_physical_routers")
- @idempotent_id('349ac042-b922-4727-9e1b-8f363ee343f3')
+ rules=["list_physical_routers"])
+ @decorators.idempotent_id('349ac042-b922-4727-9e1b-8f363ee343f3')
def test_list_physical_routers(self):
- """
- test method for list physical router objects
- """
+ """test method for list physical router objects"""
with self.rbac_utils.override_role(self):
self.router_client.list_physical_routers()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_physical_routers")
- @idempotent_id('d0b7449e-9037-4f9f-8c7e-9f364c95f18a')
+ rules=["create_physical_routers"])
+ @decorators.idempotent_id('d0b7449e-9037-4f9f-8c7e-9f364c95f18a')
def test_create_physical_routers(self):
- """
- test method for create physical router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for create physical router objects"""
with self.rbac_utils.override_role(self):
- self._create_physical_router(global_system_config)
+ self._create_physical_router()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_physical_router")
- @idempotent_id('6dfc53f4-a884-46d5-b303-22ba59c116f4')
+ rules=["show_physical_router"])
+ @decorators.idempotent_id('6dfc53f4-a884-46d5-b303-22ba59c116f4')
def test_show_physical_router(self):
- """
- test method for show physical router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- physical_router_uuid = self._create_physical_router(
- global_system_config)['uuid']
+ """test method for show physical router objects"""
+ physical_router_uuid = self._create_physical_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.show_physical_router(physical_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_physical_router")
- @idempotent_id('c270f369-8cd7-4ee3-8ab1-4580c3138a5c')
+ rules=["update_physical_router"])
+ @decorators.idempotent_id('c270f369-8cd7-4ee3-8ab1-4580c3138a5c')
def test_update_physical_router(self):
- """
- test method for update physical router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for update physical router objects"""
updated_fq_name = data_utils.rand_name('rbac-physical-router-new-name')
- physical_router_uuid = self._create_physical_router(
- global_system_config)['uuid']
+ physical_router_uuid = self._create_physical_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.update_physical_router(
physical_router_uuid,
display_name=updated_fq_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_physical_router")
- @idempotent_id('eeded742-6a8d-4e88-bfa8-fe32db463c53')
+ rules=["delete_physical_router"])
+ @decorators.idempotent_id('eeded742-6a8d-4e88-bfa8-fe32db463c53')
def test_delete_physical_router(self):
- """
- test method for delete physical router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- physical_router_uuid = self._create_physical_router(
- global_system_config)['uuid']
+ """test method for delete physical router objects"""
+ physical_router_uuid = self._create_physical_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.delete_physical_router(physical_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_bgp_routers")
- @idempotent_id('49bfb461-f99e-4585-b051-e20a3c937589')
+ rules=["list_bgp_routers"])
+ @decorators.idempotent_id('49bfb461-f99e-4585-b051-e20a3c937589')
def test_list_bgp_routers(self):
- """
- test method for list bgp router objects
- """
+ """test method for list bgp router objects"""
with self.rbac_utils.override_role(self):
self.router_client.list_bgp_routers()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_bgp_routers")
- @idempotent_id('7567974c-040e-4edd-b3a1-c633aa9651cb')
+ rules=["create_bgp_routers"])
+ @decorators.idempotent_id('7567974c-040e-4edd-b3a1-c633aa9651cb')
def test_create_bgp_routers(self):
- """
- test method for create bgp router objects
- """
+ """test method for create bgp router objects"""
# Create Routing Instance
routing_instance = self._create_routing_instances()
with self.rbac_utils.override_role(self):
self._create_bgp_router(routing_instance)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_bgp_router")
- @idempotent_id('0d3ad424-18c9-4d96-8708-fa1ebd45594b')
+ rules=["show_bgp_router"])
+ @decorators.idempotent_id('0d3ad424-18c9-4d96-8708-fa1ebd45594b')
def test_show_bgp_router(self):
- """
- test method for show bgp router objects
- """
+ """test method for show bgp router objects"""
# Create Routing Instance
routing_instance = self._create_routing_instances()
bgp_router_uuid = self._create_bgp_router(routing_instance)['uuid']
@@ -244,12 +197,10 @@
self.router_client.show_bgp_router(bgp_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_bgp_router")
- @idempotent_id('dc50e7c5-7614-4281-8a66-282c52f3c769')
+ rules=["update_bgp_router"])
+ @decorators.idempotent_id('dc50e7c5-7614-4281-8a66-282c52f3c769')
def test_update_bgp_router(self):
- """
- test method for update bgp router objects
- """
+ """test method for update bgp router objects"""
# Create Routing Instance
routing_instance = self._create_routing_instances()
updated_fq_name = data_utils.rand_name('rbac-bgp-router-new-name')
@@ -260,12 +211,10 @@
display_name=updated_fq_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_bgp_router")
- @idempotent_id('f14aee72-cad4-4c3e-8eea-7886a81abb24')
+ rules=["delete_bgp_router"])
+ @decorators.idempotent_id('f14aee72-cad4-4c3e-8eea-7886a81abb24')
def test_delete_bgp_router(self):
- """
- test method for delete bgp router objects
- """
+ """test method for delete bgp router objects"""
# Create Routing Instance
routing_instance = self._create_routing_instances()
bgp_router_uuid = self._create_bgp_router(routing_instance)['uuid']
@@ -273,113 +222,111 @@
self.router_client.delete_bgp_router(bgp_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_global_vrouter_configs")
- @idempotent_id('4af768d1-3cbe-4aff-bcbc-0e045cac3277')
- def test_list_global_vrouter(self):
- """
- test method for list global vrouter config objects
- """
+ rules=["list_global_vrouter_configs"])
+ @decorators.idempotent_id('4af768d1-3cbe-4aff-bcbc-0e045cac3277')
+ def test_list_global_vrouter_configs(self):
+ """test method for list global vrouter config objects"""
with self.rbac_utils.override_role(self):
self.router_client.list_global_vrouter_configs()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_global_vrouter_configs")
- @idempotent_id('e13d800f-9304-4a06-9bf1-ad08345a13a8')
- def test_create_global_vrouter(self):
- """
- test method for create global vrouter config objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ rules=["create_global_vrouter_configs"])
+ @decorators.idempotent_id('e13d800f-9304-4a06-9bf1-ad08345a13a8')
+ def test_create_global_vrouter_configs(self):
+ """test method for create global vrouter config objects"""
+ # This test may make your environment unstable
+ # Juniper JTAC 2018-0912-0503
+ #
+ # Creating a global-vrouter-config object with parent as
+ # default-gloabl-system-config in a deployed environment makes vrouter
+ # linklocal metadata to go missing.
+ # vrouter-agent will stuck in Init state with "No configuration for
+ # self" error.
with self.rbac_utils.override_role(self):
- self._create_global_vrouter_config(global_system_config)
+ self._create_global_vrouter_config()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_global_vrouter_config")
- @idempotent_id('3bb6f4e1-fd3f-4338-8392-f7f80974a80e')
+ rules=["show_global_vrouter_config"])
+ @decorators.idempotent_id('3bb6f4e1-fd3f-4338-8392-f7f80974a80e')
def test_show_global_vrouter_config(self):
- """
- test method for show global vrouter config objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- global_vrouter_config_uuid = self._create_global_vrouter_config(
- global_system_config)['uuid']
+ """test method for show global vrouter config objects"""
+ # This test may make your environment unstable
+ # Juniper JTAC 2018-0912-0503
+ #
+ # Creating a global-vrouter-config object with parent as
+ # default-gloabl-system-config in a deployed environment makes vrouter
+ # linklocal metadata to go missing.
+ # vrouter-agent will stuck in Init state with "No configuration for
+ # self" error.
+ global_vrouter_config_uuid = \
+ self._create_global_vrouter_config()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.show_global_vrouter_config(
global_vrouter_config_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_global_vrouter_config")
- @idempotent_id('36fcdd51-c42b-4e67-8c26-73d4cde47507')
- def test_update_global_vrouter(self):
- """
- test method for update global vrouter config objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ rules=["update_global_vrouter_config"])
+ @decorators.idempotent_id('36fcdd51-c42b-4e67-8c26-73d4cde47507')
+ def test_update_global_vrouter_config(self):
+ """test method for update global vrouter config objects"""
+ # This test may make your environment unstable
+ # Juniper JTAC 2018-0912-0503
+ #
+ # Creating a global-vrouter-config object with parent as
+ # default-gloabl-system-config in a deployed environment makes vrouter
+ # linklocal metadata to go missing.
+ # vrouter-agent will stuck in Init state with "No configuration for
+ # self" error.
updated_fq_name = data_utils.rand_name(
'rbac-global-vrouter-config-new-name')
- global_vrouter_config_uuid = self._create_global_vrouter_config(
- global_system_config)['uuid']
+ global_vrouter_config_uuid = \
+ self._create_global_vrouter_config()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.update_global_vrouter_config(
global_vrouter_config_uuid,
display_name=updated_fq_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_global_vrouter_config")
- @idempotent_id('4f3d59e8-3dac-4346-9d13-5ebe5ad8f6cf')
- def test_delete_global_vrouter(self):
- """
- test method for delete global vrouter config objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- global_vrouter_config_uuid = self._create_global_vrouter_config(
- global_system_config)['uuid']
+ rules=["delete_global_vrouter_config"])
+ @decorators.idempotent_id('4f3d59e8-3dac-4346-9d13-5ebe5ad8f6cf')
+ def test_delete_global_vrouter_config(self):
+ """test method for delete global vrouter config objects"""
+ global_vrouter_config_uuid = \
+ self._create_global_vrouter_config()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.delete_global_vrouter_config(
global_vrouter_config_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_logical_routers")
- @idempotent_id('674bf3de-a9e5-45c2-921b-b89db73a2abe')
+ rules=["list_logical_routers"])
+ @decorators.idempotent_id('674bf3de-a9e5-45c2-921b-b89db73a2abe')
def test_list_logical_routers(self):
- """
- test method for list logical router objects
- """
+ """test method for list logical router objects"""
with self.rbac_utils.override_role(self):
self.router_client.list_logical_routers()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_logical_routers")
- @idempotent_id('610f051b-8eba-4d3a-ba43-91386bfc0e52')
+ rules=["create_logical_routers"])
+ @decorators.idempotent_id('610f051b-8eba-4d3a-ba43-91386bfc0e52')
def test_create_logical_routers(self):
- """
- test method for create logical router objects
- """
+ """test method for create logical router objects"""
with self.rbac_utils.override_role(self):
self._create_logical_router()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_logical_router")
- @idempotent_id('992841d4-0d5d-4d85-b513-049b33e2a2e2')
+ rules=["show_logical_router"])
+ @decorators.idempotent_id('992841d4-0d5d-4d85-b513-049b33e2a2e2')
def test_show_logical_router(self):
- """
- test method for show logical router objects
- """
+ """test method for show logical router objects"""
logical_router_uuid = self._create_logical_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.show_logical_router(logical_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_logical_router")
- @idempotent_id('518197bf-5233-4059-9021-5d7ecc74718e')
+ rules=["update_logical_router"])
+ @decorators.idempotent_id('518197bf-5233-4059-9021-5d7ecc74718e')
def test_update_logical_router(self):
- """
- test method for update logical router objects
- """
+ """test method for update logical router objects"""
updated_fq_name = data_utils.rand_name('rbac-logical-router-new-name')
logical_router_uuid = self._create_logical_router()['uuid']
with self.rbac_utils.override_role(self):
@@ -388,79 +335,56 @@
display_name=updated_fq_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_logical_router")
- @idempotent_id('70448b9c-4444-45e0-b307-7bff4dc075b1')
+ rules=["delete_logical_router"])
+ @decorators.idempotent_id('70448b9c-4444-45e0-b307-7bff4dc075b1')
def test_delete_logical_router(self):
- """
- test method for delete logical router objects
- """
+ """test method for delete logical router objects"""
logical_router_uuid = self._create_logical_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.delete_logical_router(logical_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_virtual_routers")
- @idempotent_id('604dc476-732e-4890-8665-a497360f5475')
+ rules=["list_virtual_routers"])
+ @decorators.idempotent_id('604dc476-732e-4890-8665-a497360f5475')
def test_list_virtual_routers(self):
- """
- test method for list virtual router objects
- """
+ """test method for list virtual router objects"""
with self.rbac_utils.override_role(self):
self.router_client.list_virtual_routers()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_virtual_routers")
- @idempotent_id('114beb14-45c0-4714-a407-d160bb102022')
+ rules=["create_virtual_routers"])
+ @decorators.idempotent_id('114beb14-45c0-4714-a407-d160bb102022')
def test_create_virtual_routers(self):
- """
- test method for create virtual router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for create virtual router objects"""
with self.rbac_utils.override_role(self):
- self._create_virtual_router(global_system_config)
+ self._create_virtual_router()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_virtual_router")
- @idempotent_id('258fe4e0-3e39-460f-aafa-e3b53c96e534')
+ rules=["show_virtual_router"])
+ @decorators.idempotent_id('258fe4e0-3e39-460f-aafa-e3b53c96e534')
def test_show_virtual_router(self):
- """
- test method for show virtual router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- virtual_router_uuid = self._create_virtual_router(
- global_system_config)['uuid']
+ """test method for show virtual router objects"""
+ virtual_router_uuid = self._create_virtual_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.show_virtual_router(virtual_router_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_virtual_router")
- @idempotent_id('d1c72191-2068-4552-a78f-038cdd4c9c1d')
+ rules=["update_virtual_router"])
+ @decorators.idempotent_id('d1c72191-2068-4552-a78f-038cdd4c9c1d')
def test_update_virtual_router(self):
- """
- test method for update virtual router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for update virtual router objects"""
updated_fq_name = data_utils.rand_name('rbac-virtual-router-new-name')
- virtual_router_uuid = self._create_virtual_router(
- global_system_config)['uuid']
+ virtual_router_uuid = self._create_virtual_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.update_virtual_router(
virtual_router_uuid,
display_name=updated_fq_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_virtual_router")
- @idempotent_id('efbe25d6-8763-42d4-baf6-9f342e710144')
+ rules=["delete_virtual_router"])
+ @decorators.idempotent_id('efbe25d6-8763-42d4-baf6-9f342e710144')
def test_delete_virtual_router(self):
- """
- test method for delete virtual router objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- virtual_router_uuid = self._create_virtual_router(
- global_system_config)['uuid']
+ """test method for delete virtual router objects"""
+ virtual_router_uuid = self._create_virtual_router()['uuid']
with self.rbac_utils.override_role(self):
self.router_client.delete_virtual_router(virtual_router_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
index b3f80dd..850f767 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
@@ -17,22 +17,18 @@
Tempest test-case to test routing objects using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class RoutingTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test routing objects using RBAC roles
- """
+ """Test class to test routing objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -62,54 +58,44 @@
return new_instance
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_routing_instances")
- @idempotent_id('054c56ba-76b2-4161-a702-40301d8de085')
+ rules=["list_routing_instances"])
+ @decorators.idempotent_id('054c56ba-76b2-4161-a702-40301d8de085')
def test_list_routing_instances(self):
- """
- test method for list routing instance objects
- """
+ """test method for list routing instance objects"""
with self.rbac_utils.override_role(self):
self.routing_client.list_routing_instances()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_routing_instances")
- @idempotent_id('3d44a46b-5436-43a8-b2f7-8581f0f04dbc')
+ rules=["create_routing_instances"])
+ @decorators.idempotent_id('3d44a46b-5436-43a8-b2f7-8581f0f04dbc')
def test_create_routing_instances(self):
- """
- test method for create routing instance objects
- """
+ """test method for create routing instance objects"""
with self.rbac_utils.override_role(self):
self._create_routing_instances()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_routing_instance")
- @idempotent_id('161abb37-6037-422b-b453-108a5d10caca')
+ rules=["show_routing_instance"])
+ @decorators.idempotent_id('161abb37-6037-422b-b453-108a5d10caca')
def test_show_routing_instance(self):
- """
- test method for show routing instance objects
- """
+ """test method for show routing instance objects"""
new_instance = self._create_routing_instances()
with self.rbac_utils.override_role(self):
self.routing_client.show_routing_instance(new_instance['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_routing_instance")
- @idempotent_id('1d3af01e-01bf-4347-a9bc-633732339e0e')
+ rules=["delete_routing_instance"])
+ @decorators.idempotent_id('1d3af01e-01bf-4347-a9bc-633732339e0e')
def test_delete_routing_instance(self):
- """
- test method for delete routing instance objects
- """
+ """test method for delete routing instance objects"""
new_instance = self._create_routing_instances()
with self.rbac_utils.override_role(self):
self.routing_client.delete_routing_instance(new_instance['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_routing_instance")
- @idempotent_id('ebcfd442-2a26-4954-968b-e17e414ed0d1')
+ rules=["update_routing_instance"])
+ @decorators.idempotent_id('ebcfd442-2a26-4954-968b-e17e414ed0d1')
def test_update_routing_instance(self):
- """
- test method for update routing instance objects
- """
+ """test method for update routing instance objects"""
new_instance = self._create_routing_instances()
with self.rbac_utils.override_role(self):
self.routing_client.update_routing_instance(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py b/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
index 9b1dde9..dc0b619 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class RoutingPolicyTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test routing policy objects using RBAC roles
- """
+ """Test class to test routing policy objects using RBAC roles"""
def _create_routing_policy(self):
fq_name = data_utils.rand_name('routing-policy')
@@ -59,54 +54,44 @@
**put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_routing_policys")
- @idempotent_id('fe25a306-bc4f-42b3-91ca-38df01e35345')
+ rules=["list_routing_policys"])
+ @decorators.idempotent_id('fe25a306-bc4f-42b3-91ca-38df01e35345')
def test_list_routing_policys(self):
- """
- test method for list routing policy objects
- """
+ """test method for list routing policy objects"""
with self.rbac_utils.override_role(self):
self.routing_policy_client.list_routing_policys()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_routing_policys")
- @idempotent_id('f8ca5e30-8bb3-410f-8618-8fdca70bda06')
+ rules=["create_routing_policys"])
+ @decorators.idempotent_id('f8ca5e30-8bb3-410f-8618-8fdca70bda06')
def test_create_routing_policys(self):
- """
- test method for create routing policy objects
- """
+ """test method for create routing policy objects"""
with self.rbac_utils.override_role(self):
self._create_routing_policy()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_routing_policy")
- @idempotent_id('3421e84e-3e2a-452a-9a26-b2caf00b1cbc')
+ rules=["show_routing_policy"])
+ @decorators.idempotent_id('3421e84e-3e2a-452a-9a26-b2caf00b1cbc')
def test_show_routing_policy(self):
- """
- test method for show routing policy objects
- """
+ """test method for show routing policy objects"""
policy_uuid = self._create_routing_policy()
with self.rbac_utils.override_role(self):
self.routing_policy_client.show_routing_policy(policy_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_routing_policy")
- @idempotent_id('9fc1f44f-c8e2-4f5a-8239-e9b783f55d94')
+ rules=["update_routing_policy"])
+ @decorators.idempotent_id('9fc1f44f-c8e2-4f5a-8239-e9b783f55d94')
def test_update_routing_policy(self):
- """
- test method for update routing policy objects
- """
+ """test method for update routing policy objects"""
policy_uuid = self._create_routing_policy()
with self.rbac_utils.override_role(self):
self._update_routing_policy(policy_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_routing_policy")
- @idempotent_id('24f1cd7a-2917-4b81-a0a3-a40ed2d40c7d')
+ rules=["delete_routing_policy"])
+ @decorators.idempotent_id('24f1cd7a-2917-4b81-a0a3-a40ed2d40c7d')
def test_delete_routing_policy(self):
- """
- test method for delete routing policy objects
- """
+ """test method for delete routing policy objects"""
policy_uuid = self._create_routing_policy()
with self.rbac_utils.override_role(self):
self.routing_policy_client.delete_routing_policy(policy_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py b/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
index 8a14b03..e537f62 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
@@ -17,24 +17,19 @@
Tempest test-case to test service group objects using RBAC roles
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class ContrailSecurityGroupTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test security group objects using RBAC roles
- """
+ """Test class to test security group objects using RBAC roles"""
def _delete_security_group(self, sec_grp_id):
return self.security_group_client.delete_security_group(sec_grp_id)
@@ -55,57 +50,47 @@
return sec_grp
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_security_groups")
- @idempotent_id('a13cc1d5-f562-4b68-b732-980deb3cddf4')
+ rules=["list_security_groups"])
+ @decorators.idempotent_id('a13cc1d5-f562-4b68-b732-980deb3cddf4')
def test_list_security_groups(self):
- """
- test method for list security group objects
- """
+ """test method for list security group objects"""
self._create_security_groups()
with self.rbac_utils.override_role(self):
self.security_group_client.list_security_groups()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_security_group")
- @idempotent_id('c7ca1781-08ae-4fa2-bd6d-1f369950c4c4')
+ rules=["show_security_group"])
+ @decorators.idempotent_id('c7ca1781-08ae-4fa2-bd6d-1f369950c4c4')
def test_show_security_group(self):
- """
- test method for show security group objects
- """
+ """test method for show security group objects"""
grp = self._create_security_groups()
grp_id = grp['uuid']
with self.rbac_utils.override_role(self):
self.security_group_client.show_security_group(grp_id)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_security_group")
- @idempotent_id('e682d7b4-deb8-4b5c-9c9b-1e1ada827b40')
+ rules=["delete_security_group"])
+ @decorators.idempotent_id('e682d7b4-deb8-4b5c-9c9b-1e1ada827b40')
def test_delete_security_group(self):
- """
- test method for delete security group objects
- """
+ """test method for delete security group objects"""
grp = self._create_security_groups()
grp_id = grp['uuid']
with self.rbac_utils.override_role(self):
self._delete_security_group(grp_id)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_security_groups")
- @idempotent_id('63a2ff14-7869-40a2-962a-d65752de5651')
+ rules=["create_security_groups"])
+ @decorators.idempotent_id('63a2ff14-7869-40a2-962a-d65752de5651')
def test_create_security_groups(self):
- """
- test method for create security group objects
- """
+ """test method for create security group objects"""
with self.rbac_utils.override_role(self):
self._create_security_groups()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_security_group")
- @idempotent_id('cf9aafe2-fffb-4028-8fd7-4d6634e144e7')
+ rules=["update_security_group"])
+ @decorators.idempotent_id('cf9aafe2-fffb-4028-8fd7-4d6634e144e7')
def test_update_security_group(self):
- """
- test method for update security group objects
- """
+ """test method for update security group objects"""
grp = self._create_security_groups()
grp_id = grp['uuid']
display_name = data_utils.rand_name('securitygroupnew')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py b/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
index 7abe131..7cf5e24 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
@@ -17,41 +17,22 @@
Tempest test-case to test service appliance using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class ServiceAppliancesTest(rbac_base.BaseContrailTest):
+ """Test class to test service appliances objects using RBAC roles"""
- """
- Test class to test service appliances objects using RBAC roles
- """
-
- def _create_global_system_config(self):
- config_name = data_utils.rand_name('test-config')
- parent_type = 'config-root'
- config_fq_name = [config_name]
- new_config = \
- self.config_client.create_global_system_configs(
- parent_type=parent_type,
- display_name=config_name,
- fq_name=config_fq_name)['global-system-config']
- self.addCleanup(self._try_delete_resource,
- (self.config_client.
- delete_global_system_config),
- new_config['uuid'])
- return new_config
-
- def _create_service_appliance_sets(self, global_system_config):
+ def _create_service_appliance_sets(self):
set_name = data_utils.rand_name('test-set')
- set_fq_name = [global_system_config, set_name]
+ set_fq_name = ['default-global-system-config', set_name]
new_set = self.service_appliances_client.create_service_appliance_sets(
parent_type='global-system-config',
fq_name=set_fq_name)['service-appliance-set']
@@ -76,57 +57,39 @@
return new_appliance
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_service_appliances")
- @idempotent_id('6b5fc17c-34e6-4d21-a53e-a0dfe69afd31')
+ rules=["list_service_appliances"])
+ @decorators.idempotent_id('6b5fc17c-34e6-4d21-a53e-a0dfe69afd31')
def test_list_service_appliances(self):
- """
- test method for list service appliance objects
- """
+ """test method for list service appliance objects"""
with self.rbac_utils.override_role(self):
self.service_appliances_client.list_service_appliances()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_service_appliances")
- @idempotent_id('0563c0c8-b986-466e-8540-aa8ad7a10367')
+ rules=["create_service_appliances"])
+ @decorators.idempotent_id('0563c0c8-b986-466e-8540-aa8ad7a10367')
def test_create_service_appliances(self):
- """
- test method for create service appliance objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- new_set = \
- self._create_service_appliance_sets(global_system_config)
+ """test method for create service appliance objects"""
+ new_set = self._create_service_appliance_sets()
with self.rbac_utils.override_role(self):
self._create_service_appliances(new_set)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_service_appliance")
- @idempotent_id('ea30dcfe-8657-4a7d-9cf1-3176d334bf27')
+ rules=["show_service_appliance"])
+ @decorators.idempotent_id('ea30dcfe-8657-4a7d-9cf1-3176d334bf27')
def test_show_service_appliance(self):
- """
- test method for show service appliance objects
- """
- # Create global system config
- global_system_config = \
- self._create_global_system_config()['name']
- new_set = \
- self._create_service_appliance_sets(global_system_config)
+ """test method for show service appliance objects"""
+ new_set = self._create_service_appliance_sets()
new_appliance = self._create_service_appliances(new_set)
with self.rbac_utils.override_role(self):
self.service_appliances_client.show_service_appliance(
new_appliance['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_service_appliance")
- @idempotent_id('a54ca33a-8590-4844-96d7-b96882b59e86')
+ rules=["update_service_appliance"])
+ @decorators.idempotent_id('a54ca33a-8590-4844-96d7-b96882b59e86')
def test_update_service_appliance(self):
- """
- test method for update service appliance objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- new_set = \
- self._create_service_appliance_sets(global_system_config)
+ """test method for update service appliance objects"""
+ new_set = self._create_service_appliance_sets()
new_appliance = self._create_service_appliances(new_set)
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -135,69 +98,48 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_service_appliance")
- @idempotent_id('362deff5-7b72-4929-ba81-972cfcfa1309')
+ rules=["delete_service_appliance"])
+ @decorators.idempotent_id('362deff5-7b72-4929-ba81-972cfcfa1309')
def test_delete_service_appliance(self):
- """
- test method for delete service appliance objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- new_set = \
- self._create_service_appliance_sets(global_system_config)
+ """test method for delete service appliance objects"""
+ new_set = self._create_service_appliance_sets()
new_appliance = self._create_service_appliances(new_set)
with self.rbac_utils.override_role(self):
self.service_appliances_client.delete_service_appliance(
new_appliance['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_service_appliance_sets")
- @idempotent_id('c1e74da9-00b6-4c88-adda-2ce49094e570')
+ rules=["list_service_appliance_sets"])
+ @decorators.idempotent_id('c1e74da9-00b6-4c88-adda-2ce49094e570')
def test_list_service_appl_sets(self):
- """
- test method for list service appliance sets objects
- """
+ """test method for list service appliance sets objects"""
with self.rbac_utils.override_role(self):
self.service_appliances_client.list_service_appliance_sets()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_service_appliance_sets")
- @idempotent_id('eb00d6cf-590f-41bf-8ee4-5be625d9cb93')
+ rules=["create_service_appliance_sets"])
+ @decorators.idempotent_id('eb00d6cf-590f-41bf-8ee4-5be625d9cb93')
def test_create_service_appl_sets(self):
- """
- test method for create service appliance sets objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
+ """test method for create service appliance sets objects"""
with self.rbac_utils.override_role(self):
- self._create_service_appliance_sets(global_system_config)
+ self._create_service_appliance_sets()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_service_appliance_set")
- @idempotent_id('dd35dd04-e7d9-46bb-8f36-26835f122572')
+ rules=["show_service_appliance_set"])
+ @decorators.idempotent_id('dd35dd04-e7d9-46bb-8f36-26835f122572')
def test_show_service_appl_set(self):
- """
- test method for show service appliance sets objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- new_set = self._create_service_appliance_sets(
- global_system_config)
+ """test method for show service appliance sets objects"""
+ new_set = self._create_service_appliance_sets()
with self.rbac_utils.override_role(self):
self.service_appliances_client.show_service_appliance_set(
new_set['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_service_appliance_set")
- @idempotent_id('952f063b-bc71-4f62-83b1-719bce5ad4ed')
+ rules=["update_service_appliance_set"])
+ @decorators.idempotent_id('952f063b-bc71-4f62-83b1-719bce5ad4ed')
def test_update_service_appl_set(self):
- """
- test method for update service appliance sets objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- new_set = self._create_service_appliance_sets(
- global_system_config)
+ """test method for update service appliance sets objects"""
+ new_set = self._create_service_appliance_sets()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
self.service_appliances_client.update_service_appliance_set(
@@ -205,16 +147,11 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_service_appliance_set")
- @idempotent_id('7b56ce24-da1d-4565-bd22-c58dc57d7045')
+ rules=["delete_service_appliance_set"])
+ @decorators.idempotent_id('7b56ce24-da1d-4565-bd22-c58dc57d7045')
def test_delete_service_appl_set(self):
- """
- test method for delete service appliance sets objects
- """
- # Create global system config
- global_system_config = self._create_global_system_config()['name']
- new_set = self._create_service_appliance_sets(
- global_system_config)
+ """test method for delete service appliance sets objects"""
+ new_set = self._create_service_appliance_sets()
with self.rbac_utils.override_role(self):
self.service_appliances_client.delete_service_appliance_set(
new_set['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py b/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
index e629526..98283bb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
@@ -17,22 +17,18 @@
Tempest test-case to test service clients objects using RBAC roles
"""
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
class ServiceClientsTest(rbac_base.BaseContrailTest):
-
- """
- Tempest test-case to test service clients objects using RBAC roles
- """
+ """Tempest test-case to test service clients objects using RBAC roles"""
def _create_service_template(self):
template_name = data_utils.rand_name('test-template')
@@ -87,44 +83,36 @@
return new_instance
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_service_templates")
- @idempotent_id('841b1d32-4308-4fb6-852a-41bdd8c56c37')
+ rules=["list_service_templates"])
+ @decorators.idempotent_id('841b1d32-4308-4fb6-852a-41bdd8c56c37')
def test_list_service_templates(self):
- """
- test method for list service template objects
- """
+ """test method for list service template objects"""
with self.rbac_utils.override_role(self):
self.service_client.list_service_templates()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_service_templates")
- @idempotent_id('3f02d14a-31e2-4476-821f-87d0cc42d9fb')
+ rules=["create_service_templates"])
+ @decorators.idempotent_id('3f02d14a-31e2-4476-821f-87d0cc42d9fb')
def test_create_service_templates(self):
- """
- test method for create service template objects
- """
+ """test method for create service template objects"""
with self.rbac_utils.override_role(self):
self._create_service_template()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_service_template")
- @idempotent_id('1f15d734-2cc6-4ded-916e-134286c6b87b')
+ rules=["show_service_template"])
+ @decorators.idempotent_id('1f15d734-2cc6-4ded-916e-134286c6b87b')
def test_show_service_template(self):
- """
- test method for show service template objects
- """
+ """test method for show service template objects"""
new_template = self._create_service_template()
with self.rbac_utils.override_role(self):
self.service_client.show_service_template(
new_template['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_service_template")
- @idempotent_id('3549debd-4c7a-4574-8d11-4190c8530a23')
+ rules=["update_service_template"])
+ @decorators.idempotent_id('3549debd-4c7a-4574-8d11-4190c8530a23')
def test_update_service_template(self):
- """
- test method for update service template objects
- """
+ """test method for update service template objects"""
new_template = self._create_service_template()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -133,56 +121,46 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_service_template")
- @idempotent_id('e86cabd2-5b7e-4ee8-86ec-db52619b852b')
+ rules=["delete_service_template"])
+ @decorators.idempotent_id('e86cabd2-5b7e-4ee8-86ec-db52619b852b')
def test_delete_service_template(self):
- """
- test method for delete service template objects
- """
+ """test method for delete service template objects"""
new_template = self._create_service_template()
with self.rbac_utils.override_role(self):
self.service_client.delete_service_template(
new_template['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_service_health_checks")
- @idempotent_id('5210d6ca-9a38-4b6b-b5b7-f836c3846079')
+ rules=["list_service_health_checks"])
+ @decorators.idempotent_id('5210d6ca-9a38-4b6b-b5b7-f836c3846079')
def test_list_service_health_checks(self):
- """
- test method for list service health check objects
- """
+ """test method for list service health check objects"""
with self.rbac_utils.override_role(self):
self.service_client.list_service_health_checks()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_service_health_checks")
- @idempotent_id('77716feb-0d05-4cfd-8a17-79cf0b19ed3c')
+ rules=["create_service_health_checks"])
+ @decorators.idempotent_id('77716feb-0d05-4cfd-8a17-79cf0b19ed3c')
def test_create_service_health(self):
- """
- test method for create service health check objects
- """
+ """test method for create service health check objects"""
with self.rbac_utils.override_role(self):
self._create_service_health_check()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_service_health_check")
- @idempotent_id('80db4445-8d6c-4c8f-aa25-d4ea53d32d2c')
+ rules=["show_service_health_check"])
+ @decorators.idempotent_id('80db4445-8d6c-4c8f-aa25-d4ea53d32d2c')
def test_show_service_health(self):
- """
- test method for show service health check objects
- """
+ """test method for show service health check objects"""
new_health_check = self._create_service_health_check()
with self.rbac_utils.override_role(self):
self.service_client.show_service_health_check(
new_health_check['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_service_health_check")
- @idempotent_id('68fb1510-4b76-40cc-8979-e56e537229d2')
+ rules=["update_service_health_check"])
+ @decorators.idempotent_id('68fb1510-4b76-40cc-8979-e56e537229d2')
def test_update_service_health(self):
- """
- test method for update service health check objects
- """
+ """test method for update service health check objects"""
new_health_check = self._create_service_health_check()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
@@ -191,68 +169,56 @@
display_name=update_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_service_health_check")
- @idempotent_id('2dce3942-402a-48a4-b682-fdc425d3d935')
+ rules=["delete_service_health_check"])
+ @decorators.idempotent_id('2dce3942-402a-48a4-b682-fdc425d3d935')
def test_delete_service_health(self):
- """
- test method for delete service health check objects
- """
+ """test method for delete service health check objects"""
new_health_check = self._create_service_health_check()
with self.rbac_utils.override_role(self):
self.service_client.delete_service_health_check(
new_health_check['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_service_instances")
- @idempotent_id('1469c71e-f6f5-419f-9672-c3c67f879704')
+ rules=["create_service_instances"])
+ @decorators.idempotent_id('1469c71e-f6f5-419f-9672-c3c67f879704')
def test_create_service_instances(self):
- """
- test method for create service client objects
- """
+ """test method for create service client objects"""
with self.rbac_utils.override_role(self):
self._create_service_instance()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_service_instance")
- @idempotent_id('ea5b716d-5de8-4c71-becd-f1501c22f0df')
+ rules=["show_service_instance"])
+ @decorators.idempotent_id('ea5b716d-5de8-4c71-becd-f1501c22f0df')
def test_show_service_instance(self):
- """
- test method for show service client objects
- """
+ """test method for show service client objects"""
new_instance = self._create_service_instance()
with self.rbac_utils.override_role(self):
self.service_client.show_service_instance(
new_instance['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_service_instance")
- @idempotent_id('74934833-29cd-416b-a5a6-273f733d058a')
+ rules=["delete_service_instance"])
+ @decorators.idempotent_id('74934833-29cd-416b-a5a6-273f733d058a')
def test_delete_service_instance(self):
- """
- test method for delete service client objects
- """
+ """test method for delete service client objects"""
new_instance = self._create_service_instance()
with self.rbac_utils.override_role(self):
self.service_client.delete_service_instance(
new_instance['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_service_instances")
- @idempotent_id('da6016a3-a2a8-42a8-b064-c124c22fef6f')
+ rules=["list_service_instances"])
+ @decorators.idempotent_id('da6016a3-a2a8-42a8-b064-c124c22fef6f')
def test_list_service_instances(self):
- """
- test method for list service client objects
- """
+ """test method for list service client objects"""
with self.rbac_utils.override_role(self):
self.service_client.list_service_instances()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_service_instance")
- @idempotent_id('a6237b99-336b-42db-a8eb-9604a1b08fc6')
+ rules=["update_service_instance"])
+ @decorators.idempotent_id('a6237b99-336b-42db-a8eb-9604a1b08fc6')
def test_update_service_instance(self):
- """
- test method for update service client objects
- """
+ """test method for update service client objects"""
new_instance = self._create_service_instance()
update_name = data_utils.rand_name('test')
with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
index 233084e..3fa1304 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class SubnetContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test subnet objects using RBAC roles
- """
+ """Test class to test subnet objects using RBAC roles"""
def _create_subnet(self):
post_body = {
@@ -56,54 +51,44 @@
self.subnet_client.update_subnet(subnet_uuid, **put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_subnets")
- @idempotent_id('ddd1d9ae-cf2f-4a74-98ba-b0f481f27977')
+ rules=["list_subnets"])
+ @decorators.idempotent_id('ddd1d9ae-cf2f-4a74-98ba-b0f481f27977')
def test_list_subnets(self):
- """
- test method for list subnet objects
- """
+ """test method for list subnet objects"""
with self.rbac_utils.override_role(self):
self.subnet_client.list_subnets()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_subnets")
- @idempotent_id('ee0cb904-d162-44a4-b7b0-a7451f667ed5')
+ rules=["create_subnets"])
+ @decorators.idempotent_id('ee0cb904-d162-44a4-b7b0-a7451f667ed5')
def test_create_subnets(self):
- """
- test method for create subnet objects
- """
+ """test method for create subnet objects"""
with self.rbac_utils.override_role(self):
self._create_subnet()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_subnet")
- @idempotent_id('994618f2-5b40-460c-a6a8-6479bc15bf80')
+ rules=["show_subnet"])
+ @decorators.idempotent_id('994618f2-5b40-460c-a6a8-6479bc15bf80')
def test_show_subnet(self):
- """
- test method for show subnet objects
- """
+ """test method for show subnet objects"""
subnet_uuid = self._create_subnet()
with self.rbac_utils.override_role(self):
self.subnet_client.show_subnet(subnet_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_subnet")
- @idempotent_id('565e44c9-eb9b-4ae6-9ebb-db422a9751ee')
+ rules=["update_subnet"])
+ @decorators.idempotent_id('565e44c9-eb9b-4ae6-9ebb-db422a9751ee')
def test_update_subnet(self):
- """
- test method for update subnet objects
- """
+ """test method for update subnet objects"""
subnet_uuid = self._create_subnet()
with self.rbac_utils.override_role(self):
self._update_subnet(subnet_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_subnet")
- @idempotent_id('a733b913-7a88-45d9-ac0a-d858fa3dc662')
+ rules=["delete_subnet"])
+ @decorators.idempotent_id('a733b913-7a88-45d9-ac0a-d858fa3dc662')
def test_delete_subnet(self):
- """
- test method for delete subnet objects
- """
+ """test method for delete subnet objects"""
subnet_uuid = self._create_subnet()
with self.rbac_utils.override_role(self):
self.subnet_client.delete_subnet(subnet_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
index 6e75327..9bfd3ad 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
@@ -18,14 +18,12 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
@@ -33,10 +31,7 @@
# noinspection PyPep8Naming
class VirtualDNSTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test virtual dns objects using RBAC roles
- """
+ """Test class to test virtual dns objects using RBAC roles"""
def _create_virtual_dns(self):
parent_type = "domain"
@@ -77,56 +72,46 @@
return dns_record
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_virtual_DNSs")
- @idempotent_id('8401d690-afdf-4b6e-ad60-b9363a8cfb1d')
+ rules=["list_virtual_DNSs"])
+ @decorators.idempotent_id('8401d690-afdf-4b6e-ad60-b9363a8cfb1d')
def test_list_virtual_dns(self):
- """
- test method for list virtual dns objects
- """
+ """test method for list virtual dns objects"""
with self.rbac_utils.override_role(self):
self.virtual_dns_client.list_virtual_dns()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_virtual_DNSs")
- @idempotent_id('a7dd2c9e-e1eb-4dc4-ac70-4d48a291a3bf')
+ rules=["create_virtual_DNSs"])
+ @decorators.idempotent_id('a7dd2c9e-e1eb-4dc4-ac70-4d48a291a3bf')
def test_create_virtual_dns(self):
- """
- test method for create virtual dns objects
- """
+ """test method for create virtual dns objects"""
with self.rbac_utils.override_role(self):
self._create_virtual_dns()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_virtual_DNS")
- @idempotent_id('ffc0fc82-3bff-48ab-b65a-3d90b4a3154d')
+ rules=["show_virtual_DNS"])
+ @decorators.idempotent_id('ffc0fc82-3bff-48ab-b65a-3d90b4a3154d')
def test_show_virtual_dns(self):
- """
- test method for show virtual dns objects
- """
+ """test method for show virtual dns objects"""
dns = self._create_virtual_dns()
with self.rbac_utils.override_role(self):
self.virtual_dns_client.show_virtual_dns(
dns['virtual-DNS']['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_virtual_DNS")
- @idempotent_id('4793caa1-7707-4123-b1b4-c3feae91312f')
+ rules=["delete_virtual_DNS"])
+ @decorators.idempotent_id('4793caa1-7707-4123-b1b4-c3feae91312f')
def test_delete_virtual_dns(self):
- """
- test method for delete virtual dns objects
- """
+ """test method for delete virtual dns objects"""
dns = self._create_virtual_dns()
with self.rbac_utils.override_role(self):
self.virtual_dns_client.delete_virtual_dns(
dns['virtual-DNS']['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_virtual_DNS")
- @idempotent_id('2bc43935-57c1-4bf6-9868-78ccfce164bb')
+ rules=["update_virtual_DNS"])
+ @decorators.idempotent_id('2bc43935-57c1-4bf6-9868-78ccfce164bb')
def test_update_virtual_dns(self):
- """
- test method for update virtual dns objects
- """
+ """test method for update virtual dns objects"""
dns = self._create_virtual_dns()
virtual_dns_data = {"domain_name": "default-domain",
"default_ttl_seconds": 0,
@@ -139,34 +124,28 @@
display_name=display_name)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_virtual_DNS_records")
- @idempotent_id('e9103999-2f02-4f04-a8a0-906ca4fb394d')
+ rules=["list_virtual_DNS_records"])
+ @decorators.idempotent_id('e9103999-2f02-4f04-a8a0-906ca4fb394d')
def test_list_virtual_dns_records(self):
- """
- test method for list virtual dns record objects
- """
+ """test method for list virtual dns record objects"""
with self.rbac_utils.override_role(self):
self.virtual_dns_client.list_virtual_dns_records()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_virtual_DNS_records")
- @idempotent_id('bd9f3992-0ce4-4477-97a0-1271bc8ad9ef')
+ rules=["create_virtual_DNS_records"])
+ @decorators.idempotent_id('bd9f3992-0ce4-4477-97a0-1271bc8ad9ef')
def test_create_virtual_dns_records(self):
- """
- test method for create virtual dns record objects
- """
+ """test method for create virtual dns record objects"""
# A virtual DNS is needed to create a record
dns = self._create_virtual_dns()
with self.rbac_utils.override_role(self):
self._create_virtual_dns_record(dns)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_virtual_DNS_record")
- @idempotent_id('fa3d1a2b-d788-4623-89a4-3a9ed1db7a7d')
+ rules=["show_virtual_DNS_record"])
+ @decorators.idempotent_id('fa3d1a2b-d788-4623-89a4-3a9ed1db7a7d')
def test_show_virtual_dns_record(self):
- """
- test method for show virtual dns record objects
- """
+ """test method for show virtual dns record objects"""
# A virtual DNS is needed to create a record
dns = self._create_virtual_dns()
dns_record = self._create_virtual_dns_record(dns)
@@ -175,12 +154,10 @@
dns_record['virtual-DNS-record']['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_virtual_DNS_record")
- @idempotent_id('de31e867-c997-4b4c-a095-43c647f5c192')
+ rules=["delete_virtual_DNS_record"])
+ @decorators.idempotent_id('de31e867-c997-4b4c-a095-43c647f5c192')
def test_delete_virtual_dns_record(self):
- """
- test method for delete virtual dns record objects
- """
+ """test method for delete virtual dns record objects"""
# A virtual DNS is needed to create a record
dns = self._create_virtual_dns()
dns_record = self._create_virtual_dns_record(dns)
@@ -189,12 +166,10 @@
dns_record['virtual-DNS-record']['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_virtual_DNS_record")
- @idempotent_id('65acef26-646f-4b36-923c-8a1d07e90c5c')
+ rules=["update_virtual_DNS_record"])
+ @decorators.idempotent_id('65acef26-646f-4b36-923c-8a1d07e90c5c')
def test_update_virtual_dns_record(self):
- """
- test method for update virtual dns record objects
- """
+ """test method for update virtual dns record objects"""
# A virtual DNS is needed to create a record
dns = self._create_virtual_dns()
dns_record = self._create_virtual_dns_record(dns)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
index d8268f8..27f6775 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class VirtualIPTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test virtual ip objects using RBAC roles
- """
+ """Test class to test virtual ip objects using RBAC roles"""
def _create_virtual_ip(self):
fq_name = data_utils.rand_name('virtual_ip')
@@ -57,54 +52,44 @@
self.virtual_ip_client.update_virtual_ip(virtual_ip_uuid, **put_body)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_virtual_ips")
- @idempotent_id('92303eee-bd96-48bc-a02c-39950bd19a21')
+ rules=["list_virtual_ips"])
+ @decorators.idempotent_id('92303eee-bd96-48bc-a02c-39950bd19a21')
def test_list_virtual_ips(self):
- """
- test method for list virtual ip objects
- """
+ """test method for list virtual ip objects"""
with self.rbac_utils.override_role(self):
self.virtual_ip_client.list_virtual_ips()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_virtual_ips")
- @idempotent_id('e0070888-995d-46ab-91fc-db1412eba2f7')
+ rules=["create_virtual_ips"])
+ @decorators.idempotent_id('e0070888-995d-46ab-91fc-db1412eba2f7')
def test_create_virtual_ips(self):
- """
- test method for create virtual ip objects
- """
+ """test method for create virtual ip objects"""
with self.rbac_utils.override_role(self):
self._create_virtual_ip()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_virtual_ip")
- @idempotent_id('2a4b3abd-c6f7-4d82-aa31-02e53d2a8fb9')
+ rules=["show_virtual_ip"])
+ @decorators.idempotent_id('2a4b3abd-c6f7-4d82-aa31-02e53d2a8fb9')
def test_show_virtual_ip(self):
- """
- test method for show virtual ip objects
- """
+ """test method for show virtual ip objects"""
virtual_ip_uuid = self._create_virtual_ip()
with self.rbac_utils.override_role(self):
self.virtual_ip_client.show_virtual_ip(virtual_ip_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_virtual_ip")
- @idempotent_id('0e975c92-62dc-4e6e-82cc-8cf37da3c5b2')
+ rules=["update_virtual_ip"])
+ @decorators.idempotent_id('0e975c92-62dc-4e6e-82cc-8cf37da3c5b2')
def test_update_virtual_ip(self):
- """
- test method for update virtual ip objects
- """
+ """test method for update virtual ip objects"""
virtual_ip_uuid = self._create_virtual_ip()
with self.rbac_utils.override_role(self):
self._update_virtual_ip(virtual_ip_uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_virtual_ip")
- @idempotent_id('fd0b2635-36bd-4345-97b7-9c0a57372eba')
+ rules=["delete_virtual_ip"])
+ @decorators.idempotent_id('fd0b2635-36bd-4345-97b7-9c0a57372eba')
def test_delete_virtual_ip(self):
- """
- test method for delete virtual ip objects
- """
+ """test method for delete virtual ip objects"""
virtual_ip_uuid = self._create_virtual_ip()
with self.rbac_utils.override_role(self):
self.virtual_ip_client.delete_virtual_ip(virtual_ip_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
index d69a32e..94abb45 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
LOG = logging.getLogger(__name__)
CONF = config.CONF
class VMContrailTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test vm objects using RBAC roles
- """
+ """Test class to test vm objects using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -65,10 +60,10 @@
'uuid': cls.ipam['uuid'],
'attr': {
'ipam_subnets': [{'subnet': subnet_ip_prefix}]
- }
}
- ]
- }
+ }
+ ]
+ }
body = cls.vn_client.create_virtual_networks(**post_body)
cls.network = body['virtual-network']
@@ -104,55 +99,45 @@
super(VMContrailTest, cls).resource_cleanup()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_virtual_machine_interfaces")
- @idempotent_id('e27d1fae-7324-4ef3-87b1-e7f519b1e2a7')
+ rules=["list_virtual_machine_interfaces"])
+ @decorators.idempotent_id('e27d1fae-7324-4ef3-87b1-e7f519b1e2a7')
def test_list_vm_interfaces(self):
- """
- test method for list vm interfaces objects
- """
+ """test method for list vm interfaces objects"""
self._create_virual_machine_interface()
with self.rbac_utils.override_role(self):
self.vm_client.list_virtual_machine_interfaces()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_virtual_machine_interfaces")
- @idempotent_id('d8a3a524-d61b-4bcb-8146-c5d4f308df8e')
+ rules=["create_virtual_machine_interfaces"])
+ @decorators.idempotent_id('d8a3a524-d61b-4bcb-8146-c5d4f308df8e')
def test_add_vm_interfaces(self):
- """
- test method for add vm interfaces objects
- """
+ """test method for add vm interfaces objects"""
with self.rbac_utils.override_role(self):
self._create_virual_machine_interface()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_virtual_machine_interface")
- @idempotent_id('3f17125a-9060-4c4a-a23f-0fe2aba2ccef')
+ rules=["show_virtual_machine_interface"])
+ @decorators.idempotent_id('3f17125a-9060-4c4a-a23f-0fe2aba2ccef')
def test_show_vm_interface(self):
- """
- test method for show vm interfaces objects
- """
+ """test method for show vm interfaces objects"""
test = self._create_virual_machine_interface()
with self.rbac_utils.override_role(self):
self.vm_client.show_virtual_machine_interface(test['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_virtual_machine_interface")
- @idempotent_id('ce7f9471-ba1b-40d2-94f1-bdd0c610e22f')
+ rules=["delete_virtual_machine_interface"])
+ @decorators.idempotent_id('ce7f9471-ba1b-40d2-94f1-bdd0c610e22f')
def test_delete_vm_interface(self):
- """
- test method for delete vm interfaces objects
- """
+ """test method for delete vm interfaces objects"""
body = self._create_virual_machine_interface()
with self.rbac_utils.override_role(self):
self.vm_client.delete_vm_interface(body['uuid'])
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_virtual_machine_interface")
- @idempotent_id('7ca3046a-6245-4c15-914b-5a8ecdbeee11')
+ rules=["update_virtual_machine_interface"])
+ @decorators.idempotent_id('7ca3046a-6245-4c15-914b-5a8ecdbeee11')
def test_update_vm_interface(self):
- """
- test method for update vm interfaces objects
- """
+ """test method for update vm interfaces objects"""
virtual_machine = self._create_virual_machine_interface()
display_name = data_utils.rand_name('new-vitual-machine-inf-name')
with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
index 4475e7b..64130dc 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
@@ -18,24 +18,19 @@
"""
from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
from patrole_tempest_plugin import rbac_rule_validation
-
from tempest import config
from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
CONF = config.CONF
LOG = logging.getLogger(__name__)
class NetworksTest(rbac_base.BaseContrailTest):
-
- """
- Test class to test vm network using RBAC roles
- """
+ """Test class to test vm network using RBAC roles"""
@classmethod
def resource_setup(cls):
@@ -71,32 +66,26 @@
return network
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="list_virtual_networks")
- @idempotent_id('375ebc8d-dc52-4d9c-877b-85aba35b1539')
+ rules=["list_virtual_networks"])
+ @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-85aba35b1539')
def test_list_virtual_networks(self):
- """
- test method for list vm network objects
- """
+ """test method for list vm network objects"""
with self.rbac_utils.override_role(self):
self.vn_client.list_virtual_networks()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="create_virtual_networks")
- @idempotent_id('375ebc8d-dc52-4d9c-877b-96aba35b2530')
+ rules=["create_virtual_networks"])
+ @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-96aba35b2530')
def test_create_virtual_networks(self):
- """
- test method for create vm network objects
- """
+ """test method for create vm network objects"""
with self.rbac_utils.override_role(self):
self._create_virtual_network()
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="update_virtual_network")
- @idempotent_id('375ebc8d-dc52-4d9c-566b-150a025c1237')
+ rules=["update_virtual_network"])
+ @decorators.idempotent_id('375ebc8d-dc52-4d9c-566b-150a025c1237')
def test_update_virtual_network(self):
- """
- test method for update vm network objects
- """
+ """test method for update vm network objects"""
# Create virtual network
uuid = self._create_virtual_network()['uuid']
with self.rbac_utils.override_role(self):
@@ -104,23 +93,19 @@
uuid, router_external=False)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="delete_virtual_network")
- @idempotent_id('375ebc8d-dc52-4d9c-877b-17bcb53c3641')
+ rules=["delete_virtual_network"])
+ @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-17bcb53c3641')
def test_delete_virtual_network(self):
- """
- test method for delete vm network objects
- """
+ """test method for delete vm network objects"""
uuid = self._create_virtual_network()['uuid']
with self.rbac_utils.override_role(self):
self.vn_client.delete_virtual_network(uuid)
@rbac_rule_validation.action(service=CONF.sdn.service_name,
- rule="show_virtual_network")
- @idempotent_id('375ebc8d-dc52-4d9c-877b-27c1a1242a81')
+ rules=["show_virtual_network"])
+ @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-27c1a1242a81')
def test_show_virtual_network(self):
- """
- test method for show vm network objects
- """
+ """test method for show vm network objects"""
uuid = self._create_virtual_network()['uuid']
with self.rbac_utils.override_role(self):
self.vn_client.show_virtual_network(uuid)