_pmdParamValue( INT32 value, BOOLEAN hasMappe = TRUE ) { CHAR tmp[ 15 ] = { 0 } ; ossItoa( value, tmp, sizeof( tmp ) - 1 ) ; _value = tmp ; _hasMapped = hasMappe ; }
INT32 omRemoveBusinessCommand::_generateTaskConfig( list<BSONObj> &configList, BSONObj &taskConfig ) { INT32 rc = SDB_OK ; BSONObj filter ; BSONObjBuilder taskConfigBuilder ; BSONArrayBuilder configBuilder ; list<BSONObj>::iterator iter ; omDatabaseTool dbTool( _cb ) ; filter = BSON( OM_HOST_FIELD_NAME << "" << OM_HOST_FIELD_IP << "" << OM_HOST_FIELD_CLUSTERNAME << "" << OM_HOST_FIELD_USER << "" << OM_HOST_FIELD_PASSWD << "" << OM_HOST_FIELD_SSHPORT << "" ) ; taskConfigBuilder.append( OM_BSON_CLUSTER_NAME, _clusterName ) ; taskConfigBuilder.append( OM_BSON_BUSINESS_TYPE, _businessType ) ; taskConfigBuilder.append( OM_BSON_BUSINESS_NAME, _businessName ) ; taskConfigBuilder.append( OM_BSON_DEPLOY_MOD, _deployMod ) ; if ( OM_BUSINESS_SEQUOIADB == _businessType ) { string authUser ; string authPasswd ; rc = dbTool.getAuth( _businessName, authUser, authPasswd ) ; if ( rc ) { _errorMsg.setError( TRUE, "failed to get business auth: " "name=%s, rc=%d", _businessName.c_str(), rc ) ; PD_LOG( PDERROR, _errorMsg.getError() ) ; goto error ; } taskConfigBuilder.append( OM_TASKINFO_FIELD_AUTH_USER, authUser ) ; taskConfigBuilder.append( OM_TASKINFO_FIELD_AUTH_PASSWD, authPasswd ) ; } else if ( OM_BUSINESS_ZOOKEEPER == _businessType || OM_BUSINESS_SEQUOIASQL_OLAP == _businessType ) { string sdbUser ; string sdbPasswd ; string sdbUserGroup ; BSONObj clusterInfo ; rc = dbTool.getClusterInfo( _clusterName, clusterInfo ) ; if ( rc ) { _errorMsg.setError( TRUE, "failed to get cluster info: " "name=%s, rc=%d", _clusterName.c_str(), rc ) ; PD_LOG( PDERROR, _errorMsg.getError() ) ; goto error ; } sdbUser = clusterInfo.getStringField( OM_CLUSTER_FIELD_SDBUSER ) ; sdbPasswd = clusterInfo.getStringField( OM_CLUSTER_FIELD_SDBPASSWD ) ; sdbUserGroup = clusterInfo.getStringField( OM_CLUSTER_FIELD_SDBUSERGROUP ) ; taskConfigBuilder.append( OM_TASKINFO_FIELD_SDBUSER, sdbUser ) ; taskConfigBuilder.append( OM_TASKINFO_FIELD_SDBPASSWD, sdbPasswd ) ; taskConfigBuilder.append( OM_TASKINFO_FIELD_SDBUSERGROUP, sdbUserGroup ) ; } else if( OM_BUSINESS_SEQUOIASQL_OLTP == _businessType ) { } for ( iter = configList.begin(); iter != configList.end(); ++iter ) { string hostName ; string installPath ; BSONObj hostInfo ; BSONObj tmpHostInfo ; BSONObj configInfo ; BSONObj packages ; hostName = iter->getStringField( OM_CONFIGURE_FIELD_HOSTNAME ) ; configInfo = iter->getObjectField( OM_CONFIGURE_FIELD_CONFIG ) ; rc = dbTool.getHostInfoByAddress( hostName, tmpHostInfo ) ; if ( rc ) { _errorMsg.setError( TRUE, "failed to get host info: name=%s, rc=%d", hostName.c_str(), rc ) ; PD_LOG( PDERROR, _errorMsg.getError() ) ; goto error ; } hostInfo = tmpHostInfo.filterFieldsUndotted( filter, TRUE ) ; packages = tmpHostInfo.getObjectField( OM_HOST_FIELD_PACKAGES ) ; { BSONObjIterator pkgIter( packages ) ; while ( pkgIter.more() ) { BSONElement ele = pkgIter.next() ; BSONObj pkgInfo = ele.embeddedObject() ; string pkgName = pkgInfo.getStringField( OM_HOST_FIELD_PACKAGENAME ) ; if ( pkgName == _businessType ) { installPath = pkgInfo.getStringField( OM_HOST_FIELD_INSTALLPATH ) ; break ; } } } { BSONObjIterator configIter( configInfo ) ; while ( configIter.more() ) { BSONObjBuilder configInfoBuilder ; BSONElement ele = configIter.next() ; BSONObj nodeInfo = ele.embeddedObject() ; if ( OM_BUSINESS_SEQUOIADB == _businessType && 0 == ossStrlen( nodeInfo.getStringField( OM_CONF_DETAIL_CATANAME ) ) ) { CHAR catName[ OM_INT32_LENGTH + 1 ] = { 0 } ; string svcName = nodeInfo.getStringField( OM_CONF_DETAIL_SVCNAME ) ; INT32 iSvcName = ossAtoi( svcName.c_str() ) ; INT32 iCatName = iSvcName + MSG_ROUTE_CAT_SERVICE ; ossItoa( iCatName, catName, OM_INT32_LENGTH ) ; configInfoBuilder.append( OM_CONF_DETAIL_CATANAME, catName ) ; } configInfoBuilder.appendElements( nodeInfo ) ; configInfoBuilder.appendElements( hostInfo ) ; configInfoBuilder.append( OM_BSON_INSTALL_PATH, installPath ) ; configBuilder.append( configInfoBuilder.obj() ) ; } } } taskConfigBuilder.append( OM_TASKINFO_FIELD_CONFIG, configBuilder.arr() ) ; taskConfig = taskConfigBuilder.obj() ; done: return rc ; error: goto done ; }