Search in sources :

Example 66 with ServerUserInfo

use of com.cubrid.cubridmanager.core.common.model.ServerUserInfo in project cubrid-manager by CUBRID.

the class FinishTask method updateCMUserAuthInfo.

/**
	 * 
	 * Construct the CM user authorization information
	 * 
	 * @param task the UpdateCMUserTask object
	 * @param isRunUpdateCmUserTask whether update CM user task
	 */
private void updateCMUserAuthInfo(ITask task, boolean isRunUpdateCmUserTask) {
    if (isRunUpdateCmUserTask && serverInfo != null && serverInfo.isConnected()) {
        UpdateCMUserTask updateCMUserTask = (UpdateCMUserTask) task;
        ServerUserInfo userInfo = serverInfo.getLoginedUserInfo();
        updateCMUserTask.setCasAuth(userInfo.getCasAuth().getText());
        updateCMUserTask.setDbCreator(userInfo.getDbCreateAuthType().getText());
        updateCMUserTask.setStatusMonitorAuth(userInfo.getStatusMonitorAuth().getText());
        List<String> dbNameList = new ArrayList<String>();
        List<String> dbUserList = new ArrayList<String>();
        List<String> dbPasswordList = new ArrayList<String>();
        List<String> dbBrokerPortList = new ArrayList<String>();
        if (authDatabaseList != null && !authDatabaseList.isEmpty()) {
            int size = authDatabaseList.size();
            for (int i = 0; i < size; i++) {
                DatabaseInfo databaseInfo = authDatabaseList.get(i);
                dbNameList.add(databaseInfo.getDbName());
                dbUserList.add(databaseInfo.getAuthLoginedDbUserInfo().getName());
                dbBrokerPortList.add(QueryOptions.getBrokerIp(databaseInfo) + "," + databaseInfo.getBrokerPort());
                String password = databaseInfo.getAuthLoginedDbUserInfo().getNoEncryptPassword();
                dbPasswordList.add(password == null ? "" : password);
            }
        }
        String[] dbNameArr = new String[dbNameList.size()];
        String[] dbUserArr = new String[dbUserList.size()];
        String[] dbPasswordArr = new String[dbPasswordList.size()];
        String[] dbBrokerPortArr = new String[dbBrokerPortList.size()];
        updateCMUserTask.setDbAuth(dbNameList.toArray(dbNameArr), dbUserList.toArray(dbUserArr), dbPasswordList.toArray(dbPasswordArr), dbBrokerPortList.toArray(dbBrokerPortArr));
        updateCMUserTask.execute();
    }
}
Also used : DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) UpdateCMUserTask(com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask) ArrayList(java.util.ArrayList) ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo)

Example 67 with ServerUserInfo

use of com.cubrid.cubridmanager.core.common.model.ServerUserInfo in project cubrid-manager by CUBRID.

the class SettingHostPage method init.

/**
	 * Init data
	 * 
	 */
private void init() {
    HAModel haModel = getConfigHAWizard().getHaModel();
    masterHostText.setText(haModel.getMasterServer().getServer().getServerName());
    slaveHostCombo.removeAll();
    String master = haModel.getMasterServer().getServer().getServerName();
    List<CubridServer> serverList = CMHostNodePersistManager.getInstance().getAllServers();
    for (CubridServer server : serverList) {
        if (server.isConnected() && !master.equals(server.getServerName())) {
            ServerInfo serverInfo = server.getServerInfo();
            if (!CompatibleUtil.isSupportNewHAConfFile(serverInfo)) {
                continue;
            }
            ServerUserInfo userInfo = serverInfo.getLoginedUserInfo();
            if (userInfo == null || CasAuthType.AUTH_ADMIN != userInfo.getCasAuth()) {
                continue;
            }
            slaveHostCombo.add(server.getName());
        }
    }
    initMasterDBList();
}
Also used : ServerInfo(com.cubrid.cubridmanager.core.common.model.ServerInfo) ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo) CubridServer(com.cubrid.common.ui.spi.model.CubridServer)

Example 68 with ServerUserInfo

use of com.cubrid.cubridmanager.core.common.model.ServerUserInfo 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 69 with ServerUserInfo

use of com.cubrid.cubridmanager.core.common.model.ServerUserInfo in project cubrid-manager by CUBRID.

the class ImportCmConfigAction method isSupported.

/**
	 * 
	 * Return whether this action support this object,if not support,this action
	 * will be disabled
	 * 
	 * @param obj the Object
	 * @return <code>true</code> if support this obj;<code>false</code>
	 *         otherwise
	 */
public boolean isSupported(Object obj) {
    if (obj instanceof CubridServer) {
        CubridServer server = (CubridServer) obj;
        ServerUserInfo userInfo = server.getServerInfo().getLoginedUserInfo();
        if (userInfo == null || CasAuthType.AUTH_ADMIN != userInfo.getCasAuth()) {
            return false;
        }
        return true;
    }
    return false;
}
Also used : ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo) CubridServer(com.cubrid.common.ui.spi.model.CubridServer)

Example 70 with ServerUserInfo

use of com.cubrid.cubridmanager.core.common.model.ServerUserInfo in project cubrid-manager by CUBRID.

the class ImportCubridConfigAction method isSupported.

/**
	 * 
	 * Return whether this action support this object,if not support,this action
	 * will be disabled
	 * 
	 * @param obj the Object
	 * @return <code>true</code> if support this obj;<code>false</code>
	 *         otherwise
	 */
public boolean isSupported(Object obj) {
    if (obj instanceof CubridServer) {
        CubridServer server = (CubridServer) obj;
        ServerUserInfo userInfo = server.getServerInfo().getLoginedUserInfo();
        if (userInfo == null || CasAuthType.AUTH_ADMIN != userInfo.getCasAuth()) {
            return false;
        }
        return true;
    }
    return false;
}
Also used : ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo) CubridServer(com.cubrid.common.ui.spi.model.CubridServer)

Aggregations

ServerUserInfo (com.cubrid.cubridmanager.core.common.model.ServerUserInfo)101 ICubridNode (com.cubrid.common.ui.spi.model.ICubridNode)33 DatabaseInfo (com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo)23 ServerInfo (com.cubrid.cubridmanager.core.common.model.ServerInfo)21 CubridServer (com.cubrid.common.ui.spi.model.CubridServer)19 CubridDatabase (com.cubrid.common.ui.spi.model.CubridDatabase)18 ArrayList (java.util.ArrayList)16 UpdateCMUserTask (com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask)12 ServerType (com.cubrid.cubridmanager.core.common.model.ServerType)10 DbUserInfo (com.cubrid.cubridmanager.core.cubrid.user.model.DbUserInfo)10 CubridNodeChangedEvent (com.cubrid.common.ui.spi.event.CubridNodeChangedEvent)9 GetCMUserListTask (com.cubrid.cubridmanager.core.common.task.GetCMUserListTask)8 GetDatabaseListTask (com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask)8 CubridBrokerFolder (com.cubrid.cubridmanager.ui.spi.model.CubridBrokerFolder)8 Map (java.util.Map)8 MonitoringTask (com.cubrid.cubridmanager.core.common.task.MonitoringTask)7 ITask (com.cubrid.common.core.task.ITask)6 BrokerInfos (com.cubrid.cubridmanager.core.broker.model.BrokerInfos)6 GetBrokerConfParameterTask (com.cubrid.cubridmanager.core.broker.task.GetBrokerConfParameterTask)6 GetCMConfParameterTask (com.cubrid.cubridmanager.core.common.task.GetCMConfParameterTask)6