Example usage for org.apache.commons.lang3 StringUtils defaultIfBlank

List of usage examples for org.apache.commons.lang3 StringUtils defaultIfBlank

Introduction

In this page you can find the example usage for org.apache.commons.lang3 StringUtils defaultIfBlank.

Prototype

public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) 

Source Link

Document

Returns either the passed in CharSequence, or if the CharSequence is whitespace, empty ("") or null , the value of defaultStr .

 StringUtils.defaultIfBlank(null, "NULL")  = "NULL" StringUtils.defaultIfBlank("", "NULL")    = "NULL" StringUtils.defaultIfBlank(" ", "NULL")   = "NULL" StringUtils.defaultIfBlank("bat", "NULL") = "bat" StringUtils.defaultIfBlank("", null)      = null 

Usage

From source file:net.sf.jsignpdf.BasicSignerOptions.java

/**
 * @return
 */
public String getTsaHashAlgWithFallback() {
    return StringUtils.defaultIfBlank(tsaHashAlg, Constants.DEFVAL_TSA_HASH_ALG);
}

From source file:com.sonicle.webtop.vfs.Service.java

public void processSetupStoreOther(HttpServletRequest request, HttpServletResponse response, PrintWriter out) {
    WebTopSession wts = RunContext.getWebTopSession();
    String PROPERTY = "SETUP_OTHER";

    try {//from  w  ww.ja va 2s. co  m
        String crud = ServletUtils.getStringParameter(request, "crud", true);
        if (crud.equals("s1")) {
            String profileId = ServletUtils.getStringParameter(request, "profileId", true);
            String scheme = ServletUtils.getStringParameter(request, "scheme", true);
            String host = ServletUtils.getStringParameter(request, "host", true);
            Integer port = ServletUtils.getIntParameter(request, "port", null);
            String username = ServletUtils.getStringParameter(request, "username", true);
            String password = ServletUtils.getStringParameter(request, "password", null);
            String path = ServletUtils.getStringParameter(request, "path", null);

            SetupDataOther params = new SetupDataOther();
            params.profileId = profileId;
            params.scheme = scheme;
            params.host = host;
            params.port = port;
            params.username = username;
            params.password = password;
            params.path = path;
            params.buildName();
            wts.setProperty(SERVICE_ID, PROPERTY, params);
            //TODO: controllo connessione

            new JsonResult(params).printTo(out);

        } else if (crud.equals("s2")) {
            String name = ServletUtils.getStringParameter(request, "name", true);
            if (!wts.hasProperty(SERVICE_ID, PROPERTY))
                throw new WTException();
            SetupDataOther params = (SetupDataOther) wts.getProperty(SERVICE_ID, PROPERTY);

            Store store = new Store();
            store.setProfileId(new UserProfile.Id(params.profileId));
            store.setName(StringUtils.defaultIfBlank(name, params.name));
            store.setUri(params.generateURI());
            manager.addStore(store);

            wts.clearProperty(SERVICE_ID, PROPERTY);
            updateFoldersCache();

            new JsonResult().printTo(out);
        }

    } catch (Exception ex) {
        logger.error("Error in SetupStoreOther", ex);
        new JsonResult(false, ex.getMessage()).printTo(out);
    }
}

From source file:cgeo.geocaching.CacheListActivity.java

@Override
public void onCreateContextMenu(final ContextMenu menu, final View view,
        final ContextMenu.ContextMenuInfo info) {
    super.onCreateContextMenu(menu, view, info);

    AdapterContextMenuInfo adapterInfo = null;
    try {//w w  w  . ja va2s  . com
        adapterInfo = (AdapterContextMenuInfo) info;
    } catch (final Exception e) {
        Log.w("CacheListActivity.onCreateContextMenu", e);
    }

    if (adapterInfo == null || adapterInfo.position >= adapter.getCount()) {
        return;
    }
    final Geocache cache = adapter.getItem(adapterInfo.position);

    menu.setHeaderTitle(StringUtils.defaultIfBlank(cache.getName(), cache.getGeocode()));

    contextMenuGeocode = cache.getGeocode();

    getMenuInflater().inflate(R.menu.cache_list_context, menu);

    menu.findItem(R.id.menu_default_navigation)
            .setTitle(NavigationAppFactory.getDefaultNavigationApplication().getName());
    final boolean hasCoords = cache.getCoords() != null;
    menu.findItem(R.id.menu_default_navigation).setVisible(hasCoords);
    menu.findItem(R.id.menu_navigate).setVisible(hasCoords);
    menu.findItem(R.id.menu_cache_details).setVisible(hasCoords);
    final boolean isOffline = cache.isOffline();
    menu.findItem(R.id.menu_drop_cache).setVisible(isOffline);
    menu.findItem(R.id.menu_move_to_list).setVisible(isOffline);
    menu.findItem(R.id.menu_copy_to_list).setVisible(isOffline);
    menu.findItem(R.id.menu_refresh).setVisible(isOffline);
    menu.findItem(R.id.menu_store_cache).setVisible(!isOffline);

    LoggingUI.onPrepareOptionsMenu(menu, cache);
}

From source file:com.bekwam.resignator.ResignatorAppMainViewController.java

@FXML
public void renameProfile(ListView.EditEvent<String> evt) {
    if (logger.isDebugEnabled()) {
        logger.debug("[RENAME]");
    }/* w w w  .j a v a2s  . com*/

    final String oldProfileName = lvProfiles.getItems().get(evt.getIndex());
    final boolean apProfileNameSetFlag = StringUtils.equalsIgnoreCase(activeProfile.getProfileName(),
            oldProfileName);

    String suggestedNewProfileName = "";
    if (configurationDS.profileExists(evt.getNewValue())) {

        suggestedNewProfileName = configurationDS.suggestUniqueProfileName(evt.getNewValue());

        if (logger.isDebugEnabled()) {
            logger.debug("[RENAME] configuration exists; suggested name={}", suggestedNewProfileName);
        }

        Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "That profile name already exists."
                + System.getProperty("line.separator") + "Save as " + suggestedNewProfileName + "?");
        alert.setHeaderText("Profile name in use");
        Optional<ButtonType> response = alert.showAndWait();
        if (!response.isPresent() || response.get() != ButtonType.OK) {
            if (logger.isDebugEnabled()) {
                logger.debug("[RENAME] rename cancelled");
            }
            return;
        }
    }

    final String newProfileName = StringUtils.defaultIfBlank(suggestedNewProfileName, evt.getNewValue());

    if (apProfileNameSetFlag) { // needs to be set for save
        activeProfile.setProfileName(newProfileName);
    }

    Task<Void> renameTask = new Task<Void>() {

        @Override
        protected Void call() throws Exception {
            configurationDS.renameProfile(oldProfileName, newProfileName);
            Platform.runLater(() -> {
                lvProfiles.getItems().set(evt.getIndex(), newProfileName);

                Collections.sort(lvProfiles.getItems());
                lvProfiles.getSelectionModel().select(newProfileName);

            });
            return null;
        }

        @Override
        protected void failed() {
            super.failed();
            logger.error("can't rename profile from " + oldProfileName + " to " + newProfileName,
                    getException());
            Alert alert = new Alert(Alert.AlertType.ERROR, getException().getMessage());
            alert.setHeaderText("Can't rename profile '" + oldProfileName + "'");
            alert.showAndWait();

            if (apProfileNameSetFlag) { // revert
                activeProfile.setProfileName(oldProfileName);
            }
        }

        @Override
        protected void cancelled() {
            super.cancelled();
            Alert alert = new Alert(Alert.AlertType.ERROR, "Rename cancelled by user");
            alert.setHeaderText("Cancelled");
            alert.showAndWait();

            if (apProfileNameSetFlag) { // revert
                activeProfile.setProfileName(oldProfileName);
            }
        }
    };

    new Thread(renameTask).start();
}

