Update app Zuul Check Jobs.
Modify code to conform to flake8 and pylint. Jobs are now flake8, pylint, py39 and metadata. Test Plan PASS - All zuul jobs pass as expected. Story: 2010929 Task: 49246 Change-Id: Ied873e816e4c6462afdf324ecfb9a80810144e50 Signed-off-by: Reed, Joshua <Joshua.Reed@windriver.com>
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
.tox
|
||||||
|
venv/
|
64
.zuul.yaml
64
.zuul.yaml
@@ -3,13 +3,77 @@
|
|||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
- openstack-tox-linters
|
- openstack-tox-linters
|
||||||
|
- k8sapp-harbor-pylint
|
||||||
|
- k8sapp-harbor-flake8
|
||||||
|
- k8sapp-harbor-tox-metadata
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- openstack-tox-linters
|
- openstack-tox-linters
|
||||||
|
- k8sapp-harbor-pylint
|
||||||
|
- k8sapp-harbor-flake8
|
||||||
|
- k8sapp-harbor-tox-metadata
|
||||||
post:
|
post:
|
||||||
jobs:
|
jobs:
|
||||||
- stx-harbor-app-upload-git-mirror
|
- stx-harbor-app-upload-git-mirror
|
||||||
|
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: k8sapp-harbor-tox-metadata
|
||||||
|
parent: tox
|
||||||
|
description: |
|
||||||
|
Run metadata test for k8sapp_harbor
|
||||||
|
nodeset: debian-bullseye
|
||||||
|
required-projects:
|
||||||
|
- starlingx/config
|
||||||
|
- starlingx/fault
|
||||||
|
- starlingx/update
|
||||||
|
- starlingx/utilities
|
||||||
|
- starlingx/root
|
||||||
|
files:
|
||||||
|
- python3-k8sapp-harbor/*
|
||||||
|
vars:
|
||||||
|
tox_envlist: metadata
|
||||||
|
tox_extra_args: -c python3-k8sapp-harbor/k8sapp_harbor/tox.ini
|
||||||
|
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/starlingx/root/build-tools/requirements/debian/upper-constraints.txt'
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: k8sapp-harbor-pylint
|
||||||
|
parent: tox
|
||||||
|
description: |
|
||||||
|
Run pylint test for k8sapp_harbor
|
||||||
|
nodeset: debian-bullseye
|
||||||
|
required-projects:
|
||||||
|
- starlingx/config
|
||||||
|
- starlingx/fault
|
||||||
|
- starlingx/update
|
||||||
|
- starlingx/utilities
|
||||||
|
- starlingx/root
|
||||||
|
files:
|
||||||
|
- python3-k8sapp-harbor/*
|
||||||
|
vars:
|
||||||
|
tox_envlist: pylint
|
||||||
|
tox_extra_args: -c python3-k8sapp-harbor/k8sapp_harbor/tox.ini
|
||||||
|
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/starlingx/root/build-tools/requirements/debian/upper-constraints.txt'
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: k8sapp-harbor-flake8
|
||||||
|
parent: tox
|
||||||
|
description: |
|
||||||
|
Run flake8 test for k8sapp_harbor
|
||||||
|
nodeset: debian-bullseye
|
||||||
|
required-projects:
|
||||||
|
- starlingx/config
|
||||||
|
- starlingx/fault
|
||||||
|
- starlingx/update
|
||||||
|
- starlingx/utilities
|
||||||
|
- starlingx/root
|
||||||
|
files:
|
||||||
|
- python3-k8sapp-harbor/*
|
||||||
|
vars:
|
||||||
|
tox_envlist: flake8
|
||||||
|
tox_extra_args: -c python3-k8sapp-harbor/k8sapp_harbor/tox.ini
|
||||||
|
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/starlingx/root/build-tools/requirements/debian/upper-constraints.txt'
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: stx-harbor-app-upload-git-mirror
|
name: stx-harbor-app-upload-git-mirror
|
||||||
parent: upload-git-mirror
|
parent: upload-git-mirror
|
||||||
|
35
python3-k8sapp-harbor/k8sapp_harbor/.gitignore
vendored
Normal file
35
python3-k8sapp-harbor/k8sapp_harbor/.gitignore
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Compiled files
|
||||||
|
*.py[co]
|
||||||
|
*.a
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Sphinx
|
||||||
|
_build
|
||||||
|
doc/source/api/
|
||||||
|
|
||||||
|
# Packages/installer info
|
||||||
|
*.egg
|
||||||
|
*.egg-info
|
||||||
|
dist
|
||||||
|
build
|
||||||
|
eggs
|
||||||
|
parts
|
||||||
|
var
|
||||||
|
sdist
|
||||||
|
develop-eggs
|
||||||
|
.installed.cfg
|
||||||
|
|
||||||
|
# Other
|
||||||
|
*.DS_Store
|
||||||
|
.stestr
|
||||||
|
.testrepository
|
||||||
|
.tox
|
||||||
|
.venv
|
||||||
|
.*.swp
|
||||||
|
.coverage
|
||||||
|
bandit.xml
|
||||||
|
cover
|
||||||
|
AUTHORS
|
||||||
|
ChangeLog
|
||||||
|
*.sqlite
|
@@ -1,4 +1,3 @@
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
test_path=./k8sapp_harbor/tests
|
test_path=./k8sapp_harbor/tests
|
||||||
top_dir=./k8sapp_harbor
|
top_dir=./k8sapp_harbor
|
||||||
#parallel_class=True
|
|
||||||
|
@@ -3,16 +3,16 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
from sysinv.common import constants
|
||||||
from sysinv.common import exception
|
from sysinv.common import exception
|
||||||
from sysinv.helm import base
|
from sysinv.helm import base
|
||||||
from sysinv.common import constants
|
|
||||||
|
|
||||||
from k8sapp_harbor.common import constants as app_constants
|
from k8sapp_harbor.common import constants as app_constants
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class HarborHelm(base.BaseHelm):
|
class HarborHelm(base.BaseHelm):
|
||||||
"""Class to encapsulate helm operations for the harbor chart"""
|
"""Class to encapsulate helm operations for the harbor chart"""
|
||||||
|
|
||||||
@@ -32,8 +32,8 @@ class HarborHelm(base.BaseHelm):
|
|||||||
return self.SUPPORTED_NAMESPACES
|
return self.SUPPORTED_NAMESPACES
|
||||||
|
|
||||||
def get_master_worker_host_count(self):
|
def get_master_worker_host_count(self):
|
||||||
controller=len(self.dbapi.ihost_get_by_personality(constants.CONTROLLER))
|
controller = len(self.dbapi.ihost_get_by_personality(constants.CONTROLLER))
|
||||||
worker=len(self.dbapi.ihost_get_by_personality(constants.WORKER))
|
worker = len(self.dbapi.ihost_get_by_personality(constants.WORKER))
|
||||||
return controller+worker
|
return controller+worker
|
||||||
|
|
||||||
def get_overrides(self, namespace=None):
|
def get_overrides(self, namespace=None):
|
||||||
@@ -67,31 +67,31 @@ class HarborHelm(base.BaseHelm):
|
|||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
overrides = {
|
overrides = {
|
||||||
app_constants.HELM_NS_HARBOR: {
|
app_constants.HELM_NS_HARBOR: {
|
||||||
'core': {
|
'core': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
'portal': {
|
'portal': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
'notary': {
|
'notary': {
|
||||||
'server': {
|
'server': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
'signer':{
|
'signer': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'jobservice': {
|
'jobservice': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
'registry': {
|
'registry': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
'trivy': {
|
'trivy': {
|
||||||
'replicas': 1,
|
'replicas': 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if namespace in self.SUPPORTED_NAMESPACES:
|
if namespace in self.SUPPORTED_NAMESPACES:
|
||||||
@@ -101,4 +101,3 @@ class HarborHelm(base.BaseHelm):
|
|||||||
namespace=namespace)
|
namespace=namespace)
|
||||||
else:
|
else:
|
||||||
return overrides
|
return overrides
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
""" System inventory App lifecycle operator."""
|
""" System inventory App lifecycle operator."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import yaml
|
||||||
|
|
||||||
from k8sapp_harbor.common import constants as app_constants
|
from k8sapp_harbor.common import constants as app_constants
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
@@ -17,9 +18,7 @@ from sysinv.common import exception
|
|||||||
from sysinv.common import kubernetes
|
from sysinv.common import kubernetes
|
||||||
from sysinv.common import utils as cutils
|
from sysinv.common import utils as cutils
|
||||||
from sysinv.helm import lifecycle_base as base
|
from sysinv.helm import lifecycle_base as base
|
||||||
from sysinv.helm.lifecycle_hook import LifecycleHookInfo
|
|
||||||
from sysinv.helm.lifecycle_constants import LifecycleConstants
|
from sysinv.helm.lifecycle_constants import LifecycleConstants
|
||||||
import yaml
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -165,4 +164,3 @@ class HarborAppLifecycleOperator(base.AppLifecycleOperator):
|
|||||||
namespace=app_constants.HELM_NS_HARBOR,
|
namespace=app_constants.HELM_NS_HARBOR,
|
||||||
grace_periods_seconds=0
|
grace_periods_seconds=0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -11,10 +11,9 @@ from sysinv.tests.helm import base
|
|||||||
|
|
||||||
|
|
||||||
class HarborTestCase(test_plugins.K8SAppHarborAppMixin,
|
class HarborTestCase(test_plugins.K8SAppHarborAppMixin,
|
||||||
base.HelmTestCaseMixin):
|
base.HelmTestCaseMixin):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(HarborTestCase, self).setUp()
|
super(HarborTestCase, self).setUp()
|
||||||
self.app = dbutils.create_test_app(name='harbor')
|
self.app = dbutils.create_test_app(name='harbor')
|
||||||
self.dbapi = dbapi.get_instance()
|
self.dbapi = dbapi.get_instance()
|
||||||
|
|
||||||
|
@@ -23,9 +23,9 @@ class K8SAppHarborAppMixin(object):
|
|||||||
# - Ceph Storage
|
# - Ceph Storage
|
||||||
# - harbor app
|
# - harbor app
|
||||||
class K8SAppHarborControllerTestCase(K8SAppHarborAppMixin,
|
class K8SAppHarborControllerTestCase(K8SAppHarborAppMixin,
|
||||||
dbbase.BaseIPv6Mixin,
|
dbbase.BaseIPv6Mixin,
|
||||||
dbbase.BaseCephStorageBackendMixin,
|
dbbase.BaseCephStorageBackendMixin,
|
||||||
dbbase.ControllerHostTestCase):
|
dbbase.ControllerHostTestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@@ -35,7 +35,6 @@ class K8SAppHarborControllerTestCase(K8SAppHarborAppMixin,
|
|||||||
# - Ceph Storage
|
# - Ceph Storage
|
||||||
# - harbor app
|
# - harbor app
|
||||||
class K8SAppHarborAIOTestCase(K8SAppHarborAppMixin,
|
class K8SAppHarborAIOTestCase(K8SAppHarborAppMixin,
|
||||||
dbbase.BaseCephStorageBackendMixin,
|
dbbase.BaseCephStorageBackendMixin,
|
||||||
dbbase.AIOSimplexHostTestCase):
|
dbbase.AIOSimplexHostTestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@ rcfile=pylint.rc
|
|||||||
#init-hook=
|
#init-hook=
|
||||||
|
|
||||||
# Add files or directories to the blacklist. Should be base names, not paths.
|
# Add files or directories to the blacklist. Should be base names, not paths.
|
||||||
ignore=tests
|
ignore=
|
||||||
|
|
||||||
# Pickle collected data for later comparisons.
|
# Pickle collected data for later comparisons.
|
||||||
persistent=yes
|
persistent=yes
|
||||||
@@ -31,115 +31,135 @@ extension-pkg-whitelist=lxml.etree,greenlet
|
|||||||
|
|
||||||
|
|
||||||
[MESSAGES CONTROL]
|
[MESSAGES CONTROL]
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# Python3 checker:
|
|
||||||
#
|
|
||||||
# E1601: print-statement
|
|
||||||
# E1602: parameter-unpacking
|
|
||||||
# E1603: unpacking-in-except
|
|
||||||
# E1604: old-raise-syntax
|
|
||||||
# E1605: backtick
|
|
||||||
# E1606: long-suffix
|
|
||||||
# E1607: old-ne-operator
|
|
||||||
# E1608: old-octal-literal
|
|
||||||
# E1609: import-star-module-level
|
|
||||||
# E1610: non-ascii-bytes-literal
|
|
||||||
# E1611: invalid-unicode-literal
|
|
||||||
# W1601: apply-builtin
|
|
||||||
# W1602: basestring-builtin
|
|
||||||
# W1603: buffer-builtin
|
|
||||||
# W1604: cmp-builtin
|
|
||||||
# W1605: coerce-builtin
|
|
||||||
# W1606: execfile-builtin
|
|
||||||
# W1607: file-builtin
|
|
||||||
# W1608: long-builtin
|
|
||||||
# W1609: raw_input-builtin
|
|
||||||
# W1610: reduce-builtin
|
|
||||||
# W1611: standarderror-builtin
|
|
||||||
# W1612: unicode-builtin
|
|
||||||
# W1613: xrange-builtin
|
|
||||||
# W1614: coerce-method
|
|
||||||
# W1615: delslice-method
|
|
||||||
# W1616: getslice-method
|
|
||||||
# W1617: setslice-method
|
|
||||||
# W1618: no-absolute-import
|
|
||||||
# W1619: old-division
|
|
||||||
# W1620: dict-iter-method
|
|
||||||
# W1621: dict-view-method
|
|
||||||
# W1622: next-method-called
|
|
||||||
# W1623: metaclass-assignment
|
|
||||||
# W1624: indexing-exception
|
|
||||||
# W1625: raising-string
|
|
||||||
# W1626: reload-builtin
|
|
||||||
# W1627: oct-method
|
|
||||||
# W1628: hex-method
|
|
||||||
# W1629: nonzero-method
|
|
||||||
# W1630: cmp-method
|
|
||||||
# W1632: input-builtin
|
|
||||||
# W1633: round-builtin
|
|
||||||
# W1634: intern-builtin
|
|
||||||
# W1635: unichr-builtin
|
|
||||||
# W1636: map-builtin-not-iterating
|
|
||||||
# W1637: zip-builtin-not-iterating
|
|
||||||
# W1638: range-builtin-not-iterating
|
|
||||||
# W1639: filter-builtin-not-iterating
|
|
||||||
# W1640: using-cmp-argument
|
|
||||||
# W1641: eq-without-hash
|
|
||||||
# W1642: div-method
|
|
||||||
# W1643: idiv-method
|
|
||||||
# W1644: rdiv-method
|
|
||||||
# W1645: exception-message-attribute
|
|
||||||
# W1646: invalid-str-codec
|
|
||||||
# W1647: sys-max-int
|
|
||||||
# W1648: bad-python3-import
|
|
||||||
# W1649: deprecated-string-function
|
|
||||||
# W1650: deprecated-str-translate-call
|
|
||||||
# W1651: deprecated-itertools-function
|
|
||||||
# W1652: deprecated-types-field
|
|
||||||
# W1653: next-method-defined
|
|
||||||
# W1654: dict-items-not-iterating
|
|
||||||
# W1655: dict-keys-not-iterating
|
|
||||||
# W1656: dict-values-not-iterating
|
|
||||||
# W1657: deprecated-operator-function
|
|
||||||
# W1658: deprecated-urllib-function
|
|
||||||
# W1659: xreadlines-attribute
|
|
||||||
# W1660: deprecated-sys-function
|
|
||||||
# W1661: exception-escape
|
|
||||||
# W1662: comprehension-escape
|
|
||||||
enable=E1603,E1609,E1610,E1602,E1606,E1608,E1607,E1605,E1604,E1601,E1611,W1652,
|
|
||||||
W1651,W1649,W1657,W1660,W1658,W1659,W1623,W1622,W1620,W1621,W1645,W1641,
|
|
||||||
W1624,W1648,W1625,W1611,W1662,W1661,W1650,W1640,W1630,W1614,W1615,W1642,
|
|
||||||
W1616,W1628,W1643,W1629,W1627,W1644,W1617,W1601,W1602,W1603,W1604,W1605,
|
|
||||||
W1654,W1655,W1656,W1619,W1606,W1607,W1639,W1618,W1632,W1634,W1608,W1636,
|
|
||||||
W1653,W1646,W1638,W1609,W1610,W1626,W1633,W1647,W1635,W1612,W1613,W1637
|
|
||||||
|
|
||||||
# Disable the message, report, category or checker with the given id(s). You
|
# Disable the message, report, category or checker with the given id(s). You
|
||||||
# can either give multiple identifier separated by comma (,) or put this option
|
# can either give multiple identifier separated by comma (,) or put this option
|
||||||
# multiple time (only on the command line, not in the configuration file where
|
# multiple time (only on the command line, not in the configuration file where
|
||||||
# it should appear only once).
|
# it should appear only once).
|
||||||
# See "Messages Control" section of
|
# See "Messages Control" section of
|
||||||
# https://pylint.readthedocs.io/en/latest/user_guide
|
# https://pylint.readthedocs.io/en/latest/user_guide
|
||||||
# We are disabling (C)onvention
|
disable=
|
||||||
# We are disabling (R)efactor
|
# C codes refer to Convention
|
||||||
# W0212: protected-access
|
C0103, # invalid-name
|
||||||
# W1618: no-absolute-import
|
C0104, # disallowed-nameA
|
||||||
disable=C, R, W0212, W1618
|
C0112, # empty-docstring
|
||||||
|
C0114, # missing-module-docstring
|
||||||
|
C0115, # missing-class-docstring
|
||||||
|
C0116, # missing-function-docstring
|
||||||
|
C0123, # unidiomatic-typecheck !!!
|
||||||
|
C0201, # consider-iterating-dictionary
|
||||||
|
C0202, # bad-classmethod-argument
|
||||||
|
C0206, # consider-using-dict-items
|
||||||
|
C0207, # use-maxsplit-arg
|
||||||
|
C0209, # consider-using-f-string
|
||||||
|
C0301, # line-too-long
|
||||||
|
C0302, # too-many-lines
|
||||||
|
C0325, # superfluous-parens
|
||||||
|
C0411, # wrong-import-order
|
||||||
|
C0412, # ungrouped-imports
|
||||||
|
C0413, # wrong-import-position
|
||||||
|
C0414, # useless-import-alias !!!
|
||||||
|
C0415, # import-outside-toplevel
|
||||||
|
C1802, # use-implicit-booleaness-not-len !!!
|
||||||
|
C2801, # unnecessary-dunder-call !!!
|
||||||
|
C3002, # unnecessary-direct-lambda-call !!!
|
||||||
|
# R codes refer to refactoring
|
||||||
|
R0022, # useless-option-value !!!
|
||||||
|
R0205, # useless-object-inheritance
|
||||||
|
R0402, # consider-using-from-import
|
||||||
|
R0901, # too-many-ancestors
|
||||||
|
R0902, # too-many-instance-attributes
|
||||||
|
R0903, # too-few-public-methods
|
||||||
|
R0904, # too-many-public-methods
|
||||||
|
R0911, # too-many-return-statements
|
||||||
|
R0912, # too-many-branches
|
||||||
|
R0913, # too-many-arguments
|
||||||
|
R0914, # too-many-locals
|
||||||
|
R0915, # too-many-statements
|
||||||
|
R0916, # too-many-boolean-expressions
|
||||||
|
R1702, # too-many-nested-blocks
|
||||||
|
R1703, # simplifiable-if-statement
|
||||||
|
R1704, # redefined-argument-from-local !!!
|
||||||
|
R1705, # no-else-return
|
||||||
|
R1707, # trailing-comma-tuple !!!
|
||||||
|
R1708, # stop-iteration-return !!!
|
||||||
|
R1710, # inconsistent-return-statements
|
||||||
|
R1711, # useless-return
|
||||||
|
R1714, # consider-using-in
|
||||||
|
R1717, # consider-using-dict-comprehension !!!
|
||||||
|
R1718, # consider-using-set-comprehension
|
||||||
|
R1719, # simplifiable-if-expression
|
||||||
|
R1720, # no-else-raise
|
||||||
|
R1721, # unnecessary-comprehension
|
||||||
|
R1722, # consider-using-sys-exit !!!
|
||||||
|
R1723, # no-else-break
|
||||||
|
R1724, # no-else-continue
|
||||||
|
R1725, # super-with-arguments
|
||||||
|
R1726, # simplifiable-condition !!!
|
||||||
|
R1728, # consider-using-generator
|
||||||
|
R1729, # use-a-generator
|
||||||
|
R1730, # consider-using-min-builtin !!!
|
||||||
|
R1731, # consider-using-max-builtin !!!
|
||||||
|
R1732, # consider-using-with
|
||||||
|
R1733, # unnecessary-dict-index-lookup !!
|
||||||
|
R1734, # use-list-literal
|
||||||
|
R1735, # use-dict-literal
|
||||||
|
# W codes are warnings
|
||||||
|
W0101, # unreachable
|
||||||
|
W0105, # pointless-string-statement
|
||||||
|
W0106, # expression-not-assigned
|
||||||
|
W0107, # unnecessary-pass
|
||||||
|
W0108, # unnecessary-lambda
|
||||||
|
W0109, # duplicate-key !!!
|
||||||
|
W0123, # eval-used
|
||||||
|
W0125, # using-constant-test !!!
|
||||||
|
W0133, # pointless-exception-statement !!!
|
||||||
|
W0143, # comparison-with-callable !!!
|
||||||
|
W0150, # lost-exception
|
||||||
|
W0201, # attribute-defined-outside-init
|
||||||
|
W0211, # bad-staticmethod-argument
|
||||||
|
W0212, # protected-access
|
||||||
|
W0221, # arguments-differ
|
||||||
|
W0223, # abstract-method
|
||||||
|
W0231, # super-init-not-called
|
||||||
|
W0235, # useless-super-delegation
|
||||||
|
W0237, # arguments-renamed !!!
|
||||||
|
W0311, # bad-indentation
|
||||||
|
W0402, # deprecated-module
|
||||||
|
W0404, # reimported
|
||||||
|
W0511, # fixme
|
||||||
|
W0602, # global-variable-not-assigned !!!
|
||||||
|
W0603, # global-statement
|
||||||
|
W0612, # unused-variable
|
||||||
|
W0613, # unused-argument
|
||||||
|
W0621, # redefined-outer-name
|
||||||
|
W0622, # redefined-builtin
|
||||||
|
W0631, # undefined-loop-variable
|
||||||
|
W0703, # broad-except (pylint 2.16 renamed to broad-except-caught)
|
||||||
|
W0706, # try-except-raise
|
||||||
|
W0707, # raise-missing-from
|
||||||
|
W0719, # broad-exception-raised
|
||||||
|
W1113, # keyword-arg-before-vararg
|
||||||
|
W1310, # format-string-without-interpolation !!!
|
||||||
|
W1401, # anomalous-backslash-in-string
|
||||||
|
W1406, # redundant-u-string-prefix
|
||||||
|
W1505, # deprecated-method
|
||||||
|
W1514, # unspecified-encoding
|
||||||
|
W3101, # missing-timeout
|
||||||
|
E0601, # used-before-assignment !!!
|
||||||
|
E0605, # invalid-all-format !!!
|
||||||
|
E1101, # no-member
|
||||||
|
E1111, # assignment-from-no-return
|
||||||
|
E1121, # too-many-function-args !!!
|
||||||
|
E1123, # unexpected-keyword-arg !!!
|
||||||
|
E1136, # unsubscriptable-object !!!
|
||||||
|
|
||||||
[REPORTS]
|
[REPORTS]
|
||||||
# Set the output format. Available formats are text, parseable, colorized, msvs
|
# Set the output format. Available formats are text, parseable, colorized, msvs
|
||||||
# (visual studio) and html
|
# (visual studio) and html
|
||||||
output-format=text
|
output-format=text
|
||||||
|
|
||||||
# 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
|
# Tells whether to display a full report or only the messages
|
||||||
reports=yes
|
reports=no
|
||||||
|
|
||||||
# Python expression which should return a note less than 10 (10 is the highest
|
# 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
|
# note). You have access to the variables errors warning, statement which
|
||||||
@@ -196,9 +216,6 @@ generated-members=REQUEST,acl_users,aq_parent
|
|||||||
|
|
||||||
|
|
||||||
[BASIC]
|
[BASIC]
|
||||||
# List of builtins function names that should not be used, separated by a comma
|
|
||||||
bad-functions=map,filter,apply,input
|
|
||||||
|
|
||||||
# Regular expression which should only match correct module names
|
# Regular expression which should only match correct module names
|
||||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||||
|
|
||||||
@@ -288,7 +305,7 @@ max-locals=15
|
|||||||
max-returns=6
|
max-returns=6
|
||||||
|
|
||||||
# Maximum number of branch for function / method body
|
# Maximum number of branch for function / method body
|
||||||
max-branchs=12
|
max-branches=12
|
||||||
|
|
||||||
# Maximum number of statements in function / method body
|
# Maximum number of statements in function / method body
|
||||||
max-statements=50
|
max-statements=50
|
||||||
@@ -315,6 +332,5 @@ valid-classmethod-first-arg=cls
|
|||||||
|
|
||||||
|
|
||||||
[EXCEPTIONS]
|
[EXCEPTIONS]
|
||||||
# Exceptions that will emit a warning when being caught. Defaults to
|
# Exceptions that will emit a warning when caught.
|
||||||
# "Exception"
|
overgeneral-exceptions=builtins.BaseException,builtins.Exception
|
||||||
overgeneral-exceptions=Exception
|
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
pbr>=2.0.0
|
pbr>=2.0.0
|
||||||
PyYAML==3.10
|
PyYAML>=3.10
|
||||||
|
@@ -1,26 +1,20 @@
|
|||||||
# The order of packages is significant, because pip processes them in the order
|
# 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
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
# process, which may cause wedges in the gate later.
|
# process, which may cause wedges in the gate later.
|
||||||
flake8<3.8.0
|
|
||||||
pycodestyle<2.6.0 # MIT License
|
|
||||||
hacking>=1.1.0,<=2.0.0 # Apache-2.0
|
hacking>=1.1.0,<=2.0.0 # Apache-2.0
|
||||||
|
astroid
|
||||||
|
bandit<1.7.2;python_version>="3.0"
|
||||||
coverage>=3.6
|
coverage>=3.6
|
||||||
discover
|
|
||||||
fixtures>=3.0.0 # Apache-2.0/BSD
|
fixtures>=3.0.0 # Apache-2.0/BSD
|
||||||
mock>=2.0.0 # BSD
|
mock>=2.0.0 # BSD
|
||||||
passlib>=1.7.0
|
|
||||||
psycopg2-binary
|
|
||||||
python-subunit>=0.0.18
|
python-subunit>=0.0.18
|
||||||
requests-mock>=0.6.0 # Apache-2.0
|
requests-mock>=0.6.0 # Apache-2.0
|
||||||
|
sphinx
|
||||||
|
oslosphinx
|
||||||
oslotest>=3.2.0 # Apache-2.0
|
oslotest>=3.2.0 # Apache-2.0
|
||||||
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
|
|
||||||
oslosphinx<2.6.0,>=2.5.0 # Apache-2.0
|
|
||||||
stestr>=1.0.0 # Apache-2.0
|
stestr>=1.0.0 # Apache-2.0
|
||||||
testrepository>=0.0.18
|
testrepository>=0.0.18
|
||||||
testtools!=1.2.0,>=0.9.36
|
testtools!=1.2.0,>=0.9.36
|
||||||
tempest-lib<0.5.0,>=0.4.0
|
isort<5;python_version>="3.0"
|
||||||
ipaddr
|
pylint
|
||||||
pytest
|
pycryptodomex
|
||||||
pyudev
|
|
||||||
migrate
|
|
||||||
markupsafe
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
[tox]
|
[tox]
|
||||||
envlist = flake8,py27,py36,py39,pylint,bandit
|
envlist = flake8,py27,py36,py39,pylint,bandit,metadata
|
||||||
minversion = 1.6
|
minversion = 1.6
|
||||||
# skipsdist = True
|
# skipsdist = True
|
||||||
#,pip-missing-reqs
|
#,pip-missing-reqs
|
||||||
@@ -19,11 +19,10 @@ sitepackages = False
|
|||||||
# tox is silly... these need to be separated by a newline....
|
# tox is silly... these need to be separated by a newline....
|
||||||
allowlist_externals = bash
|
allowlist_externals = bash
|
||||||
find
|
find
|
||||||
|
echo
|
||||||
|
|
||||||
install_command = pip install \
|
install_command = pip install -v -v -v \
|
||||||
-v -v -v --use-deprecated legacy-resolver \
|
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
|
||||||
-c{toxinidir}/upper-constraints.txt \
|
|
||||||
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/yoga/upper-constraints.txt} \
|
|
||||||
{opts} {packages}
|
{opts} {packages}
|
||||||
|
|
||||||
# Note the hash seed is set to 0 until can be tested with a
|
# Note the hash seed is set to 0 until can be tested with a
|
||||||
@@ -140,3 +139,11 @@ commands =
|
|||||||
deps = pip_missing_reqs
|
deps = pip_missing_reqs
|
||||||
-rrequirements.txt
|
-rrequirements.txt
|
||||||
commands=pip-missing-reqs -d --ignore-file=/k8sapp_harbor/tests k8sapp_harbor
|
commands=pip-missing-reqs -d --ignore-file=/k8sapp_harbor/tests k8sapp_harbor
|
||||||
|
|
||||||
|
[testenv:metadata]
|
||||||
|
install_command = pip install -v -v -v \
|
||||||
|
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
|
||||||
|
{opts} {packages}
|
||||||
|
# Pass top level app folder to 'sysinv-app tox' command.
|
||||||
|
commands =
|
||||||
|
bash -c "echo $(dirname $(dirname $(pwd))) | xargs -n 1 sysinv-app tox"
|
@@ -50,9 +50,9 @@ override_dh_auto_build:
|
|||||||
|
|
||||||
# Populate metadata.
|
# Populate metadata.
|
||||||
cp files/metadata.yaml $(STAGING)
|
cp files/metadata.yaml $(STAGING)
|
||||||
sed -i 's/@APP_NAME@/$(APP_NAME)/g' $(STAGING)/metadata.yaml
|
sed -i 's/APP_REPLACE_NAME/$(APP_NAME)/g' $(STAGING)/metadata.yaml
|
||||||
sed -i 's/@APP_VERSION@/$(APP_VERSION)/g' $(STAGING)/metadata.yaml
|
sed -i 's/APP_REPLACE_VERSION/$(APP_VERSION)/g' $(STAGING)/metadata.yaml
|
||||||
sed -i 's/@HELM_REPO@/$(HELM_REPO)/g' $(STAGING)/metadata.yaml
|
sed -i 's/HELM_REPLACE_REPO/$(HELM_REPO)/g' $(STAGING)/metadata.yaml
|
||||||
|
|
||||||
# Copy the plugins: installed in the buildroot
|
# Copy the plugins: installed in the buildroot
|
||||||
mkdir -p $(STAGING)/plugins
|
mkdir -p $(STAGING)/plugins
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
app_name: @APP_NAME@
|
app_name: APP_REPLACE_NAME
|
||||||
app_version: @APP_VERSION@
|
app_version: APP_REPLACE_VERSION
|
||||||
helm_repo: @HELM_REPO@
|
helm_repo: HELM_REPLACE_REPO
|
||||||
maintain_user_overrides: true
|
maintain_user_overrides: true
|
||||||
maintain_attributes: true
|
maintain_attributes: true
|
||||||
upgrades:
|
upgrades:
|
||||||
|
35
tox.ini
35
tox.ini
@@ -1,11 +1,14 @@
|
|||||||
[tox]
|
[tox]
|
||||||
envlist = linters
|
envlist = linters
|
||||||
minversion = 4.0
|
minversion = 2.9
|
||||||
skipsdist = True
|
skipsdist = True
|
||||||
sitepackages=False
|
sitepackages=False
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
install_command = pip install -U {opts} {packages}
|
basepython = python3
|
||||||
|
install_command = pip install -U \
|
||||||
|
{opts} {packages} \
|
||||||
|
-c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt}
|
||||||
setenv =
|
setenv =
|
||||||
VIRTUAL_ENV={envdir}
|
VIRTUAL_ENV={envdir}
|
||||||
OS_STDOUT_CAPTURE=1
|
OS_STDOUT_CAPTURE=1
|
||||||
@@ -18,9 +21,21 @@ deps =
|
|||||||
allowlist_externals =
|
allowlist_externals =
|
||||||
bash
|
bash
|
||||||
|
|
||||||
passenv =
|
[testenv:flake8]
|
||||||
XDG_CACHE_HOME
|
basepython = python3
|
||||||
|
description = Dummy environment to allow flake8 to be run in subdir tox
|
||||||
|
|
||||||
|
[testenv:pylint]
|
||||||
|
basepython = python3
|
||||||
|
description = Dummy environment to allow pylint to be run in subdir tox
|
||||||
|
|
||||||
|
[testenv:metadata]
|
||||||
|
basepython = python3
|
||||||
|
description = Dummy environment to allow sysinv-app to be run in subdir tox
|
||||||
|
|
||||||
|
[testenv:bandit]
|
||||||
|
basepython = python3
|
||||||
|
description = Dummy environment to allow bandit to be run in subdir tox
|
||||||
|
|
||||||
[testenv:bashate]
|
[testenv:bashate]
|
||||||
# Treat all E* codes as Errors rather than warnings using: -e 'E*'
|
# Treat all E* codes as Errors rather than warnings using: -e 'E*'
|
||||||
@@ -37,15 +52,3 @@ commands =
|
|||||||
[testenv:linters]
|
[testenv:linters]
|
||||||
commands =
|
commands =
|
||||||
{[testenv:bashate]commands}
|
{[testenv:bashate]commands}
|
||||||
|
|
||||||
[testenv:flake8]
|
|
||||||
basepython = python3
|
|
||||||
description = Dummy environment to allow flake8 to be run in subdir tox
|
|
||||||
|
|
||||||
[testenv:pylint]
|
|
||||||
basepython = python3
|
|
||||||
description = Dummy environment to allow pylint to be run in subdir tox
|
|
||||||
|
|
||||||
[testenv:bandit]
|
|
||||||
basepython = python3
|
|
||||||
description = Dummy environment to allow bandit to be run in subdir tox
|
|
||||||
|
Reference in New Issue
Block a user