| | |
| | | /** |
| | | * An static String that contains the class name of ConfigFileHandler. |
| | | */ |
| | | protected static final String CONFIG_CLASS_NAME = |
| | | protected static final String DEFAULT_CONFIG_CLASS_NAME = |
| | | "org.opends.server.extensions.ConfigFileHandler"; |
| | | |
| | | /** Alias of a self-signed certificate. */ |
| | |
| | | if (!QuickSetupLog.isInitialized()) |
| | | QuickSetupLog.initLogFileHandler( |
| | | File.createTempFile( |
| | | InstallLauncher.LOG_FILE_PREFIX, |
| | | InstallLauncher.LOG_FILE_SUFFIX)); |
| | | SetupGuiLauncher.LOG_FILE_PREFIX, |
| | | SetupGuiLauncher.LOG_FILE_SUFFIX)); |
| | | } catch (IOException e) { |
| | | System.err.println("Failed to initialize log"); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * Creates a template file based in the contents of the UserData object. |
| | | * This template file is used to generate automatically data. To generate |
| | | * Creates the template files based in the contents of the UserData object. |
| | | * These templates files are used to generate automatically data. To generate |
| | | * the template file the code will basically take into account the value of |
| | | * the base dn and the number of entries to be generated. |
| | | * |
| | | * @return the file object pointing to the create template file. |
| | | * @return a list of file objects pointing to the create template files. |
| | | * @throws ApplicationException if an error occurs. |
| | | */ |
| | | protected File createTemplateFile() throws ApplicationException { |
| | | private LinkedList<File> createTemplateFiles() throws ApplicationException { |
| | | LinkedList<File> files = new LinkedList<File>(); |
| | | try |
| | | { |
| | | return SetupUtils.createTemplateFile( |
| | | getUserData().getNewSuffixOptions().getBaseDn(), |
| | | getUserData().getNewSuffixOptions().getNumberEntries()); |
| | | int nEntries = getUserData().getNewSuffixOptions().getNumberEntries(); |
| | | |
| | | for (String baseDn : getUserData().getNewSuffixOptions().getBaseDns()) |
| | | { |
| | | files.add(SetupUtils.createTemplateFile(baseDn, nEntries)); |
| | | } |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message failedMsg = getThrowableMsg( |
| | | INFO_ERROR_CREATING_TEMP_FILE.get(), ioe); |
| | | INFO_ERROR_CREATING_TEMP_FILE.get(), ioe); |
| | | throw new ApplicationException( |
| | | ReturnCode.FILE_SYSTEM_ACCESS_ERROR, |
| | | failedMsg, ioe); |
| | | } |
| | | return files; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | ArrayList<String> argList = new ArrayList<String>(); |
| | | argList.add("-C"); |
| | | argList.add(CONFIG_CLASS_NAME); |
| | | argList.add(getConfigurationClassName()); |
| | | |
| | | argList.add("-c"); |
| | | argList.add(getPath(getInstallation().getCurrentConfigurationFile())); |
| | | argList.add(getConfigurationFile()); |
| | | argList.add("-p"); |
| | | argList.add(String.valueOf(getUserData().getServerPort())); |
| | | |
| | |
| | | } |
| | | |
| | | // For the moment do not enable JMX |
| | | /* |
| | | argList.add("-x"); |
| | | argList.add(String.valueOf(getUserData().getServerJMXPort())); |
| | | */ |
| | | if (getUserData().getServerJMXPort() > 0) |
| | | { |
| | | argList.add("-x"); |
| | | argList.add(String.valueOf(getUserData().getServerJMXPort())); |
| | | } |
| | | |
| | | argList.add("-D"); |
| | | argList.add(getUserData().getDirectoryManagerDn()); |
| | | |
| | |
| | | |
| | | if (createNotReplicatedSuffix()) |
| | | { |
| | | argList.add("-b"); |
| | | argList.add(getUserData().getNewSuffixOptions().getBaseDn()); |
| | | LinkedList<String> baseDns = |
| | | getUserData().getNewSuffixOptions().getBaseDns(); |
| | | for (String baseDn : baseDns) |
| | | { |
| | | argList.add("-b"); |
| | | argList.add(baseDn); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | * @throws ApplicationException if something goes wrong. |
| | | */ |
| | | private void createBaseEntry() throws ApplicationException { |
| | | notifyListeners(getFormattedWithPoints( |
| | | INFO_PROGRESS_CREATING_BASE_ENTRY.get( |
| | | getUserData().getNewSuffixOptions().getBaseDn()))); |
| | | LinkedList<String> baseDns = |
| | | getUserData().getNewSuffixOptions().getBaseDns(); |
| | | if (baseDns.size() == 1) |
| | | { |
| | | notifyListeners(getFormattedWithPoints( |
| | | INFO_PROGRESS_CREATING_BASE_ENTRY.get(baseDns.getFirst()))); |
| | | } |
| | | else |
| | | { |
| | | notifyListeners(getFormattedWithPoints( |
| | | INFO_PROGRESS_CREATING_BASE_ENTRIES.get())); |
| | | } |
| | | |
| | | InstallerHelper helper = new InstallerHelper(); |
| | | String baseDn = getUserData().getNewSuffixOptions().getBaseDn(); |
| | | File tempFile = helper.createBaseEntryTempFile(baseDn); |
| | | |
| | | LinkedList<File> ldifFiles = new LinkedList<File>(); |
| | | |
| | | for (String baseDn : baseDns) |
| | | { |
| | | ldifFiles.add(helper.createBaseEntryTempFile(baseDn)); |
| | | } |
| | | ArrayList<String> argList = new ArrayList<String>(); |
| | | argList.add("-C"); |
| | | argList.add(CONFIG_CLASS_NAME); |
| | | argList.add(getConfigurationClassName()); |
| | | |
| | | argList.add("-f"); |
| | | argList.add(getPath(getInstallation().getCurrentConfigurationFile())); |
| | | argList.add(getConfigurationFile()); |
| | | |
| | | argList.add("-n"); |
| | | argList.add(getBackendName()); |
| | | |
| | | argList.add("-l"); |
| | | argList.add(tempFile.getAbsolutePath()); |
| | | for (File f : ldifFiles) |
| | | { |
| | | argList.add("-l"); |
| | | argList.add(f.getAbsolutePath()); |
| | | } |
| | | |
| | | argList.add("-F"); |
| | | |
| | | argList.add("-q"); |
| | | |
| | |
| | | * @throws ApplicationException if something goes wrong. |
| | | */ |
| | | private void importLDIF() throws ApplicationException { |
| | | LinkedList<String> ldifPaths = |
| | | getUserData().getNewSuffixOptions().getLDIFPaths(); |
| | | MessageBuilder mb = new MessageBuilder(); |
| | | mb.append(getFormattedProgress(INFO_PROGRESS_IMPORTING_LDIF.get( |
| | | getUserData().getNewSuffixOptions().getLDIFPath()))); |
| | | if (ldifPaths.size() > 1) |
| | | { |
| | | mb.append(getFormattedProgress(INFO_PROGRESS_IMPORTING_LDIFS.get( |
| | | getStringFromCollection(ldifPaths, ", ")))); |
| | | } |
| | | else |
| | | { |
| | | mb.append(getFormattedProgress(INFO_PROGRESS_IMPORTING_LDIF.get( |
| | | ldifPaths.getFirst()))); |
| | | } |
| | | mb.append(getLineBreak()); |
| | | notifyListeners(mb.toMessage()); |
| | | |
| | | ArrayList<String> argList = new ArrayList<String>(); |
| | | argList.add("-C"); |
| | | argList.add(CONFIG_CLASS_NAME); |
| | | argList.add(getConfigurationClassName()); |
| | | |
| | | argList.add("-f"); |
| | | argList.add(getPath(getInstallation().getCurrentConfigurationFile())); |
| | | argList.add(getConfigurationFile()); |
| | | argList.add("-n"); |
| | | argList.add(getBackendName()); |
| | | argList.add("-l"); |
| | | argList.add(getUserData().getNewSuffixOptions().getLDIFPath()); |
| | | |
| | | for (String ldifPath : ldifPaths) |
| | | { |
| | | argList.add("-l"); |
| | | argList.add(ldifPath); |
| | | } |
| | | argList.add("-F"); |
| | | String[] args = new String[argList.size()]; |
| | | argList.toArray(args); |
| | | |
| | |
| | | * @throws ApplicationException if something goes wrong. |
| | | */ |
| | | private void importAutomaticallyGenerated() throws ApplicationException { |
| | | File templatePath = createTemplateFile(); |
| | | LinkedList<File> templatePaths = createTemplateFiles(); |
| | | int nEntries = getUserData().getNewSuffixOptions().getNumberEntries(); |
| | | MessageBuilder mb = new MessageBuilder(); |
| | | mb.append(getFormattedProgress( |
| | |
| | | mb.append(getLineBreak()); |
| | | notifyListeners(mb.toMessage()); |
| | | |
| | | ArrayList<String> argList = new ArrayList<String>(); |
| | | argList.add("-C"); |
| | | argList.add(CONFIG_CLASS_NAME); |
| | | |
| | | argList.add("-f"); |
| | | argList.add(getPath(getInstallation().getCurrentConfigurationFile())); |
| | | argList.add("-n"); |
| | | argList.add(getBackendName()); |
| | | argList.add("-t"); |
| | | argList.add(templatePath.getAbsolutePath()); |
| | | argList.add("-s"); // seed |
| | | argList.add("0"); |
| | | |
| | | String[] args = new String[argList.size()]; |
| | | argList.toArray(args); |
| | | |
| | | try |
| | | for (File templatePath : templatePaths) |
| | | { |
| | | InstallerHelper helper = new InstallerHelper(); |
| | | int result = helper.invokeImportLDIF(args); |
| | | ArrayList<String> argList = new ArrayList<String>(); |
| | | argList.add("-C"); |
| | | argList.add(getConfigurationClassName()); |
| | | |
| | | if (result != 0) |
| | | argList.add("-f"); |
| | | argList.add(getConfigurationFile()); |
| | | argList.add("-n"); |
| | | argList.add(getBackendName()); |
| | | argList.add("-t"); |
| | | argList.add(templatePath.getAbsolutePath()); |
| | | argList.add("-s"); // seed |
| | | argList.add("0"); |
| | | |
| | | // append: each file contains data for each base DN. |
| | | argList.add("-a"); |
| | | |
| | | String[] args = new String[argList.size()]; |
| | | argList.toArray(args); |
| | | |
| | | try |
| | | { |
| | | InstallerHelper helper = new InstallerHelper(); |
| | | int result = helper.invokeImportLDIF(args); |
| | | |
| | | if (result != 0) |
| | | { |
| | | throw new ApplicationException( |
| | | ReturnCode.CONFIGURATION_ERROR, |
| | | INFO_ERROR_IMPORT_LDIF_TOOL_RETURN_CODE.get( |
| | | Integer.toString(result)), null); |
| | | } |
| | | } catch (Throwable t) |
| | | { |
| | | throw new ApplicationException( |
| | | ReturnCode.CONFIGURATION_ERROR, |
| | | INFO_ERROR_IMPORT_LDIF_TOOL_RETURN_CODE.get( |
| | | Integer.toString(result)), null); |
| | | getThrowableMsg(INFO_ERROR_IMPORT_AUTOMATICALLY_GENERATED.get( |
| | | listToString(argList, " "), t.getLocalizedMessage()), t), t); |
| | | } |
| | | } catch (Throwable t) |
| | | { |
| | | throw new ApplicationException( |
| | | ReturnCode.CONFIGURATION_ERROR, |
| | | getThrowableMsg(INFO_ERROR_IMPORT_AUTOMATICALLY_GENERATED.get( |
| | | listToString(argList, " "), t.getLocalizedMessage()), t), t); |
| | | } |
| | | } |
| | | |
| | |
| | | if (getUserData().getReplicationOptions().getType() |
| | | == DataReplicationOptions.Type.FIRST_IN_TOPOLOGY) |
| | | { |
| | | String dn = getUserData().getNewSuffixOptions().getBaseDn(); |
| | | dns.add(dn); |
| | | LinkedList<String> baseDns = |
| | | getUserData().getNewSuffixOptions().getBaseDns(); |
| | | dns.addAll(baseDns); |
| | | HashSet<String> h = new HashSet<String>(); |
| | | h.add(getLocalReplicationServer()); |
| | | adsServers.add(getLocalReplicationServer()); |
| | | replicationServers.put(dn, h); |
| | | for (String dn : baseDns) |
| | | { |
| | | replicationServers.put(dn, h); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | qs.displayFieldInvalid(FieldName.LDIF_PATH, true); |
| | | } else if (validBaseDn) |
| | | { |
| | | dataOptions = new NewSuffixOptions(type, baseDn, ldifPath); |
| | | LinkedList<String> baseDns = new LinkedList<String>(); |
| | | baseDns.add(baseDn); |
| | | LinkedList<String> ldifPaths = new LinkedList<String>(); |
| | | ldifPaths.add(ldifPath); |
| | | |
| | | dataOptions = new NewSuffixOptions(type, baseDns, ldifPaths); |
| | | qs.displayFieldInvalid(FieldName.LDIF_PATH, false); |
| | | } |
| | | break; |
| | |
| | | if (startErrors == errorMsgs.size() && validBaseDn) |
| | | { |
| | | // No validation errors |
| | | dataOptions = new NewSuffixOptions(type, baseDn, new Integer(nEntries)); |
| | | LinkedList<String> baseDns = new LinkedList<String>(); |
| | | baseDns.add(baseDn); |
| | | dataOptions = new NewSuffixOptions(type, baseDns, |
| | | new Integer(nEntries)); |
| | | } |
| | | break; |
| | | |
| | |
| | | qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false); |
| | | if (validBaseDn) |
| | | { |
| | | dataOptions = new NewSuffixOptions(type, baseDn); |
| | | LinkedList<String> baseDns = new LinkedList<String>(); |
| | | baseDns.add(baseDn); |
| | | dataOptions = new NewSuffixOptions(type, baseDns); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns the configuration file path to be used when invoking the |
| | | * command-lines. |
| | | * @return the configuration file path to be used when invoking the |
| | | * command-lines. |
| | | */ |
| | | private String getConfigurationFile() |
| | | { |
| | | String file = getUserData().getConfigurationFile(); |
| | | if (file == null) |
| | | { |
| | | file = getPath(getInstallation().getCurrentConfigurationFile()); |
| | | } |
| | | return file; |
| | | } |
| | | |
| | | /** |
| | | * Returns the configuration class name to be used when invoking the |
| | | * command-lines. |
| | | * @return the configuration class name to be used when invoking the |
| | | * command-lines. |
| | | */ |
| | | private String getConfigurationClassName() |
| | | { |
| | | String className = getUserData().getConfigurationClassName(); |
| | | if (className == null) |
| | | { |
| | | className = DEFAULT_CONFIG_CLASS_NAME; |
| | | } |
| | | return className; |
| | | } |
| | | |
| | | private String getLocalReplicationServer() |
| | | { |
| | | return getUserData().getHostName()+":"+ |