From source file:com.dell.asm.asmcore.asmmanager.util.ServiceTemplateUtil.java

public void updateRazorTargets(ServiceTemplate svc) {
    List<RazorRepo> razorImages = getOsRepositoryUtil().getRazorOSImages(true);
    Map<String, String> imageTargets = processRazorImagesTargets(razorImages, false);
    String windowsValues = StringUtils.defaultIfBlank(
            Joiner.on(",").skipNulls().join(
                    imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2012_VALUE),
                    imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2008_VALUE)),
            null);/*  ww  w  .  j av a  2s.com*/
    String allLinuxValues = StringUtils.defaultIfBlank(Joiner.on(",").skipNulls().join(
            imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_REDHAT6_VALUE),
            imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_REDHAT7_VALUE),
            imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_SUSE11_VALUE),
            imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_SUSE12_VALUE)), null);

    String windows2012Values = imageTargets
            .get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2012_VALUE);
    String ntpValues = Joiner.on(",").skipNulls().join(allLinuxValues, windowsValues,
            imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_ESXI_VALUE));

    for (ServiceTemplateComponent comp : svc.getComponents()) {
        if (ServiceTemplateComponent.ServiceTemplateComponentType.SERVER.equals(comp.getType())
                || ServiceTemplateComponent.ServiceTemplateComponentType.VIRTUALMACHINE
                        .equals(comp.getType())) {
            if (windowsValues != null) {
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_VERSION_ID,
                        windowsValues);
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_PROD_KEY_ID,
                        windowsValues);
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_ADMIN_LOGIN_ID,
                        windowsValues);
                setDependencyValue(comp,
                        ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_DOMAIN_PASSWORD_ID, windowsValues);
                setDependencyValue(comp,
                        ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_DOMAIN_CONFIRM_PASSWORD_ID,
                        windowsValues);
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_DN_ID,
                        windowsValues);
            }
            if (allLinuxValues != null) {
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_LINUX_TIMEZONE_ID,
                        allLinuxValues);
            }
            if (windows2012Values != null) {
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_INSTALL,
                        windows2012Values);
            }
            if (ntpValues != null) {
                setDependencyValue(comp, ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_LINUX_NTP_ID,
                        ntpValues);
            }
        }
    }
}

From source file:com.dell.asm.asmcore.asmmanager.app.rest.ServiceTemplateService.java

