Search in sources :

Example 1 with LoginDatabaseTask

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

the class SetupEnvTestCase method loginTestDatabase.

protected void loginTestDatabase() {
    if (databaseInfo.isLogined()) {
        return;
    }
    LoginDatabaseTask loginDatabaseTask = new LoginDatabaseTask(serverInfo);
    loginDatabaseTask.setCMUser(userName);
    loginDatabaseTask.setDbName(testDbName);
    loginDatabaseTask.setDbUser(dbaUserName);
    loginDatabaseTask.setDbPassword(dbaPassword);
    loginDatabaseTask.execute();
    assertEquals(null, loginDatabaseTask.getErrorMsg());
    DbUserInfo dbUserInfo = loginDatabaseTask.getLoginedDbUserInfo();
    dbUserInfo.setNoEncryptPassword(dbaPassword);
    databaseInfo.setLogined(true);
    databaseInfo.setAuthLoginedDbUserInfo(dbUserInfo);
    UpdateCMUserTask updateCMUserTask = new UpdateCMUserTask(serverInfo);
    updateCMUserTask.setCmUserName(userName);
    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>();
    List<DatabaseInfo> authDatabaseList = userInfo.getDatabaseInfoList();
    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(databaseInfo.getBrokerIP() + "," + 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();
    assertEquals(null, updateCMUserTask.getErrorMsg());
}
Also used : DbUserInfo(com.cubrid.cubridmanager.core.cubrid.user.model.DbUserInfo) LoginDatabaseTask(com.cubrid.cubridmanager.core.cubrid.database.task.LoginDatabaseTask) 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 2 with LoginDatabaseTask

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

the class LoginDatabaseTaskExecutor method exec.

/**
	 * Execute to login database
	 * 
	 * @param monitor the IProgressMonitor
	 * @return <code>true</code> if successful;<code>false</code>otherwise;
	 */
public boolean exec(final IProgressMonitor monitor) {
    if (monitor.isCanceled()) {
        return false;
    }
    String taskName = Messages.bind(Messages.loginDbTaskName, dbName);
    monitor.beginTask(taskName, IProgressMonitor.UNKNOWN);
    DbUserInfo dbUserInfo = null;
    DatabaseInfo dbInfo = serverInfo.getLoginedUserInfo().getDatabaseInfo(dbName);
    DbUserInfo preDbUserInfo = dbInfo.getAuthLoginedDbUserInfo();
    boolean isOldLogined = dbInfo.isLogined();
    for (ITask task : taskList) {
        if (task instanceof UpdateCMUserTask) {
            UpdateCMUserTask updateCMUserTask = (UpdateCMUserTask) task;
            ServerInfo serverInfo = dbInfo.getServerInfo();
            if (serverInfo != null && serverInfo.isConnected()) {
                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>();
                List<DatabaseInfo> authDatabaseList = userInfo.getDatabaseInfoList();
                for (int i = 0; authDatabaseList != null && i < authDatabaseList.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));
            }
        }
        task.execute();
        final String msg = task.getErrorMsg();
        if (showErrMsg) {
            if (openErrorBox(shell, msg, monitor)) {
                dbInfo.setLogined(isOldLogined);
                dbInfo.setAuthLoginedDbUserInfo(preDbUserInfo);
                //					LOGGER.error("loggin failed task : " + infoMessage);
                return false;
            }
        } else if (!monitor.isCanceled()) {
            setErrMsg(msg);
            dbInfo.setLogined(isOldLogined);
            dbInfo.setAuthLoginedDbUserInfo(preDbUserInfo);
            return false;
        }
        if (monitor.isCanceled()) {
            return false;
        }
        if (task instanceof LoginDatabaseTask) {
            dbUserInfo = ((LoginDatabaseTask) task).getLoginedDbUserInfo();
            dbInfo.setLogined(true);
            dbUserInfo.setNoEncryptPassword(dbPassword);
            dbInfo.setAuthLoginedDbUserInfo(dbUserInfo);
        }
    }
    return true;
}
Also used : ITask(com.cubrid.common.core.task.ITask) LoginDatabaseTask(com.cubrid.cubridmanager.core.cubrid.database.task.LoginDatabaseTask) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) ServerInfo(com.cubrid.cubridmanager.core.common.model.ServerInfo) ArrayList(java.util.ArrayList) DbUserInfo(com.cubrid.cubridmanager.core.cubrid.user.model.DbUserInfo) UpdateCMUserTask(com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask) ServerUserInfo(com.cubrid.cubridmanager.core.common.model.ServerUserInfo)

