Search in sources :

Example 16 with GetDatabaseListTask

use of com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask in project cubrid-manager by CUBRID.

the class HaShardDemo method getShardNodeIndo.

protected NodeInfo getShardNodeIndo(ServerInfo serverInfo) {
    ShardNode nodeInfo = new ShardNode();
    Shards shards = new Shards();
    GetShardConfTask<Shards> getShardConfTask = new GetShardConfTask<Shards>(serverInfo, shards);
    getShardConfTask.execute();
    if (!getShardConfTask.isSuccess()) {
        return null;
    }
    getShardConfTask.loadDataToModel();
    serverInfo.setShards(shards);
    List<Shard> shardList = shards.getShardList();
    for (int i = 0; shardList != null && i < shardList.size(); i++) {
        Shard shard = shardList.get(i);
        String dbName = shard.getValue("SHARD_DB_NAME");
        nodeInfo.addDatabase(dbName);
        ShardConnection shardConnection = new ShardConnection();
        shard.setShardConnectionFile(shardConnection);
        GetShardConfTask<ShardConnection> getShardConnectionConfTask = new GetShardConfTask<ShardConnection>(serverInfo, shardConnection);
        getShardConnectionConfTask.execute();
        getShardConnectionConfTask.loadDataToModel();
    }
    GetDatabaseListTask getDatabaseListTask = new GetDatabaseListTask(serverInfo);
    getDatabaseListTask.execute();
    List<DatabaseInfo> databaseInfoList = getDatabaseListTask.loadDatabaseInfo();
    int shardDbCnt = nodeInfo.getDatabases().size();
    int matchedCnt = 0;
    for (DatabaseInfo dbInfo : databaseInfoList) {
        for (String dbName : nodeInfo.getDatabases()) {
            if (dbInfo.getDbName().equals(dbName)) {
                if (DbRunningType.CS.equals(dbInfo.getRunningType())) {
                    nodeInfo.setDbStatus(dbName, "ON");
                } else {
                    nodeInfo.setDbStatus(dbName, "OFF");
                }
                matchedCnt++;
                if (shardDbCnt <= matchedCnt) {
                    break;
                } else {
                    continue;
                }
            }
        }
    }
    nodeInfo.setShards(shards);
    return nodeInfo;
}
Also used : DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) GetShardConfTask(com.cubrid.cubridmanager.core.shard.task.GetShardConfTask) GetDatabaseListTask(com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask) ShardNode(com.cubrid.cubridmanager.core.cubrid.service.model.ShardNode) ShardConnection(com.cubrid.cubridmanager.core.shard.model.ShardConnection) Shards(com.cubrid.cubridmanager.core.shard.model.Shards) Shard(com.cubrid.cubridmanager.core.shard.model.Shard)

Example 17 with GetDatabaseListTask

use of com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask in project cubrid-manager by CUBRID.

the class EditStatisticHostDialog method refreshDbAndBrokerData.

/**
	 * Refresh database and broker data for the selected host.
	 *
	 * @param isSupported whether selected CUBRID host support monitor statistic
	 *        feature
	 */