ServiceTemplateCategory buildServerOsSettings(final List<RazorRepo> razorImages,
        final Map<String, String> imageTargets, final Map<String, String> repoNames, boolean minServer) {
    ServiceTemplateCategory serverCategoryOS = new ServiceTemplateCategory();
    serverCategoryOS.setDisplayName("OS Settings");
    serverCategoryOS.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_RESOURCE);
    if (razorImages != null && razorImages.size() > 0) {
        ServiceTemplateSetting serverSettingGenerateHostName = new ServiceTemplateSetting();
        serverSettingGenerateHostName.setDisplayName("Auto-generate Host Name");
        serverSettingGenerateHostName//from w  ww .ja v  a  2s  .  c  o m
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_GENERATE_HOSTNAME_ID);
        serverSettingGenerateHostName.setType(ServiceTemplateSettingType.BOOLEAN);
        serverSettingGenerateHostName.setRequired(false);
        serverSettingGenerateHostName.setRequiredAtDeployment(false);
        serverSettingGenerateHostName.setHideFromTemplate(false);
        serverSettingGenerateHostName.setValue("false");
        serverSettingGenerateHostName
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_ID);
        serverSettingGenerateHostName
                .setDependencyValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_HD + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID_VSAN + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_AHCI_VSAN);
        serverSettingGenerateHostName.setToolTip("Use the Host Name Template field to auto-generate "
                + "host names at deployment time. If not selected, a unique host name will be requested "
                + "when the template is deployed.");
        serverCategoryOS.getParameters().add(serverSettingGenerateHostName);

        ServiceTemplateSetting serverSettingHostNameTemplate = new ServiceTemplateSetting();
        serverSettingHostNameTemplate.setDisplayName("Host Name Template");
        serverSettingHostNameTemplate
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HOSTNAME_TEMPLATE_ID);
        serverSettingHostNameTemplate.setType(ServiceTemplateSettingType.STRING);
        serverSettingHostNameTemplate.setRequired(true);
        serverSettingHostNameTemplate.setRequiredAtDeployment(false);
        serverSettingHostNameTemplate.setHideFromTemplate(false);
        serverSettingHostNameTemplate
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HOSTNAME_DEFAULT_TEMPLATE);
        serverSettingHostNameTemplate
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_GENERATE_HOSTNAME_ID);
        serverSettingHostNameTemplate.setDependencyValue("true");
        serverSettingHostNameTemplate.setToolTip("Template used to generate host names at deployment "
                + "time. Must contain variables that will produce a unique host name. Allowed variables "
                + " are ${num} (an auto-generated unique number), ${service_tag}, ${model}, ${vendor}"
                + " and ${dns} (ASM-assigned static IP will be resolved to hostname by DNS lookup).");
        serverCategoryOS.getParameters().add(serverSettingHostNameTemplate);

        ServiceTemplateSetting serverSettingHostName = new ServiceTemplateSetting();
        serverSettingHostName.setDisplayName("Host Name");
        serverSettingHostName.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HOSTNAME_ID);
        serverSettingHostName.setType(ServiceTemplateSettingType.STRING);
        serverSettingHostName.setRequired(true);
        serverSettingHostName.setRequiredAtDeployment(true);
        serverSettingHostName.setHideFromTemplate(true);
        serverSettingHostName
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_GENERATE_HOSTNAME_ID);
        serverSettingHostName.setDependencyValue("false");
        serverCategoryOS.getParameters().add(serverSettingHostName);

        ServiceTemplateSetting osType = new ServiceTemplateSetting();
        osType.setDisplayName("OS Image Type");
        osType.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_TYPE_ID);
        osType.setType(ServiceTemplateSettingType.ENUMERATED);
        osType.setRequired(false);
        osType.setHideFromTemplate(true);
        osType.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_ID);
        osType.setDependencyValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID_VSAN + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_HD + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_AHCI_VSAN);

        serverCategoryOS.getParameters().add(osType);

        ServiceTemplateSetting osImage = new ServiceTemplateSetting();
        osImage.setDisplayName("OS Image");
        osImage.setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_OS_IMAGE_TOOLTIP);
        osImage.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        osImage.setType(ServiceTemplateSettingType.ENUMERATED);
        osImage.setRequired(true);
        osImage.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_ID);
        osImage.setDependencyValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID_VSAN + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_HD + ","
                + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_AHCI_VSAN);

        ServiceTemplateUtil.addDefaultSelectOption(osImage);
        ServiceTemplateUtil.addOSImagesAsOptions(razorImages, repoNames, osImage);
        String windowsTargets = StringUtils.defaultIfBlank(
                Joiner.on(",").skipNulls().join(
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2012_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2008_VALUE)),
                NO_MATCHING_VALUE);
        String allLinuxTargets = StringUtils.defaultIfBlank(
                Joiner.on(",").skipNulls().join(
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_REDHAT6_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_REDHAT7_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_SUSE11_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_SUSE12_VALUE)),
                NO_MATCHING_VALUE);
        serverCategoryOS.getParameters().add(osImage);

        if (!minServer) {
            // Add flag for hyperv deployment
            String windows2012Targets = imageTargets
                    .get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2012_VALUE);
            if (windows2012Targets == null) {
                windows2012Targets = NO_MATCHING_VALUE;
            }
            ServiceTemplateSetting hypervDeployment = new ServiceTemplateSetting();
            hypervDeployment.setDisplayName("Install HyperV");
            hypervDeployment.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_INSTALL);
            hypervDeployment.setType(ServiceTemplateSettingType.BOOLEAN);
            hypervDeployment.setRequired(false);
            hypervDeployment.setValue("false");
            hypervDeployment.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
            hypervDeployment.setDependencyValue(windows2012Targets);
            serverCategoryOS.getParameters().add(hypervDeployment);
        }
        ServiceTemplateSetting osSubType = new ServiceTemplateSetting();
        osSubType.setDisplayName("OS Image Version");
        osSubType.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_VERSION_ID);
        osSubType.setType(ServiceTemplateSettingType.ENUMERATED);
        osSubType.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        osSubType.setDependencyValue(windowsTargets);
        ServiceTemplateUtil.addDefaultSelectOption(osSubType);
        addWindowsFlavors(osSubType, imageTargets);
        serverCategoryOS.getParameters().add(osSubType);

        ServiceTemplateSetting serverSettingHypervisorAdminPassword = new ServiceTemplateSetting();
        serverSettingHypervisorAdminPassword.setDisplayName("Administrator password");
        serverSettingHypervisorAdminPassword
                .setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_ADM_PASSWORD_TOOLTIP);
        serverSettingHypervisorAdminPassword
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ADMIN_PASSWORD_ID);
        serverSettingHypervisorAdminPassword.setType(ServiceTemplateSettingType.PASSWORD);
        serverSettingHypervisorAdminPassword.setRequired(true);
        serverSettingHypervisorAdminPassword
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_ID);
        serverSettingHypervisorAdminPassword
                .setDependencyValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID_VSAN + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_HD + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_AHCI_VSAN);
        serverSettingHypervisorAdminPassword
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_PASSWORD_DEFAULT_TO_REMOVE);

        serverCategoryOS.getParameters().add(serverSettingHypervisorAdminPassword);

        ServiceTemplateSetting serverSettingHypervisorAdminConfirmPassword = new ServiceTemplateSetting();
        serverSettingHypervisorAdminConfirmPassword.setDisplayName("Confirm administrator password");
        serverSettingHypervisorAdminConfirmPassword
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ADMIN_CONFIRM_PASSWORD_ID);
        serverSettingHypervisorAdminConfirmPassword.setType(ServiceTemplateSettingType.PASSWORD);
        serverSettingHypervisorAdminConfirmPassword.setRequired(true);
        serverSettingHypervisorAdminConfirmPassword
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_ID);
        serverSettingHypervisorAdminConfirmPassword
                .setDependencyValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_SD_RAID_VSAN + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_HD + ","
                        + ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_TARGET_BOOTDEVICE_AHCI_VSAN);
        serverSettingHypervisorAdminConfirmPassword
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_PASSWORD_DEFAULT_TO_REMOVE);

        serverCategoryOS.getParameters().add(serverSettingHypervisorAdminConfirmPassword);

        ServiceTemplateSetting serverSettingHVProdKey = new ServiceTemplateSetting();
        serverSettingHVProdKey.setDisplayName("Product Key");
        serverSettingHVProdKey.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_PROD_KEY_ID);
        serverSettingHVProdKey.setType(ServiceTemplateSettingType.STRING);
        serverSettingHVProdKey.setRequired(true);
        serverSettingHVProdKey
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingHVProdKey.setDependencyValue(windowsTargets);
        serverCategoryOS.getParameters().add(serverSettingHVProdKey);

        ServiceTemplateSetting serverSettingHVTimezone = new ServiceTemplateSetting();
        serverSettingHVTimezone.setDisplayName("Timezone");
        serverSettingHVTimezone.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_TIMEZONE_ID);
        serverSettingHVTimezone.setType(ServiceTemplateSettingType.ENUMERATED);
        populateTimezones(serverSettingHVTimezone);
        serverSettingHVTimezone.setRequired(true);
        serverSettingHVTimezone.setValue("Central Standard Time");
        serverSettingHVTimezone
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_INSTALL);
        serverSettingHVTimezone.setDependencyValue("true");
        serverCategoryOS.getParameters().add(serverSettingHVTimezone);

        ServiceTemplateSetting serverSettingTimezone = new ServiceTemplateSetting();
        serverSettingTimezone.setDisplayName("Timezone");
        serverSettingTimezone.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_LINUX_TIMEZONE_ID);
        serverSettingTimezone.setType(ServiceTemplateSettingType.ENUMERATED);
        populateLinuxTimezones(serverSettingTimezone);
        serverSettingTimezone.setRequired(false);
        serverSettingTimezone.setValue("11"); // Central time
        serverSettingTimezone
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingTimezone.setDependencyValue(allLinuxTargets);
        serverCategoryOS.getParameters().add(serverSettingTimezone);

        String ntpTargets = StringUtils.defaultIfBlank(
                Joiner.on(",").skipNulls().join(allLinuxTargets, windowsTargets,
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_ESXI_VALUE)),
                NO_MATCHING_VALUE);
        ServiceTemplateSetting serverSettingLinuxNTP = new ServiceTemplateSetting();
        serverSettingLinuxNTP.setDisplayName("NTP Server");
        serverSettingLinuxNTP.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_LINUX_NTP_ID);
        serverSettingLinuxNTP.setType(ServiceTemplateSettingType.STRING);
        serverSettingLinuxNTP.setRequired(false);
        serverSettingLinuxNTP.setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_NTP_TOOLTIP);
        serverSettingLinuxNTP
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingLinuxNTP.setDependencyValue(ntpTargets);

        NTPSetting ntpSet = ProxyUtil.getAlcmNTPProxy().getNTPSettings();
        if (StringUtils.isNotEmpty(ntpSet.getPreferredNTPServer())) {
            serverSettingLinuxNTP.setValue(ntpSet.getPreferredNTPServer());
        }

        serverCategoryOS.getParameters().add(serverSettingLinuxNTP);

        ServiceTemplateSetting serverSettingHVLang = new ServiceTemplateSetting();
        serverSettingHVLang.setDisplayName("Language");
        serverSettingHVLang.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_LANG_ID);
        serverSettingHVLang.setType(ServiceTemplateSettingType.ENUMERATED);
        populateLang(serverSettingHVLang);
        serverSettingHVLang.setRequired(true);
        serverSettingHVLang.setValue("en-US");
        serverSettingHVLang
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_INSTALL);
        serverSettingHVLang.setDependencyValue("true");
        serverCategoryOS.getParameters().add(serverSettingHVLang);

        ServiceTemplateSetting serverSettingHVKeyboard = new ServiceTemplateSetting();
        serverSettingHVKeyboard.setDisplayName("Keyboard");
        serverSettingHVKeyboard.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_KEYBOARD_ID);
        serverSettingHVKeyboard.setType(ServiceTemplateSettingType.ENUMERATED);
        populateKeyboard(serverSettingHVKeyboard);
        serverSettingHVKeyboard.setRequired(true);
        serverSettingHVKeyboard.setValue("00000409");
        serverSettingHVKeyboard
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_INSTALL);
        serverSettingHVKeyboard.setDependencyValue("true");
        serverCategoryOS.getParameters().add(serverSettingHVKeyboard);

        ServiceTemplateSetting serverSettingHVDN = new ServiceTemplateSetting();
        serverSettingHVDN.setDisplayName("Domain Name");
        serverSettingHVDN.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_DN_ID);
        serverSettingHVDN.setType(ServiceTemplateSettingType.STRING);
        serverSettingHVDN.setRequired(false);
        serverSettingHVDN.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingHVDN.setDependencyValue(windowsTargets);
        serverCategoryOS.getParameters().add(serverSettingHVDN);

        ServiceTemplateSetting serverSettingHVFQDN = new ServiceTemplateSetting();
        serverSettingHVFQDN.setDisplayName("FQ Domain Name");
        serverSettingHVFQDN.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_FQDN_ID);
        serverSettingHVFQDN.setType(ServiceTemplateSettingType.STRING);
        serverSettingHVFQDN.setRequired(false);
        serverSettingHVFQDN
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_INSTALL);
        serverSettingHVFQDN.setDependencyValue("true");
        serverCategoryOS.getParameters().add(serverSettingHVFQDN);

        ServiceTemplateSetting serverSettingHVAdminLogin = new ServiceTemplateSetting();
        serverSettingHVAdminLogin.setDisplayName("Domain Admin Username");
        serverSettingHVAdminLogin.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_ADMIN_LOGIN_ID);
        serverSettingHVAdminLogin.setType(ServiceTemplateSettingType.STRING);
        serverSettingHVAdminLogin.setRequired(false);
        serverSettingHVAdminLogin
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingHVAdminLogin.setDependencyValue(windowsTargets);

        serverCategoryOS.getParameters().add(serverSettingHVAdminLogin);

        ServiceTemplateSetting serverSettingHVAdminPass = new ServiceTemplateSetting();
        serverSettingHVAdminPass.setDisplayName("Domain Admin Password");
        serverSettingHVAdminPass.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_DOMAIN_PASSWORD_ID);
        serverSettingHVAdminPass.setType(ServiceTemplateSettingType.PASSWORD);
        serverSettingHVAdminPass.setRequired(false);
        serverSettingHVAdminPass
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingHVAdminPass.setDependencyValue(windowsTargets);
        serverSettingHVAdminPass
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_PASSWORD_DEFAULT_TO_REMOVE);

        serverCategoryOS.getParameters().add(serverSettingHVAdminPass);

        ServiceTemplateSetting serverSettingHVAdminPassConfirm = new ServiceTemplateSetting();
        serverSettingHVAdminPassConfirm.setDisplayName("Domain Admin Password Confirm");
        serverSettingHVAdminPassConfirm
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_DOMAIN_CONFIRM_PASSWORD_ID);
        serverSettingHVAdminPassConfirm.setType(ServiceTemplateSettingType.PASSWORD);
        serverSettingHVAdminPassConfirm.setRequired(false);
        serverSettingHVAdminPassConfirm
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingHVAdminPassConfirm.setDependencyValue(windowsTargets);
        serverSettingHVAdminPassConfirm
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_PASSWORD_DEFAULT_TO_REMOVE);

        serverCategoryOS.getParameters().add(serverSettingHVAdminPassConfirm);

        if (!minServer) {
            ServiceTemplateSetting iscsi = new ServiceTemplateSetting();
            iscsi.setDisplayName("Select iSCSI Initiator");
            iscsi.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ISCSI_ID);
            iscsi.setType(ServiceTemplateSettingType.ENUMERATED);
            iscsi.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
            iscsi.setDependencyValue(
                    imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_ESXI_VALUE));
            iscsi.setRequired(true);

            ServiceTemplateOption[] options = new ServiceTemplateOption[] {
                    new ServiceTemplateOption("Hardware Initiator",
                            ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ISCSI_HARDWARE_ID, null, null),
                    new ServiceTemplateOption("Software Initiator",
                            ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ISCSI_SOFTWARE_ID, null,
                            null), };
            iscsi.getOptions().addAll(Arrays.asList(options));
            ServiceTemplateUtil.addDefaultSelectOption(iscsi);
            serverCategoryOS.getParameters().add(iscsi);

            ServiceTemplateSetting eqlMem = new ServiceTemplateSetting();
            eqlMem.setDisplayName("Install EqualLogic MEM");
            eqlMem.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_EQL_MEM_ID);
            eqlMem.setType(ServiceTemplateSettingType.ENUMERATED);
            eqlMem.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
            eqlMem.setDependencyValue(
                    imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_ESXI_VALUE));
            eqlMem.setRequired(true);

            ServiceTemplateUtil.addBooleanSelectOption(eqlMem);
            serverCategoryOS.getParameters().add(eqlMem);

            ServiceTemplateSetting localStorageSetting = new ServiceTemplateSetting();
            localStorageSetting.setDisplayName("Local storage for Vmware vSAN");
            localStorageSetting.setId(ServiceTemplateSettingIDs.LOCAL_STORAGE_ID);
            localStorageSetting.setType(ServiceTemplateSettingType.BOOLEAN);
            localStorageSetting.setRequired(false);
            localStorageSetting.setValue("false");
            localStorageSetting.setToolTip(ServiceTemplateSettingIDs.LOCAL_STORAGE_TOOLTIP);
            localStorageSetting
                    .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
            localStorageSetting.setDependencyValue(
                    imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_ESXI_VALUE));

            serverCategoryOS.getParameters().add(localStorageSetting);

            ServiceTemplateSetting localStorageTypeSetting = new ServiceTemplateSetting();
            localStorageTypeSetting.setDisplayName("Local storage type");
            localStorageTypeSetting.setId(ServiceTemplateSettingIDs.LOCAL_STORAGE_TYPE_ID);
            localStorageTypeSetting.setType(ServiceTemplateSettingType.RADIO);
            localStorageTypeSetting.setRequired(false);

            localStorageTypeSetting.getOptions().add(new ServiceTemplateOption("All flash",
                    ServiceTemplateSettingIDs.LOCAL_STORAGE_TYPE_FLASH, null, null));
            localStorageTypeSetting.getOptions().add(new ServiceTemplateOption("Hybrid",
                    ServiceTemplateSettingIDs.LOCAL_STORAGE_TYPE_HYBRID, null, null));
            localStorageTypeSetting.setValue(ServiceTemplateSettingIDs.LOCAL_STORAGE_TYPE_FLASH);

            localStorageTypeSetting.setDependencyTarget(ServiceTemplateSettingIDs.LOCAL_STORAGE_ID);
            localStorageTypeSetting.setDependencyValue("true");

            serverCategoryOS.getParameters().add(localStorageTypeSetting);

        }

    }
    return serverCategoryOS;
}

