예제 #1
0
파일: STDTA.py 프로젝트: Tayyib/uludag
	def status(self):
		tts = createttsid(scope = "HOST")
		R = RPCData.RPCStruct()
		R.TTSID = "_TTSGEN_"
		R.makeRPCData("RESPONSE")
		R["status"]	= "RESULT"
		R["TTSID"]	= R.TTSID
		R["returnvalue"] = COMARValue.COMARRetVal(result = 0, value = COMARValue.string_create(tts))
		return R
예제 #2
0
def _testPipe(cmd="TRSU_CKTA", data="serdar"):
    p = COMARPipe()

    x = os.fork()
    if x:
        p.initFor("parent")
        print "Parent: send bytes:"
        data = COMARValue.string_create("Ben bir stringim")
        ps = p.putCommand(cmd, 109, 159, cPickle.dumps(data))
        print "PARENT PUT:", ps
        st = ""
        os.wait()

    else:
        p.initFor("child")
        select.select([p.cmd_rfile], [], [], 10)
        cmd = p.getCommand()
        print "Command:", cmd
        value = cmd[3]
        cv = cPickle.loads(value)
        print "CHILD: CV =", cv, "CVS=", COMARValue.dump_value_xml(cv)
        sys.exit(1)
예제 #3
0
파일: testclient.py 프로젝트: Tayyib/uludag
def start():
	"""Starts COMARd"""
	global	CONNS, AUTHHELPER
	cv = COMARValue
	print "Initializing COMARd-client"
	if os.getuid():
		print "Only root can be use this program\nExiting.."
		os._exit(1)
	AUTHHELPER = AUTHSYS.authSystem()
	CONNS = ConnectorModules()
	HTTP = CONNS.getModule("cxdrpc-http").object(comarHelper = comarRoot())

	rpc = RPCData.RPCStruct()
	op = "call"
	cslfile = "csl/sample/xorg.csl"
	omnode = "COMAR:Boot"
	appid = "DENEME"
	callEntry = "COMAR:Boot.ConfigureDisplay"
	callProperty = None
	propVal = None
	remoteHost = "127.0.0.1:8000"
	objid = "test"
	objttsid = "TEST_03" + str(time.time())
	callttsid = "TEST_02" + str(time.time())
	prml = {}
	x = 0
	skip = 0
	for i in sys.argv:
		if skip:
			skip = 0			
		elif i == "--help":
			print """
COMARd Test Client v 0.0.1

Usage:

for register a CSL file to OM:
	testclient.py --register [--file file][--node omnode][--appid appid]
		filename = Filename for CSL Code. Default: $PWD/csl/sample/xorg.csl
		node = OM Node for bind. Default: COMAR:Boot
		appid = Application ID. Default: DENEME		
for call OM Method Entry:
	testclient.py [--method methodName] | [--property propertyName [--setprop value]]
		method = Name of Method. Default: "COMAR:Boot.ConfigureDisplay"
		property = Name of Property, force Property read callEntry
		setprop  = New value for Property.
Global Parameters:
	--parameter prm=val
		Add parameter "prm" with value "val" to call.
	--host ipAddr:port
		Host address for required COMARd daemon..
	--objtest objid
		OBJCALL Mode..
	--objttsid ttsid
		TTSID for Object..
"""
			os._exit(0)
		elif i == "--register":
			op = "register"
		elif i == "--objtest":
			op = "objcall"
			objid = sys.argv[x+1]
			if callEntry == "COMAR:Boot.ConfigureDisplay":
				callEntry = "testEntry"
			skip = 1
		elif i == "--node":
			omnode = sys.argv[x+1]
			skip = 1
		elif i == "--appid":
			appid = sys.argv[x+1]
			skip = 1
		elif i == "--method":
			callEntry = sys.argv[x+1]
			skip = 1
		elif i == "--property":
			callProperty = sys.argv[x+1]
			skip = 1
		elif i == "--setprop":
			pval = sys.argv[x+1]
			try:
				pval = int(pval)
				propVal = COMARValue.numeric_create(pval)
			except:
				propVal = COMARValue.string_create(pval)
			
			skip = 1
		elif i == "--host":
			remoteHost = sys.argv[x+1]
			skip = 1 
		elif i == "--ttsid":
			callttsid = sys.argv[x+1]
			skip = 1 
		elif i == "--objttsid":
			objttsid = sys.argv[x+1]
			skip = 1 
		elif i == "--parameter":
			j = sys.argv[x+1]
			skip = 1
			print j
			key = j.split("=")[0]
			val = j.split("=")[1]
			print "Parameter '%s' value: %s" % (key, val)
			try:
				val = int(val)
				cval = COMARValue.numeric_create(val)
			except:
				cval = COMARValue.string_create(val)
			prml[key] = cval
		elif i == "--file":
			cslfile = sys.argv[x+1]
			skip = 1
		x += 1


	if op == "register":
		rpc.TTSID = callttsid
		rpc.RPCPriority = "INTERACTIVE"
		rpc.makeRPCData("OMCALL")
		rpc["name"] = "CORE:om.addNodeScript"
		rpc["type"] = "method"
		fname = cv.string_create(os.path.basename(cslfile))
		appid = cv.string_create(appid)
		f = open(cslfile)
		code = cv.string_create(f.read())
		f.close()
		node = cv.string_create(omnode)
		rpc.addPropertyMulti("parameter", "fileName", fname)
		rpc.addPropertyMulti("parameter", "code", code)
		rpc.addPropertyMulti("parameter", "AppID", appid)
		rpc.addPropertyMulti("parameter", "node", node)
	elif op == "objcall":
		rpc.TTSID = callttsid
		rpc.RPCPriority = "INTERACTIVE"
		rpc.makeRPCData("OBJCALL")
		print "Setting OBJ TTSID:", 
		rpc["ttsid"] = objttsid
		print rpc["ttsid"]
		rpc["object"] = cv.COMARValue(type="object", data = objid)		
		if callProperty:
			rpc["name"] = callProperty
			rpc.addPropertyMulti("parameter", "index", propindex)
			if propVal:
				rpc["type"] = "propertyset"
				rpc.addPropertyMulti("parameter", "value", propVal)
			else:
				
				rpc["type"] = "propertyget"	
		else:
			rpc["name"] = callEntry			
			rpc["type"] = "method"

	else:
		rpc.TTSID = callttsid
		rpc.RPCPriority = "INTERACTIVE"
		rpc.makeRPCData("OMCALL")
		if callProperty:
			rpc["name"] = callProperty
			if propVal:
				rpc["type"] = "propertyset"				
			else:
				rpc["type"] = "propertyget"	
		else:
			rpc["name"] = callEntry
			rpc["type"] = "method"
			
	for key in prml.keys():
		print "ADD PRM:", key, prml[key], rpc.addPropertyMulti("parameter", key, prml[key])
		
	print "Send HTTP to localhost from:", os.getpid(), time.time(), rpc.xml
	print HTTP.makeConnection(realmAddress = remoteHost)
	HTTP.sendRPC(rpc = rpc)