From 06ec8c88556b02782c7b91a233de91eaf4a1439d Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 09 Jun 2009 12:28:05 +0000
Subject: [PATCH] Fix for issue 3550 (Consider making the control panel able to manage remote servers)
---
opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java | 97 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 80 insertions(+), 17 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
index b59839e..d0be1e1 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.guitools.controlpanel.ui;
@@ -81,6 +81,7 @@
private JComboBox backends;
private JCheckBox allBackends;
private JTextField backupID;
+ private JTextField parentBackupID;
private JRadioButton fullBackup;
private JRadioButton incrementalBackup;
private JCheckBox compressData;
@@ -91,6 +92,7 @@
private JLabel lBackend;
private JLabel lNoBackendsFound;
private JLabel lBackupID;
+ private JLabel lParentID;
private JLabel lBackupType;
private JLabel lBackupOptions;
@@ -220,6 +222,7 @@
gbc.gridx = 0;
gbc.gridy ++;
super.createLayout(gbc);
+
verifyBackup.setVisible(false);
lAvailableBackups.setText(
INFO_CTRL_PANEL_AVAILABLE_PARENT_BACKUPS_LABEL.get().toString());
@@ -229,6 +232,21 @@
gbc.insets.top = 10;
gbc.gridwidth = 1;
gbc.anchor = GridBagConstraints.WEST;
+ lParentID = Utilities.createPrimaryLabel(
+ INFO_CTRL_PANEL_PARENT_BACKUP_ID_LABEL.get());
+ add(lParentID, gbc);
+ parentBackupID = Utilities.createMediumTextField();
+ gbc.weightx = 0.0;
+ gbc.gridx ++;
+ gbc.insets.left = 10;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.gridwidth = 2;
+ add(parentBackupID, gbc);
+
+ gbc.gridy ++;
+ gbc.gridx = 0;
+ gbc.gridwidth = 1;
+ gbc.insets.left = 0;
lBackupOptions = Utilities.createPrimaryLabel(
INFO_CTRL_PANEL_BACKUP_OPTIONS_LABEL.get());
add(lBackupOptions, gbc);
@@ -275,6 +293,11 @@
refreshList.setEnabled(enable);
tableScroll.setEnabled(enable);
backupList.setEnabled(enable);
+ lAvailableBackups.setEnabled(enable);
+ lRefreshingList.setEnabled(enable);
+ lParentID.setEnabled(enable);
+ parentBackupID.setEnabled(enable);
+ verifyBackup.setEnabled(enable && getSelectedBackup() != null);
}
};
incrementalBackup.addChangeListener(changeListener);
@@ -290,7 +313,7 @@
*/
public void configurationChanged(ConfigurationChangeEvent ev)
{
- ServerDescriptor desc = ev.getNewDescriptor();
+ final ServerDescriptor desc = ev.getNewDescriptor();
updateSimpleBackendComboBoxModel(backends, lNoBackendsFound, desc);
SwingUtilities.invokeLater(new Runnable()
{
@@ -300,11 +323,23 @@
public void run()
{
allBackends.setVisible(backends.getModel().getSize() > 0);
+ lParentID.setVisible(!desc.isLocal());
+ parentBackupID.setVisible(!desc.isLocal());
+ if (desc.isLocal())
+ {
+ lPath.setText(INFO_CTRL_PANEL_BACKUP_PATH_LABEL.get().toString());
+ }
+ else
+ {
+ lPath.setText(
+ INFO_CTRL_PANEL_PARENT_BACKUP_PATH_LABEL.get().toString());
+ }
}
});
super.configurationChanged(ev);
- updateErrorPaneAndOKButtonIfAuthRequired(getInfo().getServerDescriptor(),
- INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_BACKUP.get());
+ updateErrorPaneAndOKButtonIfAuthRequired(desc,
+ isLocal() ? INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_BACKUP.get() :
+ INFO_CTRL_PANEL_CANNOT_CONNECT_TO_REMOTE_DETAILS.get(desc.getHostname()));
}
/**
@@ -315,6 +350,7 @@
setPrimaryValid(lBackend);
setPrimaryValid(lPath);
setPrimaryValid(lAvailableBackups);
+ setPrimaryValid(lParentID);
backupIDInitialized = false;
final LinkedHashSet<Message> errors = new LinkedHashSet<Message>();
@@ -343,7 +379,7 @@
errors.add(ERR_CTRL_PANEL_NO_BACKUP_PATH_PROVIDED.get());
setPrimaryInvalid(lPath);
}
- else
+ else if (isLocal())
{
File f = new File(parentPath);
if (f.isFile())
@@ -364,7 +400,7 @@
setPrimaryInvalid(lBackupID);
}
- if (errors.isEmpty())
+ if (errors.isEmpty() && isLocal())
{
File f = new File(parentPath, dir);
if (f.isFile())
@@ -377,12 +413,24 @@
if (incrementalBackup.isSelected())
{
- boolean selected = backupList.isVisible() &&
- (getSelectedBackup() != null);
- if (!selected)
+ if (isLocal())
{
- errors.add(ERR_CTRL_PANEL_NO_PARENT_BACKUP_SELECTED.get());
- setPrimaryInvalid(lAvailableBackups);
+ boolean selected = backupList.isVisible() &&
+ (getSelectedBackup() != null);
+ if (!selected)
+ {
+ errors.add(ERR_CTRL_PANEL_NO_PARENT_BACKUP_SELECTED.get());
+ setPrimaryInvalid(lAvailableBackups);
+ }
+ }
+ else
+ {
+ String parentID = parentBackupID.getText();
+ if ((parentID == null) || (parentID.trim().equals("")))
+ {
+ errors.add(ERR_CTRL_PANEL_NO_PARENT_BACKUP_ID_PROVIDED.get());
+ setPrimaryInvalid(lParentID);
+ }
}
}
@@ -604,8 +652,15 @@
}
if (incrementalBackup.isSelected())
{
- BackupDescriptor backup = getSelectedBackup();
- dir = backup.getPath().getAbsolutePath();
+ if (isLocal())
+ {
+ BackupDescriptor backup = getSelectedBackup();
+ dir = backup.getPath().getAbsolutePath();
+ }
+ else
+ {
+ dir = parentDirectory.getText();
+ }
}
else
{
@@ -637,7 +692,7 @@
Collection<Message> incompatibilityReasons)
{
boolean canLaunch = true;
- if (state == State.RUNNING)
+ if (state == State.RUNNING && runningOnSameServer(taskToBeLaunched))
{
// All the operations are incompatible if they apply to this
// backend.
@@ -734,9 +789,17 @@
if (incrementalBackup.isSelected())
{
args.add("--incremental");
- BackupDescriptor backup = getSelectedBackup();
- args.add("--incrementalBaseID");
- args.add(backup.getID());
+ if (isLocal())
+ {
+ BackupDescriptor backup = getSelectedBackup();
+ args.add("--incrementalBaseID");
+ args.add(backup.getID());
+ }
+ else
+ {
+ args.add("--incrementalBaseID");
+ args.add(parentBackupID.getText());
+ }
}
--
Gitblit v1.10.0