From source file:com.dell.asm.asmcore.asmmanager.app.rest.ServiceTemplateService.java

private ServiceTemplateComponent buildServerComponent(List<RazorRepo> razorImages,
        List<DeviceGroupEntity> deviceGroups, List<NetworkConfiguration> networks,
        Map<String, String> imageTargets, Map<String, String> repoNames) {
    ServiceTemplateComponent server = new ServiceTemplateComponent();
    server.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_COMPID_ALL);
    server.setName("Server");
    server.setType(ServiceTemplateComponentType.SERVER);

    ServiceTemplateCategory serverCategoryHW = buildServerHardwareSettings(deviceGroups, false);
    addServerPoolSetting(serverCategoryHW, deviceGroups);
    addDeploymentFailoverSetting(serverCategoryHW);
    addDeploymentAttemptedSetting(serverCategoryHW);
    ServiceTemplateCategory serverCategoryOS = buildServerOsSettings(razorImages, imageTargets, repoNames,
            false);//ww w.  j av a  2  s .c  o m
    ServiceTemplateCategory serverCategoryBIOS = buildServerBIOSSettings();

    ServiceTemplateCategory serverCategoryNetwork = new ServiceTemplateCategory();
    serverCategoryNetwork.setDisplayName("Network Settings");
    serverCategoryNetwork.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_NETWORKING_COMP_ID);

    ServiceTemplateSetting multiNetworkConfig = new ServiceTemplateSetting();
    multiNetworkConfig.setDisplayName("Network Config");
    multiNetworkConfig.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_NETWORK_CONFIG_ID);
    multiNetworkConfig.setType(ServiceTemplateSettingType.NETWORKCONFIGURATION);
    multiNetworkConfig.setRequired(false);
    multiNetworkConfig.setValue("");
    serverCategoryNetwork.getParameters().add(multiNetworkConfig);

    ServiceTemplateSetting defaultGateway = setDefaultGatewaySetting(networks, serverCategoryNetwork);

    final Map<String, String> baremetalTargets = ServiceTemplateUtil.processRazorImagesTargets(razorImages,
            true);
    String osValues = StringUtils.defaultIfBlank(Joiner.on(",").skipNulls().join(baremetalTargets.values()),
            null);

    ServiceTemplateSetting mtuSetting = new ServiceTemplateSetting();
    mtuSetting.setDisplayName("MTU size for bonded interfaces:");
    mtuSetting.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_MTU_ID);
    mtuSetting.setType(ServiceTemplateSettingType.ENUMERATED);
    mtuSetting.getOptions().add(new ServiceTemplateOption("1500", "1500", null, null));
    mtuSetting.getOptions().add(new ServiceTemplateOption("9000", "9000", null, null));
    mtuSetting.setValue("1500");
    mtuSetting.setToolTip("Allows the Maximum Transfer Unit (MTU) to be set in the server Operating System. "
            + "This will only take effect on bonded interfaces.");
    serverCategoryNetwork.getParameters().add(mtuSetting);

    final Map<String, String> linuxTargets = ServiceTemplateUtil.getLinuxRazorImageTargets(razorImages);
    String linuxOSValues = StringUtils.defaultIfBlank(Joiner.on(",").skipNulls().join(linuxTargets.values()),
            null);

    // hidden for ESX or HyperV
    if (osValues != null) {
        defaultGateway.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        defaultGateway.setDependencyValue(osValues);

    } else {
        // no bare metal OS, don't show it at all
        defaultGateway.setHideFromTemplate(true);
    }

    if (linuxOSValues != null) {
        mtuSetting.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        mtuSetting.setDependencyValue(linuxOSValues);
    } else {
        mtuSetting.setHideFromTemplate(true);
    }

    IIOPoolMgr identityPoolsMgr = IOPoolMgr.getInstance();
    List<IOPool> ioPools = identityPoolsMgr.getAllPools();

    if (ioPools != null && ioPools.size() > 0) {
        ServiceTemplateSetting serverSettingIdentityPool = new ServiceTemplateSetting();
        serverSettingIdentityPool.setDisplayName("Identity Pool");
        serverSettingIdentityPool.setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_ID_POOL_TOOLTIP);
        serverSettingIdentityPool.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_IDENTITYPOOL_ID);
        serverSettingIdentityPool.setType(ServiceTemplateSettingType.ENUMERATED);
        for (int i = 0; i < ioPools.size(); i++) {
            serverSettingIdentityPool.getOptions().add(
                    new ServiceTemplateOption(ioPools.get(i).getName(), ioPools.get(i).getId(), null, null));
        }
        // set it to the first pool which is the "Global" pool
        serverSettingIdentityPool.setValue(ioPools.get(0).getId());
        serverCategoryNetwork.getParameters().add(serverSettingIdentityPool);
    }

    // hardware boot device defines OS type, so it goes first.
    server.getResources().add(serverCategoryOS);
    server.getResources().add(serverCategoryHW);
    server.getResources().add(serverCategoryBIOS);
    server.getResources().add(serverCategoryNetwork);

    return server;
}

