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

  1 h.sterling 1.9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2 karl       1.12 <html><head>
  3                 
  4                 
  5                 <link rel="stylesheet" href="PEP_251_Draft_251_Readme_Version_1_2_files/info1margins.css">
  6                 
  7                   <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
  8 dave.sudlik 1.10   <meta name="ProgId" content="FrontPage.Editor.Document">
  9 karl        1.12   <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>OpenPegasus</title>
 10                  
 11                  			<script language="javascript" src="PEP_251_Draft_251_Readme_Version_1_2_files/js.js"></script></head><body>
 12 h.sterling  1.9  <p align="center"><b><font size="4">Pegasus Enhancement Proposal (PEP)</font></b></p>
 13 karl        1.12 <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>PEP #:</b> 251<br>
 14 dave.sudlik 1.10 </p>
 15 karl        1.12 <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 16                  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Title: </b>OpenPegasus 
 17                  Release 2.5.1 Readme file</p>
 18                  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 19                  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Version: </b><span style="color: rgb(0, 0, 0);">
 20                  1.<br>
 21 dave.sudlik 1.10 </span></p>
 22 karl        1.12 <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Created:</b> 20th March 2006</p>
 23                  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 24                  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Authors: </b>Martin Kirk<br>
 25                  </p>
 26                  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 27                  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Status:&nbsp; </b>Draft</p>
 28                  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 29 h.sterling  1.9  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Version History:</b></p>
 30 karl        1.12 <table bordercolordark="#666666" bordercolorlight="#cccccc" style="font-family: Arial;" border="1" cellspacing="1" width="100%">
 31 dave.sudlik 1.10   <tbody>
 32                      <tr>
 33                        <th bgcolor="#cae6ca">Version</th>
 34                        <th bgcolor="#cae6ca">Date</th>
 35                        <th bgcolor="#cae6ca">Author</th>
 36                        <th bgcolor="#cae6ca">Change Description</th>
 37                      </tr>
 38                      <tr>
 39                        <td align="center">1.0</td>
 40 karl        1.12       <td align="center">March 20th 2006</td>
 41                        <td align="center">Martin Kirk</td>
 42                        <td>First draft, basically unchanged from 2.5 ReadMe except for version 
 43                  		numbers and typos</td>
 44 dave.sudlik 1.10     </tr>
 45                      <tr>
 46 karl        1.12       <td style="vertical-align: top;" align="center">1.1</td>
 47                        <td style="vertical-align: top; text-align: center;">March 23rd 2006</td>
 48                        <td style="vertical-align: top; text-align: center;">Martin Kirk</td>
 49                        <td style="vertical-align: top; text-align: center;">
 50                  		<p style="text-align: left;">Draft for ballot incorporating draft 1.0 
 51                  		comments.</p></td>
 52 dave.sudlik 1.10     </tr>
 53                      <tr>
 54 karl        1.12       <td style="vertical-align: top;" align="center">1.2</td>
 55                        <td style="vertical-align: top;" align="center">March 26th 2006</td>
 56                        <td style="vertical-align: top;" align="center">Martin Kirk</td>
 57                        <td style="vertical-align: top;">Draft for Steering Committee approval.</td>
 58 dave.sudlik 1.10     </tr>
 59                      <tr>
 60 karl        1.12       <td style="vertical-align: top; color: rgb(0, 0, 0);" align="center">&nbsp;</td>
 61                        <td style="vertical-align: top; color: rgb(0, 0, 0);">&nbsp;</td>
 62                        <td style="vertical-align: top; color: rgb(0, 0, 0);">&nbsp;</td>
 63                        <td style="vertical-align: top; color: rgb(0, 0, 0);">&nbsp;</td>
 64 dave.sudlik 1.10     </tr>
 65                      <tr>
 66 karl        1.12       <td style="vertical-align: top;" align="center">&nbsp;</td>
 67                        <td style="vertical-align: top;">&nbsp;</td>
 68                        <td style="vertical-align: top;">&nbsp;</td>
 69                        <td style="vertical-align: top;">&nbsp;</td>
 70 dave.sudlik 1.10     </tr>
 71                    </tbody>
 72 h.sterling  1.9  </table>
 73                  <hr>
 74 dave.sudlik 1.10 <p><b>Abstract:</b>&nbsp; Installation, build, operation information on
 75 karl        1.12 the OpenPegasus Version 2.5.1 Release. Note that if this readme
 76 dave.sudlik 1.10 conflicts with the documentation in the release notes or interface
 77                  definition documents for a particular release, those documents should
 78 karl        1.12 be considered authoritative. This is a simplified overview to act as an
 79 dave.sudlik 1.10 introduction to OpenPegasus.</p>
 80 h.sterling  1.9  <hr>
 81 dave.sudlik 1.10 <p align="center"><b><font size="5">OpenPegasus - A Manageability
 82                  Services Broker for the DMTF CIM/WBEM Standards
 83                  </font></b></p>
 84                  <p align="left"><b>Tagline:</b> OpenPegasus is an object manager for
 85                  DMTF CIM objects written in C++
 86                  and hosted by The Open Group </p>
 87                  <p align="left">
 88 karl        1.12 <b>STATUS:</b> Revised March 2006 for&nbsp; Pegasus release version
 89                  2.5.1&nbsp;
 90 dave.sudlik 1.10 - Draft<br>
 91                  </p>
 92                  <a href="#Overview">Overview</a>
 93 karl        1.12 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> 
 94 h.sterling  1.9    <a href="#peg_sup_plat">Pegasus Supported Platforms</a><br>
 95 karl        1.12   	<a href="#cmnd">Commands</a><br>
 96 h.sterling  1.9    <a href="#docs">Documentation</a><br>
 97 dave.sudlik 1.10   <a href="#part">How to Participate</a><br>
 98 h.sterling  1.9  </blockquote>
 99 karl        1.12 <a href="#inst_peg">Installing Pegasus</a>
