コード例 #1
0
 def testCDMDefaultSection(self):
     cr = ConfigReader()
     cr.setContentList(['[cdm]'])
     procConfig(cr)
     res = cr.config
     res['cdm']['DEFAULT']['depends'] = set(
         res['cdm']['DEFAULT']['depends'])
     self.assertEqual(defaultConfig, res)
コード例 #2
0
 def testDHparamDefaultSection(self):
     cr = ConfigReader()
     cr.setContentList(['[dhparam]'])
     procConfig(cr)
     self.assertEqual(
         {
             'filename': '/etc/myssl/dhparam.pem',
             'keysize': 2048
         }, cr.config['dhparam']['DEFAULT'])
コード例 #3
0
 def testServiceDefaultSection(self):
     cr = ConfigReader()
     cr.setContentList(['[service]'])
     procConfig(cr)
     # maybe trash - ToDo: check if needed
     self.assertEqual({
         'container': 'false',
         'depends': {}
     }, cr.config['service']['DEFAULT'])
コード例 #4
0
 def testCDMDefaultSectionDefaultOverwrite(self):
     cr = ConfigReader()
     cr.setContentList([' [cdm] \n statedir = /blub \n '])
     procConfig(cr)
     ref = copy.deepcopy(defaultConfig)
     ref['cdm']['DEFAULT']['statedir'] = '/blub'
     res = cr.config
     res['cdm']['DEFAULT']['depends'] = set(
         res['cdm']['DEFAULT']['depends'])
     self.assertEqual(ref, res)
コード例 #5
0
 def testCDMDefaultSectionSimpleVal2(self):
     cr = ConfigReader()
     cr.setContentList(['[cdm] \n x = 3 \n '])
     procConfig(cr)
     ref = copy.deepcopy(defaultConfig)
     ref['cdm']['DEFAULT']['x'] = '3'
     res = cr.config
     res['cdm']['DEFAULT']['depends'] = set(
         res['cdm']['DEFAULT']['depends'])
     self.assertEqual(ref, res)
コード例 #6
0
 def testTestDefaultSection(self):
     cr = ConfigReader()
     cr.setContentList(['[test]'])
     procConfig(cr)
     self.assertEqual(
         {'test': {
             'DEFAULT': {
                 'defaultx': '23',
                 'defaulty': '42'
             }
         }}, cr.config)
コード例 #7
0
 def testDHparamNamedSectionDehydratedLetsencryptset(self):
     cr = ConfigReader()
     cr.setContentList(
         ['[dhparam:name]\nhandler = openssl \nkeysize = 4096  '])
     procConfig(cr)
     self.assertEqual(
         {
             'keysize': 4096,
             'handler': 'openssl',
             'filename': '/etc/myssl/dh2048.pem'
         }, cr.config['dhparam']['name'])
コード例 #8
0
 def testTestDefaultSectionDefaultOverwrite(self):
     cr = ConfigReader()
     cr.setContentList(['[test]\ndefaultx=3\n', '[test]\ndefaulty=4\n'])
     procConfig(cr)
     self.assertEqual(
         {'test': {
             'DEFAULT': {
                 'defaultx': '3',
                 'defaulty': '4'
             }
         }}, cr.config)
コード例 #9
0
 def testDHparamDefaultSectionDehydratedLetsencryptset(self):
     cr = ConfigReader()
     cr.setContentList([
         '[dhparam]\nhandler = openssl \nfilename = /etc/myssl2/dhp.dh \nkeysize = 4096  '
     ])
     procConfig(cr)
     self.assertEqual(
         {
             'keysize': 4096,
             'handler': 'openssl',
             'filename': '/etc/myssl2/dhp.dh'
         }, cr.config['dhparam']['DEFAULT'])
