def _update(hostname, ipaddr): ipaddr = str( ipaddr ) # XXX bug in dnspython: crashes if ipaddr is unicode, wants a str! hosts = Host.filter_by_fqdn(hostname) num_hosts = len(hosts) if num_hosts == 0: return False if num_hosts > 1: logging.error("fqdn %s has multiple entries" % hostname) return False hosts[0].poke() try: update(hostname, ipaddr) logger.info('%s - received good update -> ip: %s' % ( hostname, ipaddr, )) return Response('good %s' % ipaddr) except SameIpError: logger.warning('%s - received no-change update, ip: %s' % ( hostname, ipaddr, )) return Response('nochg %s' % ipaddr)
def _update(hostname, ipaddr): ipaddr = str( ipaddr ) # XXX bug in dnspython: crashes if ipaddr is unicode, wants a str! hosts = Host.filter_by_fqdn(hostname) num_hosts = len(hosts) if num_hosts == 0: return HttpResponseBadRequest('Invalid hostname') if num_hosts > 1: logging.error("fqdn %s has multiple entries" % hostname) return HttpResponseBadRequest('Invalid hostname') hosts[0].poke() increment_ip_update_count() try: update(hostname, ipaddr, origin=hosts[0].domain.domain) logger.info('%s - received good update -> ip: %s' % ( hostname, ipaddr, )) return Response('good %s' % ipaddr) except SameIpError: logger.warning('%s - received no-change update, ip: %s' % ( hostname, ipaddr, )) return Response('nochg %s' % ipaddr)
def check_session_auth(user, hostname): """ Check our database whether the hostname is owned by the user. :param user: django user object :param hostname: fqdn :return: True if hostname is owned by this user, False otherwise. """ fqdn = hostname hosts = Host.filter_by_fqdn(fqdn, created_by=user) num_hosts = len(hosts) if num_hosts == 0: return False if num_hosts > 1: logging.error("fqdn %s has multiple entries" % fqdn) return False return True
def check_session_auth(user, hostname): """ Check our database whether the hostname is owned by the user. :param user: django user object :param hostname: fqdn :return: True if hostname is owned by this user, False otherwise. """ fqdn = hostname hosts = Host.filter_by_fqdn(fqdn, created_by=user) num_hosts = len(hosts) if num_hosts == 0: return False if num_hosts > 1: logging.error("fqdn %s has multiple entries" % fqdn) return False return True
def _update(hostname, ipaddr): ipaddr = str(ipaddr) # XXX bug in dnspython: crashes if ipaddr is unicode, wants a str! hosts = Host.filter_by_fqdn(hostname) num_hosts = len(hosts) if num_hosts == 0: return False if num_hosts > 1: logging.error("fqdn %s has multiple entries" % hostname) return False hosts[0].poke() try: update(hostname, ipaddr) logger.info('%s - received good update -> ip: %s' % (hostname, ipaddr, )) return Response('good %s' % ipaddr) except SameIpError: logger.warning('%s - received no-change update, ip: %s' % (hostname, ipaddr, )) return Response('nochg %s' % ipaddr)
def check_api_auth(username, password): """ Check username and password against our database. :param username: http basic auth username (== fqdn) :param password: update password :return: True if authenticated, False otherwise. """ fqdn = username hosts = Host.filter_by_fqdn(fqdn) num_hosts = len(hosts) if num_hosts == 0: return False if num_hosts > 1: logging.error("fqdn %s has multiple entries" % fqdn) return False password_hash = hosts[0].update_secret return check_password(password, password_hash)
def _update(hostname, ipaddr): ipaddr = str(ipaddr) # XXX bug in dnspython: crashes if ipaddr is unicode, wants a str! hosts = Host.filter_by_fqdn(hostname) num_hosts = len(hosts) if num_hosts == 0: return HttpResponseBadRequest('Invalid hostname') if num_hosts > 1: logging.error("fqdn %s has multiple entries" % hostname) return HttpResponseBadRequest('Invalid hostname') hosts[0].poke() increment_ip_update_count() try: update(hostname, ipaddr, origin=hosts[0].domain.domain) logger.info('%s - received good update -> ip: %s' % (hostname, ipaddr, )) return Response('good %s' % ipaddr) except SameIpError: logger.warning('%s - received no-change update, ip: %s' % (hostname, ipaddr, )) return Response('nochg %s' % ipaddr)
def check_api_auth(username, password): """ Check username and password against our database. :param username: http basic auth username (== fqdn) :param password: update password :return: True if authenticated, False otherwise. """ fqdn = username hosts = Host.filter_by_fqdn(fqdn) num_hosts = len(hosts) if num_hosts == 0: return False if num_hosts > 1: logging.error("fqdn %s has multiple entries" % fqdn) return False password_hash = hosts[0].update_secret return check_password(password, password_hash)