Setup Wizard Design

Overview

The Setup Wizard should lead the administrator through the following steps:
  1. Validating that we are ready for setup
  2. Setting up the various installed setup components

The wizard should be able to deal with any combination of features that were installed by the installer. For instance, it is possible to install the ADAM components and the SQL components in the installer. The wizard should be able to detect this situation and offer to setup just those components.

The basic process for the wizard is as follows:
  1. Start up
  2. Determine features that are available for installation
  3. Do basic checks and gather results
  4. Do feature-specific checks and gather results
  5. If any checks fail, display a page showing what checks failed and allow the user to exit
  6. Display a page stating that the wizard is ready to setup the installed features (ADAM, SQL, and/or SharePoint)
  7. Gather information required for the setup, one item per page
  8. Display a confirmation page with all data gathered and a Setup button
  9. Setup all installed features, gathering the results of the setup in a log file
  10. Track setup and show status
  11. Display a final page showing results and give an opportunity to view the log file

This document describes how the wizard should work.

Pre-setup checks

The first thing the wizard should do is check out the environment. It should conduct the following checks:

Basic Checks

  • What setup scripts were installed by the installer (ects_setup_*.vbs). This information will be used later to decide what questions to ask and what scripts to run. If no scripts are found, the wizard should display a message and exit.
  • What version of Windows are we running. If it is not Server 2003 or 2008, the wizard should display a message and exit.
  • Is the script being run as an administrator. If not, the wizard should display a message and exit.

Feature-specific Checks

After the basic checks have been completed, the wizard should to feature-specific checks based on the features that were installed by the installer. This section describes those checks. (NOTE: these checks are a mirror of the checks done inside the setup scripts themselves, so if any checks are added to the setup scripts, they should be considered for inclusion here and vice versa.)

ADAM Setup

The wizard will determine that the ADAM feature was installed if it finds the ectssetupadam.vbs file in the directory that the wizard is running in. If this file is found, it will do the following checks:
  • Ensure that ADAM is installed by looking for adaminstall.exe in %WINDIR%\ADAM
  • Ensure that LDIFDE is available by looking for ldifde.exe in %WINDIR%\ADAM
  • Ensure that the schema extensions file (ectsschemaextensions.ldf) is available in the current directory
  • Ensure that the directory extensions file (ectsdirectoryextensions.ldf) is available in the current directory

If any of these checks fail, the wizard should gather the information about the failures to be reported later.

SQL Setup

The wizard will determine that the SQL feature was installed if it finds the ectssetupsql.vbs file in the directory that the wizard is running in. If this file is found, it will do the following checks:
  • Ensure that OSQL (osql.exe) is found in %ProgramFiles%\SQL Server\90\Tools\binn\osql.exe
  • Ensure that the SQL command file (createectsdatabase.sql) is found in the current directory

If any of these checks fail, the wizard should gather the information about the failures to be reported later.

SharePoint Setup

The wizard will determine that the SharePoint feature was installed if it finds the ectssetupsharepoint.vbs file in the directory that the wizard is running in. If this file is found, it will do the following checks:
  • Ensure that STSADM (stsadm.exe) is found in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\12\bin
  • Ensure that MAKECAB (makecab.exe) is found in %WINDIR%\system32
  • Ensure the feature template file (ECTSFeatureTemplate.xml) is in the current directory
  • Ensure the feature manifest file (ECTSBaseManifest.xml) is in the current directory
  • Ensure the feature packaging directive file (ECTSBaseSolution.ddf) is in the current directory
  • Ensure that the Common DLL file (ECTS.Common.dll) is found in the current directory
  • Ensure that the primary ECTS Solution package file (ECTSSolution.wsp) is found in the current directory

If any of these checks fail, the wizard should gather the information about the failures to be reported later.

Reporting Results of Pre-setup checks

After all checks are completed, the wizard should display its results. If not problems were found, the wizard should display a page stating that everything is ready for installation of the available features. It should also display a button to go to the next page. If one or more problems are found, the wizard should display a list of those problems and display a Finish button at the bottom of the page.

Information Gathering

Once the wizard has ensured everything is as it should be, it will gather the information required for setup. The information it needs to gather is based on the features that were installed (ADAM, SQL, and/or SharePoint). The wizard will step through a number of pages (up to 6), requesting a specific data item on each page. The wizard will validate each item as it is entered, and will not accept invalid data. On each page, you should have the opportunity to go back to the previous page. You should not be able to go forward to the next page unless the data entered is valid.

The page should look something like this:

Enter the fully-qualified domain name of the ADAM server (for example, adam.corp.woodgrovebank.com):

[____________________________________________________]

[Back]  [Next]  [Cancel]


The information gathering pages are described below. They should be displayed in this order.

ADAM Server Name

Order

Gather this data first.

Input Requested

The fully qualified domain name of the ADAM server. Prompt should be "Enter the fully-qualified domain name of the ADAM server (for example, adam.corp.woodgrovebank.com)".

Default Value

Should default to the FQDN of the current machine.

When to ask

This data should be gathered only when the SharePoint feature is installed.

Validation

The wizard should validate that the data input looks like an FQDN.

