diff --git a/contrib/onelab/OnelabParser.cpp b/contrib/onelab/OnelabParser.cpp index d7fd7ff5af2356d69fe4cf0a002e08607948730b..f4d4096319a93cc735f65cdb76d7029e2aeef0c0 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 9ac1123599bdcdd86c51965514e75020606cd616..f40a51cd8589d12e8f45dbed4c3ab404b77eab43 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 030d07ae7f884b632146a59cbec2cc2726bd91f5..a2b8ffb5d26ef0335a83dd5adc8c96b6a34efdfa 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 }