Example 3 with LoginDatabaseTask

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

the class DeleteDatabaseConfirmDialog method buttonPressed.

/**
	 * When button pressed,handle with the event
	 * 
	 * @param buttonId the button id
	 */
protected void buttonPressed(int buttonId) {
    if (buttonId == IDialogConstants.OK_ID) {
        String pass = text.getText();
        if (pass == null) {
            pass = "";
        }
        /*TOOLS-3633*/
        ServerInfo serverInfo = database.getServer().getServerInfo();
        LoginDatabaseTask loginDatabaseTask = new LoginDatabaseTask(serverInfo);
        loginDatabaseTask.setCMUser(serverInfo.getUserName());
        loginDatabaseTask.setDbName(database.getDatabaseInfo().getDbName());
        loginDatabaseTask.setDbUser(USERNAME_DBA);
        loginDatabaseTask.setDbPassword(pass);
        TaskExecutor taskExcutor = new CommonTaskExec(Messages.msgCheckPassword);
        taskExcutor.addTask(loginDatabaseTask);
        new ExecTaskWithProgress(taskExcutor).exec();
        if (!taskExcutor.isSuccess()) {
            return;
        }
    }
    super.buttonPressed(buttonId);
}
Also used : CommonTaskExec(com.cubrid.common.ui.spi.progress.CommonTaskExec) TaskExecutor(com.cubrid.common.ui.spi.progress.TaskExecutor) LoginDatabaseTask(com.cubrid.cubridmanager.core.cubrid.database.task.LoginDatabaseTask) ServerInfo(com.cubrid.cubridmanager.core.common.model.ServerInfo) ExecTaskWithProgress(com.cubrid.common.ui.spi.progress.ExecTaskWithProgress)

Example 4 with LoginDatabaseTask

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

the class SetDatabaseInfoPage method modifyText.

/**
	 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
	 * @param event ModifyEvent
	 */