コード例 #10
0
class ManagedDomain:
    def __init__(self):
        self.cr = ConfigReader()
        self.sh = StateHandler()

    def readConfig(self, confFiles=[], confContent=''):
        self.cr.setFilenames(confFiles)
        self.cr.setContentList(confContent)
        self.cr.open()
        if 'cdm' not in self.cr.cp:
            self.cr.cp['cdm'] = {}
        self.cr.interprete(self.sh)
        self.sh.registerConfig(self.cr.config['cdm'])

    def run(self, confFile=None, forcePhase='next', confContent=''):
        if confFile is not None or 0 < len(confContent):
            self.readConfig(confFile, confContent)
        self.sh.load()
        self.sh.delete()  # --next starts with prepare, if failed
        self.sh.resetOpStateRecursive()
        currentPhase = getCurrentPhase(self.sh, forcePhase)
        log.info('Running phase: {}'.format(currentPhase))
        runPhase(self.cr, self.sh, currentPhase)
        nextphase = getNextPhase(currentPhase)
        self.sh.registerResult({'nextphase': nextphase})
        self.sh.save()
コード例 #11
0
 def testCertDefaultSection(self):
     cr = ConfigReader()
     cr.setContentList(['[cert]'])
     procConfig(cr)
     self.assertEqual(
         {
             'caa': {
                 'flag': '0',
                 'tag': 'issue',
                 'url': 'letsencrypt.org'
             },
             'extraflags': [],
             'handler': 'dehydrated/letsencrypt',
             'keysize': 4096
         }, cr.config['cert']['DEFAULT'])
コード例 #12
0
 def testServiceDefaultPostfixset(self):
     cr = ConfigReader()
     cr.setContentList(['[service:postfix]'])
     procConfig(cr)
     # maybe trash - ToDo: check if needed
     self.assertEqual(
         {
             'cert': [],
             'dhparam': [],
             'handler': 'postfix',
             'container': 'false',
             'depends': {'cert', 'dhparam'},
             'requires': {
                 'cert': set(),
                 'dhparam': set()
             }
         }, cr.config['service']['postfix'])
コード例 #13
0
 def testTestSectionDefaults(self):
     cr = ConfigReader()
     cr.setContentList(
         ['[test]\ndefaultx=3\n[test:testsection]\ndefaulty=4\n'])
     procConfig(cr)
     self.assertEqual(
         {
             'test': {
                 'DEFAULT': {
                     'defaultx': '3',
                     'defaulty': '42'
                 },
                 'testsection': {
                     'defaultx': '3',
                     'defaulty': '4'
                 }
             }
         }, cr.config)
コード例 #14
0
 def testCertDefaultSectionDehydratedLetsencryptset(self):
     cr = ConfigReader()
     cr.setContentList([
         '[cert]\nhandler = dehydrated/letsencrypt \nemail = [email protected] \nkeysize = 4096 \ndestination = /etc/ssl2 \nextraflags = -x , --hsts \ncertname = full.crt '
     ])
     procConfig(cr)
     self.assertEqual(
         {
             'keysize': 4096,
             'extraflags': ['-x', '--hsts'],
             'handler': 'dehydrated/letsencrypt',
             'email': '*****@*****.**',
             'destination': '/etc/ssl2',
             'certname': 'full.crt',
             'caa': {
                 'url': 'letsencrypt.org',
                 'flag': '0',
                 'tag': 'issue'
             }
         }, cr.config['cert']['DEFAULT'])
コード例 #15
0
 def testSetContentList(self):
     cr = ConfigReader()
     cr.setContentList(['a', 'b', 'c'])
     cr.setContentList(['d', 'e', 'f'])
     cr.setContentList(['g', 'h\nr', 'i'])
     self.assertEqual(cr.contentList, ['g', 'h\nr', 'i'])
コード例 #16
0
 def testSetFilenames(self):
     cr = ConfigReader()
     cr.addFilenames(['a', 'b', 'c'])
     cr.addFilenames(['d', 'e', 'f'])
     cr.setFilenames(['g', 'h', 'i'])
     self.assertEqual(cr.filenameList, ['g', 'h', 'i'])
コード例 #17
0
 def testEmptyConfigContentListEntry(self):
     cr = ConfigReader()
     cr.setContentList([''])
     procConfig(cr)
     self.assertEqual(cr.config, {})
コード例 #18
0
 def testEmptyConfig(self):
     cr = ConfigReader()
     procConfig(cr)
     self.assertEqual(cr.config, {})
コード例 #19
0
 def __init__(self):
     self.cr = ConfigReader()
     self.sh = StateHandler()
コード例 #20
0
 def testNoSection(self):
     cr = ConfigReader()
     cr.setContentList([''])
     procConfig(cr)
     self.assertEqual(cr.config, {})