private void refreshDbAndBrokerData(boolean isSupported, boolean isInitial) {
    boolean isDbDataValid = false;
    boolean isBrokerDataValid = false;
    boolean isNeedInitDbNameValue = isNewHost || !isInitial || dbNameValue == null;
    boolean isNeedInitBrokerNameValue = isNewHost || !isInitial || brokerNameValue == null;
    boolean isDbContained = false;
    if (isSupported) {
        List<String> dbNameList = serverInfo.getAllDatabaseList();
        if (dbNameList != null && dbNameList.size() > 0) {
            GetDatabaseListTask getDatabaseListTask = new GetDatabaseListTask(serverInfo);
            getDatabaseListTask.execute();
            if (getDatabaseListTask.isSuccess()) {
                List<DatabaseInfo> dbInfoList = getDatabaseListTask.loadDatabaseInfo();
                int activeDbCount = 0;
                for (DatabaseInfo dbInfo : dbInfoList) {
                    if (DbRunningType.CS.equals(dbInfo.getRunningType())) {
                        for (String dbName : dbNameList) {
                            if (dbName.equals(dbInfo.getDbName())) {
                                activeDbCount++;
                                break;
                            }
                        }
                    }
                }
                if (activeDbCount != 0) {
                    isDbDataValid = true;
                    itemsDbName = new String[activeDbCount];
                    int itemsDbNameIndex = 0;
                    for (DatabaseInfo dbInfo : dbInfoList) {
                        if (DbRunningType.CS.equals(dbInfo.getRunningType())) {
                            for (String dbName : dbNameList) {
                                if (dbName.equals(dbInfo.getDbName())) {
                                    itemsDbName[itemsDbNameIndex++] = dbName;
                                    //check whether the DB name is in the DB name list when edit host
                                    if (isInitial && !isNewHost && dbName.equals(dbNameValue)) {
                                        isDbContained = true;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                    if (isNeedInitDbNameValue) {
                        dbNameValue = itemsDbName[0];
                    }
                }
            }
            if (serverInfo.getBrokerInfos() != null && serverInfo.getBrokerInfos().getBorkerInfoList() != null && serverInfo.getBrokerInfos().getBorkerInfoList().getBrokerInfoList() != null && serverInfo.getBrokerInfos().getBorkerInfoList().getBrokerInfoList().size() > 0) {
                List<BrokerInfo> brokerInfoList = serverInfo.getBrokerInfos().getBorkerInfoList().getBrokerInfoList();
                itemsBrokerName = new String[brokerInfoList.size()];
                for (int i = 0; i < brokerInfoList.size(); i++) {
                    itemsBrokerName[i] = brokerInfoList.get(i).getName();
                }
                if (isNeedInitBrokerNameValue) {
                    brokerNameValue = itemsBrokerName[0];
                }
                isBrokerDataValid = true;
            }
        }
    }
    if (!isDbDataValid) {
        itemsDbName = ITEMS_EMPTY;
        if (isNeedInitDbNameValue) {
            dbNameValue = VALUE_DEFAULT;
        }
    }
    if (!isBrokerDataValid) {
        itemsBrokerName = ITEMS_EMPTY;
        if (isNeedInitBrokerNameValue) {
            brokerNameValue = VALUE_DEFAULT;
        }
    }
    StatisticType type = StatisticType.getEnumByMessage(comboDataType.getText());
    type = type == null ? StatisticType.DB : type;
    switch(type) {
        case DB:
            comboDbName.setItems(itemsDbName);
            comboDbName.setText(dbNameValue);
            isOkEnable[1] = (isInitial && !isNewHost) ? (isDbDataValid && isDbContained) : isDbDataValid;
            isOkEnable[2] = true;
            isOkEnable[3] = true;
            break;
        case DB_VOL:
            comboDbName.setItems(itemsDbName);
            comboDbName.setText(dbNameValue);
            isOkEnable[1] = isDbDataValid;
            if (isDbDataValid) {
                refreshDbVolData(dbNameValue, isInitial);
                isOkEnable[2] = !VALUE_DEFAULT.equals(dbVolNameValue);
            } else {
                itemsVolName = ITEMS_EMPTY;
                if (isNewHost || !isInitial || dbVolNameValue == null) {
                    dbVolNameValue = VALUE_DEFAULT;
                }
                isOkEnable[2] = false;
            }
            comboVolName.setItems(itemsVolName);
            comboVolName.setText(dbVolNameValue);
            isOkEnable[3] = true;
            break;
        case BROKER:
            comboBrokerName.setItems(itemsBrokerName);
            comboBrokerName.setText(brokerNameValue);
            isOkEnable[1] = true;
            isOkEnable[2] = true;
            isOkEnable[3] = isBrokerDataValid;
            break;
        case OS:
            isOkEnable[1] = true;
            isOkEnable[2] = true;
            isOkEnable[3] = true;
            break;
        default:
    }
}
Also used : GetDatabaseListTask(com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) StatisticType(com.cubrid.cubridmanager.core.monstatistic.model.StatisticParamUtil.StatisticType) BrokerInfo(com.cubrid.cubridmanager.core.broker.model.BrokerInfo)

Example 18 with GetDatabaseListTask

use of com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask in project cubrid-manager by CUBRID.

the class FinishTask method call.

public Integer call() {
    ProgressBar bar = (ProgressBar) item.getData(MultiHostConnectionDialog.KEY_BAR);
    MonitorDashboardPreference monPref = new MonitorDashboardPreference();
    boolean isRunUpdateCmUserTask = false;
    BrokerInfos brokerInfos = null;
    int size = tasks.size();
    int taskIdx = 1;
    for (ITask task : tasks) {
        if (task instanceof MonitoringTask) {
            if (!serverInfo.isConnected()) {
                CMHostNodePersistManager.getInstance().addServer(serverInfo.getHostAddress(), serverInfo.getHostMonPort(), serverInfo.getUserName(), serverInfo);
                MonitoringTask monitoringTask = (MonitoringTask) task;
                serverInfo = monitoringTask.connectServer(Version.releaseVersion, monPref.getHAHeartBeatTimeout());
                if (serverInfo.isConnected()) {
                    CMHostNodePersistManager.getInstance().addServer(serverInfo.getHostAddress(), serverInfo.getHostMonPort(), serverInfo.getUserName(), serverInfo);
                } else {
                    CMHostNodePersistManager.getInstance().removeServer(serverInfo.getHostAddress(), serverInfo.getHostMonPort(), serverInfo.getUserName());
                }
            }
        } else if ((task instanceof UpdateCMUserTask)) {
            updateCMUserAuthInfo(task, isRunUpdateCmUserTask);
        } else {
            task.execute();
        }
        final String msg = task.getErrorMsg();
        if (msg != null && msg.length() > 0) {
            item.setText(3, msg);
            disConnect();
            isFinished = true;
            updateIcon();
            return 1;
        }
        if (task instanceof GetEnvInfoTask) {
            GetEnvInfoTask getEnvInfoTask = (GetEnvInfoTask) task;
            EnvInfo envInfo = getEnvInfoTask.loadEnvInfo();
            serverInfo.setEnvInfo(envInfo);
            String clientVersion = getClientVerion();
            if (!isClientSupport(clientVersion)) {
                item.setText(3, Messages.bind(Messages.errNoSupportServerVersion, clientVersion));
                disConnect();
                isFinished = true;
                updateIcon();
                return 2;
            }
            String jdbcVersion = serverInfo.getJdbcDriverVersion();
            if (serverInfo.validateJdbcVersion(jdbcVersion)) {
                if (ServerJdbcVersionMapping.JDBC_SELF_ADAPTING_VERSION.equals(jdbcVersion)) {
                    serverInfo.setJdbcDriverVersion(ServerInfo.getAutoDetectJdbcVersion(serverInfo.getFullServerVersionKey()));
                }
            } else {
                if (ServerJdbcVersionMapping.JDBC_SELF_ADAPTING_VERSION.equals(jdbcVersion)) {
                    item.setText(3, Messages.errNoSupportDriver);
                } else {
                    item.setText(3, Messages.errSelectSupportDriver);
                }
                disConnect();
                isFinished = true;
                updateIcon();
                return 3;
            }
        } else if (task instanceof GetDatabaseListTask) {
            GetDatabaseListTask getDatabaseListTask = (GetDatabaseListTask) task;
            List<DatabaseInfo> databaseInfoList = getDatabaseListTask.loadDatabaseInfo();
            if (databaseInfoList != null) {
                allDatabaseInfoList.addAll(databaseInfoList);
            }
        } else if (task instanceof GetCMConfParameterTask) {
            GetCMConfParameterTask getCMConfParameterTask = (GetCMConfParameterTask) task;
            Map<String, String> confParameters = getCMConfParameterTask.getConfParameters();
            ServerType serverType = ServerType.BOTH;
            if (confParameters != null) {
                String target = confParameters.get(CubridManagerConfParaConstants.CM_TARGET);
                if (target != null) {
                    if (target.indexOf("broker") >= 0 && target.indexOf("server") >= 0) {
                        serverType = ServerType.BOTH;
                    } else if (target.indexOf("broker") >= 0) {
                        serverType = ServerType.BROKER;
                    } else if (target.indexOf("server") >= 0) {
                        serverType = ServerType.DATABASE;
                    }
                }
            }
            if (serverInfo != null) {
                serverInfo.setServerType(serverType);
            }
        } else if (task instanceof CommonQueryTask) {
            CommonQueryTask<BrokerInfos> getBrokerTask = (CommonQueryTask<BrokerInfos>) task;
            brokerInfos = getBrokerTask.getResultModel();
            if (serverInfo != null) {
                serverInfo.setBrokerInfos(brokerInfos);
            }
        } else if (task instanceof GetCMUserListTask) {
            if (serverInfo != null && serverInfo.isConnected()) {
                GetCMUserListTask getUserInfoTask = (GetCMUserListTask) task;
                List<ServerUserInfo> serverUserInfoList = getUserInfoTask.getServerUserInfoList();
                for (int i = 0; serverUserInfoList != null && i < serverUserInfoList.size(); i++) {
                    ServerUserInfo userInfo = serverUserInfoList.get(i);
                    if (userInfo != null && userInfo.getUserName().equals(serverInfo.getUserName())) {
                        serverInfo.setLoginedUserInfo(userInfo);
                        break;
                    }
                }
                List<DatabaseInfo> databaseInfoList = serverInfo.getLoginedUserInfo().getDatabaseInfoList();
                if (databaseInfoList != null) {
                    authDatabaseList.addAll(databaseInfoList);
                }
                isRunUpdateCmUserTask = CubridDatabasesFolderLoader.filterDatabaseList(serverInfo, allDatabaseInfoList, authDatabaseList);
                if (isRunUpdateCmUserTask) {
                    serverInfo.getLoginedUserInfo().setDatabaseInfoList(authDatabaseList);
                }
            }
        } else if (task instanceof GetCubridConfParameterTask) {
            GetCubridConfParameterTask getCubridConfParameterTask = (GetCubridConfParameterTask) task;
            Map<String, Map<String, String>> confParas = getCubridConfParameterTask.getConfParameters();
            if (serverInfo != null) {
                serverInfo.setCubridConfParaMap(confParas);
            }
        } else if (task instanceof GetBrokerConfParameterTask) {
            GetBrokerConfParameterTask getBrokerConfParameterTask = (GetBrokerConfParameterTask) task;
            Map<String, Map<String, String>> confParas = getBrokerConfParameterTask.getConfParameters();
            if (serverInfo != null) {
                serverInfo.setBrokerConfParaMap(confParas);
            }
        } else if (task instanceof FinishTask) {
            isSuccess = true;
            server.getLoader().setLoaded(false);
            CubridNodeManager.getInstance().fireCubridNodeChanged(new CubridNodeChangedEvent(server, CubridNodeChangedEventType.SERVER_CONNECTED));
        }
        bar.setSelection(taskIdx++ / size * 100);
        if (isCanceled()) {
            isFinished = true;
            updateIcon();
            return 4;
        }
    }
    bar.setSelection(100);
    item.setText(3, Messages.msgConneted);
    isFinished = true;
    return 0;
}
Also used : ServerType(com.cubrid.cubridmanager.core.common.model.ServerType) MonitorDashboardPreference(com.cubrid.cubridmanager.ui.mondashboard.preference.MonitorDashboardPreference) ITask(com.cubrid.common.core.task.ITask) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) BrokerInfos(com.cubrid.cubridmanager.core.broker.model.BrokerInfos) CubridNodeChangedEvent(com.cubrid.common.ui.spi.event.CubridNodeChangedEvent) GetCMConfParameterTask(com.cubrid.cubridmanager.core.common.task.GetCMConfParameterTask) UpdateCMUserTask(com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask) CommonQueryTask(com.cubrid.cubridmanager.core.common.task.CommonQueryTask) MonitoringTask(com.cubrid.cubridmanager.core.common.task.MonitoringTask) ArrayList(java.util.ArrayList) List(java.util.List) ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo) ProgressBar(org.eclipse.swt.widgets.ProgressBar) GetCMUserListTask(com.cubrid.cubridmanager.core.common.task.GetCMUserListTask) GetCubridConfParameterTask(com.cubrid.cubridmanager.core.common.task.GetCubridConfParameterTask) GetEnvInfoTask(com.cubrid.cubridmanager.core.common.task.GetEnvInfoTask) GetDatabaseListTask(com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask) GetBrokerConfParameterTask(com.cubrid.cubridmanager.core.broker.task.GetBrokerConfParameterTask) Map(java.util.Map) EnvInfo(com.cubrid.cubridmanager.core.common.model.EnvInfo)

Example 19 with GetDatabaseListTask

use of com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask in project cubrid-manager by CUBRID.

the class ConnectHostExecutor method runLoop.

private boolean runLoop(final IProgressMonitor monitor) {
    MonitorDashboardPreference monPref = new MonitorDashboardPreference();
    isContinue = true;
    boolean isRunUpdateCmUserTask = false;
    BrokerInfos brokerInfos = null;
    /*To avoid invalid thread access exception*/
    beginTask(monitor);
    for (ITask task : taskList) {
        if (task instanceof MonitoringTask) {
            if (!serverInfo.isConnected()) {
                addServerInHashMap(serverInfo);
                MonitoringTask monitoringTask = (MonitoringTask) task;
                serverInfo = monitoringTask.connectServer(Version.releaseVersion, monPref.getHAHeartBeatTimeout());
                if (serverInfo.isConnected()) {
                    addServerInHashMap(serverInfo);
                } else {
                    removeServerFromHashMap(serverInfo);
                }
            }
            changePassword();
        } else if ((task instanceof UpdateCMUserTask)) {
            updateCMUserAuthInfo(task, isRunUpdateCmUserTask);
        } else {
            task.execute();
        }
        final String msg = task.getErrorMsg();
        if (monitor.isCanceled()) {
            disConnect();
            return false;
        }
        if (msg != null) {
            boolean emptyMsg = StringUtil.isEmpty(msg);
            // for TOOLS-2142 logging
            try {
                if (task instanceof MonitoringTask) {
                    String request = ((MonitoringTask) task).getRequest();
                    char[] requestCharArray = request.toCharArray();
                    int sp = request.indexOf("id:");
                    if (sp != -1) {
                        sp += "id:".length();
                        for (int i = sp; i < requestCharArray.length; i++) {
                            if (requestCharArray[i] == '\n') {
                                break;
                            }
                            requestCharArray[i] = '*';
                        }
                    }
                    sp = request.indexOf("password:");
                    if (sp != -1) {
                        sp += "password:".length();
                        for (int i = sp; i < requestCharArray.length; i++) {
                            if (requestCharArray[i] == '\n') {
                                break;
                            }
                            requestCharArray[i] = '*';
                        }
                    }
                    LOGGER.debug("CMS request : \n" + new String(requestCharArray));
                    LOGGER.debug("CMS error : \n" + task.getErrorMsg());
                    LOGGER.debug("CMS warn : \n" + task.getWarningMsg());
                }
            } catch (Exception e) {
                LOGGER.error("", e);
            }
            String lowerMsg = msg.toLowerCase();
            // Connection refused: connect
            if (lowerMsg.indexOf("connection refused: connect") != -1) {
                String localizedMsg = Messages.errConnectionRefused;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else //the socket "Connection reset" occasional error is unnecessary to display, and it will affect user experience.
            if (lowerMsg.indexOf("connection reset") != -1) {
                String localizedMsg = Messages.errConnectionReset;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else // connect timed out
            if (lowerMsg.indexOf("connect timed out") != -1) {
                String localizedMsg = Messages.errConnectTimedOut;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else // user not found
            if (lowerMsg.indexOf("user not found") != -1) {
                String localizedMsg = Messages.errUserNotFound;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else // Incorrect password
            if (lowerMsg.indexOf("incorrect password") != -1) {
                String localizedMsg = Messages.errUserPasswordConnect;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else // No route to host connect
            if (lowerMsg.indexOf("no route to host connect") != -1) {
                String localizedMsg = Messages.errConnectAddress;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else // There is no error message but there have some error about brokers.
            if (emptyMsg && StringUtil.isEqual(task.getTaskname(), BrokerInfos.TASK_NAME)) {
                String localizedMsg = Messages.errConnectionByBrokerConfig;
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            } else {
                String localizedMsg = Messages.bind(Messages.errConnectionFailed, msg);
                if (!prepareMessage(monitor, localizedMsg)) {
                    return false;
                }
            }
        }
        if (task instanceof GetEnvInfoTask) {
            GetEnvInfoTask getEnvInfoTask = (GetEnvInfoTask) task;
            EnvInfo envInfo = getEnvInfoTask.loadEnvInfo();
            serverInfo.setEnvInfo(envInfo);
            String clientVersion = getClientVerion();
            if (!isClientSupport(clientVersion)) {
                openErrorBox(shell, Messages.bind(Messages.errNoSupportServerVersion, clientVersion), monitor);
            }
            //for multi host monitor statistic and monitor dashboard
            if (isCheckJdbc) {
                String jdbcVersion = serverInfo.getJdbcDriverVersion();
                if (serverInfo.validateJdbcVersion(jdbcVersion)) {
                    if (ServerJdbcVersionMapping.JDBC_SELF_ADAPTING_VERSION.equals(jdbcVersion)) {
                        serverInfo.setJdbcDriverVersion(ServerInfo.getAutoDetectJdbcVersion(serverInfo.getFullServerVersionKey()));
                    }
                } else {
                    if (ServerJdbcVersionMapping.JDBC_SELF_ADAPTING_VERSION.equals(jdbcVersion)) {
                        openErrorBox(shell, Messages.errNoSupportDriver, monitor);
                    } else {
                        openErrorBox(shell, Messages.errSelectSupportDriver, monitor);
                    }
                    disConnect();
                    return false;
                }
            }
        } else if (task instanceof GetDatabaseListTask) {
            GetDatabaseListTask getDatabaseListTask = (GetDatabaseListTask) task;
            List<DatabaseInfo> databaseInfoList = getDatabaseListTask.loadDatabaseInfo();
            if (databaseInfoList != null) {
                allDatabaseInfoList.addAll(databaseInfoList);
            }
        } else if (task instanceof GetCMConfParameterTask) {
            GetCMConfParameterTask getCMConfParameterTask = (GetCMConfParameterTask) task;
            Map<String, String> confParameters = getCMConfParameterTask.getConfParameters();
            ServerType serverType = ServerType.BOTH;
            if (confParameters != null) {
                String target = confParameters.get(ConfConstants.CM_TARGET);
                if (target != null) {
                    if (target.indexOf("broker") >= 0 && target.indexOf("server") >= 0) {
                        serverType = ServerType.BOTH;
                    } else if (target.indexOf("broker") >= 0) {
                        serverType = ServerType.BROKER;
                    } else if (target.indexOf("server") >= 0) {
                        serverType = ServerType.DATABASE;
                    }
                }
                String supportMonStatistic = confParameters.get(ConfConstants.SUPPORT_MON_STATISTIC);
                if ("yes".equalsIgnoreCase(supportMonStatistic)) {
                    serverInfo.setSupportMonitorStatistic(true);
                } else {
                    serverInfo.setSupportMonitorStatistic(false);
                }
            }
            if (serverInfo != null) {
                serverInfo.setServerType(serverType);
            }
        } else if (task instanceof CommonQueryTask) {
            @SuppressWarnings("unchecked") CommonQueryTask<BrokerInfos> getBrokerTask = (CommonQueryTask<BrokerInfos>) task;
            brokerInfos = getBrokerTask.getResultModel();
            if (serverInfo != null) {
                serverInfo.setBrokerInfos(brokerInfos);
            }
        } else if (task instanceof GetCMUserListTask) {
            if (serverInfo != null && serverInfo.isConnected()) {
                GetCMUserListTask getUserInfoTask = (GetCMUserListTask) task;
                List<ServerUserInfo> serverUserInfoList = getUserInfoTask.getServerUserInfoList();
                for (int i = 0; serverUserInfoList != null && i < serverUserInfoList.size(); i++) {
                    ServerUserInfo userInfo = serverUserInfoList.get(i);
                    if (userInfo != null && userInfo.getUserName().equals(serverInfo.getUserName())) {
                        serverInfo.setLoginedUserInfo(userInfo);
                        break;
                    }
                }
                List<DatabaseInfo> databaseInfoList = serverInfo.getLoginedUserInfo().getDatabaseInfoList();
                if (databaseInfoList != null) {
                    authDatabaseList.addAll(databaseInfoList);
                }
                isRunUpdateCmUserTask = CubridDatabasesFolderLoader.filterDatabaseList(serverInfo, allDatabaseInfoList, authDatabaseList);
                if (isRunUpdateCmUserTask) {
                    serverInfo.getLoginedUserInfo().setDatabaseInfoList(authDatabaseList);
                }
            }
        } else if (task instanceof GetCubridConfParameterTask) {
            GetCubridConfParameterTask getCubridConfParameterTask = (GetCubridConfParameterTask) task;
            Map<String, Map<String, String>> confParas = getCubridConfParameterTask.getConfParameters();
            if (serverInfo != null) {
                serverInfo.setCubridConfParaMap(confParas);
            }
        } else if (task instanceof GetBrokerConfParameterTask) {
            GetBrokerConfParameterTask getBrokerConfParameterTask = (GetBrokerConfParameterTask) task;
            Map<String, Map<String, String>> confParas = getBrokerConfParameterTask.getConfParameters();
            if (serverInfo != null) {
                serverInfo.setBrokerConfParaMap(confParas);
            }
        }
        if (monitor.isCanceled() || !isContinue) {
            disConnect();
            return false;
        }
    }
    return true;
}
Also used : ServerType(com.cubrid.cubridmanager.core.common.model.ServerType) MonitorDashboardPreference(com.cubrid.cubridmanager.ui.mondashboard.preference.MonitorDashboardPreference) ITask(com.cubrid.common.core.task.ITask) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) BrokerInfos(com.cubrid.cubridmanager.core.broker.model.BrokerInfos) GetCMConfParameterTask(com.cubrid.cubridmanager.core.common.task.GetCMConfParameterTask) UpdateCMUserTask(com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask) CommonQueryTask(com.cubrid.cubridmanager.core.common.task.CommonQueryTask) MonitoringTask(com.cubrid.cubridmanager.core.common.task.MonitoringTask) ArrayList(java.util.ArrayList) List(java.util.List) ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo) GetCMUserListTask(com.cubrid.cubridmanager.core.common.task.GetCMUserListTask) GetCubridConfParameterTask(com.cubrid.cubridmanager.core.common.task.GetCubridConfParameterTask) GetEnvInfoTask(com.cubrid.cubridmanager.core.common.task.GetEnvInfoTask) GetDatabaseListTask(com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask) GetBrokerConfParameterTask(com.cubrid.cubridmanager.core.broker.task.GetBrokerConfParameterTask) Map(java.util.Map) EnvInfo(com.cubrid.cubridmanager.core.common.model.EnvInfo)

Example 20 with GetDatabaseListTask

use of com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask in project cubrid-manager by CUBRID.

the class CreateReplicationJobExecutor method createMaster.

/**
	 * create master database
	 * 
	 * @param dbName String
	 * @param monitor IProgressMonitor
	 * @param taskList List<ITask>
	 * @return status
	 */
private IStatus createMaster(final String dbName, final IProgressMonitor monitor, List<ITask> taskList) {
    monitor.subTask(Messages.bind(Messages.createMasterJobName, dbName));
    Display display = Display.getDefault();
    MonitoringTask monitoringTask = null;
    boolean isExecuteSetParaTask = true;
    boolean isExecuteStopDbTask = true;
    boolean isExecuteStartDbTask = false;
    Map<String, Map<String, String>> confParaMaps = null;
    MonitorDashboardPreference monPref = new MonitorDashboardPreference();
    for (ITask task : taskList) {
        if (task instanceof MonitoringTask) {
            monitoringTask = (MonitoringTask) task;
            ServerInfo serverInfo = monitoringTask.getServerInfo();
            CMHostNodePersistManager.getInstance().addServer(serverInfo.getHostAddress(), serverInfo.getHostMonPort(), serverInfo.getUserName(), serverInfo);
            monitoringTask.connectServer(Version.releaseVersion, monPref.getHAHeartBeatTimeout());
        } else if (task instanceof StopReplServerTask) {
            if (isExecuteStopReplServerTask) {
                task.execute();
            } else {
                continue;
            }
        } else if (task instanceof SetCubridConfParameterTask) {
            if (isExecuteSetParaTask) {
                SetCubridConfParameterTask setCubridConfParameterTask = (SetCubridConfParameterTask) task;
                setCubridConfParameterTask.setConfParameters(confParaMaps);
                task.execute();
            } else {
                continue;
            }
        } else if (task instanceof CommonUpdateTask && task.getTaskname().equals(CommonTaskName.STOP_DB_TASK_NAME)) {
            if (isExecuteStopDbTask) {
                task.execute();
            } else {
                continue;
            }
        } else if (task instanceof CommonUpdateTask && task.getTaskname().equals(CommonTaskName.START_DB_TASK_NAME)) {
            if (isExecuteStartDbTask) {
                task.execute();
            } else {
                continue;
            }
        } else if (task instanceof GetTransferProgressTask) {
            GetTransferProgressTask getTransferProgressTask = (GetTransferProgressTask) task;
            monitor.subTask(Messages.transFileJobName);
            if (pid != null) {
                while (!isCanceled()) {
                    getTransferProgressTask.setPid(pid);
                    getTransferProgressTask.execute();
                    TransFileProgressInfo progressInfo = getTransferProgressTask.getProgressInfo();
                    if (getTransferProgressTask.isSuccess() && progressInfo != null) {
                        String transferStatus = progressInfo.getTransferStatus();
                        String transferNote = progressInfo.getTransferNote();
                        if (transferStatus != null && transferStatus.equals("success")) {
                            pid = null;
                            cancelTransFileTask = null;
                            break;
                        } else if (transferStatus != null && transferStatus.equals("failure")) {
                            pid = null;
                            cancelTransFileTask = null;
                            getTransferProgressTask.setErrorMsg(transferNote);
                            break;
                        } else {
                            try {
                                Thread.sleep(1000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    } else {
                        break;
                    }
                }
            }
        } else if (task instanceof CancelTransFileTask) {
            cancelTransFileTask = (CancelTransFileTask) task;
        } else {
            task.execute();
        }
        if (monitor.isCanceled()) {
            disConnect(monitoringTask);
            return Status.CANCEL_STATUS;
        }
        final String msg = task.getErrorMsg();
        if (msg != null && msg.length() > 0 && !monitor.isCanceled()) {
            disConnect(monitoringTask);
            return new Status(IStatus.ERROR, CubridManagerUIPlugin.PLUGIN_ID, msg);
        }
        if (task instanceof GetReplServerStatusTask) {
            GetReplServerStatusTask getReplServerStatusTask = (GetReplServerStatusTask) task;
            boolean isActive = getReplServerStatusTask.isActive();
            if (isActive) {
                display.syncExec(new Runnable() {

                    public void run() {
                        isExecuteStopReplServerTask = CommonUITool.openConfirmBox(Messages.bind(Messages.msgConfirmStopReplServer, dbName));
                    }
                });
                if (!isExecuteStopReplServerTask) {
                    disConnect(monitoringTask);
                    return Status.CANCEL_STATUS;
                }
            }
        } else if (task instanceof GetCubridConfParameterTask) {
            GetCubridConfParameterTask getCubridConfParameterTask = (GetCubridConfParameterTask) task;
            confParaMaps = getCubridConfParameterTask.getConfParameters();
            String mdbName = (String) getCubridConfParameterTask.getData("dbName");
            Map<String, String> dbMap = confParaMaps.get("[@" + mdbName + "]");
            if (dbMap == null) {
                Map<String, String> commonMap = confParaMaps.get(ConfConstants.COMMON_SECTION_NAME);
                if (commonMap != null && commonMap.get(ConfConstants.REPLICATION) != null && commonMap.get(ConfConstants.REPLICATION).equalsIgnoreCase("yes")) {
                    isExecuteSetParaTask = false;
                } else if (commonMap != null) {
                    isExecuteSetParaTask = true;
                    commonMap.put(ConfConstants.REPLICATION, "yes");
                }
            } else {
                String replStr = dbMap.get(ConfConstants.REPLICATION);
                if (replStr == null || replStr.equalsIgnoreCase("no")) {
                    isExecuteSetParaTask = true;
                    dbMap.put(ConfConstants.REPLICATION, "yes");
                } else {
                    isExecuteSetParaTask = false;
                }
            }
        } else if (task instanceof GetDatabaseListTask) {
            GetDatabaseListTask getDatabaseListTask = (GetDatabaseListTask) task;
            String mdbName = (String) getDatabaseListTask.getData("dbName");
            List<DatabaseInfo> dbInfoList = getDatabaseListTask.loadDatabaseInfo();
            for (int i = 0; i < dbInfoList.size(); i++) {
                DatabaseInfo dbInfo = dbInfoList.get(i);
                if (mdbName.equalsIgnoreCase(dbInfo.getDbName())) {
                    if (dbInfo.getRunningType() == DbRunningType.CS) {
                        isExecuteStopDbTask = isExecuteSetParaTask;
                    }
                    isExecuteStartDbTask = dbInfo.getRunningType() == DbRunningType.STANDALONE || isExecuteStopDbTask;
                    break;
                }
            }
        } else if (task instanceof TransFileTask) {
            TransFileTask transFileTask = (TransFileTask) task;
            pid = transFileTask.getTransFilePid();
        }
    }
    disConnect(monitoringTask);
    return Status.OK_STATUS;
}
Also used : TransFileProgressInfo(com.cubrid.cubridmanager.core.replication.model.TransFileProgressInfo) MonitorDashboardPreference(com.cubrid.cubridmanager.ui.mondashboard.preference.MonitorDashboardPreference) ITask(com.cubrid.common.core.task.ITask) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) ServerInfo(com.cubrid.cubridmanager.core.common.model.ServerInfo) StopReplServerTask(com.cubrid.cubridmanager.core.replication.task.StopReplServerTask) CancelTransFileTask(com.cubrid.cubridmanager.core.replication.task.CancelTransFileTask) CancelTransFileTask(com.cubrid.cubridmanager.core.replication.task.CancelTransFileTask) TransFileTask(com.cubrid.cubridmanager.core.replication.task.TransFileTask) MonitoringTask(com.cubrid.cubridmanager.core.common.task.MonitoringTask) CommonUpdateTask(com.cubrid.cubridmanager.core.common.task.CommonUpdateTask) GetTransferProgressTask(com.cubrid.cubridmanager.core.replication.task.GetTransferProgressTask) IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) SetCubridConfParameterTask(com.cubrid.cubridmanager.core.common.task.SetCubridConfParameterTask) GetCubridConfParameterTask(com.cubrid.cubridmanager.core.common.task.GetCubridConfParameterTask) GetDatabaseListTask(com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask) GetReplServerStatusTask(com.cubrid.cubridmanager.core.replication.task.GetReplServerStatusTask) Map(java.util.Map) Display(org.eclipse.swt.widgets.Display)

Aggregations

GetDatabaseListTask (com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask)26 DatabaseInfo (com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo)18 MonitoringTask (com.cubrid.cubridmanager.core.common.task.MonitoringTask)17 ServerInfo (com.cubrid.cubridmanager.core.common.model.ServerInfo)14 GetCubridConfParameterTask (com.cubrid.cubridmanager.core.common.task.GetCubridConfParameterTask)13 GetCMUserListTask (com.cubrid.cubridmanager.core.common.task.GetCMUserListTask)11 ArrayList (java.util.ArrayList)11 ITask (com.cubrid.common.core.task.ITask)10 GetBrokerConfParameterTask (com.cubrid.cubridmanager.core.broker.task.GetBrokerConfParameterTask)9 GetCMConfParameterTask (com.cubrid.cubridmanager.core.common.task.GetCMConfParameterTask)9 GetEnvInfoTask (com.cubrid.cubridmanager.core.common.task.GetEnvInfoTask)9 Map (java.util.Map)9 ServerUserInfo (com.cubrid.cubridmanager.core.common.model.ServerUserInfo)8 CommonUpdateTask (com.cubrid.cubridmanager.core.common.task.CommonUpdateTask)7 UpdateCMUserTask (com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask)7 ServerType (com.cubrid.cubridmanager.core.common.model.ServerType)6 List (java.util.List)6 IStatus (org.eclipse.core.runtime.IStatus)6 BrokerInfos (com.cubrid.cubridmanager.core.broker.model.BrokerInfos)5 CommonQueryTask (com.cubrid.cubridmanager.core.common.task.CommonQueryTask)5