From source file:com.dell.asm.asmcore.asmmanager.app.rest.ServiceTemplateService.java

/**
 * Create VM default component./*w w  w .  jav  a  2 s  .c o m*/
 * @return
 */
private ServiceTemplateComponent createVMComponent(List<DeviceInventoryEntity> vCenterEntities,
        List<RazorRepo> razorImages, List<NetworkConfiguration> networks,
        final Map<String, String> imageTargets, final Map<String, String> repoNames, boolean isClone) {

    // create default Virtual Machine settings
    // create default cluster settings
    ServiceTemplateComponent VM = new ServiceTemplateComponent();
    if (isClone) {
        VM.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_VC_CLONE_COMPONENT_ID);
        VM.setName("Clone vCenter Virtual Machine");
    } else {
        VM.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_VC_COMPONENT_ID);
        VM.setName("vCenter Virtual Machine");
    }

    VM.setType(ServiceTemplateComponentType.VIRTUALMACHINE);

    ServiceTemplateCategory vmCategory1 = new ServiceTemplateCategory();
    vmCategory1.setDisplayName("Virtual Machine Settings");
    vmCategory1.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_RESOURCE);

    if (isClone) {
        ServiceTemplateSetting serverSettingGenerateHostName = new ServiceTemplateSetting();
        serverSettingGenerateHostName.setDisplayName("Auto-generate Name");
        serverSettingGenerateHostName.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_GENERATE_NAME_ID);
        serverSettingGenerateHostName.setType(ServiceTemplateSettingType.BOOLEAN);
        serverSettingGenerateHostName.setRequired(false);
        serverSettingGenerateHostName.setRequiredAtDeployment(false);
        serverSettingGenerateHostName.setHideFromTemplate(false);
        serverSettingGenerateHostName.setValue("false");
        serverSettingGenerateHostName.setToolTip("Use the VM Name Template field to auto-generate "
                + "VM names at deployment time. If not selected, a unique name will be requested "
                + "when the template is deployed.");
        vmCategory1.getParameters().add(serverSettingGenerateHostName);

        ServiceTemplateSetting serverSettingHostNameTemplate = new ServiceTemplateSetting();
        serverSettingHostNameTemplate.setDisplayName("VM Name Template");
        serverSettingHostNameTemplate.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_NAME_TEMPLATE_ID);
        serverSettingHostNameTemplate.setType(ServiceTemplateSettingType.STRING);
        serverSettingHostNameTemplate.setRequired(true);
        serverSettingHostNameTemplate.setRequiredAtDeployment(false);
        serverSettingHostNameTemplate.setHideFromTemplate(false);
        serverSettingHostNameTemplate
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_NAME_DEFAULT_TEMPLATE);
        serverSettingHostNameTemplate
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_GENERATE_NAME_ID);
        serverSettingHostNameTemplate.setDependencyValue("true");
        serverSettingHostNameTemplate.setToolTip("Template used to generate VM names at deployment "
                + "time. Must contain variables that will produce a unique VM name. Allowed variables "
                + " are ${num} (an auto-generated unique number).");
        vmCategory1.getParameters().add(serverSettingHostNameTemplate);

        // Add the VM_NAME; for non-clone the SERVER_NAME parameter will be used
        ServiceTemplateSetting vmSettingName = new ServiceTemplateSetting();
        vmSettingName.setDisplayName("Name");
        vmSettingName.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_NAME);
        vmSettingName.setType(ServiceTemplateSettingType.STRING);
        vmSettingName.setRequired(true);
        vmSettingName.setRequiredAtDeployment(true);
        vmSettingName.setHideFromTemplate(true);
        vmSettingName.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_GENERATE_NAME_ID);
        vmSettingName.setDependencyValue("false");
        vmCategory1.getParameters().add(vmSettingName);

        /*
        Clone Type: [Virtual Machine][Virtual Machine Template]
        Templates: [pick from list of virtual machine templates]
        or
        Virtual Machine: [pick from list of virtual machines]
         */

        ServiceTemplateSetting vmCloneType = new ServiceTemplateSetting();
        vmCloneType.setDisplayName("Clone Type");
        vmCloneType.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_CLONE_TYPE);
        vmCloneType.setType(ServiceTemplateSettingType.ENUMERATED);
        vmCloneType.getOptions().add(new ServiceTemplateOption("Virtual Machine", "vm", null, null));
        vmCloneType.getOptions()
                .add(new ServiceTemplateOption("Virtual Machine Template", "template", null, null));
        vmCloneType.setValue("vm");
        vmCloneType.setRequired(false);
        vmCategory1.getParameters().add(vmCloneType);

        ServiceTemplateSetting vmTemplate = new ServiceTemplateSetting();
        vmTemplate.setDisplayName("Source");
        vmTemplate.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_TEMPLATE);
        vmTemplate.setType(ServiceTemplateSettingType.ENUMERATED);
        vmTemplate.setRequired(true);
        vmCategory1.getParameters().add(vmTemplate);
        ServiceTemplateUtil.addDefaultSelectOption(vmTemplate);

        ServiceTemplateSetting vmTemplateDC = new ServiceTemplateSetting();
        vmTemplateDC.setDisplayName("Source Datacenter");
        vmTemplateDC.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_TEMPLATE_DC);
        vmTemplateDC.setType(ServiceTemplateSettingType.ENUMERATED);
        vmTemplateDC.setRequired(true);
        vmCategory1.getParameters().add(vmTemplateDC);
        ServiceTemplateUtil.addDefaultSelectOption(vmTemplateDC);

        ServiceTemplateSetting vmCustomSpec = new ServiceTemplateSetting();
        vmCustomSpec.setDisplayName("VM Guest Customization Spec");
        vmCustomSpec.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_CUSTOM_SPEC);
        vmCustomSpec.setType(ServiceTemplateSettingType.ENUMERATED);
        vmCustomSpec.setRequired(false);
        vmCustomSpec.setToolTip("Selected VM guest customization spec must match the OS type");
        ServiceTemplateUtil.addDefaultSelectOption(vmCustomSpec);
        vmCategory1.getParameters().add(vmCustomSpec);

        if (vCenterEntities != null) {
            for (DeviceInventoryEntity e : vCenterEntities) {
                ManagedObjectDTO vCenter = null;
                Map<String, String> deviceDetails = null;
                try {
                    deviceDetails = PuppetModuleUtil.getPuppetDevice(e.getRefId());
                    vCenter = VcenterInventoryUtils.convertPuppetDeviceDetailsToDto(deviceDetails);
                } catch (Exception e1) {
                    LOGGER.error("Could not find deviceDetails for " + e.getRefId(), e1);
                    continue;
                }
                List<VirtualMachineDTO> vmSet = vCenter.getVirtualMachines();
                List<VMTemplateDTO> templateSet = vCenter.getAllDescendantsByType(VMTemplateDTO.class);
                List<DatacenterDTO> dcSet = vCenter.getDatacenters();
                String customSpecsJsonArray = deviceDetails.get("customization_specs");
                if (StringUtils.isNotEmpty(customSpecsJsonArray)) {
                    ArrayList<String> customSpecList;
                    try {
                        customSpecList = new ObjectMapper().readValue(deviceDetails.get("customization_specs"),
                                ArrayList.class);
                        for (String customSpecName : customSpecList) {
                            String path = customSpecName;
                            ServiceTemplateOption oPath = new ServiceTemplateOption(path, path,
                                    ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_CUSTOM_SPEC, null);
                            if (!vmCustomSpec.getOptions().contains(oPath)) {
                                vmCustomSpec.getOptions().add(oPath);
                            }
                        }
                    } catch (Exception e1) {
                        LOGGER.error("Could not find deviceDetails for customization spec list", e1);
                        continue;
                    }
                }

                for (VirtualMachineDTO vm : vmSet) {
                    String path = vm.getName();
                    ServiceTemplateOption oPath = new ServiceTemplateOption(path, path,
                            ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_CLONE_TYPE, "vm");
                    if (!vmTemplate.getOptions().contains(oPath)) {
                        vmTemplate.getOptions().add(oPath);
                    }
                }

                for (VMTemplateDTO vm : templateSet) {
                    String path = vm.getName();
                    ServiceTemplateOption oPath = new ServiceTemplateOption(path, path,
                            ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VCENTER_VM_CLONE_TYPE, "template");
                    if (!vmTemplate.getOptions().contains(oPath)) {
                        vmTemplate.getOptions().add(oPath);
                    }
                }

                for (DatacenterDTO dc : dcSet) {
                    String path = dc.getName();
                    ServiceTemplateOption oPath = new ServiceTemplateOption(path, path, null, null);
                    if (!vmTemplateDC.getOptions().contains(oPath)) {
                        vmTemplateDC.getOptions().add(oPath);
                    }
                }
            }
        }
    }

    ServiceTemplateSetting vmSettingCPU = new ServiceTemplateSetting();
    vmSettingCPU.setDisplayName("Number of CPUs");
    vmSettingCPU.setValue("1");
    vmSettingCPU.setMin(1);
    vmSettingCPU.setMax(8);
    vmSettingCPU.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_NUMBER_OF_CPU_ID);
    vmSettingCPU.setType(ServiceTemplateSettingType.INTEGER);
    vmCategory1.getParameters().add(vmSettingCPU);

    if (!isClone) {
        ServiceTemplateSetting vmDiskSetting = new ServiceTemplateSetting();
        vmDiskSetting.setDisplayName("Virtual Disk(s)");
        vmDiskSetting.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_DISK);
        vmDiskSetting.setRequiredAtDeployment(false);
        vmDiskSetting.setMin(1);
        vmDiskSetting.setMax(2048);
        vmDiskSetting.setRequired(true);
        vmDiskSetting.setType(ServiceTemplateSettingType.VMVIRTUALDISKCONFIGURATION);
        vmCategory1.getParameters().add(vmDiskSetting);
    } else {
        ServiceTemplateSetting vmSettingSize = new ServiceTemplateSetting();
        vmSettingSize.setDisplayName("Virtual Disk Size (GB)");
        vmSettingSize.setValue("32");
        vmSettingSize.setMin(1);
        vmSettingSize.setMax(2048);
        vmSettingSize.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_SIZE);
        vmSettingSize.setType(ServiceTemplateSettingType.INTEGER);
        vmCategory1.getParameters().add(vmSettingSize);
    }

    ServiceTemplateSetting vmSettingMemory = new ServiceTemplateSetting();
    vmSettingMemory.setDisplayName("Memory in MB");
    vmSettingMemory.setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_MEMORY_SIZE_TOOLTIP);
    vmSettingMemory.setValue("8192");
    vmSettingMemory.setMin(1024);
    vmSettingMemory.setMax(262144); //256*1024
    vmSettingMemory.setStep(4);
    vmSettingMemory.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_MEMORY_ID);
    vmSettingMemory.setType(ServiceTemplateSettingType.INTEGER);
    vmCategory1.getParameters().add(vmSettingMemory);

    // Set the VM network selection, filter by public and private
    ServiceTemplateSetting vmSettingNetwork = new ServiceTemplateSetting();
    vmSettingNetwork.setDisplayName("Networks");
    vmSettingNetwork.setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_NETWORKS_TOOLTIP);
    vmSettingNetwork.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_NETWORK_ID);
    vmSettingNetwork.setType(ServiceTemplateSettingType.LIST);
    vmSettingNetwork.setRequired(true);
    vmSettingNetwork.setValue("");
    if (networks != null && networks.size() > 0) {
        for (int i = 0; i < networks.size(); i++) {
            if (networks.get(i).getType().compareToIgnoreCase(NetworkType.PRIVATE_LAN.value()) == 0
                    || networks.get(i).getType().compareToIgnoreCase(NetworkType.PUBLIC_LAN.value()) == 0) {
                vmSettingNetwork.getOptions().add(new ServiceTemplateOption(networks.get(i).getName(),
                        networks.get(i).getId(), null, null));
            }
        }
    }
    vmCategory1.getParameters().add(vmSettingNetwork);

    setDefaultGatewaySetting(networks, vmCategory1);

    if (!isClone) {
        ServiceTemplateCategory vmCategory2 = new ServiceTemplateCategory();
        vmCategory2.setDisplayName("Virtual Machine OS Settings");
        vmCategory2.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_RESOURCE);

        ServiceTemplateSetting serverSettingGenerateHostName = new ServiceTemplateSetting();
        serverSettingGenerateHostName.setDisplayName("Auto-generate Host Name");
        serverSettingGenerateHostName
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_GENERATE_HOSTNAME_ID);
        serverSettingGenerateHostName.setType(ServiceTemplateSettingType.BOOLEAN);
        serverSettingGenerateHostName.setRequired(false);
        serverSettingGenerateHostName.setRequiredAtDeployment(false);
        serverSettingGenerateHostName.setHideFromTemplate(false);
        serverSettingGenerateHostName.setValue("false");
        serverSettingGenerateHostName.setToolTip("Use the Host Name Template field to auto-generate "
                + "host names at deployment time. If not selected, a unique host name will be requested "
                + "when the template is deployed.");
        vmCategory2.getParameters().add(serverSettingGenerateHostName);

        ServiceTemplateSetting serverSettingHostNameTemplate = new ServiceTemplateSetting();
        serverSettingHostNameTemplate.setDisplayName("Host Name Template");
        serverSettingHostNameTemplate
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HOSTNAME_TEMPLATE_ID);
        serverSettingHostNameTemplate.setType(ServiceTemplateSettingType.STRING);
        serverSettingHostNameTemplate.setRequired(true);
        serverSettingHostNameTemplate.setRequiredAtDeployment(false);
        serverSettingHostNameTemplate.setHideFromTemplate(false);
        serverSettingHostNameTemplate
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_OS_HOSTNAME_DEFAULT_TEMPLATE);
        serverSettingHostNameTemplate
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_GENERATE_HOSTNAME_ID);
        serverSettingHostNameTemplate.setDependencyValue("true");
        serverSettingHostNameTemplate.setToolTip("Template used to generate host names at deployment "
                + "time. Must contain variables that will produce a unique host name. Allowed variables "
                + " are ${num} (an auto-generated unique number).");
        vmCategory2.getParameters().add(serverSettingHostNameTemplate);

        ServiceTemplateSetting vmSettingHostName = new ServiceTemplateSetting();
        vmSettingHostName.setDisplayName("Host Name");
        vmSettingHostName.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HOSTNAME_ID);
        vmSettingHostName.setType(ServiceTemplateSettingType.STRING);
        vmSettingHostName.setRequired(true);
        vmSettingHostName.setRequiredAtDeployment(true);
        vmSettingHostName.setHideFromTemplate(true);
        vmSettingHostName
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_GENERATE_HOSTNAME_ID);
        vmSettingHostName.setDependencyValue("false");
        vmCategory2.getParameters().add(vmSettingHostName);

        ServiceTemplateSetting vmOSImage = new ServiceTemplateSetting();
        vmOSImage.setDisplayName("OS Image");
        vmOSImage.setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_OS_IMAGE_TOOLTIP);
        vmOSImage.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_OS_IMAGE_ID);
        vmOSImage.setType(ServiceTemplateSettingType.ENUMERATED);
        ServiceTemplateUtil.addDefaultSelectOption(vmOSImage);
        ServiceTemplateUtil.addOSImagesAsOptions(razorImages, repoNames, vmOSImage);
        vmCategory2.getParameters().add(vmOSImage);

        String windowsTargets = StringUtils.defaultIfBlank(
                Joiner.on(",").skipNulls().join(
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2012_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_WINDOWS2008_VALUE)),
                NO_MATCHING_VALUE);

        String allLinuxTargets = StringUtils.defaultIfBlank(
                Joiner.on(",").skipNulls().join(
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_REDHAT6_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_REDHAT7_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_SUSE11_VALUE),
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_SUSE12_VALUE)),
                NO_MATCHING_VALUE);

        String ntpTargets = StringUtils.defaultIfBlank(
                Joiner.on(",").skipNulls().join(allLinuxTargets, windowsTargets,
                        imageTargets.get(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_ESXI_VALUE)),
                NO_MATCHING_VALUE);

        ServiceTemplateSetting osSubType = new ServiceTemplateSetting();
        osSubType.setDisplayName("OS Image Version");
        osSubType.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_VERSION_ID);
        osSubType.setType(ServiceTemplateSettingType.ENUMERATED);
        osSubType.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        osSubType.setDependencyValue(windowsTargets);

        ServiceTemplateUtil.addDefaultSelectOption(osSubType);
        addWindowsFlavors(osSubType, imageTargets);
        vmCategory2.getParameters().add(osSubType);

        ServiceTemplateSetting osType = new ServiceTemplateSetting();
        osType.setDisplayName("OS Image Type");
        osType.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_TYPE_ID);
        osType.setType(ServiceTemplateSettingType.ENUMERATED);
        osType.setRequired(false);
        osType.setHideFromTemplate(true);

        vmCategory2.getParameters().add(osType);

        ServiceTemplateSetting vmSettingHypervisorAdminPassword = new ServiceTemplateSetting();
        vmSettingHypervisorAdminPassword.setDisplayName("Administrator password");
        vmSettingHypervisorAdminPassword
                .setToolTip(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_ADM_PASSWORD_TOOLTIP);
        vmSettingHypervisorAdminPassword
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ADMIN_PASSWORD_ID);
        vmSettingHypervisorAdminPassword.setType(ServiceTemplateSettingType.PASSWORD);
        vmSettingHypervisorAdminPassword
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_PASSWORD_DEFAULT_TO_REMOVE);
        vmCategory2.getParameters().add(vmSettingHypervisorAdminPassword);

        ServiceTemplateSetting vmSettingHypervisorAdminConfirmPassword = new ServiceTemplateSetting();
        vmSettingHypervisorAdminConfirmPassword.setDisplayName("Confirm administrator password");
        vmSettingHypervisorAdminConfirmPassword
                .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_ADMIN_CONFIRM_PASSWORD_ID);
        vmSettingHypervisorAdminConfirmPassword.setType(ServiceTemplateSettingType.PASSWORD);
        vmSettingHypervisorAdminConfirmPassword
                .setValue(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_PASSWORD_DEFAULT_TO_REMOVE);
        vmCategory2.getParameters().add(vmSettingHypervisorAdminConfirmPassword);

        ServiceTemplateSetting serverSettingHVProdKey = new ServiceTemplateSetting();
        serverSettingHVProdKey.setDisplayName("Product Key");
        serverSettingHVProdKey.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_HV_PROD_KEY_ID);
        serverSettingHVProdKey.setType(ServiceTemplateSettingType.STRING);
        serverSettingHVProdKey.setRequired(true);
        serverSettingHVProdKey
                .setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingHVProdKey.setDependencyValue(windowsTargets);
        vmCategory2.getParameters().add(serverSettingHVProdKey);

        ServiceTemplateSetting serverSettingNTP = new ServiceTemplateSetting();
        serverSettingNTP.setDisplayName("NTP Server");
        serverSettingNTP.setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_LINUX_NTP_ID);
        serverSettingNTP.setType(ServiceTemplateSettingType.STRING);
        serverSettingNTP.setRequired(false);
        serverSettingNTP.setDependencyTarget(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_OS_IMAGE_ID);
        serverSettingNTP.setDependencyValue(ntpTargets);

        NTPSetting ntpSet = ProxyUtil.getAlcmNTPProxy().getNTPSettings();
        if (StringUtils.isNotEmpty(ntpSet.getPreferredNTPServer())) {
            serverSettingNTP.setValue(ntpSet.getPreferredNTPServer());
        }

        vmCategory2.getParameters().add(serverSettingNTP);

        //TODO: Perhaps add this back in when there is support for it on the back end.  Removing for now because this currently does not work. 
        //            ServiceTemplateSetting customScript = new ServiceTemplateSetting();
        //            customScript.setDisplayName("Custom OS Installation script");
        //            customScript
        //                    .setId(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_VM_OS_CUSTOM_SCRIPT_ID);
        //            customScript.setType(ServiceTemplateSettingType.TEXT);
        //            customScript.setRequired(false);
        //            vmCategory2.getParameters().add(customScript);

        VM.getResources().add(vmCategory2);
    }

    VM.getResources().add(vmCategory1);

    return VM;
}

