示例#1
0
    def configure(name, server, manifest):
        """Get or modify Treadmill Critical DNS server configuration"""
        admin_dns = admin.DNS(context.GLOBAL.ldap.conn)

        data = yaml.load(manifest.read())

        if server is not None:
            data['server'] = server
        if 'nameservers' not in data:
            data['nameservers'] = _default_nameservers

        if not isinstance(data['server'], list):
            data['server'] = data['server'].split(',')
        if not isinstance(data['rest-server'], list):
            data['rest-server'] = data['rest-server'].split(',')

        try:
            admin_dns.create(name, data)
        except ldap3.LDAPEntryAlreadyExistsResult:
            admin_dns.update(name, data)

        try:
            cli.out(formatter(admin_dns.get(name)))
        except ldap3.LDAPNoSuchObjectResult:
            click.echo('Server does not exist: %s' % name, err=True)
示例#2
0
    def configure(name, server, manifest):
        """Create, get or modify Critical DNS quorum"""
        admin_dns = admin.DNS(context.GLOBAL.ldap.conn)

        data = {}
        if manifest:
            with io.open(manifest, 'rb') as fd:
                data = yaml.load(stream=fd)

        if server is not None:
            data['server'] = server
        if data and 'nameservers' not in data:
            data['nameservers'] = _default_nameservers

        if 'server' in data and not isinstance(data['server'], list):
            data['server'] = data['server'].split(',')
        if 'rest-server' in data and (not isinstance(data['rest-server'],
                                                     list)):
            data['rest-server'] = data['rest-server'].split(',')

        if data:
            _LOGGER.debug('data: %r', data)
            try:
                admin_dns.create(name, data)
            except ldap_exceptions.LDAPEntryAlreadyExistsResult:
                admin_dns.update(name, data)

        try:
            cli.out(formatter(admin_dns.get(name)))
        except ldap_exceptions.LDAPNoSuchObjectResult:
            click.echo('DNS entry does not exist: %s' % name, err=True)
示例#3
0
文件: dns.py 项目: trapexit/treadmill
    def ok():  # pylint: disable=C0103
        """Test whether the configured CitDNS servers are up and running"""
        admin_dns = admin.DNS(context.GLOBAL.ldap.conn)
        dns_servers = admin_dns.list({})
        _LOGGER.debug('dns_servers: %r', dns_servers)

        for dns_server in dns_servers:
            verify_dns(dns_server['_id'], dns_server['server'],
                       dns_server['port'], dns_server['fqdn'])
示例#4
0
    def _list(name, server):
        """Displays Critical DNS servers list"""
        admin_dns = admin.DNS(context.GLOBAL.ldap.conn)
        attrs = {}
        if name is not None:
            attrs['_id'] = name
        if server is not None:
            attrs['server'] = server

        servers = admin_dns.list(attrs)
        cli.out(formatter(servers))
示例#5
0
 def delete(name):
     """Delete Treadmill Critical DNS server"""
     admin_dns = admin.DNS(context.GLOBAL.ldap.conn)
     admin_dns.delete(name)
示例#6
0
 def test_get(self):
     """Dummy test for treadmill.api.cell.get()"""
     dns_admin = admin.DNS(None)
     self.dns.get('as')
     dns_admin.get.assert_called_with('as')
示例#7
0
 def test_list(self):
     """Dummy test for treadmill.api.cell._list()"""
     self.dns.list()
     dns_admin = admin.DNS(None)
     self.assertTrue(dns_admin.list.called)
示例#8
0
 def _admin_dns():
     """Lazily return DNS admin object"""
     return admin.DNS(context.GLOBAL.ldap.conn)