コード例 #1
0
ファイル: server-marshal.c プロジェクト: nelsonc/eucalyptus
adb_GetConsoleOutputResponse_t* GetConsoleOutputMarshal (adb_GetConsoleOutput_t* getConsoleOutput, const axutil_env_t *env) {
  // output vars
  adb_GetConsoleOutputResponse_t *ret=NULL;
  adb_getConsoleOutputResponseType_t *gcort=NULL;
  
  //input vars
  adb_getConsoleOutputType_t *gcot=NULL;
  
  // working vars
  int rc;
  axis2_bool_t status=AXIS2_TRUE;
  char statusMessage[256];
  char *instId, *output=NULL;
  ncMetadata ccMeta;
  
  gcot = adb_GetConsoleOutput_get_GetConsoleOutput(getConsoleOutput, env);
  EUCA_MESSAGE_UNMARSHAL(getConsoleOutputType, gcot, (&ccMeta));
  
  instId = adb_getConsoleOutputType_get_instanceId(gcot, env);
  
  gcort = adb_getConsoleOutputResponseType_create(env);
  
  status = AXIS2_TRUE;
  output=NULL;
  if (!DONOTHING) {
    rc = doGetConsoleOutput(&ccMeta, instId, &output);
    if (rc) {
      logprintf("ERROR: doGetConsoleOutput() returned fail %d\n", rc);
      status = AXIS2_FALSE;
      snprintf(statusMessage, 255, "ERROR");
    } else {
      if (output) {
	adb_getConsoleOutputResponseType_set_consoleOutput(gcort, env, output);
      }
    }
  }
  if (output) free(output);
  
  adb_getConsoleOutputResponseType_set_correlationId(gcort, env, ccMeta.correlationId);
  adb_getConsoleOutputResponseType_set_userId(gcort, env, ccMeta.userId);
  adb_getConsoleOutputResponseType_set_return(gcort, env, status);
  if (status == AXIS2_FALSE) {
    adb_getConsoleOutputResponseType_set_statusMessage(gcort, env, statusMessage);
  }
  
  ret = adb_GetConsoleOutputResponse_create(env);
  adb_GetConsoleOutputResponse_set_GetConsoleOutputResponse(ret, env, gcort);
  
  return(ret);
}
コード例 #2
0
adb_ncGetConsoleOutputResponse_t* ncGetConsoleOutputMarshal (adb_ncGetConsoleOutput_t* ncGetConsoleOutput, const axutil_env_t *env) 
{
    pthread_mutex_lock(&ncHandlerLock);
    adb_ncGetConsoleOutputType_t * input          = adb_ncGetConsoleOutput_get_ncGetConsoleOutput(ncGetConsoleOutput, env);
    adb_ncGetConsoleOutputResponse_t * response   = adb_ncGetConsoleOutputResponse_create(env);
    adb_ncGetConsoleOutputResponseType_t * output = adb_ncGetConsoleOutputResponseType_create(env);

    // get standard fields from input
    axis2_char_t * correlationId = adb_ncGetConsoleOutputType_get_correlationId(input, env);
    axis2_char_t * userId = adb_ncGetConsoleOutputType_get_userId(input, env);

    // get operation-specific fields from input
    axis2_char_t * instanceId = adb_ncGetConsoleOutputType_get_instanceId(input, env);

    eventlog("NC", userId, correlationId, "GetConsoleOutput", "begin");
    { // do it
        ncMetadata meta = { correlationId, userId };
        char * consoleOutput=NULL;

        int error = doGetConsoleOutput (&meta, instanceId, &consoleOutput);
    
        if (error) {
            logprintfl (EUCAERROR, "ERROR: doGetConsoleOutput() failed error=%d\n", error);
            adb_ncGetConsoleOutputResponseType_set_return(output, env, AXIS2_FALSE);

        } else {
            // set standard fields in output
            adb_ncGetConsoleOutputResponseType_set_return(output, env, AXIS2_TRUE);
            adb_ncGetConsoleOutputResponseType_set_correlationId(output, env, correlationId);
            adb_ncGetConsoleOutputResponseType_set_userId(output, env, userId);

            // set operation-specific fields in output
            adb_ncGetConsoleOutputResponseType_set_consoleOutput(output, env, consoleOutput);
        }
	if (consoleOutput) free(consoleOutput);
    }
    // set response to output
    adb_ncGetConsoleOutputResponse_set_ncGetConsoleOutputResponse(response, env, output);
    pthread_mutex_unlock(&ncHandlerLock);
    
    eventlog("NC", userId, correlationId, "GetConsoleOutput", "end");
    return response;
}