adb_ncDescribeResourceResponse_t* ncDescribeResourceMarshal (adb_ncDescribeResource_t* ncDescribeResource, const axutil_env_t *env) { pthread_mutex_lock(&ncHandlerLock); adb_ncDescribeResourceType_t * input = adb_ncDescribeResource_get_ncDescribeResource(ncDescribeResource, env); adb_ncDescribeResourceResponse_t * response = adb_ncDescribeResourceResponse_create(env); adb_ncDescribeResourceResponseType_t * output = adb_ncDescribeResourceResponseType_create(env); // get standard fields from input axis2_char_t * correlationId = adb_ncDescribeResourceType_get_correlationId(input, env); axis2_char_t * userId = adb_ncDescribeResourceType_get_userId(input, env); // get operation-specific fields from input axis2_char_t * resourceType = adb_ncDescribeResourceType_get_resourceType(input, env); eventlog("NC", userId, correlationId, "DescribeResource", "begin"); { // do it ncMetadata meta = { correlationId, userId }; ncResource * outRes; int error = doDescribeResource (&meta, resourceType, &outRes); if (error) { logprintfl (EUCAERROR, "ERROR: doDescribeResource() failed error=%d\n", error); adb_ncDescribeResourceResponseType_set_return(output, env, AXIS2_FALSE); } else { // set standard fields in output adb_ncDescribeResourceResponseType_set_return(output, env, AXIS2_TRUE); adb_ncDescribeResourceResponseType_set_correlationId(output, env, correlationId); adb_ncDescribeResourceResponseType_set_userId(output, env, userId); // set operation-specific fields in output adb_ncDescribeResourceResponseType_set_nodeStatus(output, env, outRes->nodeStatus); adb_ncDescribeResourceResponseType_set_memorySizeMax(output, env, outRes->memorySizeMax); adb_ncDescribeResourceResponseType_set_memorySizeAvailable(output, env, outRes->memorySizeAvailable); adb_ncDescribeResourceResponseType_set_diskSizeMax(output, env, outRes->diskSizeMax); adb_ncDescribeResourceResponseType_set_diskSizeAvailable(output, env, outRes->diskSizeAvailable); adb_ncDescribeResourceResponseType_set_numberOfCoresMax(output, env, outRes->numberOfCoresMax); adb_ncDescribeResourceResponseType_set_numberOfCoresAvailable(output, env, outRes->numberOfCoresAvailable); adb_ncDescribeResourceResponseType_set_publicSubnets(output, env, outRes->publicSubnets); free_resource ( &outRes); } } // set response to output adb_ncDescribeResourceResponse_set_ncDescribeResourceResponse(response, env, output); pthread_mutex_unlock(&ncHandlerLock); eventlog("NC", userId, correlationId, "DescribeResource", "end"); return response; }
//! //! Handle the client describe resource request //! //! @param[in] pStub a pointer to the node controller (NC) stub structure //! @param[in] pMeta a pointer to the node controller (NC) metadata structure //! @param[in] resourceType UNUSED //! @param[out] outRes a list of resources we retrieved data for //! //! @return the result of doDescribeResource() //! //! @see doDescribeResource() //! int ncDescribeResourceStub(ncStub * pStub, ncMetadata * pMeta, char *resourceType, ncResource ** outRes) { return doDescribeResource(pMeta, resourceType, outRes); }