int rsUserAdmin( rsComm_t *rsComm, userAdminInp_t *userAdminInp ) { rodsServerHost_t *rodsServerHost; int status; rodsLog( LOG_DEBUG, "userAdmin" ); status = getAndConnRcatHost( rsComm, MASTER_RCAT, (const char*)NULL, &rodsServerHost ); if ( status < 0 ) { return status; } if ( rodsServerHost->localFlag == LOCAL_HOST ) { #ifdef RODS_CAT status = _rsUserAdmin( rsComm, userAdminInp ); #else status = SYS_NO_RCAT_SERVER_ERR; #endif } else { status = rcUserAdmin( rodsServerHost->conn, userAdminInp ); } if ( status < 0 ) { rodsLog( LOG_NOTICE, "rsUserAdmin: rcUserAdmin failed" ); } return status; }
int rsUserAdmin( rsComm_t *rsComm, userAdminInp_t *userAdminInp ) { rodsServerHost_t *rodsServerHost; int status; rodsLog( LOG_DEBUG, "userAdmin" ); status = getAndConnRcatHost( rsComm, MASTER_RCAT, ( const char* )NULL, &rodsServerHost ); if ( status < 0 ) { return status; } if ( rodsServerHost->localFlag == LOCAL_HOST ) { std::string svc_role; irods::error ret = get_catalog_service_role(svc_role); if(!ret.ok()) { irods::log(PASS(ret)); return ret.code(); } if( irods::CFG_SERVICE_ROLE_PROVIDER == svc_role ) { status = _rsUserAdmin( rsComm, userAdminInp ); } else if( irods::CFG_SERVICE_ROLE_CONSUMER == svc_role ) { status = SYS_NO_RCAT_SERVER_ERR; } else { rodsLog( LOG_ERROR, "role not supported [%s]", svc_role.c_str() ); status = SYS_SERVICE_ROLE_NOT_SUPPORTED; } } else { status = rcUserAdmin( rodsServerHost->conn, userAdminInp ); } if ( status < 0 ) { rodsLog( LOG_NOTICE, "rsUserAdmin: rcUserAdmin failed" ); } return status; }
/* Perform an rcUserAdmin call */ int userAdmin(char *arg0, char *arg1, char *arg2, char *arg3, char *arg4, char *arg5, char *arg6, char *arg7) { userAdminInp_t userAdminInp; int status; char *mySubName; char *myName; char *funcName; userAdminInp.arg0 = arg0; userAdminInp.arg1 = arg1; userAdminInp.arg2 = arg2; userAdminInp.arg3 = arg3; userAdminInp.arg4 = arg4; userAdminInp.arg5 = arg5; userAdminInp.arg6 = arg6; userAdminInp.arg7 = arg7; userAdminInp.arg8 = ""; userAdminInp.arg9 = ""; status = rcUserAdmin(Conn, &userAdminInp); funcName = "rcUserAdmin"; if (Conn->rError) { rError_t *Err; rErrMsg_t *ErrMsg; int i, len; Err = Conn->rError; len = Err->len; for (i=0;i<len;i++) { ErrMsg = Err->errMsg[i]; printf("Level %d message: %s\n",i, ErrMsg->msg); } } if (status < 0 ) { myName = rodsErrorName(status, &mySubName); rodsLog (LOG_ERROR, "%s failed with error %d %s %s",funcName, status, myName, mySubName); if (status == CAT_INVALID_USER_TYPE) { printf("See 'lt user_type' for a list of valid user types.\n"); } } return(status); }