Make SecretParser a regular class
Part of a series refactoring the configloader to make it more maintainable. Change-Id: I362dfe2976bc7c97d791051c7873dd3d5592d875
This commit is contained in:
parent
6673db65fa
commit
5decd18de4
|
@ -435,8 +435,13 @@ class NodeSetParser(object):
|
|||
|
||||
|
||||
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,
|
||||
|
@ -447,10 +452,9 @@ class SecretParser(object):
|
|||
|
||||
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
|
||||
|
@ -1604,12 +1608,13 @@ class TenantParser(object):
|
|||
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)
|
||||
|
|
Loading…
Reference in New Issue