use of com.cubrid.cubridmanager.core.replication.task.StopReplServerTask in project cubrid-manager by CUBRID.
the class CreateReplicationUtil method createSlaveMasterTaskGroup.
/**
*
* Fill in the related tasks of creating master to executor according to
* slave and master information,this slave node is also master node.
*
* @param master MasterNode
* @param slave SlaveNode
* @param executor CreateReplicationJobExecutor
* @return null or error message
*/
public static String createSlaveMasterTaskGroup(MasterNode master, SlaveNode slave, CreateReplicationJobExecutor executor) {
TaskGroup taskGroup = new TaskGroup(IConstants.REPL_GROUP_NAME_CREATE_MASTER);
taskGroup.setTarget(master.getDbName());
HostNode slaveHost = (HostNode) slave.getParent();
final String ip = slaveHost.getIp();
final String port = slaveHost.getPort();
final String userName = slaveHost.getUserName();
final String password = slaveHost.getPassword();
boolean isConnected = ServerManager.getInstance().isConnected(ip, Integer.parseInt(port), userName);
ServerInfo serverInfo = new ServerInfo();
if (isConnected) {
serverInfo = ServerManager.getInstance().getServer(ip, Integer.parseInt(port), userName);
if (!serverInfo.getLoginedUserInfo().isAdmin()) {
return Messages.bind(Messages.errInvalidUser, ip);
}
} else {
serverInfo.setHostAddress(ip);
serverInfo.setHostMonPort(Integer.parseInt(port));
serverInfo.setHostJSPort(Integer.parseInt(port) + 1);
serverInfo.setUserName(userName);
serverInfo.setUserPassword(password);
MonitoringTask monitoringTask = new MonitoringTask(serverInfo);
taskGroup.addTask(monitoringTask);
}
GetReplServerStatusTask getReplServerStatusTask = new GetReplServerStatusTask(serverInfo);
getReplServerStatusTask.setDbName(slave.getDbName());
taskGroup.addTask(getReplServerStatusTask);
StopReplServerTask stopReplServerTask = new StopReplServerTask(serverInfo);
stopReplServerTask.setDbName(slave.getDbName());
taskGroup.addTask(stopReplServerTask);
GetCubridConfParameterTask getCubridConfParameterTask = new GetCubridConfParameterTask(serverInfo);
getCubridConfParameterTask.putData("dbName", slave.getDbName());
taskGroup.addTask(getCubridConfParameterTask);
SetCubridConfParameterTask setCubridConfParameterTask = new SetCubridConfParameterTask(serverInfo);
taskGroup.addTask(setCubridConfParameterTask);
GetDatabaseListTask getDatabaseListTask = new GetDatabaseListTask(serverInfo);
getDatabaseListTask.putData("dbName", slave.getDbName());
taskGroup.addTask(getDatabaseListTask);
CommonUpdateTask stopDbTask = new CommonUpdateTask(CommonTaskName.STOP_DB_TASK_NAME, serverInfo, CommonSendMsg.getCommonDatabaseSendMsg());
stopDbTask.setDbName(slave.getDbName());
taskGroup.addTask(stopDbTask);
CommonUpdateTask startDbTask = new CommonUpdateTask(CommonTaskName.START_DB_TASK_NAME, serverInfo, CommonSendMsg.getCommonDatabaseSendMsg());
startDbTask.setDbName(slave.getDbName());
taskGroup.addTask(startDbTask);
BackupDbTask backupDbTask = new BackupDbTask(serverInfo);
backupDbTask.setDbName(slave.getDbName());
backupDbTask.setLevel("0");
backupDbTask.setVolumeName(slave.getDbName() + "_bk0v000");
backupDbTask.setBackupDir(slave.getDbPath());
backupDbTask.setRemoveLog(false);
backupDbTask.setCheckDatabaseConsist(true);
backupDbTask.setThreadCount(String.valueOf(0));
backupDbTask.setZiped(false);
backupDbTask.setSafeReplication(false);
taskGroup.addTask(backupDbTask);
executor.addGroupTask(taskGroup);
return null;
}
use of com.cubrid.cubridmanager.core.replication.task.StopReplServerTask in project cubrid-manager by CUBRID.
the class DeleteDatabaseDialog method deleteDatabase.
/**
*
* Delete the database
*
* @return <code>true</code> if successful;<code>false</code> otherwise
*/
private boolean deleteDatabase() {
TaskExecutor taskExcutor = new TaskExecutor() {
public boolean exec(final IProgressMonitor monitor) {
if (monitor.isCanceled()) {
return false;
}
String taskName = Messages.bind(Messages.delDbTaskName, database.getName());
monitor.beginTask(taskName, IProgressMonitor.UNKNOWN);
boolean isActiveReplServer = false;
boolean isActiveReplAgent = false;
List<String> cubridConfContentList = null;
for (ITask task : taskList) {
if (task instanceof GetReplServerStatusTask) {
GetReplServerStatusTask getReplServerStatusTask = (GetReplServerStatusTask) task;
getReplServerStatusTask.execute();
isActiveReplServer = getReplServerStatusTask.isActive();
} else if (task instanceof StopReplServerTask) {
if (isActiveReplServer) {
task.execute();
}
} else if (task instanceof GetReplAgentStatusTask) {
GetReplAgentStatusTask getReplAgentStatusTask = (GetReplAgentStatusTask) task;
getReplAgentStatusTask.execute();
isActiveReplAgent = getReplAgentStatusTask.isActive();
} else if (task instanceof StopReplicationAgentTask) {
if (isActiveReplAgent) {
task.execute();
}
} else if (task instanceof SetCubridConfParameterTask) {
if (cubridConfContentList == null) {
continue;
} else {
SetCubridConfParameterTask setParaTask = (SetCubridConfParameterTask) task;
setParaTask.setConfContents(cubridConfContentList);
setParaTask.execute();
}
} else {
task.execute();
}
final String msg = task.getErrorMsg();
if (openErrorBox(getShell(), msg, monitor)) {
return false;
}
if (monitor.isCanceled()) {
return false;
}
if (task instanceof GetCubridConfParameterTask) {
GetCubridConfParameterTask getCubridConfParameterTask = (GetCubridConfParameterTask) task;
cubridConfContentList = CoreUtils.deleteDatabaseFromServiceServer(getCubridConfParameterTask, cubridConfContentList, database.getName());
}
}
return true;
}
};
ServerInfo serverInfo = database.getServer().getServerInfo();
//check the replication server and agent
if (serverInfo.isSupportReplication() == 0) {
if (database.isDistributorDb()) {
GetReplAgentStatusTask getReplAgentStatusTask = new GetReplAgentStatusTask(serverInfo);
getReplAgentStatusTask.setDbName(database.getLabel());
taskExcutor.addTask(getReplAgentStatusTask);
StopReplicationAgentTask stopReplAgentTask = new StopReplicationAgentTask(serverInfo);
stopReplAgentTask.setDbName(database.getLabel());
taskExcutor.addTask(stopReplAgentTask);
} else {
GetReplServerStatusTask getReplServerStatusTask = new GetReplServerStatusTask(serverInfo);
getReplServerStatusTask.setDbName(database.getLabel());
taskExcutor.addTask(getReplServerStatusTask);
StopReplServerTask stopReplServerTask = new StopReplServerTask(serverInfo);
stopReplServerTask.setDbName(database.getLabel());
taskExcutor.addTask(stopReplServerTask);
}
}
CommonUpdateTask deleteDbtask = new CommonUpdateTask(CommonTaskName.DELETE_DATABASE_TASK_NAME, serverInfo, CommonSendMsg.getDeletedbSendMsg());
deleteDbtask.setDbName(database.getName());
if (deleteBackupVolumesButton.getSelection()) {
deleteDbtask.setDelbackup(YesNoType.Y);
} else {
deleteDbtask.setDelbackup(YesNoType.N);
}
taskExcutor.addTask(deleteDbtask);
GetCubridConfParameterTask getCubridConfParameterTask = new GetCubridConfParameterTask(serverInfo);
taskExcutor.addTask(getCubridConfParameterTask);
SetCubridConfParameterTask setCubridConfParameterTask = new SetCubridConfParameterTask(serverInfo);
taskExcutor.addTask(setCubridConfParameterTask);
new ExecTaskWithProgress(taskExcutor).exec(true, false);
if (taskExcutor.isSuccess()) {
setReturnCode(DELETE_ID);
close();
return true;
} else {
return false;
}
}
use of com.cubrid.cubridmanager.core.replication.task.StopReplServerTask in project cubrid-manager by CUBRID.
the class ReplServerDialog method execute.
/**
* excute the task.
*
* @param buttonId int
*/
private void execute(final int buttonId) {
final String ip = ipText.getText();
final String port = portText.getText();
final String userName = userNameText.getText();
final String password = passwordText.getText();
final String mdbName = mdbNameText.getText();
final String replServerPort = replServerPortText.getText();
TaskExecutor taskExcutor = new TaskExecutor() {
public void disConnect() {
ServerManager.getInstance().setConnected(ip, Integer.parseInt(port), userName, false);
}
public boolean exec(final IProgressMonitor monitor) {
Display display = Display.getDefault();
if (monitor.isCanceled()) {
return false;
}
boolean isConnected = false;
MonitorDashboardPreference monPref = new MonitorDashboardPreference();
for (ITask task : taskList) {
if (task instanceof MonitoringTask) {
MonitoringTask monitoringTask = (MonitoringTask) task;
monitoringTask.connectServer(Version.releaseVersion, monPref.getHAHeartBeatTimeout());
isConnected = true;
} else if (task instanceof GetReplServerStatusTask) {
GetReplServerStatusTask getReplServerStatusTask = (GetReplServerStatusTask) task;
getReplServerStatusTask.execute();
isActive = getReplServerStatusTask.isActive();
} else if (task instanceof StartReplServerTask) {
if (isActive) {
openErrorBox(getShell(), Messages.msgReplServerStarted, monitor);
} else {
StartReplServerTask startReplServerTask = (StartReplServerTask) task;
startReplServerTask.execute();
if (task.isSuccess()) {
openInformationgBox(getShell(), com.cubrid.cubridmanager.ui.common.Messages.titleSuccess, Messages.msgReplServerStartedSuccess, monitor);
}
}
} else if (task instanceof StopReplServerTask) {
if (isActive) {
StopReplServerTask stopReplServerTask = (StopReplServerTask) task;
stopReplServerTask.execute();
if (task.isSuccess()) {
openInformationgBox(getShell(), com.cubrid.cubridmanager.ui.common.Messages.titleSuccess, Messages.msgReplServerStopedSuccess, monitor);
}
} else {
openErrorBox(getShell(), Messages.msgReplServerStoped, monitor);
}
}
if (monitor.isCanceled()) {
if (isConnected) {
disConnect();
}
return false;
}
final String msg = task.getErrorMsg();
if (openErrorBox(getShell(), msg, monitor)) {
if (isConnected) {
ServerManager.getInstance().setConnected(ip, Integer.parseInt(port), userName, false);
}
return false;
}
}
if (isConnected) {
disConnect();
}
if (!monitor.isCanceled()) {
display.syncExec(new Runnable() {
public void run() {
setReturnCode(buttonId);
close();
}
});
}
return true;
}
};
boolean isConnected = ServerManager.getInstance().isConnected(ip, Integer.parseInt(port), userName);
ServerInfo serverInfo = new ServerInfo();
if (isConnected) {
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(userName);
serverInfo.setUserPassword(password);
CMHostNodePersistManager.getInstance().addServer(ip, Integer.parseInt(port), userName, serverInfo);
MonitoringTask monitoringTask = new MonitoringTask(serverInfo);
taskExcutor.addTask(monitoringTask);
}
GetReplServerStatusTask getReplServerStatusTask = new GetReplServerStatusTask(serverInfo);
getReplServerStatusTask.setDbName(mdbName);
taskExcutor.addTask(getReplServerStatusTask);
if (isStartReplServer) {
StartReplServerTask task = new StartReplServerTask(serverInfo);
task.setDbName(mdbName);
task.setServerPort(replServerPort);
taskExcutor.addTask(task);
} else {
StopReplServerTask task = new StopReplServerTask(serverInfo);
task.setDbName(mdbName);
taskExcutor.addTask(task);
}
new ExecTaskWithProgress(taskExcutor).exec();
}
use of com.cubrid.cubridmanager.core.replication.task.StopReplServerTask 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;
}
use of com.cubrid.cubridmanager.core.replication.task.StopReplServerTask in project cubrid-manager by CUBRID.
the class CreateReplicationUtil method createMasterTaskGroup.
/**
*
* Fill in the related tasks of creating master to executor according master
* information
*
* @param master MasterNode
* @param slaveList List<SlaveNode>
* @param executor CreateReplicationJobExecutor
* @return null or error message
*/
public static String createMasterTaskGroup(MasterNode master, List<SlaveNode> slaveList, CreateReplicationJobExecutor executor) {
TaskGroup taskGroup = new TaskGroup(IConstants.REPL_GROUP_NAME_CREATE_MASTER);
taskGroup.setTarget(master.getDbName());
HostNode masterHost = (HostNode) master.getParent();
final String ip = masterHost.getIp();
final String port = masterHost.getPort();
final String userName = masterHost.getUserName();
final String password = masterHost.getPassword();
boolean isConnected = ServerManager.getInstance().isConnected(ip, Integer.parseInt(port), userName);
ServerInfo serverInfo = new ServerInfo();
if (isConnected) {
serverInfo = ServerManager.getInstance().getServer(ip, Integer.parseInt(port), userName);
if (!serverInfo.getLoginedUserInfo().isAdmin()) {
return Messages.bind(Messages.errInvalidUser, ip);
}
} else {
serverInfo.setHostAddress(ip);
serverInfo.setHostMonPort(Integer.parseInt(port));
serverInfo.setHostJSPort(Integer.parseInt(port) + 1);
serverInfo.setUserName(userName);
serverInfo.setUserPassword(password);
MonitoringTask monitoringTask = new MonitoringTask(serverInfo);
taskGroup.addTask(monitoringTask);
}
GetReplServerStatusTask getReplServerStatusTask = new GetReplServerStatusTask(serverInfo);
getReplServerStatusTask.setDbName(master.getDbName());
taskGroup.addTask(getReplServerStatusTask);
StopReplServerTask stopReplServerTask = new StopReplServerTask(serverInfo);
stopReplServerTask.setDbName(master.getDbName());
taskGroup.addTask(stopReplServerTask);
GetCubridConfParameterTask getCubridConfParameterTask = new GetCubridConfParameterTask(serverInfo);
getCubridConfParameterTask.putData("dbName", master.getDbName());
taskGroup.addTask(getCubridConfParameterTask);
SetCubridConfParameterTask setCubridConfParameterTask = new SetCubridConfParameterTask(serverInfo);
taskGroup.addTask(setCubridConfParameterTask);
GetDatabaseListTask getDatabaseListTask = new GetDatabaseListTask(serverInfo);
getDatabaseListTask.putData("dbName", master.getDbName());
taskGroup.addTask(getDatabaseListTask);
CommonUpdateTask stopDbTask = new CommonUpdateTask(CommonTaskName.STOP_DB_TASK_NAME, serverInfo, CommonSendMsg.getCommonDatabaseSendMsg());
stopDbTask.setDbName(master.getDbName());
taskGroup.addTask(stopDbTask);
CommonUpdateTask startDbTask = new CommonUpdateTask(CommonTaskName.START_DB_TASK_NAME, serverInfo, CommonSendMsg.getCommonDatabaseSendMsg());
startDbTask.setDbName(master.getDbName());
taskGroup.addTask(startDbTask);
BackupDbTask backupDbTask = new BackupDbTask(serverInfo);
backupDbTask.setDbName(master.getDbName());
backupDbTask.setLevel("0");
backupDbTask.setVolumeName(master.getDbName() + "_bk0v000");
backupDbTask.setBackupDir(master.getDbPath());
backupDbTask.setRemoveLog(false);
backupDbTask.setCheckDatabaseConsist(true);
backupDbTask.setThreadCount(String.valueOf(0));
backupDbTask.setZiped(false);
backupDbTask.setSafeReplication(false);
taskGroup.addTask(backupDbTask);
CancelTransFileTask cancelTransFileTask = new CancelTransFileTask(serverInfo);
taskGroup.addTask(cancelTransFileTask);
for (int i = 0; i < slaveList.size(); i++) {
SlaveNode slave = slaveList.get(i);
HostNode slaveHost = (HostNode) slave.getParent();
TransFileTask transFileTask = new TransFileTask(serverInfo);
transFileTask.setMasterDbDir(master.getDbPath());
List<String> fileList = new ArrayList<String>();
fileList.add(master.getDbName() + "_bk0v000");
fileList.add(master.getDbName() + "_bkvinf");
transFileTask.setBackupFileList(fileList);
transFileTask.setSlaveDbHost(slaveHost.getIp());
transFileTask.setSlaveCmServerPort(String.valueOf(Integer.parseInt(slaveHost.getPort()) + 1));
transFileTask.setSlaveDbDir(slave.getDbPath());
taskGroup.addTask(transFileTask);
GetTransferProgressTask getTransferProgressTask = new GetTransferProgressTask(serverInfo);
taskGroup.addTask(getTransferProgressTask);
}
executor.addGroupTask(taskGroup);
return null;
}
Aggregations