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)
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)
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'])
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))
def delete(name): """Delete Treadmill Critical DNS server""" admin_dns = admin.DNS(context.GLOBAL.ldap.conn) admin_dns.delete(name)
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')
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)
def _admin_dns(): """Lazily return DNS admin object""" return admin.DNS(context.GLOBAL.ldap.conn)