public void modifyText(ModifyEvent event) {
    final String port = portText.getText();
    String password = passwordText.getText();
    String mdbPassword = masteDbaPasswordText.getText();
    String distdbPassword = distDbaPasswordText.getText();
    boolean isValidPort = ValidateUtil.isNumber(port);
    if (isValidPort) {
        int portVal = Integer.parseInt(port);
        if (portVal < 1024 || portVal > 65535) {
            isValidPort = false;
        }
    }
    if (!isValidPort) {
        setErrorMessage(Messages.errInvalidPort);
        setPageComplete(false);
        return;
    }
    boolean isValidPassword = password.length() >= 4 && password.indexOf(" ") < 0;
    if (!isValidPassword) {
        setErrorMessage(Messages.errInvalidPassword);
        setPageComplete(false);
        return;
    }
    boolean isValidMdbPassword = mdbPassword.length() >= 4 && mdbPassword.indexOf(" ") < 0;
    if (!isValidMdbPassword) {
        setErrorMessage(Messages.errInvalidMdbPassword);
        setPageComplete(false);
        return;
    }
    boolean isValidDistdbPassword = distdbPassword.length() >= 4 && distdbPassword.indexOf(" ") < 0;
    if (!isValidDistdbPassword) {
        setErrorMessage(Messages.errInvalidDistdbPassword);
        setPageComplete(false);
        return;
    }
    boolean isValid = isValidPort && isValidPassword && isValidMdbPassword && isValidDistdbPassword;
    setPageComplete(false);
    if (isValid) {
        final String ip = ipText.getText();
        final String userName = userNameText.getText();
        final MonitorDashboardPreference monPref = new MonitorDashboardPreference();
        TaskExecutor taskExcutor = new TaskExecutor() {

            public boolean exec(final IProgressMonitor monitor) {
                Display display = getShell().getDisplay();
                if (monitor.isCanceled()) {
                    return false;
                }
                boolean isConnected = false;
                for (ITask task : taskList) {
                    if (task instanceof MonitoringTask) {
                        MonitoringTask monitoringTask = (MonitoringTask) task;
                        monitoringTask.connectServer(Version.releaseVersion, monPref.getHAHeartBeatTimeout());
                        isConnected = true;
                    } else if (task instanceof LoginDatabaseTask) {
                        task.execute();
                    }
                    final String msg = task.getErrorMsg();
                    if (monitor.isCanceled()) {
                        if (isConnected) {
                            ServerManager.getInstance().setConnected(ip, Integer.parseInt(port), userName, false);
                        }
                        return false;
                    }
                    if (msg != null && msg.length() > 0 && !monitor.isCanceled()) {
                        monitor.done();
                        display.syncExec(new Runnable() {

                            public void run() {
                                setErrorMessage(msg);
                            }
                        });
                        if (isConnected) {
                            ServerManager.getInstance().setConnected(ip, Integer.parseInt(port), userName, false);
                        }
                        return false;
                    }
                }
                if (!monitor.isCanceled()) {
                    if (isConnected) {
                        ServerManager.getInstance().setConnected(ip, Integer.parseInt(port), userName, false);
                    }
                    display.syncExec(new Runnable() {

                        public void run() {
                            setErrorMessage(null);
                            setPageComplete(true);
                        }
                    });
                }
                return true;
            }
        };
        ServerInfo serverInfo = new ServerInfo();
        if (ServerManager.getInstance().isConnected(ip, Integer.parseInt(port), userName)) {
            serverInfo = CMHostNodePersistManager.getInstance().getServerInfo(ip, Integer.parseInt(port), userName);
        } else {
            serverInfo.setHostAddress(ip);
            serverInfo.setHostMonPort(Integer.parseInt(port));
            serverInfo.setHostJSPort(Integer.parseInt(port + 1));
            serverInfo.setUserName(userNameText.getText());
            serverInfo.setUserPassword(password);
            CMHostNodePersistManager.getInstance().addServer(ip, Integer.parseInt(port), userName, serverInfo);
            MonitoringTask monitoringTask = new MonitoringTask(serverInfo);
            taskExcutor.addTask(monitoringTask);
        }
        LoginDatabaseTask loginMDbTask = new LoginDatabaseTask(serverInfo);
        loginMDbTask.setCMUser("admin");
        loginMDbTask.setDbName(masterDbNameText.getText());
        loginMDbTask.setDbUser("dba");
        loginMDbTask.setDbPassword(masteDbaPasswordText.getText());
        taskExcutor.addTask(loginMDbTask);
        LoginDatabaseTask loginDistdbTask = new LoginDatabaseTask(replNode.getServer().getServerInfo());
        loginDistdbTask.setCMUser("admin");
        loginDistdbTask.setDbName(distDbNameText.getText());
        loginDistdbTask.setDbUser("dba");
        loginDistdbTask.setDbPassword(distDbaPasswordText.getText());
        taskExcutor.addTask(loginDistdbTask);
        new ExecTaskWithProgress(taskExcutor).exec(true, true);
    }
}
Also used : MonitorDashboardPreference(com.cubrid.cubridmanager.ui.mondashboard.preference.MonitorDashboardPreference) ITask(com.cubrid.common.core.task.ITask) LoginDatabaseTask(com.cubrid.cubridmanager.core.cubrid.database.task.LoginDatabaseTask) ServerInfo(com.cubrid.cubridmanager.core.common.model.ServerInfo) TaskExecutor(com.cubrid.common.ui.spi.progress.TaskExecutor) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) ExecTaskWithProgress(com.cubrid.common.ui.spi.progress.ExecTaskWithProgress) MonitoringTask(com.cubrid.cubridmanager.core.common.task.MonitoringTask) Display(org.eclipse.swt.widgets.Display)

Example 5 with LoginDatabaseTask

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

the class GetAllClassesTaskExecutor method init.

/**
	 * initialize some values
	 */
