def get(self):
    surrogates = Surrogate.all().order('checkpref').order('country')
    alive_surrogates = Surrogate.all().filter('alive =', 'True')

    if users.get_current_user():
      url = users.create_logout_url(self.request.uri)
      url_linktext = 'Logout'
      f_login = True
    else:
      url = users.create_login_url(self.request.uri)
      url_linktext = 'Login'
      f_login = False
    alive_surrogates = db.GqlQuery("SELECT * FROM Surrogate WHERE alive = True")
      
    template_values = {
      'surrogates': surrogates,
      'num_all': surrogates.count(),
      'num_alive': alive_surrogates.count(),
      'url': url,
      'url_linktext': url_linktext,
      'f_login': f_login,
      }

    path = os.path.join(os.path.dirname(__file__), 'managesurrogate.html')
    self.response.out.write(template.render(path, template_values))
  def post(self):
    if users.get_current_user():
      url = users.create_logout_url(self.request.uri)
      url_linktext = 'Logout'
    else:
      url = users.create_login_url(self.request.uri)
      url_linktext = 'Login'

    s_ip = self.request.get("ip")
    s_preference = self.request.get("preference")
    s_country = self.request.get("country")
    s_continent = self.request.get("continent")
    s_hostname = self.request.get("hostname")
    s_targetnet = self.request.get("targetnet")
    s_targetasnum = self.request.get("targetasnum")

    if helptool.ipFormatCheck(s_ip):
      if helptool.countryFormatCheck(s_country):
        surrogate = Surrogate(ip = s_ip)
        surrogate.preference = int(s_preference)
        surrogate.continent = s_continent
        surrogate.country = s_country
        surrogate.hostname = s_hostname
        if helptool.targetnetFormatCheck(s_targetnet):
          surrogate.targetnet = s_targetnet
        if s_targetasnum:
          surrogate.targetasnum = int(s_targetasnum)
        surrogate.put()

    self.redirect("/managesurrogate")
Exemplo n.º 3
0
 def get(self):
   surrogates = Surrogate.all().order('country').order('hostname').filter('type =',"CNAME")
   template_values = {
     'surrogates': surrogates
     }
   path = os.path.join(os.path.dirname(__file__), 'json/plain')
   self.response.headers['Content-Type'] = "application/json"
   self.response.out.write(template.render(path, template_values))
Exemplo n.º 4
0
 def get(self):
   surrogates = Surrogate.all().order('country').order('hostname').filter('alive =',True)
   
   addr_db = {}
   for surrogate in surrogates:
       funi = surrogate
   
   self.response.headers['Content-Type'] = "application"
   self.response.out.write(dir(addr_db))
    def get(self):
        socket.timeout(1)
        
        check_server_count = 0
        check_period = 600
        mirrordelay = 86400
        t1 = datetime.datetime.now()
        lm = ''
        dm = ''
        ttmp = datetime.datetime.now()
        keika = ttmp - t1
        message = ''
        
        surrogates = Surrogate.all().order('checkpref').order('time')
        
        for surrogate in surrogates:
            if check_server_count >= 100 and not is_dev():
                break
            if surrogate.checkpref > 150 and not is_dev():
                continue

            ttmp = datetime.datetime.now()
            keika = ttmp - t1
            if keika > datetime.timedelta(0,20) and not is_dev():
                break

            if surrogate.checkpref:
                surrogate.checkpref += int(surrogate.checkpref)
            else:
                surrogate.checkpref = 0
                
            if surrogate.tracefile:
                True
            else:
                tracefile = 'ftp-master.debian.org'

            if surrogate.type == "CNAME":
                check_server_count += 1
                dm = 'go check'
                tf, lmt = helptool.delegateForCname(surrogate.ip)
                if tf:
                    message = surrogate.ip + " is alive (CNAME host)."
                else:
                    message = surrogate.ip + " is dead (CNAME host)."
                logging.info(message)
                surrogate.lastModifiedTime = lmt
                if surrogate.time - lmt > datetime.timedelta(0,mirrordelay):
                    surrogate.alive = False
                    surrogate.checkpref += 1
                    surrogate.failreason = "DELAY"
                else:
                    surrogate.alive = True
                    surrogate.checkpref = 0
                    surrogate.failreason = ""
                surrogate.put()
                
            elif surrogate.alive == None or t1 > surrogate.time + datetime.timedelta(0,check_period) or is_dev(): #remote_addr == "127.0.0.1":
                check_server_count += 1
                dm = 'go check'
                k = surrogate.ip
                req = urllib2.Request(url="http://" + k + '/debian/project/trace/' + tracefile)
                req.add_header('User-Agent',"Debian-cdn-mirror-ping/1.5")
                try:
                    f = urllib2.urlopen(req)
                    lm = f.info()['Last-Modified']
                    message = ''
                    lmt = datetime.datetime.strptime(lm, "%a, %d %b %Y %H:%M:%S GMT")
                    surrogate.lastModifiedTime = lmt
                    if surrogate.time - lmt > datetime.timedelta(0,mirrordelay):
                        surrogate.alive = False
                        surrogate.checkpref += 1
                        surrogate.failreason = "DELAY"
                    else:
                        surrogate.alive = True
                        surrogate.checkpref = 0
                        surrogate.failreason = ""
                      
                except urllib2.HTTPError, e:
                    message += "%s is not working. (HTTP error)" % (k)
                    surrogate.alive = False
                    surrogate.checkpref += 1
                    surrogate.failreason = "E:HTTP"
                    logging.info(message)
                except urllib2.URLError, e:
                    message += "%s is not working. (URL error)" % (k)
                    surrogate.alive = False
                    surrogate.checkpref += 1
                    surrogate.failreason = "E:URL"
                    logging.info(message)
                except: