(
m_Env.empty()) {
66 m_EnvValues.push_back(it->first +
"="+it->second);
72 if(added_env.
find(*it) == added_env.
end())
83 context.GetWorkerNode().GetServiceName());
105 m_Env.push_back(it->c_str());
109 m_Env.push_back(it->c_str());
141 if(
context.IsLogRequested()) {
152 ERR_POST(
"Cannot deserialize remote_app job");
153 context.CommitJobWithFailure(
"Error while " 154 "unpacking remote_app arguments");
162 size_toutput_size =
context.GetWorkerNode().GetServerOutputSize();
163 if(output_size == 0) {
171output_size = output_size - output_size / 10;
173 result.SetMaxInlineSize(output_size);
175 if(
context.IsLogRequested()) {
198 result.GetStdOutForWrite(),
199 result.GetStdErrForWrite(),
210 if(
context.IsLogRequested()) {
212 " is "<<
context.GetCommitStatusDescription(
214 ". Exit code: "<< ret);
215 if(!
result.GetErrBlobIdOrData().empty()) {
217 result.GetErrBlobIdOrData());
227m_NetCacheAPI(
context.GetNetCacheAPI()),
228m_RemoteAppLauncher(remote_app_launcher),
229m_AppEnvHolder(remote_app_launcher)
247 if(!
ctx->GetConfig().HasEntry(
"log",
"merge_lines")) {
256 #define GRID_APP_NAME "remote_app" 261 int main(
intargc,
const char* argv[])
264 returnMain<TRemoteAppJobFactory, CRemoteAppListener>(argc, argv);
list< string > m_EnvValues
CAppEnvHolder(const CRemoteAppLauncher &remote_app_launcher)
const char *const * GetEnv(const CWorkerNodeJobContext &)
vector< const char * > m_Env
list< string > m_CtxEnvValues
const CRemoteAppLauncher & m_RemoteAppLauncher
void SetReuseJobObject(bool value)
static CGridGlobals & GetInstance()
Client API for NetCache server.
unique_ptr< CRemoteAppLauncher > TLauncherPtr
The remote_app NetSchedule job.
int Do(CWorkerNodeJobContext &context)
Execute the job.
const CRemoteAppLauncher & m_RemoteAppLauncher
CAppEnvHolder m_AppEnvHolder
CNetCacheAPI m_NetCacheAPI
CRemoteAppJob(const IWorkerNodeInitContext &context, const CRemoteAppLauncher &remote_app_launcher)
const CNcbiEnvironment & GetLocalEnv() const
void FinishJob(bool finished_ok, int ret, CWorkerNodeJobContext &context) const
bool ExecRemoteApp(const vector< string > &args, CNcbiIstream &in, CNcbiOstream &out, CNcbiOstream &err, int &exit_value, CWorkerNodeJobContext &job_context, unsigned app_run_timeout, const char *const env[]) const
const TEnvMap & GetAddedEnv() const
CRemoteAppListener(const TLauncherPtr &launcher)
virtual void OnInit(IWorkerNodeInitBaseContext *ctx)
Perform the necessary pre-init checks.
Remote Application Request (both client side and application executor side)
CNcbiIstream & GetStdInForRead()
Get the stdin stream of the remote application.
const string & GetStdOutFileName() const
const string & GetInBlobIdOrData() const
void Deserialize(CNcbiIstream &is)
EStdOutErrStorageType GetStdOutErrStorageType() const
const string & GetCmdLine() const
Get the command line of the remote application.
const string & GetStdErrFileName() const
unsigned int GetAppRunTimeout() const
Remote Application Result (both client side and application executor side)
Worker Node initialize context.
Worker Node Job interface.
const_iterator end() const
const_iterator find(const key_type &key) const
static const struct name_t names[]
#define GRID_APP_CHECK_VERSION_ARGS()
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
void SetDiagPostFlag(EDiagPostFlag flag)
Set the specified flag (globally).
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
@ eDPF_MergeLines
Escape EOLs.
@ eDPF_PreMergeLines
Obsolete. Use eDPF_MergeLines.
string job_id
Output job key.
where both of them are integers Note
void TokenizeCmdLine(const string &cmdline, vector< string > &args)
const char kGridAppName[]
int main(int argc, const char *argv[])
static CS_CONTEXT * context
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4