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 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)