Merge "Add post-timeout setting"
diff --git a/zuul/configloader.py b/zuul/configloader.py
index d251106..ac3afdd 100644
--- a/zuul/configloader.py
+++ b/zuul/configloader.py
@@ -384,8 +384,12 @@
class NodeSetParser(object):
- @staticmethod
- def getSchema(anonymous=False):
+ def __init__(self, tenant, layout):
+ self.log = logging.getLogger("zuul.NodeSetParser")
+ self.tenant = tenant
+ self.layout = layout
+
+ def getSchema(self, anonymous=False):
node = {vs.Required('name'): to_list(str),
vs.Required('label'): str,
}
@@ -404,9 +408,8 @@
nodeset[vs.Required('name')] = str
return vs.Schema(nodeset)
- @staticmethod
- def fromYaml(conf, anonymous=False):
- NodeSetParser.getSchema(anonymous)(conf)
+ def fromYaml(self, conf, anonymous=False):
+ self.getSchema(anonymous)(conf)
ns = model.NodeSet(conf.get('name'), conf.get('_source_context'))
node_names = set()
group_names = set()
@@ -432,8 +435,13 @@
class SecretParser(object):
- @staticmethod
- def getSchema():
+ def __init__(self, tenant, layout):
+ self.log = logging.getLogger("zuul.SecretParser")
+ self.tenant = tenant
+ self.layout = layout
+ self.schema = self.getSchema()
+
+ def getSchema(self):
data = {str: vs.Any(str, EncryptedPKCS1_OAEP)}
secret = {vs.Required('name'): str,
@@ -444,10 +452,9 @@
return vs.Schema(secret)
- @staticmethod
- def fromYaml(layout, conf):
+ def fromYaml(self, conf):
with configuration_exceptions('secret', conf):
- SecretParser.getSchema()(conf)
+ self.schema(conf)
s = model.Secret(conf['name'], conf['_source_context'])
s.secret_data = conf['data']
return s
@@ -679,6 +686,7 @@
if k in conf:
setattr(job, a, conf[k])
if 'nodeset' in conf:
+ nodeset_parser = NodeSetParser(tenant, layout)
conf_nodeset = conf['nodeset']
if isinstance(conf_nodeset, str):
# This references an existing named nodeset in the layout.
@@ -686,7 +694,7 @@
if ns is None:
raise NodesetNotFoundError(conf_nodeset)
else:
- ns = NodeSetParser.fromYaml(conf_nodeset, anonymous=True)
+ ns = nodeset_parser.fromYaml(conf_nodeset, anonymous=True)
if tenant.max_nodes_per_job != -1 and \
len(ns) > tenant.max_nodes_per_job:
raise MaxNodeError(job, tenant)
@@ -1597,20 +1605,22 @@
layout, connections,
scheduler, config_pipeline))
+ nodeset_parser = NodeSetParser(tenant, layout)
for config_nodeset in data.nodesets:
classes = TenantParser._getLoadClasses(tenant, config_nodeset)
if 'nodeset' not in classes:
continue
with configuration_exceptions('nodeset', config_nodeset):
- layout.addNodeSet(NodeSetParser.fromYaml(
+ layout.addNodeSet(nodeset_parser.fromYaml(
config_nodeset))
+ secret_parser = SecretParser(tenant, layout)
for config_secret in data.secrets:
classes = TenantParser._getLoadClasses(tenant, config_secret)
if 'secret' not in classes:
continue
with configuration_exceptions('secret', config_secret):
- layout.addSecret(SecretParser.fromYaml(layout, config_secret))
+ layout.addSecret(secret_parser.fromYaml(config_secret))
for config_job in data.jobs:
classes = TenantParser._getLoadClasses(tenant, config_job)