100                  <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"><a href="#download">
101                  	Obtain Pegasus in Source Code or Binary Executable Format</a><br>
102                    	<a href="#peg_dep">Verify Dependencies</a><br>
103                    <a href="#set_envt_var">Set the environment variables</a></blockquote>
104                  <a href="#build_peg">Building Pegasus</a><blockquote style="margin-top: 0pt; margin-bottom: 0pt;">
105                  <a href="#note_bld_peg_lnx">Building Pegasus on Linux</a><br>
106                  <a href="#note_bld_peg_ssl">Building Pegasus with SSL</a><br>
107                  <a href="#bld_peg_win">Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++</a><br>
108                    <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a href="#mu_utility">The MU Utility</a><br>
109 dave.sudlik 1.10   </blockquote>
110 h.sterling  1.9  </blockquote>
111 karl        1.12 <a href="#pop_peg_rep">Populate the Pegasus repository</a><br>
112                  <a href="#reg_prov">Register providers in the Pegasus environment</a><br>
113 dave.sudlik 1.10 <a href="#test">Test the Pegasus installation</a><br>
114 karl        1.12 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a href="#test_icu">Testing with ICU enabled</a></blockquote>
115                  <a href="#sec0">Security Considerations</a><br>
116 h.sterling  1.9  <hr>
117                  <h1><a name="Overview">Overview</a> </h1>
118 dave.sudlik 1.10 <b>OpenPegasus (also referred to as Pegasus):</b>
119                  Pegasus is an open-source CIM Server for DMTF CIM objects. It is
120                  written
121                  in C++ and includes the Object manager (CIMOM), a set of defined
122                  interfaces, an implementation of the CIMOperations over HTTP operations
123                  and their cimxml HTTP encodings, and Interface libraries
124                  for both client and providers. It is maintained
125                  consistent with the DMTF CIM and WBEM specifications except for&nbsp;
126                  exceptions
127                  noted in the documentation.<br>
128                  <br>
129                  <span class="norm"></span>OpenPegasus includes components for: <br>
130                  <ol>
131                    <li>DMTF compliant CIMServer that processes CIM operations, CIM
132                  Indications, and
133                  includes class and instance repositories and interfaces for creating
134                  CIM
135                  Providers and CIM Clients.</li>
136 karl        1.12   <li>Provider interfaces so that providers may be developed in multiple
137 dave.sudlik 1.10 languages (i.e.
138                  C++, C, Java).</li>
139 karl        1.12   <li>A number of CIM clients and providers for basic instrumentation.</li>
140                  	<li>A number of CIM server administration commands.</li>
141                    <li>A MOF compiler.</li>
142                    <li>A number of sample CIM clients and providers to provide usage examples,</li>
143                  	<li>CIM server test functions providing both unit tests and end-to-end 
144                  	system tests.</li>
145 dave.sudlik 1.10   <li>More complete information on the exact functions
146                  and their functional state is available from the release notes for each
147                  OpenPegasus release.</li>
148                  </ol>
149                  OpenPegasus is open source and is covered under the MIT open-source
150                  license.
151 karl        1.12 OpenPegasus is being developed and maintained under the auspices of The Open 
152                  Group.&nbsp; OpenPegasus is maintained under the license defined in <font style="color: rgb(0, 0, 0);">pegasus/doc/license.txt</font>.&nbsp;
153 dave.sudlik 1.10 This licensing is intended to support as
154                  wide a
155 karl        1.12 distribution as possible with minimal demands on the users.<br>
156                  <br>
157                  More information on this project, access to the CVS, and
158 dave.sudlik 1.10 documentation on
159 karl        1.12 Pegasus are available from the OpenGroup WEB site - &nbsp;&nbsp;&nbsp; <a target="blank" href="http://www.openpegasus.org/">http://www.openpegasus.org</a><br>
160                  <h4><a name="peg_sup_plat">Pegasus Supported Platforms</a></h4>
161 dave.sudlik 1.10 <p>
162                  Pegasus is regularly tested against a variety of platforms by the
163                  development group.&nbsp; The results of the nightly tests can be found
164 karl        1.12 here: <a href="http://cvs.opengroup.org/cgi-bin/pegasus-build-status.cgi">Nightly
165 dave.sudlik 1.10 test status</a> .&nbsp; The Release notes provides additional details
166 karl        1.12 regarding the platforms.&nbsp;
167                  PEP 249 is the Release Notes PEP for 2.5.1.<br>
168 dave.sudlik 1.10 </p>
169 karl        1.12 <h4><a name="cmnd">Commands</a></h4>
170                  <p></p>The manpages for each of the commands can be found in the Pegasus source
171                  tree in the pegasus/rpm/manLinux/ directory.<p></p>
172                  <p>To see simple help for a command, invoke it with the "--help" option.</p>
173                  <p><font face="Verdana">Here is a list of useful
174                  commands:</font></p>
175                  <span style="font-weight: bold;" class="norm"></span><span style="font-family: times new roman; font-weight: bold;"><span class="norm"></span></span><span style="font-weight: bold;">Some of
176 dave.sudlik 1.10 the basic commands:</span>
177 h.sterling  1.9  <br>
178 dave.sudlik 1.10 NOTE: Refer to the admin guide in pegasus/doc/Admin_Guide_Release.pdf
179                  for
180                  more information about administering the Pegasus CIMServer.<br>
181 h.sterling  1.9  <ul>
182 dave.sudlik 1.10   <li>cimserver daemon=true&nbsp; (Start the server
183                  cimserver)</li>
184                    <li>cimserver -s&nbsp; (Shuts down the cimserver)</li>
185                    <li>cimserver traceLevel=4 traceComponents=ALL&nbsp; (Starts server
186                  with
187                  config flags)</li>
188                    <li>cimprovider -l -s&nbsp; (Lists providers and their status)</li>
189                    <li>cimprovider -e -m OperatingSystemModule&nbsp; (Enables the
190                  OperatingSystem provider)</li>
191 karl        1.12   <li>cimuser -a -u guest -w &lt;ThePassword&gt; (Adds the user <span style="font-style: italic;">guest</span> with specified password)<br>
192 h.sterling  1.9    </li>
193 dave.sudlik 1.10   <li>cimuser -l&nbsp; (Lists the users )<br>
194 h.sterling  1.9    </li>
195 dave.sudlik 1.10 </ul>
196                  Note:&nbsp; there are some differences between windows and other
197                  platforms in
198                  starting the server as a daemon/service. Whereas most supported
199                  platforms use
200                  the configuration option daemon to start the server as a service, on
201                  windows it
202                  must be specifically installed as a service (ex. cimserver -install)
203                  and then
204 karl        1.12 started as a service (cimserver -start). The cimserver --help option
205 dave.sudlik 1.10 explains the
206 karl        1.12 exact format of the start and stop options.<h4><a name="docs">Pegasus Documentation</a></h4>
207                  <p>Much of Pegasus
208 dave.sudlik 1.10 is documented in the PEGASUS PEPs which are the basis for approval of
209                  Pegasus functionality, changes, plans, etc.&nbsp; These documents are
210 karl        1.12 openly available on the PEGASUS web site.&nbsp;The current documentation is
211 dave.sudlik 1.10 maintained both as a manual created
212                  under the tool DOC++ in the runtime subdirectory manual/html (see
213                  doc/devManual to create), as an api document also creatable from the
214                  source tree (see doc/apidoc) and as other miscellaneous documentation
215                  in the doc directory. Also there is a set of release notes. Normally
216                  the release notes for the current release are available in the root
217                  source directory of CVS.</p>
218                  <p>Note that the Pegasus WEB site at The Open Group will be the source
219                  of most
220                  documentation in the future and today is the source of most discussion
221                  and
222                  design documentation. </p>
223 karl        1.12 <h4><a name="part">How to Participate</a></h4>
224 dave.sudlik 1.10 <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">Contributors
225                  are welcome to participate in the OpenPegasus development effort. Join
226 karl        1.12 the mailing list by visiting <a href="http://www.openpegasus.org/">http://www.openpegasus.org</a> and clicking on
227                  Mailing Lists. Joining the pegasus-l mailing list will provide a login/password 
228                  for the website.</font></p>
229 dave.sudlik 1.10 <h1>
230 karl        1.12 <a name="inst_peg">Installing Pegasus</a> </h1>
231                  <h4><a name="download">Obtain Pegasus in Source Code or Binary Executable Format</a></h4>
232                  <h2></h2>
233                  <h2></h2>
234                  <ol>
235                  Pegasus can be obtained via any of the following:<br>
236                    <ol>
237                      <li>Released tarballs (see
238                  	<a href="http://www.openpegasus.org/page.tpl?ggid=392">Release
239                  tarballs link</a>)</li>
240                      <li>CVS (See <a href="http://www.openpegasus.org/page.tpl?ggid=667">CVS
241                  code repository</a> for
242                  more information.)</li>
243                      <li>Linux RPMs. See
244                  (<a href="http://www.openpegasus.org/pr">RPM
245                  link</a> for
246                  more information
247                  )</li>
248                    </ol>
249                  </ol>
250                  <p>NOTE: Linux RPMs are only available for a limited set of releases.
251 karl        1.12 </p>
252                  <p>The distribution is available via CVS and snapshot images in
253                  tar and zip file formats on the web site.
254                  The source code from CVS can be found at the Open Group CVS server - 
255                  cvs.opengroup.org. The source can be checked out anonymously using the 
256                  instructions at <a href="http://www.openpegasus.org/protected/page.tpl?ggid=667">
257                  http://www.openpegasus.org/page.tpl?ggid=667</a></p>
258                  <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">CVS
259                  write accounts are managed by Martin Kirk of The Open Group&nbsp;</font>
260                  (<a href="mailto:%28k.m.kirk@opengroup.org">m.kirk@opengroup.org</a>)&nbsp;
261                  </p>
262                  <p>RPM installation instructions can be found here: <a href="http://www.openpegasus.org/pr/">http://www.openpegasus.org/pr</a><br>
263 dave.sudlik 1.10 </p>
264                  <strong></strong>
265                  <p></p>
266 karl        1.12 <h4><a name="peg_dep">Verify Dependencies</a></h4>
267 dave.sudlik 1.10 <p>
268 karl        1.12 We have worked to minimize the dependence of Pegasus on other software
269                  packages and tools. Currently Pegasus has the following dependencies:
270                  </p>
271                  <p><b>1. GNUMAKE</b> - To simplify the building of Pegasus across
272                  multiple platforms we
273                  have standardized on a set of build tools including: GNUMAKE. We are
274                  using GNUMAKE 3.79.1 successfully both in Windows and Linux
275                  environments.
276                  </p>
277                  <p>GNUMAKE is available from :</p>
278                  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="blank" href="http://www.gnu.org/">http://www.gnu.org</a>
279                  </p>
280                  <p><b>2. FLEX and BISON</b> - These tools were used to develop the
281                  MOF
282                  compiler and WQL
283                  parser.&nbsp; <span class="norm"></span><font style="color: rgb(0, 0, 0);">These tools are required only for
284                  development of the parsers, not for building Pegasus.</font></p>
285                  <p><b>3. DOC++ </b>- The Pegasus documentation is taken from a
286                  combination of text files
287                  and the Pegasus header files themselves. This documentation is
288                  formatted with DOC++ and GAWK.&nbsp;&nbsp; <span class="norm"></span><font style="color: rgb(0, 0, 0);">These tools are required to build the
289 karl        1.12 interface documentation set.</font>
290                  </p>
291                  <p><b>4. ICU Internationalization libraries</b> - These libraries are
292                  used as the basis for message catalogs for message
293                  internationalization. See the ICU website
294                  (http://oss.software.ibm.com/icu/) for more information on these
295                  libraries</p>
296                  <p><span style="font-weight: bold;">5</span>. <b>OpenSSL </b>- If it
297                  is intended to use SSL on the
298                  communication protocol, the OpenSSL libraries are required.<br>
299 dave.sudlik 1.10 </p>
300 karl        1.12 <p>&nbsp; NOTE: A set of the required
301                  tools for windows platforms is available on the openpegasus web
302                  site.&nbsp; <a href="http://www.openpegasus.org/pp/uploads/40/Pegasus24/www.openpegasus.org">www.openpegasus.org</a></p>
303                  <h4><a name="set_envt_var"><strong>Set the Environment
304                  Variables</strong></a></h4>
305                  <p>Before installing or running OpenPegasus, environment variables may
306                  have to be defined or updated.&nbsp; <br>
307 dave.sudlik 1.10 </p>
308 karl        1.12 <p>PEP 237 contains the list of environment variables and setup necessary
309                  to use OpenPegasus.</p>
310                  <p></p>At a minimum, the following need to be set:<p></p>
311                  <blockquote>
312                  PEGASUS_ROOT=&lt;location of your pegasus source tree&gt;
313                  <br>
314                  PEGASUS_HOME=&lt;location for the built executables, repository, etc&gt;
315                  		
316                  <br>
317                  PEGASUS_PLATFORM=&lt;your platform&gt;
318                  </blockquote>
319                  <p>For a list of valid 
320                  platforms, enter "make listplatforms" from the root of the Pegasus 
321                  		source tree. <br>
322                  </p>
323                  <h1><a name="build_peg">Building Pegasus</a></h1>
324                  <div>
325                  	<div>
326                  		To accept the default build options and get started quickly, use the</div>
327                  	<div>
328                  		following commands from the root of the Pegasus source tree:</div>
329 karl        1.12 	<br>
330                  &nbsp;<div>
331                  		&nbsp;&nbsp; make build</div>
332                  	<div>
333                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This will build the dependencies, any utilities that are needed, 
334                  		all</div>
335                  	<div>
336                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the Pegasus and test executable code, and do any necessary setup 
337                  		to</div>
338                  	<div>
339                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; run the CIM Server.</div>
340                  	<br>
341                  &nbsp;<div>
342                  		&nbsp;&nbsp; make alltests</div>
343                  	<div>
344                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This will run the unit tests, create the repository by compiling 
345                  		in</div>
346                  	<div>
347                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the MOF for the default CIM Schema (2.9 for Pegasus 2.5.1), 
348                  		compile</div>
349                  	<div>
350 karl        1.12 		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in the MOF for all Pegasus test cases, do any other configuration</div>
351                  	<div>
352                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; necessary to run the tests, and then run a large automated test 
353                  		suite</div>
354                  	<div>
355                  		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to verify Pegasus CIM Server functionality.`1<p>&nbsp;</p></div>
356                  	<div>
357                  		There are many variations possible. Refer to PEP 237 for possible build 
358                  		and</div>
359                  	<div>
360                  		run-time configuration options. Enter "make usage" for more information 
361                  		on</div>
362                  	<div>
363                  		make targets that are available for building and testing Pegasus.</div>
364                  </div>
365                  <h4><a name="note_bld_peg_lnx">Building OpenPegasus on Linux </a></h4>
366 dave.sudlik 1.10 <p>
367                  To build OpenPegasus on Linux, ensure that you you have the environment
368                  variables set (PEGASUS_HOME, PEGASUS_ROOT, PEGASUS_PLATFORM.&nbsp; For
369                  32 bit linux, the definition of PEGASUS_PLATFORM is normally
370 karl        1.12 LINUX_IX86_GNU).<br>
371                  </p>
372                  <h4><a name="note_bld_peg_ssl">Building OpenPegasus with SSL
373                  </a></h4>
374                  <p>
375                  To build with SSL you need the OpenSSL libraries and header files. They
376                  are NOT distributed with OpenPegasus. Make sure you have them in a
377                  standard
378                  directory so OpenPegasus can find them. If that's not
379                  the case, set the environment variable OPENSSL_HOME= to point where
380                  your OpenSSL
381                  installation is.
382                  </p>
383                  <p>Also have the PEGASUS_HAS_SSL=true variable set. Then just run 'make'
384                  in Pegasus
385                  directory and you will have OpenPegasus with SSL enabled. See "Creating
386                  SSL
387                  certificates" below for more information on how to use SSL.
388 dave.sudlik 1.10 </p>
389 karl        1.12 Refer to the OpenPegasus SSL Guidelines guide found in the doc directory for details on
390                  using OpenPegasus with SSL.<br>
391                  <h4><a name="bld_peg_win">Building OpenPegasus on Windows 2k or Windows XP with Microsoft
392 dave.sudlik 1.10 Visual
393 karl        1.12 C++ </a></h4>
394 dave.sudlik 1.10 <p>
395                  Use of Windows 2000 SP3 or later is recommended.&nbsp; OpenPegasus is
396                  regularly tested on both Windows 2000 and Windows XP using the
397                  Microsoft compilers.</p>
398                  <p>Today we build OpenPegasus on Windows using a set of make files
399                  contained
400                  in the source distribution, the Microsoft compilers (DevStudio 5.x is
401                  not supported, Visual Studio 6.0, SP5 is supported) and the GNUMAKE
402 karl        1.12 make utility.&nbsp; Note that you MUST have the OpenPegasus <a href="#mu_utility">mu.exe </a>utility compiled and available
403 dave.sudlik 1.10 before trying to compile OpenPegasus on the normal windows platform.
404                  The
405                  following is the basic setup steps for the environment.
406                  </p>
407                  <p>Setup the environment variables and path for the Micrososft Visual C
408                  compiler.
409                  Typically this can be done by running the VCVARS32.BAT file supplied
410                  with Microsoft Visual C++. (contained in the same directory as cl.exe).
411                  </p>
412 h.sterling  1.9  <p>For Windows, try the following for an example environment: </p>
413                  <blockquote>
414 karl        1.12   <pre>REM call the standard Microsoft .bat for VC 6 setup. <br>call 'C:/Program Files\Microsoft Visual Studio\VC98\Bin\Vcvars32.bat' <br>REM Set debug to something if you want compile in debug mode <br>set PEGASUS_DEBUG=true <br>REM set PEGASUS_ROOT to top of source tree <br>set PEGASUS_ROOT=C:/cimom/pegasus (Note: <span class="norm">The '/' characters are intentional and required by the OpenPegasus build system)</span><br>REM set PEGASUS_HOME to where you want repository and executables<br>set PEGASUS_HOME=%PEGASUS_ROOT% <br>REM setup the path to the runtime files. <br>set path=%path%;%PEGASUS_HOME%\bin <br></pre>
415 h.sterling  1.9  </blockquote>
416 karl        1.12 <h6>
417                  <a name="mu_utility">The MU Utility </a></h6>
418 dave.sudlik 1.10 <p>
419                  In order to provide a consistent build structure across multiple
420                  platforms, we
421                  developed a small utility to provide a consistent set of small
422                  utilities
423                  across these platforms. The MU utility is a simple utility that
424                  contains
425                  many
426                  commands. For example:
427                  </p>
428                  <p><font face="Courier New">&nbsp;&nbsp;&nbsp;
429                  C:\&gt; mu rm myfile.cpp yourfile.cpp </font>
430                  </p>
431                  <p>You may type "mu" to get a list of valid commands. Here are some
432                  of them:
433                  </p>
434                  <p>&nbsp;&nbsp;&nbsp;
435                  rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
436                  </p>
437                  <p>The MU utility supports globing (expansion of wildcards) so
438                  you can do things like this:
439 dave.sudlik 1.10 </p>
440                  <p><font face="Courier New">&nbsp;&nbsp;&nbsp;
441                  C:\&gt; mu rm *.obj *.exe </font>
442                  </p>
443                  <p>MU is required to build under the Windows environment. MU is
444                  available as part
445                  of the distribution of OpenPegasus.<br>
446                  </p>
447                  NOTE: The binary for MU.EXE is not distributed in the OpenPegasus bin
448                  directory.
449                  You must build it separately. MU source code is part of the
450                  distribution
451                  in the directory src/utils/MU with its own make file. You must compile
452                  MU
453                  before you initiate the OpenPegasus make.<br>
454                  A copy of the binary is made available as a zip file on the OpenPegasus
455                  WEB site.
456                  <p></p>
457 karl        1.12 <h1><a name="pop_peg_rep">Populate the Pegasus Repository</a> </h1>
458                  <p>
459                  Before using Pegasus you must populate the repository. Typically, this
460                  is done during the build process when you run the makefile. However,
461                  you
462                  can also do it manually after the Pegasus has been built. </p>
463                  <ol>
464                    <li>Register the MOF (Managed Object Format) file describing the
465                  skeleton of the object. </li>
466                    <li>Register a second MOF which only points out which lib*.so file to
467                  be loaded when a specific object is activated. </li>
468                  </ol>
469                  <p></p>
470 dave.sudlik 1.10 <p>
471 karl        1.12 The providers included with Pegasus are automatically entered into the
472                  repository
473                  by running the following command: <tt>make repository</tt>
474 dave.sudlik 1.10 </p>
475 karl        1.12 <p>
476                  The 'make repository' in the&nbsp; pegasus directory does three things:
477 dave.sudlik 1.10 </p>
478 karl        1.12 <ul>
479                    <li><span class="norm"></span> Removes the existing repository if one
480                  exists.</li>
481                    <li>Generates the CIM Schema v2.9 in the repository (skeleton of CIM
482                  objects).&nbsp; </li>
483                    <li><span class="norm"></span><font style="color: rgb(0, 0, 0);">Loads
484                  schema for CIM Server functions </font>(shutdown, add users, etc) and
485                  CIM indications
486                  (SNMP, Events, Alert, Threshold, etc)
487                  internal to the Pegasus. </li>
488                    <li>Registers included CIM Providers (libOSProvider.so,
489                  libDNSProvider.so, … ) in Pegasus (which are located in
490                  src/Providers)&nbsp; </li>
491                  </ul>
492                  <h1>
493                  <a name="reg_prov">Registering
494                  Providers in the Pegasus Environment</a></h1>
495                  <p>
496                  Pegasus registers providers with a set of provider registration
497                  classes, not using the provider qualifier as is done in most DMTF CIM
498                  CIMOM implementations today. This set of classes is close to but not
499 karl        1.12 exactly the same as the experimental DMTF definition (See the DMTF
500                  Interop
501                  schema, experimental versions starting with 2.6). This will be
502                  harmonized in the future when the DMTF scheme is moved to final
503                  status.&nbsp; </p>
504                  <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">Registration
505                  is performed by creating instances</font> of the
506                  registration classes that represent the provider module, providers,
507                  classes, etc. to be registered.&nbsp; The easiest way to create a new
508                  registration today is to copy from one of the existing registration
509                  MOFs.&nbsp; See the providers/sample/load directory for examples of
510                  several registration instance implementations that do work with
511                  OpenPegasus
512                  today.</p>
513 dave.sudlik 1.10 <h1>
514 karl        1.12 <a name="test">Testing an OpenPegasus Installation</a></h1>
515 dave.sudlik 1.10 <p>
516                  OpenPegasus includes an extensive set of test facilities as part of the
517                  CVS
518                  environment, including:
519                  </p>
520 h.sterling  1.9  <ul>
521 dave.sudlik 1.10   <li><b>Test Clients</b> - There are several clients that have been
522                  built specifically to test OpenPegasus, or parts of OpenPegasus,
523                  including
524 karl        1.12 TestClient, Client, CLI, ipinfo, osinfo, wbemexec, etc. See the
525                  	pegasus/src/Clients directory for more information. These programs require a
526 dave.sudlik 1.10 server complete with repository to be running.&nbsp; Note that some of
527                  these tests use classes and instances that are only installed with the
528                  "make testrepository" functions including test namespaces and extra
529                  classes and instances in those namespaces and additional providers from
530 karl        1.12 the pegasus/Providers/sample and pegasus/Providers/TestProviders directories. </li>
531 dave.sudlik 1.10   <li><b>Sample and test providers</b> -&nbsp; Test providers exist for
532 karl        1.12 the major provider types in the pegasus/Providers/sample directories and the 
533                  	pegasus/Providers/TestProviders directory </li>
534 dave.sudlik 1.10   <li><b>Unit Tests</b> - Most OpenPegasus functions include unit tests
535                  for
536                  the functions.&nbsp; These are normally executed with the "make tests"
537                  command which can be executed at many different levels of the source
538                  tree from the top level to execute all of the unit tests to individual
539                  directories.&nbsp; Usually the unit test functions can be found in test
540                  directories immediately below their corresponding source code
541                  (i.e&nbsp; common/tests is the unit test functions for the common
542                  directory). Unit tests are executed without the server being
543                  operational and normally do not require the existence of a Class
544                  repository. </li>
545                    <li><b>An end-to-end Test Suite</b> - the directory "test" contains a
546                  set of operations tests that cover the major CIM operations.&nbsp; See
547                  the make file TestMakefile in the PEGASUS_ROOT directory to execute
548                  these tests.&nbsp; This set of tests executes an extensive set of fixed
549                  tests and compares the results against predefined results.</li>
550 h.sterling  1.9  </ul>
551 karl        1.12 <h4><a name="test_icu">Testing with ICU enabled</a></h4>
552 dave.sudlik 1.10 <p>ICU (International Components for Unicode) refers to the set of
553                  libraries that OpenPegasus uses to run globalized. For example: these
554                  libraries are used
555                  to
556                  load messages in different languages, format currency and numbers
557                  according to
558                  a specific locale etc. In order to enable globalization in OpenPegasus,
559                  OpenPegasus
560                  must be built with ICU enabled, ie. the right environment variables
561                  must be
562                  set prior to running "make". Refer to the GlobalizationHOWTO.htm in the
563                  docs
564                  directory for details.<br>
565                  </p>
566                  <p>&nbsp;When users run "make poststarttests"
567                  to verify the integrity of a OpenPegasus download, a series of tests
568                  are
569                  run that
570                  require the cimserver to be running. These tests currently depend on
571                  specific
572                  messages returned from the server. When ICU is enabled, all messages
573 dave.sudlik 1.10 come from the resource bundles and these usually do not match the
574                  hardcoded default messages within OpenPegasus. These hardcoded default
575                  messages are what the various test programs expect in order to complete
576                  successfully. If the ICU enabled server is started without
577                  disabling message loading from the bundles, "make poststartests" will
578                  fail.
579                  In order to run "make poststarttests" successfully with ICU enabled, an
580                  environment variable called PEGASUS_USE_DEFAULT_MESSAGES must exist
581                  prior to
582                  starting the server. Once this is defined, when the cimserver starts,
583                  all
584                  messages generated will be the default hardcoded messages. This will
585                  enable
586                  "make poststarttests" to complete successfully. Once "make
587                  poststarttests" is
588                  complete, you should stop the cimserver and then undefine
589                  PEGASUS_USE_DEFAULT_MESSAGES. If this variable is left defined,
590                  OpenPegasus
591                  will not be able to load messages
592                  using ICU resource bundles.<br>
593                  </p>
594 dave.sudlik 1.10 <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">When
595                  running the make tests command with ICU enabled, the PEGASUS_MSG_HOME
596                  environment variable must be set to the home directory where the ICU
597                  resource bundles are built. By default the resource bundles are built
598                  into directories below PEGASUS_HOME/msg, so that should be the setting
599 karl        1.12 for PEGASUS_MSG_HOME.</font></p>
600                  <p></p>
601                  <h1>
602                  <a name="sec0">Security Considerations</a></h1>
603                  <p>Some of the steps of installing and running Pegasus have 
604                  security properties that you should be aware of. If you plan to administer a 
605                  Pegasus server, see the 'security considerations' section of the administrators 
606                  guide <pointer>. If you plan to write clients or providers for integration into 
607                  Pegasus, see the developer's security guidance.<br>
608                  </pointer></p>
609                  <hr>
610                  <p><font size="2"><i>Copyright (c) 2006 Hewlett-Packard Development Company, 
611                  L.P.; IBM Corp.;<br>
612                  EMC Corporation; Symantec Corporation; The Open Group.<br>
613 h.sterling  1.9  <br>
614 karl        1.12 Permission is hereby granted, free of charge, to any person obtaining a copy<br>
615                  of this software and associated documentation files (the "Software"), to<br>
616                  deal in the Software without restriction, including without limitation the<br>
617                  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or<br>
618                  sell copies of the Software, and to permit persons to whom the Software is<br>
619                  furnished to do so, subject to the following conditions:<br>
620                  <br>
621                  THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN<br>
622                  ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED<br>
623                  "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT<br>
624                  LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR<br>
625                  PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br>
626                  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN<br>
627                  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION<br>
628                  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</i></font></p>
629                  <hr>
630                  <p><i><font size="1"><big><big><span style="font-family: arial;">End of Document<br>
631 h.sterling  1.9  </span></big></big></font></i></p>
632 dave.sudlik 1.10 <p><span style="color: rgb(0, 0, 0);"></span> </p>
633 karl        1.12 
634                  <script language="javascript">postamble();</script>
635                  </body></html>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2