Beispiel #1
0
	def editactiondeps(self, id, time=None):
		sess = db.getsession()

		j = sess.query(actiondeps.actiondep).filter(actiondeps.actiondep.ACTIONID==id).all()
	
		b = actiondeps.actiondep()
		b.ACTIONID = id

		return self.lookup.get_template(ACTIONS + "editactiondeps.html").render(actiondeplist=j, blankdep=b, table=db.actiondep_table, id=id)
Beispiel #2
0
	def saveactiondep(self, **kwargs):
		sess = db.getsession()

		try:
			sess.query(actiondeps.actiondep).filter(and_(actiondeps.actiondep.ACTIONID == kwargs["ACTIONID"], actiondeps.actiondep.DEPACTIONID == kwargs["DEPACTIONID"])).one()
			return "Error: Cannot depend on same Action more than once."
		except:
			pass

		a = actiondeps.actiondep(ACTIONID = kwargs["ACTIONID"])
		sess.add(a)

		try:
			fillobj(a, db.actiondep_table, kwargs)
			a.DEPACTIONID = kwargs["DEPACTIONID"]

			u = sess.query(user).filter(user.USERID == cherrypy.session.get('hquserid')).one()
			if u.actions(db.EDIT_MINE) and not u.actions(db.EDIT):
				if sess.query(actions.action).filter(actions.action.ACTIONID == kwargs["ACTIONID"]).one().USERID != u.USERID:
					return "Error: Unable to save action dependency, you do not have rights to do so."

			sess.flush()
		except Exception, e:
			return "Error: " + str(e)
Beispiel #3
0
	def copyaction(self, id, newid):
		sess = db.getsession()
		
		try:
			astruct = sess.query(actions.action).filter(actions.action.ACTIONID == id).one()

			a = actions.action(ACTIONID = newid)
			
			a.TITLE = astruct.TITLE
			a.CMDLINE = astruct.CMDLINE
			a.STDIN = astruct.STDIN
			a.STARTINDIR = astruct.STARTINDIR
			a.MAXRUNTIME = astruct.MAXRUNTIME
			a.STDOUT = astruct.STDOUT
			a.CREATEEVENT = astruct.CREATEEVENT
			a.COMMENTS = astruct.COMMENTS

			a.USERID = cherrypy.session.get('hquserid')

			a.ACTIONID = newid
			a.STATUS = 4

			sess.add(a)
			sess.flush()

			avalids = sess.query(validreturncode).filter(validreturncode.ACTIONID == id).all()
			for i in avalids:
				new_valid = validreturncode()
				new_valid.ACTIONID = newid
				new_valid.VALUE = i.VALUE
				sess.add(new_valid)
				sess.flush()

			adeps = sess.query(actiondeps.actiondep).filter(actiondeps.actiondep.ACTIONID == id).all()
			for i in adeps:
				new_dep = actiondeps.actiondep()
				new_dep.ACTIONID = newid
				new_dep.DEPACTIONID = i.DEPACTIONID
				sess.add(new_dep)
				sess.flush()

			fdeps = sess.query(filedep).filter(filedep.ACTIONID == id).all()
			for i in fdeps:
				new_dep = filedep()
				new_dep.ACTIONID = newid
				new_dep.SERVERID = i.SERVERID
				new_dep.FILENAME = i.FILENAME
				new_dep.TYPE = i.TYPE
				sess.add(new_dep)
				sess.flush()

			aservers = sess.query(actionservers.actionserver).filter(actionservers.actionserver.ACTIONID == id).all()
			for i in aservers:
				new_serv = actionservers.actionserver()
				new_serv.ACTIONID = newid
				new_serv.SERVERID = i.SERVERID
				sess.add(new_serv)
				sess.flush()

			agrps = sess.query(actiongroup).filter(actiongroup.ACTIONID == id).all()
			for i in agrps:
				new_grp = actiongroup()
				new_grp.ACTIONID = newid
				new_grp.GROUPID = i.GROUPID
				sess.add(new_grp)
				sess.flush()

			aevts = sess.query(actionevent).filter(actionevent.ACTIONID == id).all()
			for i in aevts:
				new_evt = actionevent()
				new_evt.ACTIONID = newid
				new_evt.EVENTNUM = i.EVENTNUM
				new_evt.RESULT = i.RESULT
				new_evt.TYPE = i.TYPE
				sess.add(new_evt)
				sess.flush()

			return "Copied"
		except Exception, e:
			return e