(file) Return to readme.html CVS log (file) (dir) Up to [Pegasus] / pegasus

   1 karl  1.1 <html>
   2           
   3           <head>
   4           <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
   5           <meta name="ProgId" content="FrontPage.Editor.Document">
   6           <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
   7           <title>OpenPegasus</title>
   8           </head>
   9           
  10           <body>
  11           
  12           <p align="center"><b><font size="4">Pegasus Enhancement Proposal (PEP)</font></b></p>
  13           <p style="margin-top: 0; margin-bottom: 0"><b>PEP #:</b> 103</p>
  14           <p style="margin-top: 0; margin-bottom: 0"><b>Title: </b>OpenPegasus Version 2.3 
  15           Release Readme file</p>
  16 karl  1.2.8.4 <p style="margin-top: 0; margin-bottom: 0"><b>Version: </b>1.2</p>
  17 karl  1.1     <p style="margin-top: 0; margin-bottom: 0"><b>Created:</b> 12 November 2003</p>
  18 konrad.r 1.2.8.2 <p style="margin-top: 0; margin-bottom: 0"><b>Authors: </b>Karl Schopmeyer, Konrad Rzeszutek</p>
  19 karl     1.1     <p style="margin-top: 0; margin-bottom: 0"><b>Status:&nbsp; </b>draft</p>
  20                  <p style="margin-top: 0; margin-bottom: 0"><b>Version History:</b></p>
  21                  <table border="1" cellspacing="1" bordercolordark="#666666"
  22                      bordercolorlight="#CCCCCC" width=100%
  23                      style='font-size=10.0pt;font-family:Arial'>
  24                    <tr>
  25                      <th bgcolor="#CAE6CA">Version</th>
  26                      <th bgcolor="#CAE6CA">Date</th>
  27                      <th bgcolor="#CAE6CA">Author</th>
  28                      <th bgcolor="#CAE6CA">Change Description</th>
  29                    </tr>
  30                    <tr>
  31                      <td align="center">1.0</td>
  32 karl     1.2         <td align="center">12 November 2003</td>
  33 karl     1.1         <td align="center">Karl Schopmeyer</td>
  34                      <td>Update from 2.2 Release notes. Converted to HTML</td>
  35                    </tr>
  36                    <tr>
  37 konrad.r 1.2.8.2     <td align="center">1.1</td>
  38                      <td align="center">March 10 2004</td>
  39                      <td align="center">Konrad Rzeszutek</td>
  40                      <td>Added sections describing SSL and PAM configuration</td>
  41                    </tr>
  42                    <tr>
  43 karl     1.2.8.4     <td align="center">1.2</td>
  44                      <td align="center">April 2004</td>
  45                      <td align="center">Karl Schopmeyer</td>
  46                      <td>Update for Pegasus 2.3.2</td>
  47 karl     1.1       </tr>
  48                   </table>
  49                  <hr>
  50                  <p><b>Abstract:</b>&nbsp; Installation, build, operation information on the 
  51                  Pegasus Platform Version 2.3 Release. Note that if this readme conflicts with 
  52 karl     1.2     the documentation in the release notes or interface definition documents for a 
  53 karl     1.1     particular release, those documents should be considered authorative. This is a 
  54                  simplified overview to act as an introduction to Pegasus.</p>
  55                  <hr>
  56                  
  57                  <p align="Center"><b><font size="5">OpenPegasus - A Manageability Services Broker 
  58                  for the DMTF CIM/WBEM Standards
  59                  </font>
  60                  </b>
  61                  
  62                  <p align="left">
  63                  <b>Tagline:</b> OpenPegasus is an object manager for DMTF CIM objects written in C++
  64                  and supported by The Open Group </p>
  65                  
  66                  <p align="left">
  67                  
  68 karl     1.2.8.4 <b>STATUS:</b> Revised April 2004 for&nbsp; Pegasus release version 2.3.2
  69 karl     1.1     &nbsp;</p>
  70                  
  71                  <p align="center">
  72                  <b><font size="4">Table of Contents</font></b><p align="left" style="margin-top: 0; margin-bottom: 0">
  73 karl     1.2.8.4 <a href="#Overview">Overview</a>
  74 karl     1.1     
  75                  <p align="left" style="margin-top: 0; margin-bottom: 0">
  76                  <a href="#Availability of Pegasus">Availability of Pegasus</a><p align="left" style="margin-top: 0; margin-bottom: 0">
  77                  <a href="#Pegasus Major Components">Pegasus Major Components</a><p align="left" style="margin-top: 0; margin-bottom: 0">
  78                  <a href="#Pegasus Supported Platforms">Pegasus Supported Platforms</a><p align="left" style="margin-top: 0; margin-bottom: 0">
  79                  <a href="#Pegasus Dependencies">Pegasus Dependencies </a>
  80                  
  81                  <p align="left" style="margin-top: 0; margin-bottom: 0">
  82                  <a href="#The Pegasus Directory Structure">The Pegasus Directory Structure</a>
  83                  
  84                  <p align="left" style="margin-top: 0; margin-bottom: 0">
  85                  <a href="#Pegasus Installation">Installation</a>
  86                  
  87                  <p align="left" style="margin-top: 0; margin-bottom: 0">
  88                  <a href="#Building Pegasus">Building Pegasus </a>
  89                  
  90                  <p align="left" style="margin-top: 0; margin-bottom: 0">
  91                  <a href="#Populate the Repository">Populate the Repository</a>
  92                  
  93                  <p align="left" style="margin-top: 0; margin-bottom: 0">
  94                  <a href="#Registering Providers in the Pegasus Environment">Registering 
  95 karl     1.1     Providers</a><p align="left" style="margin-top: 0; margin-bottom: 0">
  96                  <a href="#The MU Utility">The MU Utility</a>
  97                  
  98                  
  99                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 100                  <a href="#Notes about Building Pegasus on Linux">Notes about Building Pegasus on Linux</a>
 101                  
 102                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 103                  <a href="#Notes about Building Pegasus with SSL">Notes on building Pegasus with SSL</a>
 104                  
 105                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 106                  <a href="#Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++">Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++</a><p align="left" style="margin-top: 0; margin-bottom: 0">
 107                  <a href="#Installing the Pegasus HTML Test Client">Installing the Pegasus HTML Test Client
 108                  </a>
 109                  
 110                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 111                  <a href="#Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a>
 112                  
 113                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 114 karl     1.2.8.4 &nbsp;&nbsp;&nbsp; <a href="#Client Development">Client Development</a><p align="left" style="margin-top: 0; margin-bottom: 0">
 115                  &nbsp;&nbsp;&nbsp; <a href="#Provider Development">Provider Development</a><p align="left" style="margin-top: 0; margin-bottom: 0">
 116 karl     1.1     <a href="#Commands">Commands</a>
 117                  
 118                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 119 konrad.r 1.2.8.3 <a href="#Creating SSL certifications">Creating SSL certifications</a>
 120 karl     1.1     
 121                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 122 konrad.r 1.2.8.3 <a href="#Configuring SSL">Configuring Pegasus to use SSL</a>
 123 konrad.r 1.2.8.1 
 124                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 125 konrad.r 1.2.8.3 <a href="#Configuring PAM">Configuring Pegasus to use PAM</a>
 126 konrad.r 1.2.8.2 
 127                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 128 karl     1.1     <a href="#Testing with ICU enabled">Testing with ICU enabled </a>
 129                  
 130                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 131                  <a href="#Pegasus Documentation">Documentation</a>
 132                  
 133                  <p align="left" style="margin-top: 0; margin-bottom: 0">
 134                  <a href="#Participate!">Participate</a>
 135                  
 136                  <h1><a name="Overview">Overview</a> </h1>
 137                  
 138 karl     1.2     <p><b>OpenPegasus (also referred to as Pegasus):</b>
 139 karl     1.1     
 140 karl     1.2.8.4 Pegasus is an open-source CIM Server for based on the DMTF CIM/WBEM 
 141                  specifications. It is written
 142 karl     1.2     in C++ and includes the Object manager (CIMOM), a set of defined interfaces, an 
 143                  implemenation of the CIMOperations over HTTP operations and their cimxml HTTP 
 144                  encodings, and 
 145 karl     1.1     Interface libraries
 146                  for both client and providers. It is maintained
 147                  consistent with the DMTF CIM and WBEM specifications except for&nbsp; exceptions
 148                  noted in the documentation.
 149                  <P>
 150 karl     1.2     Pegasus is open source and is covered under the MIT open-source license.<P>
 151 karl     1.1     Pegasus is being developed and maintained under the auspices of The Open
 152                  Group. Pegasus is maintained under the license defined in the doc directory
 153                  (LICENSE) of this release. This licensing is intended to support as wide a
 154                  distribution as possible with minimal demands on the users.
 155                  <P>
 156                  More information on this project, access to the CVS, and documentation on
 157                  Pegasus are available from the OpenGroup WEB site.
 158                  <P>
 159                  &nbsp;&nbsp;&nbsp; <a href="http://www.opengroup.org">http://www.openpegaus.org</a><p>
 160 karl     1.2     There are a number of separate documents representing the status and each 
 161                  release of Pegasus
 162 karl     1.1     <ul>
 163 karl     1.2     <li>What's new for this release - See the PEPs (Pegasus Enhancement Procedures) 
 164                  release notes on the Pegasus web site and duplicated in the source top level 
 165 karl     1.2.8.4 directory.<li>What's Broken and what was fixed - BUGS - See the ReleaseNotes for 
 166                  this release in the root directory and the web site as a Pegasus PEP and review 
 167                  the bugs in the Pegasus bug list maintained in bugzilla on the Pegasus web site.</ul>
 168 karl     1.1     
 169                  
 170 karl     1.2.8.4 <p>The release notes for each release are available on the WEB site as Pegasus PEP documents and 
 171                  in the CVS top level directory for each release. See the release notes PEP&nbsp; 
 172                  for a definition of what is new or different for each Pegasus release</p>
 173 karl     1.1     <table border="1" cellspacing="1" width="31%" id="AutoNumber3">
 174                    <tr>
 175 karl     1.2         <td width="42%"><b>Release</b></td>
 176                      <td width="58%"><b>Release Notes PEP</b></td>
 177 karl     1.1       </tr>
 178                    <tr>
 179                      <td width="42%">2.0</td>
 180                      <td width="58%">None</td>
 181                    </tr>
 182                    <tr>
 183                      <td width="42%">2.1</td>
 184                      <td width="58%">None</td>
 185                    </tr>
 186                    <tr>
 187                      <td width="42%">2.2</td>
 188                      <td width="58%">PEP 57</td>
 189                    </tr>
 190                    <tr>
 191                      <td width="42%">2.3</td>
 192                      <td width="58%">PEP 98</td>
 193                    </tr>
 194 karl     1.2.8.4   <tr>
 195                      <td width="42%">2.3.2</td>
 196                      <td width="58%">PEP 150</td>
 197                    </tr>
 198 karl     1.1     </table>
 199                  
 200                  
 201                  <h1><a name="Availability of Pegasus">Availability of Pegasus</a></h1>
 202                  
 203                  <p>Pegasus is distributed as open source under the MIT open-source license. The distribution is available via 
 204 karl     1.2     CVS and snapshot images in tar and zip file formats on the web site.
 205 karl     1.1     The source code from CVS can be found at the following Open Group CVS server;
 206                  <p>
 207                  <font face="Courier New">&nbsp;&nbsp;&nbsp;
 208                  cvs.opengroup.org:/cvs/MSB </font> 
 209                  <p>
 210                  using the password authenticating server option (pserve).
 211                  <p>
 212                  Anonymous access for read is with the name and password &quot;anon&quot; as follows:
 213                  <blockquote>
 214                  <p style="margin-top: 0; margin-bottom: 0">
 215                  <font face="Courier New">%export CVSROOT=:pserver:anon@cvs.opengroup.org:/cvs/MSB
 216                  </font>
 217                  <p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">%cvs login
 218                  </font>
 219                  </blockquote>
 220                  <p>
 221                  When requested, enter the password &quot;anon&quot;.
 222                  The source tree is in the directory pegasus. To check out the complete Pegasus
 223                  source tree just type:
 224                  <p>
 225                  <font face="Courier New">&nbsp;&nbsp;&nbsp;
 226 karl     1.1     cvs co pegasus </font>
 227                  <p>
 228                  A Pegasus directory will be created under the current directory and populated
 229                  with the complete source tree and documentation. To get the latest updates 
 230                  after a checkout just type this from Pegasus root:
 231                  <p>
 232                  <font face="Courier New">&nbsp;&nbsp;&nbsp;
 233                  cvs update -d </font>
 234                  
 235                  <p>
 236                  Active contributors to Pegasus have write access to the CVS repository.
 237                  If you are interested in contributing back to the Pegasus project, 
 238                  (i.e. write (checkin) access to CVS) please request access from either
 239                  Martin Kirk (m.kirk@opengroup.org) or Karl Schopmeyer 
 240                  <a href="mailto:(k.schopmeyer@opengroup.org">(k.schopmeyer@opengroup.org</a>).
 241                  
 242                  <h1>
 243                  <a name="Pegasus Major Components">Pegasus Major Components</a></h1>
 244                  
 245                  <p>The major components of Pegasus are:
 246                  <ul>
 247 karl     1.2.8.4   <li><b>Pegasus Server</b> - WBEM/CIM Server with interfaces for providers and clients. 
 248                    The Pegasus server handles DMTF CIM Operations, DMTF CIM Indications in 
 249                    conjunction with providers.&nbsp; It provides overall management of the server 
 250                    iteself, the repository and providers that have been registered with the 
 251                    server.</li>
 252 karl     1.1       <li><b>Pegasus Repositories</b> - Today Pegasus provides a defined class repository
 253                  interface and a simple file based class repository. It also includes
 254                  an instance repository. Note that these repository were created for
 255 karl     1.2.8.4 functionality, not efficiency. It is expected that they will be replaced
 256                  with other implementations of the repository function as the need arises.
 257 karl     1.1       </li>
 258                    <li><b>Pegasus Client Library</b> - Tools for building Pegasus clients based on the Pegasus
 259                  C++ interfaces and using the WBEM HTTP/XML protocols or directly
 260                  interfacing with Pegasus.
 261                    </li>
 262                    <li><b>Pegasus Test Clients</b> - Simple test clients being developed as part of the
 263 karl     1.2     Pegasus development process. These can be seen in the src/Clients directory and 
 264                    its subdirectories 
 265 karl     1.1       </li>
 266                    <li><b>Pegasus HTML Test Client</b> - To aid in testing we created a test client for
 267                  Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and
 268                  HTML to allow the entry of Pegasus operations from a WEB browser as forms
 269                  and the receipt of the response as WEB pages. This has proven useful as a
 270                  test tool and can be used for a wide variety of demonstrations.
 271                    </li>
 272 karl     1.2.8.4   <li>Pegasus Provider Managers - Pegasus incorporates the concept of pluggable 
 273                    provider managers allowing multiple provider managers with different provider 
 274                    interfaces.&nbsp; Today Pegasus includes the C++ provider interfaces and the 
 275                    CMPI C provider interface.</li>
 276                    <li><b>Pegasus C++ Provider&nbsp; Interface Library</b> - Interfaces for building Pegasus providers using the Pegasus
 277 karl     1.1     C++ interfaces.
 278                    </li>
 279 karl     1.2.8.4   <li><b>Pegasus CMPI Provider Interface Library</b> - Interfaces for building 
 280                    Pegasus providers using the CMPI defined C interfaces.
 281 karl     1.1       </li>
 282 karl     1.2.8.4   <li><b>Pegasus Providers</b> - Providers to illustrate the use of Pegasus services 
 283                  including providers for test and demonstration.&nbsp; In addition to sample and 
 284                    test providers, there are a number of operational providers that manage 
 285                    particular DMTF defined classes such as the CIM_ComputerSystem class.</li>
 286                    <li><b>Pegasus Control Providers</b> - Special providers that require direct 
 287                    access back to the server for information -- these are considered Pegasus 
 288                    internal providers.&nbsp; There are several of this type of provider defined 
 289                    including configuration information, the DMTF interop classes ( Including 
 290                    namespace management).&nbsp;  
 291 karl     1.1       </li>
 292 karl     1.2.8.4   <li><b>Pegasus MOF Compiler </b>- Pegasus includes a compiler (cimmof) that is 
 293                    used to install MOF into Pegasus. This compiler operates as a Pegasus client 
 294                    using the running CIM Server to install MOF definitions. This means that MOF 
 295                    input may be delivered directly to the repository or to providers for classes 
 296                    which are registered for providers. There is also a standalone compiler (cimmofl) 
 297                    that writes directly to the repository. <font color="#FF0000">WARNING:</font> 
 298                    The cimmofl compiler should be used with caution because it puts all objects 
 299                    defined in the MOF directly into the repository bypassing any defined provider 
 300                    processing. There are several <br>
 301                    potential problems with using cimmofl including 1) bypasses any provider 
 302                    processing to put information directly into the <br>
 303                    repository, 2) can cause repository corruption if it is executed simultaneous 
 304                    with the CIM Server using the repository 3) may <br>
 305                    put information into repository that is not available until the CIM Server is 
 306                    stopped and restarted.</li>
 307 karl     1.1       </ul>
 308                  
 309 karl     1.2.8.4 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 310                  We strongly encourage the use of cimmof instead of cimmofl, particularly in 
 311                  production.</p>
 312                  
 313 karl     1.1     <h1>
 314                  <a name="Pegasus Supported Platforms">Pegasus Supported Platforms</a></h1>
 315                  
 316                  <p>
 317                  Pegasus is regularly tested against a variety of platforms by the development 
 318                  group.&nbsp; The set of platforms and exact set of compilers for any given 
 319                  release is documented in the Release notes for that release (see the CVS source 
 320                  tree root directory or the Pegasus PEP defining the ReleaseNotes for any 
 321                  particular release).</p>
 322                  
 323                  <p>
 324                  Generally Pegasus is supported on the following Platforms and Compilers.</p>
 325                  <table border="1" cellspacing="1" id="AutoNumber2" width="728">
 326                    <tr>
 327                      <td width="169" bgcolor="#99FF99"><b>Platform and OS</b></td>
 328                      <td width="556" bgcolor="#99FF99"><b>Compilers</b></td>
 329                    </tr>
 330                    <tr>
 331                      <td width="169">AIX</td>
 332                      <td width="556">VisualAge C++ Version</td>
 333                    </tr>
 334 karl     1.1       <tr>
 335                      <td width="169">HP-UX</td>
 336                      <td width="556">HP aC++ </td>
 337                    </tr>
 338                    <tr>
 339                      <td width="169">Linux Itanium</td>
 340                      <td width="556">gcc</td>
 341                    </tr>
 342                    <tr>
 343                      <td width="169">Linux IA-32</td>
 344                      <td width="556">gcc (versions 2.9x and 3.xx)</td>
 345                    </tr>
 346                    <tr>
 347                      <td width="169">Windows 2000</td>
 348                      <td width="556">Microsoft Visual C++ Ver 6 and Microsoft .Net compiler 
 349                      Version <font color="#FF0000">7</font></td>
 350                    </tr>
 351                    <tr>
 352                      <td width="169">Windows XP</td>
 353                      <td width="556">Microsoft Visual C++ Ver. 6 and Microsoft .Net compiler 
 354                      Version <font color="#FF0000">7</font></td>
 355 karl     1.1       </tr>
 356                    </table>
 357                  
 358                  <h1>
 359                  <a name="Pegasus Dependencies">Pegasus Dependencies </a></h1>
 360                  
 361                  <p>
 362                  We have worked to minimize the dependence of Pegasus on other software
 363 karl     1.2.8.4 packages and tools. Currently the Pegasus build process has the following dependencies:
 364 karl     1.1     <p>
 365                  <b>1. GNUMAKE</b> - To simplify the building of Pegasus across multiple platforms we
 366                  
 367                  have standardized on a set of build tools including: GNUMAKE. We are using 
 368                  GNUMAKE 3.79.1 successfully both in Windows and Linux environments.
 369                  <p>
 370                  GNUMAKE is available from :<p>
 371                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.gnu.org">http://www.gnu.org</a>
 372                  
 373                  <p>
 374                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOTE: A set of the required tools for 
 375                  windows platforms is available on the openpegasus web site.<p>
 376                  <b>2. MU.EXE </b>- To minimize the difference between Linux and Windows for GNUMAKE,
 377                  we have created a utility called MU.exe. This utility is required for 
 378                  Pegasus make with ONLY Windows environment. It is provided as an alternative to
 379                  requiring a number of UNIX utilities (SH, RM, etc.) on the windows platform
 380                  and effectively provides the functions of these utilities that GNUMAKE 
 381                  needs. MU is not required on UNIX or LINUX platforms.
 382                  <p>
 383                  NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory.
 384                  You must build it separately. MU source code is part of the distribution
 385 karl     1.1     in the directory src/utils/MU with its own make file. You must compile MU
 386                  before you initiate the Pegausu make.
 387                  <p>
 388                  NOTE: A copy of the binary is made available as a zip file on the Pegasus
 389                  WEB site.
 390                  <p>
 391                  Again, MU is used ONLY if you are using Windows.
 392                  
 393                  <p>
 394                  <b>3. FLEX and BISON</b> - These tools were used to develop the MOF compiler and WQL
 395                  parser. Anybody intending to recompile the compiler or parser from scratch 
 396                  will be required to have these tools. They are only required if changes need 
 397                  to be made to the files for parsing and compiling.
 398                  <p><b>4. DOC++ </b>- The Pegasus documentation is taken from a combination of text files
 399                  and the Pegasus header files themselves. This documentation is formatted 
 400                  with DOC++ and GAWK. These tools are required if the documentation is to 
 401                  be recreated but we expect that only the core team will be recreating 
 402                  documentation.
 403                  
 404                  <p><b>5. ICU Internationalization libraries</b> - These libraries are used as 
 405                  the basis for message catalogs for message internationalization. See the ICU 
 406 karl     1.1     website (http://oss.software.ibm.com/icu/) for more information on these 
 407                  libraries<p>6. <b>OpenSSL </b>- If it is intended to use SSL on the 
 408                  communication protocol, the OpenSSL libraries are required.<h1>
 409                  <a name="The Pegasus Directory Structure">The Pegasus Directory Structure</a></h1>
 410                  <p>
 411                  Pegasus is distributed as a complete source directory structure that should be
 412                  installed either from one of the snapshots or from CVS.
 413                  <p>
 414                  This structure is generally as follows:<p>
 415                  <font face="Courier New">Pegasus Source Structure</font><p>
 416                  <font face="Courier New">Pegasus Root directory (PEGASUS_ROOT environment 
 417                  variable)</font><ul>
 418                    <li><font face="Courier New"><b>cgi</b> Source for the Pegasus WEB Based Test client
 419                    </font>
 420                    <ul>
 421                      <li><font face="Courier New">cgi-bin CGI Directories for WEB demonstration.
 422                  This directory is normally empty but can
 423                  be populated from the runtime with the make
 424                  from cgi.
 425                  </font></li>
 426                      <li><font face="Courier New">htdocs HTML Pages for Pegasus WEB demonstration
 427 karl     1.1         </font></li>
 428                      </ul>
 429                      </li>
 430                      <li><font face="Courier New"><b>doc</b> Miscellaneous Pegasus Documents.
 431                      </font>
 432                      <ul>
 433                        <li><font face="Courier New">apidoc - Source for the public api 
 434                        documentation.</font></li>
 435                        <li><font face="Courier New">DevManual Source and build files for developers' manual
 436                  mak General make files (used by other makes)</font></li>
 437                        </ul>
 438                        </li>
 439                        <li><font face="Courier New"><b>mak</b> - Common make files for Pegasus 
 440                        compilation</font></li>
 441                    <li><font face="Courier New"><b>Dummy</b> -</font></li>
 442                    <li><font face="Courier New"><b>InterfaceArchive</b> -</font></li>
 443                    <li><font face="Courier New"><b>rpm</b> - files for rpm installation for Linux</font></li>
 444                    <li><font face="Courier New"><b>Schemas</b> - Schemas used in the installation 
 445                    of Pegasus. This includes currently released versions of the DMTF schemas in 
 446                    subdirectories (ex. CIM27) and Pegasus local Schemas (ex. </font></li>
 447                        <li><font face="Courier New"><b>src</b> All Pegasus Source Files
 448 karl     1.1     </font>
 449                        <ul>
 450                          <li><font face="Courier New"><b>ACEExample</b> Test directrory with examples of the use of ACE (obsolete). 
 451                          </font></li>
 452                          <li><font face="Courier New"><b>Clients</b> Source for various test 
 453                          clients and demonstration clients.</font></li>
 454                          <li><font face="Courier New"><b>CGICLIENT</b> Pegasus test client that uses a WEB browser
 455                  JAVA Java Client support modules
 456                  </font></li>
 457                          <li><font face="Courier New"><b>Pegasus</b> - Core pegasus modules.
 458                          </font>
 459                          <ul>
 460                            <li><font face="Courier New"><b>Client</b> Pegasus Client API Tests 
 461                            depends tests </font></li>
 462                            <li><font face="Courier New"><b>Common</b> Pegasus Common Functions (C++ source and headers
 463                  tests Test programs for the common functions</font></li>
 464                            <li><font face="Courier New"><b>Compiler</b> Pegasus MOF compiler
 465                  </font></li>
 466                            <li><font face="Courier New"><b>Config</b> Pegasus Configuration 
 467                            functions</font></li>
 468 karl     1.2               <li><font face="Courier New"><b>Consumer</b> Indication Consumer class 
 469                            header</font></li>
 470 karl     1.1               <li><font face="Courier New"><b>ControlProviders</b> Implementation of Pegasus internal providers
 471                            </font></li>
 472 karl     1.2               <li><font face="Courier New"><b>ExportClient</b> Client connect code 
 473                            for export of indications</font></li>
 474                            <li><font face="Courier New"><b>ExportServer</b> Server code for 
 475                            import of indications</font></li>
 476                            <li><font face="Courier New"><b>Handler</b> Indication handlers. Today 
 477                            this includes cimxml, SNMP and email handlers</font></li>
 478                            <li><font face="Courier New"><b>HandlerService</b> Common code for 
 479                            indication handler service</font></li>
 480                            <li><font face="Courier New"><b>IndicationService</b> Common service 
 481                            functions for indication subscription processing</font></li>
 482                            <li><font face="Courier New"><b>Listener</b> Common code that allows 
 483                            CIM Listeners to be created and connected.</font></li>
 484 karl     1.1               <li><font face="Courier New"><b>Protocol</b> Pegasus Client HTTP/XML Protocol Modules
 485                  depends </font></li>
 486                            <li><font face="Courier New"><b>Provider</b> Pegasus Provider interface functions
 487                            </font></li>
 488                            <li><font face="Courier New"><b>ProviderManager</b> Provider Manager service that manages providers
 489                            </font></li>
 490                            <li><font face="Courier New"><b>ProviderManager2</b> Pluggable Provider Manager service. 
 491                            Today this is not enabled by default It will become the Pegasus 
 492                            standard provider manager at some time in the future but for now, see 
 493                            the release notes if you want to enable it.</font></li>
 494                            <li><font face="Courier New"><b>Repository</b> Pegasus Repository 
 495                            Interfaces and Simple Repository tests </font>
 496                            <ul>
 497                              <li><font face="Courier New">Tests for Repository Functions </font>
 498                              </li>
 499                              </ul>
 500                            </li>
 501 karl     1.2               <li><font face="Courier New"><b>Security</b> Authentication and user 
 502                            support functions.</font></li>
 503 karl     1.1               <li><font face="Courier New"><b>Server</b> Pegasus Server Modules
 504                            </font></li>
 505 karl     1.2               <li><font face="Courier New"><b>WQL</b> the WQL query language 
 506                            interpreter.</font></li>
 507 karl     1.1               </ul>
 508                            </li>
 509                            </ul>
 510                            </li>
 511                            <li><font face="Courier New"><b>Providers</b> Pegasus test and required providers
 512                            </font>
 513                            <ul>
 514 karl     1.2                 <li><font face="Courier New"><b>generic</b> A number of 
 515                              cross-platform providers
 516 karl     1.1                 </font></li>
 517 karl     1.2                 <li><font face="Courier New">IndicationConsumer - Provider that 
 518                              consumes indications</font></li>
 519                              <li><font face="Courier New"><b>Linux</b> - A number of linux 
 520                              providers</font></li>
 521 karl     1.1                 <li><font face="Courier New"><b>ManagedSystem</b> Providers 
 522                              associated with managing the Pegasus System</font></li>
 523 karl     1.2                 <li><font face="Courier New"><b>slp</b> -&nbsp; Provider for slp 
 524                              service agent support</font></li>
 525 karl     1.1                 <li><font face="Courier New"><b>statistic</b> - Providers for 
 526                              Pegasus statistics.</font></li>
 527                              <li><font face="Courier New"><b>sample</b> Sample providers for the 
 528                              major provider types.</font></li>
 529                              <li><font face="Courier New"><b>testproviders</b> </font></li>
 530                              </ul>
 531                              </li>
 532                              <li><font face="Courier New"><b>Server</b> Pegasus executable build
 533                              </font></li>
 534 karl     1.2.8.4             <li><font face="Courier New"><b>slp</b> - SLP agent libraries and 
 535                              test tools.</font></li>
 536 karl     1.2                 <li><font face="Courier New"><b>Standard Includes</b> - </font></li>
 537 karl     1.1                 <li><font face="Courier New"><b>test</b> - Directory of end-end 
 538                              tests that are regularly conducted on Pegasus</font></li>
 539                              <li><font face="Courier New"><b>tools</b> MU and other utilities written for Pegasus support
 540                              </font></li>
 541                              <li><font face="Courier New"><b>Unsupported</b> Code that is made available but is not supported or included
 542                  in the normal make. </font></li>
 543 karl     1.2                 <li><font face="Courier New"><b>WMIMapper</b> Pegasus implementation that 
 544                              provides mapping to Microsoft WMI objects.
 545 karl     1.1     
 546                  </font></li>
 547                              </ul>
 548                  <p>
 549                  <font face="Courier New">Pegasus Run Time directory structure (PEGASUS_HOME 
 550                  environment variable). Home directory for runtime. All compiler, linker 
 551                  documentation creation, etc. are put here.
 552                  </font>
 553                              <ul>
 554                                <li><font face="Courier New"><b>bin</b> - Destination for executable and DLL modules from
 555                  Pegasus build. This directory should be make public so that the test functions, 
 556                                clients, and cimserver can be executed with minimum effort.</font></li>
 557                                <li><font face="Courier New"><b>DevManualHTML</b> - HTML output of the Pegasus Manual. 
 558                                This is only created when the make file for this manual is 
 559                                executed (doc/DevManual) and then contains the html representing 
 560                                the document.</font></li>
 561                                <li><font face="Courier New"><b>apidochtml</b> - HTML output of 
 562                                the creation of the public API document.&nbsp; This only exists 
 563                                when the make file for the api document is executed (see doc/apidoc/Makefile)</font></li>
 564                                <li><font face="Courier New"><b>lib</b> - Destination for Pegasus LIB modules
 565                                </font></li>
 566 karl     1.1                   <li><font face="Courier New"><b>log</b> - Standard location for 
 567                                Pegasus Logs</font></li>
 568                                <li><font face="Courier New"><b>obj</b> - Destination for object 
 569                                modules. Note that today, the trace file is located in the 
 570                                PEGASUS_HOME directory, not in the log directory if Pegasus 
 571                                internal tracing is enabled.</font></li>
 572 karl     1.2.8.4               <li><font face="Courier New"><b>repository</b> - This directory 
 573 karl     1.1                   contains the created repository </font></li>
 574                                </ul>
 575                  
 576                  <h1>
 577                  <a name="Pegasus Installation">Pegasus Installation</a> </h1>
 578                  <p>
 579 karl     1.2     Pegasus today is provided only as a source distribution.&nbsp; Note that there 
 580                  is code for a Linux RPM distribution but the project is not yet releasing 
 581                  binaies.<p>
 582 karl     1.1     To install Pegasus, you must check it out using CVS (Common Version System)
 583                  or download a snapshot. You download, compile, and use it. 
 584                  <p>
 585                  For the snapshot, the installation of Pegasus involves expanding the snapshot
 586                  distribution files, building the runtime, the test files and test clients, and
 587                  building the repository.
 588                  <h1>
 589                  
 590                  <a name="Building Pegasus">Building Pegasus </a>
 591                  
 592                                </h1>
 593                  
 594                  <p>
 595                  1. Check that you have requisite programs (listed in Pegasus Dependencies).
 596                  
 597                  These include GNU Make, MU.EXE (if using Windows), Flex, and Bison (Flex 
 598                  and Bison only required if changes will be made to the MOF compiler or WQL 
 599                  parser).
 600                  <p>
 601                  Be sure these are on the path.
 602                  
 603 karl     1.1     <p>
 604                  2. Define the following three environment variables:
 605                                <ul>
 606                                  <li><b>PEGASUS_ROOT</b> - this should be the &quot;pegasus&quot; directory you've pulled from CVS
 607                                  </li>
 608                                  <li><b>PEGASUS_HOME</b> - to point to a directory to contain output binary files
 609                  (e.g., set it to $HOME/pegasus_home). Then the output will go into
 610                  $HOME/pegasus_home/bin and $HOME/pegasus_home/lib
 611                                  </li>
 612 karl     1.2                     <li><b>PEGASUS_PLATFORM</b> - this must be set to a supported 
 613                                  platform identifier.</li>
 614 karl     1.1                     </ul>
 615                                  <blockquote>
 616                  <p>
 617                  This identifier has the following form:
 618                  <p>
 619                  <font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 620                  &lt;Operating-System&gt;_&lt;Architecture&gt;_&lt;Compiler&gt; </font>
 621                  <p>
 622                  For example (Linux on IA32 platform using the GNU Compiler):
 623                  LINUX_IX86_GNU
 624                  <p>
 625 karl     1.2     For a complete list of platforms supported and platform support keywords, refer to the platform make files found in directory&nbsp; 
 626 karl     1.1     <font face="Courier New">pegasus/mak</font>
 627                  
 628                                  </blockquote>
 629                  
 630                  <p>
 631                  Note: if you plan on doing parallel builds, you might consider setting
 632                  PEGASUS_HOME to something like this:
 633                  <p>
 634                  <font face="Courier New">&nbsp;&nbsp;&nbsp;
 635                  $HOME/pegasus_home_LINUX_IX86_GNU </font>
 636                  <p>
 637                  That way, the output of each build will be placed in its own directory.
 638                  <p>
 639                  3. Now place $PEGASUS_HOME/bin on your path
 640                  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and
 641                  <p>
 642                  &nbsp;&nbsp;&nbsp;
 643                  Place $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only).
 644                  For RedHat/SuSE/UL, edit /etc/ld.so.conf and add $PEGASUS_HOME/lib
 645                  <p>
 646 karl     1.2     4. Change to the root of the Pegasus distribution and type &quot;make&quot;
 647 karl     1.1     (where make refers to GNU make).
 648                  <p>
 649                  5. Then create the repository, which is needed to serve data.
 650                  &quot;make repository&quot;. Note that to create the additional namespaces, etc. 
 651                  that represent the test support you can also execute &quot;make testrepository:<p>
 652                  6. To test the build type &quot;make tests&quot;.
 653                  The following make targets are supported:
 654                  <UL>
 655                  <li>&lt;default&gt; - Build everything.
 656                  <li>clean - Clean out all objects, libs, and executables.
 657                  <li>depend - Create the dependencies.
 658                  <li>repository - Create the repository in $PEGASUS_HOME/repository
 659                  <li>tests - Execute all tests (except client server tests).
 660                  <li>rebuild - clean, depend, &lt;default&gt;
 661                  <li>world - depend, &lt;default&gt;
 662                  </UL>
 663                  The Pegasus Client server tests are executed separately from the above because
 664                  they require the initiation of separate process for the Pegasus server and
 665                  Pegasus client. To execute these tests please refer to the scripts in 
 666                  pegasus/mak/BuildMakefile - refer to the prestarttests and poststarttests.
 667                  <p>
 668 karl     1.1     For information on particular installation characteristics, tools, etc. for
 669                  each platform see the appropriate sections below:
 670                  <p>
 671                  Generally the build commands are as follows:
 672                                  <ol>
 673                                    <li>There is a Makefile in the Pegasus root directory. Simply executing
 674                  make in the Pegasus root directory will make everything. &quot;make rebuild&quot;
 675                  will clean and rebuild everything. The &quot;make rebuild&quot; will also populate
 676                  the repository with the current CIM Schemas.
 677                                    </li>
 678                                    <li>To test a fresh release, go to the pegasus root and type
 679                  &quot;<font face="Courier New">make world</font>&quot;.&nbsp;
 680                  This will build dependencies, build binaries, and then run all
 681                  tests except the Client/Server tests.
 682                                    </li>
 683                                    <li>To execute the basic test suite that is shipped with pegasus type&nbsp;
 684                  &quot;make tests&quot;. This also reinstalls the repository.&nbsp;
 685                  Running &quot;make -s tests&quot; suppresses extraneous output such as the
 686                  enter/leave directory messages.
 687                                    </li>
 688                                    <li>&quot;make clean&quot; removes all object and library files from the structure.
 689 karl     1.1     
 690                                    </li>
 691                                    <li>A new build system has been added to Pegasus where a new CVS checkout is 
 692                  done,
 693                  built, and tests are run. Do it by: &quot;make -f mak/BuildMakefile cleanbuild&quot;
 694                  
 695                                    </li>
 696                                    </ol>
 697                  
 698                  <h1>
 699                  <a name="Populate the Repository">Populating the Pegasus Repository</a> </h1>
 700                  
 701                  <p>
 702                  Before using Pegasus you must populate the repository.. The makefile 
 703                  does it all for you, but in case you are wondering what it does or how to do it
 704                  
 705                  manually:
 706                  <ol>
 707                  <LI>Register the MOF (Managed Object Format) file describing the skeleton of the 
 708                  object.
 709                  <li>Register a second MOF which only points out which lib*.so file to be loaded 
 710 karl     1.1     when a 
 711                  specific object is activated.
 712                  </ol>
 713                  This is done automatically for the providers included in Pegasus by doing:
 714                  make repository.
 715                  <p>
 716                  The 'make repository' in pegasus/Schemas does three things
 717                  Runs MOF compiler (cimmofl) on:
 718                  -Schema v2.7
 719                  Generates the CIM Schema v2.7 in the repository (skeleton of CIM objects)
 720                  -PG_InterOp
 721                  Internal to Pegasus schema for operating (shutdown, add users, etc)
 722                  CIM_Indication’s (SNMP, Events, Alert, Threshold, etc)
 723                  -PG_ManagedSystem
 724                  Registers included CIM Providers (libOSProvider.so, libDNSProvider.so, … ) 
 725                  in Pegasus (which are located in src/Providers)
 726                  <p>
 727                  For more information about using the MOF compiler, refer to user's manual on the
 728                  
 729                  openpegasus.org. 
 730                  
 731 karl     1.1     <h1>
 732                  <a name="Testing a Pegasus Installation">Testing a Pegasus Installation</a></h1>
 733                  <p>
 734                  Pegasus includes an extensive set of test facilities&nbsp; as part of the CVS 
 735                  enviromentthat can be executed including:<ul>
 736                    <li><b>Test Clients</b> - There are several clients that have been built 
 737                    specifically to test Pegasus or parts of Pegasus including TestClient, Client, 
 738                    CLI, ipinfo, osinfo, WbemEsec, etc. See the src/Clients directory for more 
 739                    information. These programs require a server complete with repository to be 
 740                    running.&nbsp; Note that some of these tests use classes and instances that 
 741                    are only installed with the &quot;make testrepository&quot; functions including test 
 742                    namespaces and extra classes and instances in those namespaces and additional 
 743                    providers from the providers/sample and proviers/testproviders directories.</li>
 744                    <li><b>Sample and test providers</b> -&nbsp; Test providers exist for the 
 745                    major provider types in the providers/sample directories and the providers/testProviders 
 746                    directory</li>
 747                    <li><b>Unit Tests</b> - Most Pegasus functions include unit tests for the 
 748                    functions.&nbsp; These are normally executed with the &quot;make tests&quot; command 
 749                    which can be executed at many different levels of the source tree from the top 
 750                    level to execute all of the unit tests to individual directories.&nbsp; 
 751                    Usually the unit test functions can be found in test directories immediately 
 752 karl     1.1       below their corresponding source code (i.e&nbsp; common/tests is the unit test 
 753                    functions for the common directory). Unit tests are executed without the 
 754                    server being operational and normally do not require the existence of a Class 
 755                    repository.</li>
 756                    <li><b>An end-to-end Test Suite</b> - the directory &quot;test&quot; contains a set of 
 757                    operations tests that cover the major CIM operations.&nbsp; See the make file 
 758                    TestMakefile in the PEGASUS_ROOT directory to execute these tests.&nbsp; This 
 759                    set of tests executes an extensive set of fixed tests and compares the results 
 760                    against predefined results.</li>
 761                    </ul>
 762                  
 763                  <h1>
 764                  <a name="Registering Providers in the Pegasus Environment">Registering Providers 
 765                  in the Pegasus Environment</a></h1>
 766                  
 767                  <p>
 768                  Pegasus registers providers with a set of provider registration classes, not 
 769                  using the provider qualifier as is done in most DMTF CIM CIMOM implementations 
 770                  today. This set of classes is close to but not exactly the same as the current 
 771                  DMTF definition (See the DMTF Interop schema, experimental versions starting 
 772                  with 2.6). This will be harmonized in the future when the DMTF scheme is moved 
 773 karl     1.1     to final status.&nbsp; </p>
 774                  
 775                  <p>
 776                  Registration is performed by defining a MOF for the instances of the 
 777 karl     1.2.8.4 registration classes that represent the provider module, providers, classes, 
 778 karl     1.1     etc. to be registered.&nbsp; The easiest way to create a new registration today 
 779                  is to copy from one of the existing registration MOFs.&nbsp; See the 
 780                  providers/sample/load directory for examples of several registration instance 
 781                  implementations that do work with Pegasus today.</p>
 782                  
 783                  <h1>
 784                  <a name="The MU Utility">The MU Utility </a></h1>
 785                  
 786                  <p>
 787                  In order to provide a consistent build structure across multiple platforms, we
 788                  developed a small utility to provide a consistent set of small utilities
 789                  across these platforms. The MU utilityis a simple utility that contains many
 790                  commands. For example:
 791                  
 792                  <p>
 793                  <font face="Courier New">&nbsp;&nbsp;&nbsp;
 794                  C:\&gt; mu rm myfile.cpp yourfile.cpp </font>
 795                  
 796                  <p>
 797                  You may type &quot;mu&quot; to get a list of valid commands. Here are some
 798                  of them:
 799 karl     1.1     
 800                  <p>
 801                  &nbsp;&nbsp;&nbsp;
 802                  rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
 803                  
 804                  <p>
 805                  The MU utility supports globing (expansion of wildcards) so
 806                  you can do things like this:
 807                  <p>
 808                  
 809                  <font face="Courier New">&nbsp;&nbsp;&nbsp;
 810                  
 811                  C:\&gt; mu rm *.obj *.exe </font>
 812                  <p>
 813                  MU is required to build under the Windows environment. MU is available as part
 814                  of the distribution of Pegasus.
 815                  
 816                  <h1>
 817                  <a name="Notes about Building Pegasus on Linux">Notes about Building Pegasus on 
 818                  Linux </a></h1>
 819                  <p>
 820 karl     1.1     No problem. Just make sure you have the environment variables set (PEASUS_HOME, 
 821                  PEGASUS_ROOT, PEGASUS_PLATFORM.&nbsp; For 32 bit linux, the defintion of 
 822                  PEGASUS_PLATFORM is normally LINUX_IX86_GNU.
 823                  
 824                  <h1><a name="Notes about Building Pegasus with SSL">Notes about Building Pegasus with SSL
 825                  </a></h1>
 826                  <p>
 827                  To build with SSL you need the OpenSSL libraries and header files. They are NOT 
 828                  distributed with Pegasus. Make sure 
 829                  you have them in a standard directory so Pegasus can find them. If that's not
 830                  
 831                  the case, set the environment variable OPENSSL_HOME= to point where your 
 832                  OpenSSL
 833                  installation is.
 834                  <p>
 835                  Also have the PEGASUS_HAS_SSL=yes variable set. Then just run 'make' in Pegasus
 836                  directory and you will have Pegasus with SSL enabled. See section &quot;Creating SSL
 837                  
 838                  certificates&quot; for more information of how to use SSL.
 839                  
 840                  <h1>
 841 karl     1.1     <a name="Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++">
 842                  Building Pegasus on Windows 2k  or Windows XP with Microsoft Visual C++ </a></h1>
 843                  
 844                  <p>
 845                  Use of Windows 2000 SP3 or later is recommended.&nbsp; Pegasus is regularly 
 846                  tested on both Windows 2000 and Windows XP using the Microsoft compilers.<p>
 847                  Today we build Pegasus on Windows using a set of make files contained
 848                  in the source distribution, the Microsoft compilers (DevStudio 5.x is not 
 849                  supported, Visual Studio 6.0, SP5 is supported) and the GNUMAKE make utility.&nbsp; 
 850                  Note that you MUST have the Pegasus <a href="#The MU Utility">mu.exe </a>utility 
 851                  compiled and available before trying to compile Pegasus on the normal windows 
 852                  platform. The
 853                  
 854                  following is the basic setup steps for the environment.
 855                  <p>
 856                  
 857                  Setup the environment variables and path for the Micrososft Visual C compiler.
 858                  
 859                  Typically this can be done by running the VCVARS32.BAT file supplied with 
 860                  Microsoft Visual C++. (contained in the same directory as cl.exe).
 861                  <p>
 862 karl     1.1     For Windows, try the following for an example environment:
 863                    <blockquote>
 864                  <pre>REM call the standard Microsoft .bat for VC 6 setup. 
 865                  call 'C:/Program Files/Microsoft Visual Studio/VC98/Bin/Vcvars32.bat' 
 866                  REM Set debug to something if you want compile in debug mode 
 867                  set PEGASUS_DEBUG=true 
 868                  REM set PEGASUS_ROOT to top of source tree 
 869                  set PEGASUS_ROOT=C:/cimom/pegasus 
 870                  REM set PEGASUS_HOME to where you want repository and executables
 871                  set PEGASUS_HOME=%PEGASUS_ROOT% 
 872                  REM setup the path to the runtime files. 
 873                  set path=%path%;%PEGASUS_HOME%/bin 
 874                  </pre>
 875                  </blockquote><h1><a name="Installing the Pegasus HTML Test Client">Installing the Pegasus HTML Test Client</a></h1><p>
 876                  This is a separate test tool that allows Pegasus requests to be initiated from
 877                  any WEB browser and that uses a WEB browser, CGI scripts and HTML pages for
 878                  the formatting and connections. It requires a WEB server, etc. The
 879 karl     1.2.8.4 instructions for setting up this environment are maintained in a separate readme in the 
 880                  Pegasus CGI directory. <h1><a name="Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a></h1><p>
 881                  <b>ATTN:</b> This section is incomplete today. For more information on 
 882                  developing clients and providers for Pegasus see the Pegasus Workshop 
 883                  presentations available on the Pegasus web site.<h2>
 884                  <a name="Client Development">Client Development</a></h2>
 885                  <p>
 886                  ATTN: Incomplete today.<h2>
 887                  <a name="Provider Development">Provider Development</a></h2>
 888                  <p>
 889                  ATTN: Incomplete today.<h3>
 890                  Debugging Providers</h3>
 891                  <p>
 892                  To debug providers you should be running the Pegasus CIMServer in a non-forked 
 893                  mode (not as a daemon or service).&nbsp; The configuration option 'daemon' 
 894                  defines such behavior. You can set this by either running cimserver as: <br>
 895                  <br>
 896                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cimserver 
 897                  daemon=false <br>
 898                  <br>
 899                  Or use the cimconfig to turn this option on: <br>
 900 karl     1.2.8.4 <br>
 901                  &nbsp;&nbsp;&nbsp; cimconfig -s daemon=false -p <br>
 902                  When running in production, make sure to turn it back to true. <br>
 903                  &nbsp;<h1><a name="Commands">Commands</a></h1><p>
 904 karl     1.1     The manpages for each of the commands are in rpm/manLinux/man1.Z directory (on 
 905                  CVS) <p>
 906                  To see simple help for each of the commands, use the &quot;-h&quot; flag. <blockquote><pre>Examples:
 907                  bin/cimserver –s (Shuts it down)
 908                  bin/cimserver traceLevel=4 traceComponents=ALL (starts server with config flags)
 909                  bin/cimprovider –l –s (lists providers and their status)
 910                  bin/cimprovider –e –m OperatingSystemModule (enables the OperatingSystem provider)
 911                  bin/cimuser –a –u guest –w ThePassword
 912                  bin/cimuser –l (lists the users)
 913                  bin/tomof CIM_Config (extract CIM_Config from repository and present it in MOF type)
 914                  </pre>
 915                  </blockquote><h1><a name="Creating SSL certifications">Creating SSL certifications </a></h1><p>
 916 konrad.r 1.2.8.1 Please follow section <a href="#Notes about Building Pegasus with SSL">Notes on building Pegasus with SSL</a> before embarking on this endeavour.
 917                  <br><br>
 918                  Type these commands in your shell to create the SSL certifications. The PEGASUS_ROOT 
 919                  and PEGASUS_HOME have to be set to your respective installation and source directory. 
 920                  
 921                  <blockquote><pre>CN=&quot;Common Name&quot;
 922 karl     1.1     EMAIL=&quot;test@email.address&quot;
 923                  HOSTNAME=`uname -n`
 924                  sed -e &quot;s/$CN/$HOSTNAME/&quot; \
 925                  -e &quot;s/$EMAIL/root@$HOSTNAME/&quot; $PEGASUS_ROOT/ssl.cnf \
 926                  &gt; $PEGASUS_HOME/ssl.cnf
 927                  chmod 644 $PEGASUS_HOME/ssl.cnf
 928                  chown bin $PEGASUS_HOME/ssl.cnf
 929                  chgrp bin $PEGASUS_HOME/ssl.cnf
 930                  
 931                  /usr/bin/openssl req -x509 -days 365 -newkey rsa:512 \
 932                  -nodes -config $PEGASUS_HOME/ssl.cnf \
 933                  -keyout $PEGASUS_HOME/key.pem -out $PEGASUS_HOME/cert.pem 
 934                  
 935                  cat $PEGASUS_HOME/key.pem $PEGASUS_HOME/cert.pem &gt; $PEGASUS_HOME/server.pem
 936                  rm $PEGASUS_HOME/key.pem $PEGASUS_HOME/cert.pem
 937                  cp $PEGASUS_HOME/cert.pem $PEGASUS_HOME/client.pem
 938 konrad.r 1.2.8.1 
 939                  </pre></blockquote>
 940                  <h1><a name="Configuring SSL">Configuring Pegasus to use SSL</a></h1><p>
 941                  
 942                  Please follow section <a href="#Notes about Building Pegasus with SSL">Notes on building Pegasus with SSL</a> and <a href="#Creating SSL certifications">Creating SSL certifications</a>
 943                  before embarking on this endeavour.<br><br>
 944                  
 945                  To configure Pegasus to take advantage of SSL, configure
 946 konrad.r 1.2.8.3 CIMServer to have the following configuration options set to:
 947 karl     1.2.8.4 <blockquote><pre>	sslTrustFilePath=client.pem
 948 konrad.r 1.2.8.1 	sslCertificateFilePath=server.pem
 949                  	sslKeyFilePath=file.pem
 950                  	httpsPort=5989
 951                  	enableHttpsConnection=true
 952                  </pre></blockquote>
 953 konrad.r 1.2.8.3 using the <b>cimconfig</b> utility:
 954 karl     1.2.8.4 <blockquote><pre>	cimconfig -p -s enableHttpsConnection=true
 955 konrad.r 1.2.8.3 </pre></blockquote><br>
 956 konrad.r 1.2.8.1 (The client.pem and server.pem are the certifications
 957                  files created per the steps in the earlier section).
 958                  
 959                  For good riddance you might consider closing down
 960 konrad.r 1.2.8.3 the cleartext 5988 port. Modify your CIMServer configuration
 961 konrad.r 1.2.8.1 to include:
 962 karl     1.2.8.4 <blockquote><pre>	enableHttpConnection=false
 963 konrad.r 1.2.8.2 </pre></blockquote>
 964 konrad.r 1.2.8.3 using <b>cimconfig</b>.
 965 konrad.r 1.2.8.2 <h1><a name="Configuring PAM">Configuring Pegasus to use PAM</a></h1><p>
 966                  
 967                  In order to use PAM Authentication you have to compile Pegasus
 968                  with one extra enviroment flags:
 969 karl     1.2.8.4 <blockquote><pre>	PEGASUS_PAM_AUTHENTICATION=1
 970 konrad.r 1.2.8.2 </blockquote></pre>
 971                  You can also set the PEGASUS_ALWAYS_USE_PAM=1 flag to disable
 972                  Pegasus password authentication using a flag text-file (recommended).
 973                  <br>
 974                  After compiling (refer to section <a href="#Building Pegasus">Building Pegasus </a>
 975                   for details), follow these two important steps:
 976                  <br>
 977                  <ul>
 978                   <ul>a).  Copy the rpm/wbem file in-to /etc/pam.d directory.
 979                        This notifies PAM what kind of libraries to use when authenticating
 980                        Pegasus.</uL>
 981                   <ul>
 982 konrad.r 1.2.8.3  b).  Modify CIMServer configuration options:
 983 karl     1.2.8.4 	<blockquote><pre>	usePAMAuthentication=true
 984 konrad.r 1.2.8.2 	enableAuthentication=true
 985                  	</blockquote></pre>
 986                        And if you want to allow 'root' to login (*not recommended*)
 987                  
 988 karl     1.2.8.4 	<blockquote><pre>	enableRemotePrivilegedUserAccess=true
 989 konrad.r 1.2.8.2 	</blockquote></pre>
 990 konrad.r 1.2.8.3 
 991                  	using the <b>cimconfig</b> utility, such as:
 992 karl     1.2.8.4 	<blockquote><pre>	cimconfig -p -s usePAMAuthentication=true
 993 konrad.r 1.2.8.3 	</pre></blockquote>	
 994 konrad.r 1.2.8.2   </ul>
 995                  </ul>
 996                  The user is authenticated using HTTP Basic method, thererfore it is
 997                  strongly suggested you use SSL connection instead of normal HTTP connection.
 998                  Refer to section  
 999                  <a href="#Configuring SSL">Configuring Pegasus to use SSL</a> for more details on creating and using SSL keys.
1000                  </p>
1001                  <h1><a name="Testing with ICU enabled">Testing with ICU enabled</a></h1><p>
1002 karl     1.1     ICU (International Components for Unicode) refers to the set of libraries that
1003                  Pegasus uses to run globalized. For example: these libraries are used to
1004                  load messages in different languages, format currency and numbers according to
1005                  a specific locale etc. In order to enable globalization in Pegasus, Pegasus
1006                  must be built with ICU enabled, ie. the right environment variables must be
1007                  set prior to running &quot;make&quot;. Refer to the GlobalizationHOWTO.htm in the docs
1008                  directory for details. That said, when users run &quot;make poststarttests&quot; 
1009                  to verify the integrity of a Pegasus download, a series of tests are run that
1010                  
1011                  require the cimserver to be running. These tests currently depend on specific
1012                  
1013                  messages returned from the server. When ICU is enabled, all messages come 
1014                  from the resource bundles and these usually do not match the hardcoded default messages within Pegasus. These hardcoded default messages 
1015                  are what the various test programs expect in order to complete 
1016                  successfully. If the ICU enabled server is started without
1017                  disabling message loading from the bundles, &quot;make poststartests&quot; will fail.
1018                  In order to run &quot;make poststarttests&quot; successfully with ICU enabled, an
1019                  environment variable called PEGASUS_USE_DEFAULT_MESSAGES must exist prior to
1020                  starting the server. Once this is defined, when the cimserver starts, all
1021                  messages generated will be the default hardcoded messages. This will enable
1022                  &quot;make poststarttests&quot; to complete successfully. Once &quot;make poststarttests&quot; is
1023 karl     1.1     complete, you should stop the cimserver and then undefine PEGASUS_USE_DEFAULT_MESSAGES. 
1024                  If this variable is left defined, Pegasus will not be able to load messages
1025                  using ICU resource bundles. <h1><a name="Pegasus Documentation">Pegasus Documentation</a></h1><p>
1026                  The documentation is currently in preparation.&nbsp; Much of Pegasus is 
1027                  documented in the PEGASUS PEPs which are the basis for approval of Pegasus 
1028 karl     1.2     functionality, changes, plans, etc.&nbsp; These documents are openly available 
1029 karl     1.1     on the PEGASUS web site.&nbsp; The preliminary documentation
1030                  is not provided with this release. The current documentation is maintained both as a manual created
1031                  under the tool DOC++ in the runtime subdirectory manual/html (see doc/devManual 
1032                  to create), as an api document also creatable from the source tree (see doc/apidoc) 
1033                  and as other miscellaneous documentation in the doc directory. Also there is a 
1034                  set of release notes. Normally the release notes for the current release are 
1035                  available in the root source directory of CVS.<p>
1036                  Note that the Pegasus WEB site at The Open Group will be the source of most
1037                  documentation in the future and today is the source of most discussion and
1038                  design documentation. <h1><a name="Participate!">Participate!</a></h1><p>
1039                  We are looking for people who want to join the Pegasus work group and
1040                  contribute to effort of getting this Pegasus off the ground. Please join 
1041                  the mailing list by visiting www.openpegasus.org, and click on Mailing Lists.
1042                  &nbsp;</p>
1043                  
1044                  </body>
1045                  
1046 karl     1.2.8.4 </html>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2