(file) Return to README CVS log (file) (dir) Up to [Pegasus] / pegasus / cgi / Attic

Diff for /pegasus/cgi/Attic/README between version 1.4 and 1.5

version 1.4, 2001/02/26 10:39:08 version 1.5, 2004/03/16 08:14:26
Line 1 
Line 1 
  
 The Pegasus WEB Demonstration  
   
 $Log$  
 Revision 1.4  2001/02/26 10:39:08  karl  
 Correct text  
   
 Revision 1.3  2001/02/19 21:43:30  karl  
 namespace creation  
   
 $Author$  
   
 This directory contains the HTML CGI interface to Pegasus. It is used as part  
 of a demonstration of the Pegasus environment through a WEB browser  
  
   The Pegasus WEB Demonstration
   =============================
  
 It consists of two subdirectories  
   
 htdocs - Contains the HTML forms that form the basis of the demonstration. The  
 starting point for the demo is index.html  
  
 cgi - This directory contains the CGI executables.  This consists of the   ******************************************
 Pegasus CGIClient.exe program and supporting .DLLs.  We have placed them in  *  $Log$
 this directory despite the fact that they also exist in the PEGASUS_HOME/bin  *  Revision 1.5  2004/03/16 08:14:26  a.arora
 directory to limit exposure to other executables through CGI and to avoid  *  BUG#: 996
 having to have a permanent path the the $PEGASUS_HOME$/bin directory when  *  BRANCH: Trunk
 Apache is executing.  *  TITLE:  Webdemo (CGI) README updated.
   *  DESCRIPTION:  Updated README file (under pegasus\cgi directory).
   *  Added more information on how to setup Pegasus, Apache webserver and
   *  Pegasus Webdemo on Windows and Linux platforms.
   *
   *  Revision 1.5  2004/03/05 18:00:00  amit
   *  Update and add some more information
   *
   *  Revision 1.4  2001/02/26 10:39:08  karl
   *  Correct text
   *
   *  Revision 1.3  2001/02/19 21:43:30  karl
   *  namespace creation
   *
   *  $Author$
    ******************************************
   
   
   TABLE  OF  CONTENTS
   ===================
   
   1. Introduction
   2. How to setup Pegasus
   3. How to setup Apache webserver
   4. How to setup the Pegasus webdemo
   5. How to start the Pegasus webdemo
   
   
   1. Introduction
   == ============
    This readme talks about the steps to setup Pegasus, Apache webserver and the
    Pegasus webdemo on Windows and Linux platforms.
    The pegasus/cgi directory contains the HTML CGI interface to Pegasus. It is
    used as part of a demonstration of the Pegasus environment through a WEB
    browser.
   
    It consists of two** subdirectories:
    1. htdocs : This directory contains the HTML forms that form the basis of the
                demonstration. The starting point for the demo is index.html
   
    2. cgi-bin: This directory contains the CGI executables.  This consists of the
                Pegasus CGIClient.exe program and the supporting shared libraries.
                We have placed them in this directory despite the fact that they
                also exist in the PEGASUS_HOME/bin directory to limit exposure to
                other executables through CGI and to avoid a permanent path the
                $PEGASUS_HOME$/bin directory when Apache is executing.
     **There is a third directory "icons" which has the logo for "Open Groups".
  
 This demonstrations uses the HTML pages in htdocs as forms to generate CGI   This demonstration uses the HTML pages in htdocs as forms to generate CGI
 requests through the WEB Server.  These requests are serviced by the Pegasus requests through the WEB Server.  These requests are serviced by the Pegasus
 CGIClient.exe program (copied to cgi-bin with the Makefile in this directory).   CGIClient executable (copied to "cgi-bin" directory by the Makefile in this
 CGIClient, in turn converts the CGI forms input to Pegasus CIM Operations C++   directory). CGIClient, in turn converts the CGI forms input to Pegasus CIM
 calls. The Pegasus client library converts the calls to XML conformant with   Operations C++ calls. The Pegasus client library converts the calls to XML
 the DMTF CIM Operations over HTTP defintions and passes them to the Pegasus   conforming with the DMTF CIM Operations over HTTP specifications and passes
 CIM Server.   them to the Pegasus CIM Server.
   
 The CIM server responses in XML are converted back to C++ responses at the CGI   The CIM server responses in XML are interpreted by the CGI client (part of the
 client (part of the SDK code) and CGI client then make HTML pages out of the   SDK code) which then generates appropriate HTML responses and passes them back
 responses and passes them back to the WEB server.   to the WEB server.
   
 NOTE: Today, the Pegasus CIM server and the WEB server must be in the same   NOTE: By default, the CGIClient fixes the address and port of the CIM server as
 machine because CGIClient fixes the address and port of the CIM server as   ----   URL  : localhost
           Port : 5988
         URL - localhost         This can be changed by using "Define Host" option provided in the demo.
         Port - 8888  
    If you have already got Pegasus installed and configured, please jump to
    "3. How to setup Apache webserver".
   
   
   
   2. How to setup Pegasus
   == ===================
      A. On Windows platform
      -- -------------------
         Environment setup:
         ==================
         1. MS Visual Studio VC++ (tested on .NET  2003 (Version 7.1))
         2. A CVS client (say WinCVS 1.2 @ http://www.wincvs.org/download.html)
         3. GNU-make 3.79 for Windows (@ http://ftp.gnu.org/pub/gnu/make/)
            It should be compiled using NMake (NMake comes with VC++). For details
            on how to work with NMake, please refer to Readme file(s) which comes
            with the GNU-make source code.
            NOTE: The latest GNU-make for Windows can also be found at
            ----  "http://www.openpegasus.org/pb/index.tpl".
   
   
         Downloading Pegasus source tree:
         ================================
         There are two options for downloading Pegasus source code:
         1. Source from CVS:
            Download Pegasus sourcetree from www.pegasus.org (say in <Drive>:\<pegtop>).
            If using WinCVS to download, please use following settings:
             a>  Go to "Admin" menu option and select "Preferences"
             b>  In "General" tab, set CVSROOT  to ":pserver:anon@cvs.opengroup.org:
                 /cvs/MSB"
             c>  Set Authentication to '"passwd" file on CVS server' (this option is
                 there in "General" tab under Admin->Preferences).
             d>  In "WinCVS" tab (again, under Admin->Preferences) set  Home to
                 "<Drive>:\<pegtop>"
             e>  Go to "Admin" menu option and select "login"
             f>  Give "anon" as the password when prompted
             g>  Type "cvs checkout pegasus"  in the command line menu option under
                 "Admin".
         2. Source from www.openpegasus.org
            There is a snapshot of the latest release of Pegasus (eg. Pegasus
            2.3.1) on the pegasus home page http://www.openpegasus.org. The release
            is present under the Recent Documents (eg. "Release 2.3.1 - zip format
            (Windows)"). You may download the source from this link.
   
   
   
         Building Pegasus:
         =================
         1. Export following environment variables with suitable values.
            For an example:
             set  PEGASUS_ROOT=<Drive>:/<pegtop>/pegasus
             set  PEGASUS_HOME=<Drive>:/<pegtop>/pegasus
             set  PEGASUS_PLATFORM=WIN32_IX86_MSVC
            NOTE: a> You might have to use "\" in the path instead of "/".
            ----  b> These variables can be exported from the command window
                     manually each time you need to compile/run Pegasus, or you can
                     add them as "System Variables" in "My Computer" -(right
                     click)->"Properties"-->"Advanced"--> "Environment variables".
         2. Make sure that you execute "vsvars32.bat" ("vcvars32.bat" in Visual
            Studio 6.0) file (comes with Visual Studio) every time you open a new
            command prompt Window before issuing any compilation (NMake or make).
            Or else, you may also set PATH environment variable to point to Visual
            Studio paths.
         3. Compile MU.exe  (Unix-commands emulator for Windows) by issuing a make
            in the "<Drive>:\<pegtop>\pegasus\src\utils\mu" folder. Make sure that
            MU.exe exists in "<Drive>:\<pegtop>\pegasus\bin" folder. If not, copy
            it here.
         4. Add "<Drive>:\<pegtop>\pegasus\bin"  directory to the PATH environment
            variable.
   
         5. Issue following commands in pegasus home directory
            (<Drive>:\<pegtop>\pegasus)
             a>  make : (This comand may take 10 to 30 minutes depending on your
                         machine's configuration. If you don't see any error message
                         on the screen, the compilation would have gone fine. You
                         may still confirm this by checking for "cimserver.exe" file
                         in "<Drive>:\<pegtop>\bin" path. In case of any error, check
                         the error message on the screen and try to correct it. Some
                         of the common problems faced are:
                         i > "cl.exe : File Not Found." (This implies that you haven't
                                    executed step# 2).
                         ii> "<Drive>:<pegtop><some-path>  Not Found" (Try changing the
                                    slash in the path exported by PEGASUS_HOME. If using
                                    "/", replace it with "\" and vice-versa.
                         iii> For some other error, try to solve it, or else you may ask
                              your query on "pegasus-l@opengroup.org" mailing list
                              giving a detailed description of the problem (preferably
                              with some snapshots).
   
             b>  make repository : (This command may take 5 to 10 minutes, again
                         depending on your machine's configuration.
             c>  make tests (optional) : (This command may take roughly 5 minutes).
   
         Starting the CIM Server:
         ========================
         1. From Command prompt, type cimserver. This would start it (inorder to
            stop issue "cimserver -s" command). You can issue "cimprovider -l"
            command to verify that the cimserver is running fine. This command
            would tell you if the server is not running.
         2. There are various command line clients present in pegasus which
            provide/configure some of the basic features of the cimserver. Some of
            these are:
            cimconfig  - To list/change/setup configuration parameters for
                         cimserver.
            cimprovider- To list/load/unload/delete/ various providers.
            cimmof     - This command operates through the client interface and
                         acts as a remote compiler for MOF files against an active
                         CIM Repository.
            cimmofl    - This command is also used to compile the MOF files, but it
                         operates locally and directly against the repository.
            cimauth    - For configuring/ listing authorization support.
            cimuser    - For listing/adding/deleting/modifying users to access the
                         pegasus repository.
         3. There is a command line utility CLI for running individual cim
            operations.
            "CLI -h" to get help for the usage of this client.
   
   
   
      B. On Linux Platform
      -- -----------------
         Environment setup:
         ==================
         RedHat Linux 8.0 on IA32 with gcc-3.x
   
         Downloading Pegasus source tree:
         ================================
         There are 2 options for downloading pegasus sources on your local machine:
         1. Source from CVS.
            Commands for fetching the Pegasus source code using CVS are:
             a> Export the CVSROOT environment variable:
                "export CVSROOT=:pserver:anon@cvs.opengroup.org:/cvs/MSB"
             b> Run "cvs login" command. When it prompts for the password give
                "anon".
             c> Execute "cvs checkout pegasus".
            NOTE: Refer the note in "How To Setup the Pegasus WebDemo (on Linux)"
            ----  for selecting the path where Pegasus code should be put.
            Once the source tree has been checked out it can be updated regularly
            (as required) by running "cvs update -d".
         2. Source from www.openpegasus.org
            There is a snapshot of the latest release of Pegasus (eg. Pegasus
            2.3.1) on the pegasus home page http://www.openpegasus.org. The release
            is present under the Recent Documents (eg. "Release 2.3.1 - compressed
            tar format (Linux)"). You may download the source from this link.
   
   
         Setting up Pegasus
         ==================
         1. Open .bash_profile in your home directory  ~<username>/.bash_profile
   
         2. Write the following statements into .bash_profile in order to setup
            Pegasus variables (replace <pegtop> with the path where you want to put
            Pegasus source tree):
             PEGASUS_HOME=/<pegtop>/pegasus/
             PEGASUS_ROOT=/<pegtop>/pegasus/
             PEGASUS_PLATFORM=LINUX_IX86_GNU
             export PEGASUS_HOME PEGASUS_ROOT PEGASUS_PLATFORM
             export PATH=$PATH:/<pegtop>/pegasus/bin
   
            NOTE: You may keep the PEGASUS_HOME and PEGASUS_ROOT as different
            ----  paths. This would allow you to install the binaries, libraries
                  and the repository in a different path and not in the same path
                  as the Pegasus source code. If they are different, please make
                  sure that the paths exist.
         3. Logout and Re-login to your account and change directory to
            pegasus/(the one we created in the step above).
            [The logout and login is to make sure that your .bash_profile is
            executed so that the PEGASUS_XXXX variables are set to their respective
            values. You may also execute .bash_profile manually
            (". ~/.bash_profile") thus avoiding the logout/login process.]
         4. Check your system if gcc-3.x is installed. Run "g++ --version" to check
            the version. If you are using Redhat linux then it would show something
            like this: "g++ (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) Copyright
            (C) 2002 Free Software Foundation, Inc. This is free software; see the
            source for copying conditions. There is NO warranty; not even for
            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
   
         Building Pegasus
         ================
         1. Change directory to the one in which pegasus sources are present and
            execute "make" OR "make 2>&1 | tee make.log"
            [The command "make 2>&1 | tee make.log" is just to keep a build log for
            your reference, and is not mandatory. This log may be helpful in
            detecting problems that might arise during build.
         2. Run "make repository" OR "make repository 2>&1 | tee make-
            repository.log". This will create a directory repository/ under the
            PEGASUS_ROOT directory, which contains the classes and instances for
            all namespaces present in the project. All the MOFs are compiled during
            this "make repository", and the XMLs generated are put in the
            "repository" directory.
         3. To execute all the basic tests present in Pegasus sources, execute
            "make tests" and execute "make -f TestMakefile tests" to run all the
            tests specified in the TestMakefile.
   
   
         Starting the CIM Server:
         ========================
         1. To start the pegasus server just run: "cimserver"
            You may use "cimprovider -l" command to verify if the cimserver is
            running or not.
            To stop: "cimserver -s".
            [Remember: To stop the cimserver you need to have root access. If you
            started the cimserver from a non-user account you will have to
            explicitly kill it by issuing "killall cimserver"]
         2. There are various clients present in pegasus which provide/configure
            some of the basic features of the cimserver. Some of these commands
            are:
            cimconfig  - To list/change/setup configuration parameters for
                         cimserver.
            cimprovider- To list/load/unload/delete/ various providers.
            cimmof     - This command operates through the client interface and
                         acts as a remote compiler for MOF files against an active
                         CIM Repository.
            cimmofl    - This command is also used to compile the MOF files, but it
                         operates.
                         locally and directly against the repository.
            cimauth    - For configuring/ listing authorization support.
            cimuser    - For listing/adding/deleting/modifying users to access the
                         pegasus repository.
         3. There is a command line utility CLI for running individual cim
            operations.  Execute "CLI ?" to get a list of operations supported by
            pegasus currently.
            "CLI -h" to get help for the usage of this client.
   
   
   3. How to setup Apache webserver
   == =============================
      A. On Windows platform
      -- -------------------
         Download and install Apache webserver (Httpd) (binary version) for Windows
         from www.apache.org (http://httpd.apache.org/download.cgi).
   
      B. On Linux platform
      -- -----------------
         Download the Apache webserver (Httpd) code for Linux from www.apache.org
         (http://httpd.apache.org/download.cgi).
         Follow the instructions in the README file to build and install Httpd.
   
   
   
   4. How to setup the Pegasus webdemo
   == ================================
      A. On Windows platform
      -- -------------------
         Modify the httpd.conf (this file can be found in "<apache-install-dir>\conf"
         folder) Apache configuration file with the following Entries (do not forget
         to replace <pegtop> with the path where you have put the Pegasus source code):
   #PEGASUS
   ScriptAlias /pegasus/cgi-bin/CGIClient "<Drive>:/<pegtop>/pegasus/cgi/cgi-bin/CGIClient.exe"
   ScriptAlias /pegasus/cgi-bin "<Drive>:/<pegtop>/pegasus/cgi/cgi-bin"
   Alias /pegasus/icons "<Drive>:/<pegtop>/pegasus/cgi/icons"
   Alias /pegasus "<Drive>:/<pegtop>/pegasus/cgi/htdocs"
  
 This will be modified in the future.  <Directory "<Drive>:/<pegtop>/pegasus/cgi/cgi-bin">
   
 To use this demonstration, you must  add definitions to your web server. For  
 example, in Apache, the following defintions in httpd.conf would word if the  
 %PEGASUS_ROOT% was D:/tog/pegasus.  
   
     ScriptAlias /pegasus/cgi-bin "D:/tog/pegasus/cgi/cgi-bin"  
     Alias /pegasus/icons "D:/tog/pegasus/cgi/icons"  
     Alias /pegasus "D:/tog/pegasus/cgi/htdocs"  
   
     <Directory "D:/tog/pegasus/cgi/cgi-bin">  
     AllowOverride None     AllowOverride None
     Options ExecCGI     Options ExecCGI
     allow from all     allow from all
     </Directory>     </Directory>
  
 To use the CGI interface, type "make" in this directory. Next run the  
 Server like this:  
   
     C:\> Server <pegasus-run-directory>  
   
     where <pegasus-run-directory> is required only if PEGASUS_HOME environment  
     variable is not defined.  
  
 Then go to your browser and type in this URL:     B. On Linux platform
      -- -----------------
         Modify the httpd.conf (it can be found in "<Apache-install-path>/conf"
         directory. The default value of <Apache-install-path> is "/usr/local/apache")
         Apache configuration file with the following Entries (do not forget to replace
         <pegtop> with the path where you have put the Pegasus source code) :
   #PEGASUS
   ScriptAlias /pegasus/cgi-bin/CGIClient "/<pegtop>/pegasus/cgi/cgi-bin/CGIClient"
   ScriptAlias /pegasus/cgi-bin "/<pegtop>/pegasus/cgi/cgi-bin"
   Alias /pegasus/icons "/<pegtop>/pegasus/cgi/icons"
   Alias /pegasus "/<pegtop>/pegasus/cgi/htdocs"
  
     http://<yourhost>/pegasus  <Directory "/<pegtop>/pegasus/cgi/cgi-bin">
   AllowOverride None
     Thus if the browser is on the same machine, enter localhost/pegasus  Options ExecCGI
   allow from all
   </Directory>
  
 This demonstration can be used either locally or from a remote browser        NOTE: Please make sure that each directory in the path "/<pegtop>/pegasus
         ----  /cgi/cgi-bin/" has execute permission for "nobody" user (Apache
               httpd uses this userid to access files on the server, when a client
               request comes in). This can be done by giving "x" permission in
               "others" for all the directories.
               Giving execute permission to all the directories may be a security
               concern for some users when they have the Pegasus source tree in
               their home directories. In this case, there are two options:
                1> Put the Pegasus source tree in some other path (eg. "/pegasus"),
                   and not in home directory.
                2> Copy the entire cgi directory tree from "/<pegtop>/pegasus/cgi"
                   to put it in some path where you can give execute permission to
                   "others".
   
   
   5. How to start the Pegasus webdemo
   == ================================
        A> Give a "make" in <pegtop>/pegasus/cgi to get the necessary executables
           copied (CGIClient program, etc) to cgi-bin.
        B> Open a web-browser from a client machine and put the following URL in it:
           "http://<host-addr>/pegasus"
           where <host-addr> can be the "localhost" (if the client machine is same
           as the server), or a valid IP address of the server (machine hosting
           the Pegasus webdemo and the Apache server).
        C> You would see the index.html (under pegasus/cgi/htdocs path) loaded in the
           browser. Follow the instructions mentioned and have fun !
  
  


Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2