From 06f6049d5f10f286bb33de99cec32c6b703184d6 Mon Sep 17 00:00:00 2001 From: Francois Henrotte <francois.henrotte@ulg.ac.be> Date: Thu, 29 Nov 2012 12:58:35 +0000 Subject: [PATCH] loader as a test native client --- contrib/onelab/OnelabParser.cpp | 2 ++ contrib/onelab/loader.cpp | 32 ++++++++++++++++++++++++++++++++ contrib/onelab/myOS.cpp | 4 ++-- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/contrib/onelab/OnelabParser.cpp b/contrib/onelab/OnelabParser.cpp index d7fd7ff5af..f4d4096319 100644 --- a/contrib/onelab/OnelabParser.cpp +++ b/contrib/onelab/OnelabParser.cpp @@ -1676,4 +1676,6 @@ void MetaModel::client_sentence(const std::string &name, OLMsg::Error("Unknown client <%s>", name.c_str()); } } + else + OLMsg::Error("Unknown action <%s>", action.c_str()); } diff --git a/contrib/onelab/loader.cpp b/contrib/onelab/loader.cpp index 9ac1123599..f40a51cd85 100644 --- a/contrib/onelab/loader.cpp +++ b/contrib/onelab/loader.cpp @@ -236,6 +236,7 @@ int main(int argc, char *argv[]){ launchMenu=true; } else if(!strcmp(argv[i] + 1, "lol")) { + //loader used to call non-native clients (type=encapsulated) std::string clientName=argv[i+1]; client = new onelab::remoteNetworkClient(clientName,argv[i+2]); if(client){ @@ -265,6 +266,37 @@ int main(int argc, char *argv[]){ } exit(1); } + else if(!strcmp(argv[i] + 1, "onelab")) { + //loader used as a test native client + client = new onelab::remoteNetworkClient(argv[i+1],argv[i+2]); + if(!client){ + std::cout << "I have no client\n"; + exit(1); + } + std::vector<onelab::string> strings; + client->get(strings,client->getName()+"/9CheckCommand"); + if(strings.empty()){ // initialize + onelab::string s(client->getName()+"/9CheckCommand","-a"); + client->set(s); + onelab::number o(client->getName()+"/Initialized",1); + client->set(o); + } + else{ + std::cout << "I am initialized: CheckCommand=<" + << strings[0].getValue() << ">" << std::endl; + onelab::number o("alpha",123456); + client->set(o); + client->get(strings,"MESSAGE"); + if(strings.size()){ + std::cout << "I have to tell you: " << strings[0].getValue() << std::endl; + } + std::cout << "Now sleeping for 5s\n"; + SleepInSeconds(5); + std::cout << "Awake again\n"; + } + delete client; + return 0; + } else if(!strcmp(argv[i] + 1, "v")) { i++; if(argv[i]) diff --git a/contrib/onelab/myOS.cpp b/contrib/onelab/myOS.cpp index 030d07ae7f..a2b8ffb5d2 100644 --- a/contrib/onelab/myOS.cpp +++ b/contrib/onelab/myOS.cpp @@ -184,7 +184,7 @@ int SystemCall(const std::string &command, bool blocking) PROCESS_INFORMATION prInfo; memset(&suInfo, 0, sizeof(suInfo)); suInfo.cb = sizeof(suInfo); - //OLMsg::Info("Calling <%s>", command.c_str()); + OLMsg::Info("Calling <%s>", command.c_str()); if(blocking){ CreateProcess(NULL, (char*)command.c_str(), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, @@ -210,7 +210,7 @@ int SystemCall(const std::string &command, bool blocking) } std::string cmd(command); if(!blocking) cmd += " &"; - //OLMsg::Info("Calling <%s>", cmd.c_str()); + OLMsg::Info("Calling <%s>", cmd.c_str()); return system(cmd.c_str()); #endif } -- GitLab