Merge "Fix: re-add incorrectly removed format test"
This commit is contained in:
commit
24e4ebf37a
@ -82,9 +82,7 @@ class Builder:
|
|||||||
script = renderer.render_template(
|
script = renderer.render_template(
|
||||||
sub_config,
|
sub_config,
|
||||||
template='scripts/genesis.sh',
|
template='scripts/genesis.sh',
|
||||||
context={
|
context={'tarball': tarball})
|
||||||
'tarball': tarball
|
|
||||||
})
|
|
||||||
|
|
||||||
_write_script(output_dir, 'genesis.sh', script)
|
_write_script(output_dir, 'genesis.sh', script)
|
||||||
|
|
||||||
@ -117,9 +115,7 @@ class Builder:
|
|||||||
return renderer.render_template(
|
return renderer.render_template(
|
||||||
sub_config,
|
sub_config,
|
||||||
template='scripts/join.sh',
|
template='scripts/join.sh',
|
||||||
context={
|
context={'tarball': tarball})
|
||||||
'tarball': tarball
|
|
||||||
})
|
|
||||||
|
|
||||||
def _build_node_validate_script(self, node_name):
|
def _build_node_validate_script(self, node_name):
|
||||||
sub_config = self.config.extract_node_config(node_name)
|
sub_config = self.config.extract_node_config(node_name)
|
||||||
|
@ -70,9 +70,8 @@ class Configuration:
|
|||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
def __getitem__(self, path):
|
def __getitem__(self, path):
|
||||||
return self.get_path(path,
|
return self.get_path(
|
||||||
jinja2.StrictUndefined(
|
path, jinja2.StrictUndefined('No match found for path %s' % path))
|
||||||
'No match found for path %s' % path))
|
|
||||||
|
|
||||||
def get_first(self, *paths, default=None):
|
def get_first(self, *paths, default=None):
|
||||||
result = self._get_first(*paths)
|
result = self._get_first(*paths)
|
||||||
|
@ -87,8 +87,9 @@ class ContextMiddleware(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def _format_uuid_string(self, string):
|
def _format_uuid_string(self, string):
|
||||||
return (string.replace('urn:', '').replace('uuid:', '').strip('{}')
|
return (string.replace('urn:', '').replace('uuid:',
|
||||||
.replace('-', '').lower())
|
'').strip('{}').replace(
|
||||||
|
'-', '').lower())
|
||||||
|
|
||||||
def _is_uuid_like(self, val):
|
def _is_uuid_like(self, val):
|
||||||
try:
|
try:
|
||||||
|
@ -69,8 +69,8 @@ class KubeClient(object):
|
|||||||
self.client.patch_node(node_name, body)
|
self.client.patch_node(node_name, body)
|
||||||
return resp_body_succ.get_output_json()
|
return resp_body_succ.get_output_json()
|
||||||
except (ApiException, MaxRetryError) as e:
|
except (ApiException, MaxRetryError) as e:
|
||||||
LOG.exception(
|
LOG.exception("An exception occurred during node labels update: " +
|
||||||
"An exception occurred during node labels update: " + str(e))
|
str(e))
|
||||||
raise KubernetesApiError
|
raise KubernetesApiError
|
||||||
|
|
||||||
def get_node_labels(self, node_name):
|
def get_node_labels(self, node_name):
|
||||||
@ -89,8 +89,8 @@ class KubeClient(object):
|
|||||||
else:
|
else:
|
||||||
return {}
|
return {}
|
||||||
except (ApiException, MaxRetryError) as e:
|
except (ApiException, MaxRetryError) as e:
|
||||||
LOG.exception(
|
LOG.exception("An exception occurred in fetching node labels: " +
|
||||||
"An exception occurred in fetching node labels: " + str(e))
|
str(e))
|
||||||
if hasattr(e, 'status') and str(e.status) == "404":
|
if hasattr(e, 'status') and str(e.status) == "404":
|
||||||
raise NodeNotFoundException
|
raise NodeNotFoundException
|
||||||
else:
|
else:
|
||||||
|
@ -34,11 +34,11 @@ class PKI:
|
|||||||
return self._ca_config_string
|
return self._ca_config_string
|
||||||
|
|
||||||
def generate_ca(self, ca_name):
|
def generate_ca(self, ca_name):
|
||||||
result = self._cfssl(
|
result = self._cfssl(['gencert', '-initca', 'csr.json'],
|
||||||
['gencert', '-initca', 'csr.json'],
|
files={
|
||||||
files={
|
'csr.json':
|
||||||
'csr.json': self.csr(name=ca_name, groups=['Kubernetes']),
|
self.csr(name=ca_name, groups=['Kubernetes']),
|
||||||
})
|
})
|
||||||
|
|
||||||
return (self._wrap_ca(ca_name, result['cert']),
|
return (self._wrap_ca(ca_name, result['cert']),
|
||||||
self._wrap_ca_key(ca_name, result['key']))
|
self._wrap_ca_key(ca_name, result['key']))
|
||||||
|
@ -36,10 +36,9 @@ def insert_charts_into_bundler(bundler):
|
|||||||
if _source_file_is_excluded(source_filename):
|
if _source_file_is_excluded(source_filename):
|
||||||
continue
|
continue
|
||||||
source_path = os.path.join(root, source_filename)
|
source_path = os.path.join(root, source_filename)
|
||||||
destination_path = os.path.join('etc/genesis/armada/assets/charts',
|
destination_path = os.path.join(
|
||||||
os.path.relpath(
|
'etc/genesis/armada/assets/charts',
|
||||||
source_path,
|
os.path.relpath(source_path, '/opt/promenade/charts'))
|
||||||
'/opt/promenade/charts'))
|
|
||||||
stat = os.stat(source_path)
|
stat = os.stat(source_path)
|
||||||
LOG.debug('Copying asset file %s (mode=%o)', source_path,
|
LOG.debug('Copying asset file %s (mode=%o)', source_path,
|
||||||
stat.st_mode)
|
stat.st_mode)
|
||||||
@ -49,10 +48,8 @@ def insert_charts_into_bundler(bundler):
|
|||||||
|
|
||||||
|
|
||||||
def render_role_into_bundler(*, bundler, config, role):
|
def render_role_into_bundler(*, bundler, config, role):
|
||||||
role_root = pkg_resources.resource_filename('promenade',
|
role_root = pkg_resources.resource_filename(
|
||||||
os.path.join(
|
'promenade', os.path.join('templates', 'roles', role))
|
||||||
'templates', 'roles',
|
|
||||||
role))
|
|
||||||
for root, _dirnames, filenames in os.walk(role_root, followlinks=True):
|
for root, _dirnames, filenames in os.walk(role_root, followlinks=True):
|
||||||
destination_base = os.path.relpath(root, role_root)
|
destination_base = os.path.relpath(root, role_root)
|
||||||
for source_filename in filenames:
|
for source_filename in filenames:
|
||||||
@ -89,10 +86,8 @@ def render_template(config, *, template, context=None):
|
|||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
|
|
||||||
template_contents = pkg_resources.resource_string('promenade',
|
template_contents = pkg_resources.resource_string(
|
||||||
os.path.join(
|
'promenade', os.path.join('templates', template))
|
||||||
'templates',
|
|
||||||
template))
|
|
||||||
|
|
||||||
env = _build_env()
|
env = _build_env()
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
pytest
|
pytest
|
||||||
flake8>=3.3.0
|
flake8>=3.3.0
|
||||||
bandit>=1.5
|
bandit>=1.5
|
||||||
yapf
|
yapf==0.24.0
|
||||||
sphinx>=1.6.2
|
sphinx>=1.6.2
|
||||||
sphinx_rtd_theme==0.2.4
|
sphinx_rtd_theme==0.2.4
|
||||||
|
@ -33,65 +33,69 @@ TEST_DATA = [(
|
|||||||
"label-c": "value4",
|
"label-c": "value4",
|
||||||
"label-d": "value99",
|
"label-d": "value99",
|
||||||
},
|
},
|
||||||
), (
|
),
|
||||||
'Add labels when none exist',
|
(
|
||||||
None,
|
'Add labels when none exist',
|
||||||
{
|
None,
|
||||||
"label-a": "value1",
|
{
|
||||||
"label-b": "value2",
|
"label-a": "value1",
|
||||||
"label-c": "value3",
|
"label-b": "value2",
|
||||||
},
|
"label-c": "value3",
|
||||||
{
|
},
|
||||||
"label-a": "value1",
|
{
|
||||||
"label-b": "value2",
|
"label-a": "value1",
|
||||||
"label-c": "value3",
|
"label-b": "value2",
|
||||||
},
|
"label-c": "value3",
|
||||||
), (
|
},
|
||||||
'No updates',
|
),
|
||||||
{
|
(
|
||||||
"label-a": "value1",
|
'No updates',
|
||||||
"label-b": "value2",
|
{
|
||||||
"label-c": "value3",
|
"label-a": "value1",
|
||||||
},
|
"label-b": "value2",
|
||||||
{
|
"label-c": "value3",
|
||||||
"label-a": "value1",
|
},
|
||||||
"label-b": "value2",
|
{
|
||||||
"label-c": "value3",
|
"label-a": "value1",
|
||||||
},
|
"label-b": "value2",
|
||||||
{},
|
"label-c": "value3",
|
||||||
), (
|
},
|
||||||
'Delete labels',
|
{},
|
||||||
{
|
),
|
||||||
"label-a": "value1",
|
(
|
||||||
"label-b": "value2",
|
'Delete labels',
|
||||||
"label-c": "value3",
|
{
|
||||||
},
|
"label-a": "value1",
|
||||||
{},
|
"label-b": "value2",
|
||||||
{
|
"label-c": "value3",
|
||||||
"label-a": None,
|
},
|
||||||
"label-b": None,
|
{},
|
||||||
"label-c": None,
|
{
|
||||||
},
|
"label-a": None,
|
||||||
), (
|
"label-b": None,
|
||||||
'Delete labels when none',
|
"label-c": None,
|
||||||
None,
|
},
|
||||||
{},
|
), (
|
||||||
{},
|
'Delete labels when none',
|
||||||
), (
|
None,
|
||||||
'Avoid kubernetes.io labels Deletion',
|
{},
|
||||||
{
|
{},
|
||||||
"label-a": "value1",
|
),
|
||||||
"label-b": "value2",
|
(
|
||||||
"kubernetes.io/hostname": "ubutubox",
|
'Avoid kubernetes.io labels Deletion',
|
||||||
},
|
{
|
||||||
{
|
"label-a": "value1",
|
||||||
"label-a": "value99",
|
"label-b": "value2",
|
||||||
},
|
"kubernetes.io/hostname": "ubutubox",
|
||||||
{
|
},
|
||||||
"label-a": "value99",
|
{
|
||||||
"label-b": None,
|
"label-a": "value99",
|
||||||
},
|
},
|
||||||
)]
|
{
|
||||||
|
"label-a": "value99",
|
||||||
|
"label-b": None,
|
||||||
|
},
|
||||||
|
)]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('description,existing_lbl,input_lbl,expected',
|
@pytest.mark.parametrize('description,existing_lbl,input_lbl,expected',
|
||||||
|
@ -140,7 +140,8 @@ VALID_DOCS = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'data': {
|
'data': {
|
||||||
'files': [{
|
'files':
|
||||||
|
[{
|
||||||
'mode':
|
'mode':
|
||||||
365,
|
365,
|
||||||
'path':
|
'path':
|
||||||
@ -149,14 +150,15 @@ VALID_DOCS = [
|
|||||||
'kubernetes/node/bin/kubelet',
|
'kubernetes/node/bin/kubelet',
|
||||||
'tar_url':
|
'tar_url':
|
||||||
'https://dl.k8s.io/v1.10.2/kubernetes-node-linux-amd64.tar.gz'
|
'https://dl.k8s.io/v1.10.2/kubernetes-node-linux-amd64.tar.gz'
|
||||||
}, {
|
},
|
||||||
'content':
|
{
|
||||||
'/var/lib/docker/containers/*/*-json.log\n{\n compress\n copytruncate\n create 0644 root root\n daily\n dateext\n dateformat -%Y%m%d-%s\n maxsize 10M\n missingok\n notifempty\n su root root\n rotate 1\n}',
|
'content':
|
||||||
'mode':
|
'/var/lib/docker/containers/*/*-json.log\n{\n compress\n copytruncate\n create 0644 root root\n daily\n dateext\n dateformat -%Y%m%d-%s\n maxsize 10M\n missingok\n notifempty\n su root root\n rotate 1\n}',
|
||||||
292,
|
'mode':
|
||||||
'path':
|
292,
|
||||||
'/etc/logrotate.d/json-logrotate'
|
'path':
|
||||||
}],
|
'/etc/logrotate.d/json-logrotate'
|
||||||
|
}],
|
||||||
'images': {
|
'images': {
|
||||||
'haproxy': 'haproxy:1.8.3',
|
'haproxy': 'haproxy:1.8.3',
|
||||||
'helm': {
|
'helm': {
|
||||||
|
@ -86,9 +86,9 @@ def _valid_dg(config, dynamic_tag, context_name=None):
|
|||||||
if config.get('context', {}).get(context_name):
|
if config.get('context', {}).get(context_name):
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
raise TagGenExeception('Dynamic tag "%s" requested, but "%s"'
|
raise TagGenExeception(
|
||||||
' not found in context' % (dynamic_tag,
|
'Dynamic tag "%s" requested, but "%s"'
|
||||||
context_name))
|
' not found in context' % (dynamic_tag, context_name))
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
1
tox.ini
1
tox.ini
@ -63,5 +63,6 @@ commands =
|
|||||||
deps =
|
deps =
|
||||||
-r{toxinidir}/test-requirements.txt
|
-r{toxinidir}/test-requirements.txt
|
||||||
commands =
|
commands =
|
||||||
|
yapf -rd {toxinidir}/promenade {toxinidir}/tests {toxinidir}/tools/image_tags.py
|
||||||
flake8 {toxinidir}/promenade
|
flake8 {toxinidir}/promenade
|
||||||
bandit -r promenade
|
bandit -r promenade
|
||||||
|
Loading…
Reference in New Issue
Block a user