Esempio n. 1
0
 def newlease_checkargs(self, t, principle):
     import calendar, resolve, slicename, socket, ticket, time, sys
     now = time.gmtime()
     nowsec = calendar.timegm(now)
     validfromsec = calendar.timegm(t.validfrom)
     validtosec = calendar.timegm(t.validto)
     nowstr = time.asctime(now)
     validfromstr = time.asctime(t.validfrom)
     validtostr = time.asctime(t.validto)
     if not valid_sig(t.xml, t.sig, self.conf.agentpubkey):
         raise "Ticket not signed by trusted agent"
     if t.principle != principle:
         raise "Principle does not own ticket"
     if t.ip != self.ip:
         raise "Ticket is for %s. This node is %s." % (t.ip, self.ip)
     if slicename.islogin(t.slice):
         raise "Login %s already exists" % t.slice
     if slicename.isstaticslice(t.slice):
         raise "Static sliver %s already exists" % t.slice
     if not slicename.isvalidlogin(t.slice):
         raise "Slice name %s is a bad name" % t.slice
     if self.nodemgr.dbthr.lookuplease(t.slice):
         raise "Lease for slice %s already exists" % t.slice
     if nowsec < (validfromsec - self.timesyncslack):
         raise "Ticket valid at %s. Currently %s" % (validfromstr, nowstr)
     if nowsec > (validtosec + self.timesyncslack):
         raise "Ticket expired at %s. Currently %s" % (validtostr, nowstr)
 def newlease_checkargs(self, t, principle):
     import calendar, resolve, slicename, socket, ticket, time, sys
     now = time.gmtime()
     nowsec = calendar.timegm(now)
     validfromsec = calendar.timegm(t.validfrom)
     validtosec = calendar.timegm(t.validto)
     nowstr = time.asctime(now)
     validfromstr = time.asctime(t.validfrom)
     validtostr = time.asctime(t.validto)
     if not valid_sig(t.xml, t.sig, self.conf.agentpubkey):
         raise "Ticket not signed by trusted agent"
     if t.principle != principle:
         raise "Principle does not own ticket"
     if t.ip != self.ip:
         raise "Ticket is for %s. This node is %s." % (t.ip, self.ip)
     if slicename.islogin(t.slice):
         raise "Login %s already exists" % t.slice
     if slicename.isstaticslice(t.slice):
         raise "Static sliver %s already exists" % t.slice
     if not slicename.isvalidlogin(t.slice):
         raise "Slice name %s is a bad name" % t.slice
     if self.nodemgr.dbthr.lookuplease(t.slice):
         raise "Lease for slice %s already exists" % t.slice
     if nowsec < (validfromsec - self.timesyncslack):
         raise "Ticket valid at %s. Currently %s" % (validfromstr, nowstr)
     if nowsec > (validtosec + self.timesyncslack):
         raise "Ticket expired at %s. Currently %s" % (validtostr, nowstr)
Esempio n. 3
0
    def newtickets_checkargs(self, slice, ntickets, leaselen, agent, policy, ips):
        import slicename, sys
        ticketips = policy.getips(ntickets, ips)
        maxlease = self.agent.conf.maxlease
        if slicename.islogin(slice):
            raise "Login %s already exists" % slice
        if slicename.isstaticslice(slice):
            raise "Static slice %s already exists" % slice
        if not slicename.isvalidlogin(slice):
            raise "Slice name %s is a bad name" % slice
#        if agent.dbthr.hastickets(slice):
#            raise "Outstanding tickets for slice %s" % slice
        if agent.gmetadthr.leaseexists(slice):
            raise "Outstanding leases for slice %s" % slice
        if agent.gmetadthr.sliceexists(slice):
            raise "Outstanding slivers for slice %s" % slice
        if ntickets <= 0:
            raise "Requested negative #tickets: %d." % ntickets
        if ntickets > len(ticketips):
            raise "Wanted %d tickets. %d available." % (ntickets, len(ticketips))
        if leaselen <= 0:
            raise "Requested negative lease length: %d" % leaselen
        if leaselen > maxlease:
            raise "Requested lease length %d, max is %d" % (leaselen, maxlease)