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