LDAP Container Name

Order

Gather this data second.

Input Requested

The LDAP container name where the ECTS should store its users. Prompt should be "Enter the LDAP container name where external user accounts will be stored (for example, CN=ExternalUsers,DC=woodgrovebank,DC=com)".

Default Value

The default value should be based on the FQDN gathered above (if this question was asked) or the FQDN of the current machine if it was not. The default value should be "CN=ExternalUsers,DC=YYYYY,DC=ZZZZ", where YYYY is the second to last component of the FQDN and ZZZZ is the last component of the FQDN. For example, if the FQDN is adam.corp.treyresearch.net, YYYY is "treyresearch" and ZZZZ is "net", so the container name should default to "CN=ExternalUsers,DC=treyresearch,DC=net".

When to ask

Ask this question if SharePoint or ADAM is being set up.

Validation

This should be a text string. If we can find a good regular expression for checking an LDAP container name, use it.

SQL Server Name

Order

Gather this data third.

Input Requested

The name of the SQL Server instance that should be used for the configuration database and site collection workflow data. Prompt should be "Enter the name of the SQL Server instance that you want to use for the ECTS (for example, WOODGROVE-SERVER\SQLEXPRESS)".

Default Value

The default value should be the hostname of the current system concatenated with "\SQLEXPRESS".

When to ask

Ask when the SQL or the SharePoint feature are installed.

Validation

This should be a string with a "\" somewhere in the middle of it.

Internal URL

Order

Ask fourth.

Input Requested

The URL of the internal collaboration site. The prompt should be "Enter the Internal URL for the collaboration site (for example, "http://collab")".

When to ask

Ask when the SharePoint feature is installed.

Default Value

The default value should be "http://collab".

Validation

This should look like a URL without a path. It must start with "http://" or "https://".

E-Mail Server

Order

Ask fifth.

Input Requested

The name of the e-mail server that the SharePoint server can send email to. The prompt should be: "Enter the name of the server to which SharePoint can send e-mail (for example, smtp.corp.woodgrovebank.com)".

When to ask

Ask when the SharePoint feature is installed.

Default value

None.

Validation

Should look like a valid host name or FQDN.

Mail Sender Address

Order

Ask sixth.

Input Requested

The email address that SharePoint should use for sending email. The prompt should be "Enter the e-mail address that SharePoint when sending e-mail (for example, SharePoint@woodgrovebank.com)".

Default value

The default value should be "SharePoint" concatenated with the last two components of the current servers FQDN. If this cannot be determined, do not present a default.

When to ask

Ask when the SharePoint feature is installed.

Validation

Should look like a valid email address.

Validation Page

After the last data item is gathered, the wizard should display a validation page. This validation page should display the following:

The wizard will set up the following features:

     ADAM
     SQL
     SharePoint

The following data will be used:

ADAM Server Name:     adam.corp.treyresearch.net
LDAP Container Name:  CN=ExternalUsers,DC=treyresearch,DC=net
SQL Server Name:      TREY-SERVER\SQLEXPRESS
Internal URL:         http://collab
E-Mail Server:        smtp.corp.treyresearch.net
Mail Sender Address:  SharePoint@treyresearch.net

[Back]  [Setup]  [Cancel]


Only the features that are installed should be shown. In addition, only the data that has been gathered should be shown.

At the bottom of the page, there should be buttons to allow the user to go back and change something, Setup, or Cancel. The Cancel button should kill the wizard. The Setup button should begin setup.

Setup

When the user clicks Setup, the setup process will begin. A page will be displayed that looks like this:

Setting up the Extranet Collaboration Toolkit for SharePoint

Setting up ADAM:        In Progress
Setting up SQL:         Not started
Setting up SharePoint:  Not started

[See Results]  [Finish]


Note that the buttons should be inactive until the setup process finishes.

Only the components that are installed should be displayed. For instance, if SQL and ADAM are installed, only two lines will be displayed on the setup page.

Each setup process with start as "Not started". As the setup wizard begins setup of that component, the status should change to "In Progress". As the setup script completes successfully, the status should be "Done". If a problem occurs, the status should change to "Failed".

The first thing the wizard should do is write the input parameters and features to be set up to the setup log file (setup.log) in the current directory. Then, the wizard will run each of the scripts that are installed in turn. The scripts will run in this order with these parameters:

cscript ects_setup_adam.vbs "LDAP Container Name"
cscript ects_setup_sql.vbs "SQL Server Name"
cscript ects_setup_sharepoint.vbs "ADAM Server Name" "LDAP Container Name" "SQL Server Name" "Internal URL" "Email Server" "Email Address"

A return code of zero from these scripts will indicate success. A return code of something else should be considered failure.

As the scripts run, they should write their stdout and stderr to the file "setup.log" in the current directory.

After the scripts run, the wizard should activate the two buttons on the bottom of the page. If the user clicks the See Results button, the "setup.log" file should be opened in Notepad. If the user clicks the Finish button, the setup wizard should close. The setup.log file should always be left.

Last edited Dec 28, 2007 at 6:52 PM by billcan, version 10

Comments

No comments yet.