From source file:com.sonicle.webtop.mail.Service.java

public void processGetContactFromVCard(HttpServletRequest request, HttpServletResponse response,
        PrintWriter out) {/*from   w  ww .  j ava2 s .  c  om*/
    try {
        String folder = ServletUtils.getStringParameter(request, "folder", true);
        int messageId = ServletUtils.getIntParameter(request, "messageId", true);
        int attachId = ServletUtils.getIntParameter(request, "attachId", true);
        String uploadTag = ServletUtils.getStringParameter(request, "uploadTag", true);

        MailAccount account = getAccount(request);
        account.checkStoreConnected();
        FolderCache mcache = account.getFolderCache(folder);
        Message m = mcache.getMessage(messageId);
        HTMLMailData mailData = mcache.getMailData((MimeMessage) m);
        Part part = mailData.getAttachmentPart(attachId);
        String filename = MailUtils.getPartFilename(part);

        InputStream is = part.getInputStream();
        try {
            List<ContactInput> results = new VCardInput().fromVCardFile(is, null);
            ContactInput ci = results.get(0);

            JsContactData js = new JsContactData(ci.contact);

            if (ci.contact.hasPicture()) {
                ContactPictureWithBytes picture = (ContactPictureWithBytes) ci.contact.getPicture();
                WebTopSession.UploadedFile upl = null;
                ByteArrayInputStream bais = null;
                try {
                    bais = new ByteArrayInputStream(picture.getBytes());
                    upl = addAsUploadedFile("com.sonicle.webtop.contacts", uploadTag,
                            StringUtils.defaultIfBlank(filename, "idAttach"), "text/vcard", bais);
                } finally {
                    IOUtils.closeQuietly(bais);
                }
                if (upl != null)
                    js.picture = upl.getUploadId();
            }
            new JsonResult(js).printTo(out);

        } finally {
            IOUtils.closeQuietly(is);
        }

    } catch (Exception ex) {
        Service.logger.error("Exception", ex);
        new JsonResult(ex).printTo(out);
    }
}