private void init() {
    ServerInfo serverInfo = new ServerInfo();
    boolean isConnected = ServerManager.getInstance().isConnected(ip, Integer.parseInt(port), userName);
    DatabaseInfo dbInfo = null;
    OnOffType status = OnOffType.OFF;
    if (isConnected) {
        serverInfo = CMHostNodePersistManager.getInstance().getServerInfo(ip, Integer.parseInt(port), userName);
        dbInfo = serverInfo.getLoginedUserInfo().getDatabaseInfo(dbName);
        if (dbInfo.getRunningType() == DbRunningType.CS) {
            status = OnOffType.ON;
        }
    } else {
        serverInfo.setHostAddress(ip);
        serverInfo.setHostMonPort(Integer.parseInt(port));
        serverInfo.setHostJSPort(Integer.parseInt(port) + 1);
        serverInfo.setUserName(userName);
        serverInfo.setUserPassword(password);
        CMHostNodePersistManager.getInstance().addServer(ip, Integer.parseInt(port), userName, serverInfo);
        MonitoringTask monitoringTask = new MonitoringTask(serverInfo);
        addTask(monitoringTask);
        GetDatabaseListTask getDatabaseListTask = new GetDatabaseListTask(serverInfo);
        addTask(getDatabaseListTask);
        GetCMUserListTask getUserInfoTask = new GetCMUserListTask(serverInfo);
        addTask(getUserInfoTask);
    }
    if (dbInfo == null || (dbInfo != null && !dbInfo.isLogined())) {
        LoginDatabaseTask loginDbTask = new LoginDatabaseTask(serverInfo);
        loginDbTask.setCMUser("admin");
        loginDbTask.setDbName(dbName);
        loginDbTask.setDbUser("dba");
        loginDbTask.setDbPassword(dbaPassword);
        addTask(loginDbTask);
        UpdateCMUserTask updateCMUserTask = new UpdateCMUserTask(serverInfo);
        updateCMUserTask.setCmUserName("admin");
        updateCMUserTask.setCasAuth(CasAuthType.AUTH_ADMIN.getText());
        updateCMUserTask.setDbCreator(DbCreateAuthType.AUTH_ADMIN.getText());
        updateCMUserTask.setStatusMonitorAuth(StatusMonitorAuthType.AUTH_ADMIN.getText());
        addTask(updateCMUserTask);
    }
    GetClassListTask getClassListTask = new GetClassListTask(serverInfo);
    getClassListTask.setDbName(dbName);
    getClassListTask.setDbStatus(status);
    addTask(getClassListTask);
}
Also used : GetDatabaseListTask(com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask) LoginDatabaseTask(com.cubrid.cubridmanager.core.cubrid.database.task.LoginDatabaseTask) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) OnOffType(com.cubrid.cubridmanager.core.common.model.OnOffType) ServerInfo(com.cubrid.cubridmanager.core.common.model.ServerInfo) GetClassListTask(com.cubrid.cubridmanager.core.cubrid.table.task.GetClassListTask) UpdateCMUserTask(com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask) MonitoringTask(com.cubrid.cubridmanager.core.common.task.MonitoringTask) GetCMUserListTask(com.cubrid.cubridmanager.core.common.task.GetCMUserListTask)

Aggregations

LoginDatabaseTask (com.cubrid.cubridmanager.core.cubrid.database.task.LoginDatabaseTask)7 UpdateCMUserTask (com.cubrid.cubridmanager.core.common.task.UpdateCMUserTask)5 DatabaseInfo (com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo)5 ServerInfo (com.cubrid.cubridmanager.core.common.model.ServerInfo)4 ServerUserInfo (com.cubrid.cubridmanager.core.common.model.ServerUserInfo)4 DbUserInfo (com.cubrid.cubridmanager.core.cubrid.user.model.DbUserInfo)4 ArrayList (java.util.ArrayList)4 ITask (com.cubrid.common.core.task.ITask)2 ExecTaskWithProgress (com.cubrid.common.ui.spi.progress.ExecTaskWithProgress)2 TaskExecutor (com.cubrid.common.ui.spi.progress.TaskExecutor)2 MonitoringTask (com.cubrid.cubridmanager.core.common.task.MonitoringTask)2 CommonTaskExec (com.cubrid.common.ui.spi.progress.CommonTaskExec)1 OnOffType (com.cubrid.cubridmanager.core.common.model.OnOffType)1 GetCMUserListTask (com.cubrid.cubridmanager.core.common.task.GetCMUserListTask)1 GetDatabaseListTask (com.cubrid.cubridmanager.core.cubrid.database.task.GetDatabaseListTask)1 GetClassListTask (com.cubrid.cubridmanager.core.cubrid.table.task.GetClassListTask)1 MonitorDashboardPreference (com.cubrid.cubridmanager.ui.mondashboard.preference.MonitorDashboardPreference)1 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)1 Display (org.eclipse.swt.widgets.Display)1