1 dave.sudlik 1.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Language" content="en-us">
5 <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
6 <meta name="ProgId" content="FrontPage.Editor.Document">
7 <meta http-equiv="Content-Type"
8 content="text/html; charset=windows-1252">
9 <title>OpenPegasus 2.6 README</title>
10 <link rel="stylesheet"
11 href="http://www.opengroup.org/stylesheets/info1+margins.css">
12 </head>
13 <body>
14 <hr>
15 <p><b>Abstract:</b> Installation, build, and operation
16 information on
17 the OpenPegasus Version 2.6.0
18 Release. Note that if this readme
19 conflicts with the documentation in the release notes or interface
20 definition documents for a particular release, those documents should
21 be considered authoritative. This is a simplified
22 dave.sudlik 1.1 overview to act as an
23 introduction to OpenPegasus.</p>
24 <hr>
25 <p align="center"><b><font size="5">OpenPegasus - A Manageability
26 Services Broker for the DMTF CIM/WBEM Standards
27 </font></b></p>
28 <p align="left"><b>Tagline:</b> OpenPegasus is an object manager for
29 DMTF CIM objects written in C++
30 and hosted by The Open Group </p>
31 <a href="#Overview">OpenPegasus Overview</a>
32 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a
33 href="#avail_of_peg">Availability</a><br>
34 <a href="#peg_sup_plat">Supported Platforms</a><br>
35 <a href="#peg_dep">Dependencies</a><br>
36 <a href="#cmnd">Commands</a><br>
37 <a href="#docs">Documentation</a><br>
38 <a href="#part">How to Participate</a><br>
39 </blockquote>
40 <a href="#inst_peg">Installing OpenPegasus</a>
41 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"><a
42 href="#download">Download or Checkout</a><br>
43 dave.sudlik 1.1 <a href="#vfy_req_sw">Verify Dependencies</a><br>
44 <a href="#set_envt_var">Set the Environment Variables</a><br>
45 <a href="#bld_peg">Build the Executables</a><br>
46 <a href="#pop_peg_rep">Populate the Repository</a><br>
47 <a href="#reg_prov">Register Providers</a><br>
48 <a href="#note_bld_peg_lnx">Notes
49 about Building on Linux</a><br>
50 <a href="#bld_peg_win">Notes about Building
51 on Windows</a><br>
52 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a
53 href="#mu_utility">The MU Utility</a><br>
54 </blockquote>
55 <a href="#note_bld_peg_ssl">Notes about
56 Building with SSL</a><br>
57 </blockquote>
58 <a href="#test">Testing an OpenPegasus installation</a><br>
59 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a
60 href="#test_icu">Testing with ICU enabled</a><br>
61 </blockquote>
62 <hr>
63 <h1><a name="Overview">OpenPegasus Overview</a> </h1>
64 dave.sudlik 1.1 <div style="margin-left: 40px;"><b>OpenPegasus </b>(also referred to
65 as <b>Pegasus</b>) is an open-source CIM Server for DMTF CIM objects.
66 It is
67 written
68 in C++ and includes the Object manager (CIMOM), a set of defined
69 interfaces, an implementation of the CIM Operations over HTTP
70 operations
71 and their cimxml HTTP encodings, and Interface libraries
72 for both clients and providers. It is maintained
73 to be compliant with
74 the DMTF CIM and WBEM specifications with
75 exceptions
76 noted in the documentation.<br>
77 <br>
78 <span class="norm"></span>OpenPegasus includes components for: <br>
79 </div>
80 <ol style="margin-left: 40px;">
81 <li>A DMTF compliant CIM Server that processes CIM operations, CIM
82 Indications, and
83 includes class and instance repositories and interfaces for creating
84 CIM
85 dave.sudlik 1.1 Providers and CIM Clients.</li>
86 <li>Provider interfaces so that providers may be build in multiple
87 languages (i.e.
88 C++, C, Java).</li>
89 <li>A number of CIM Providers.</li>
90 <li>A MOF compiler.</li>
91 <li>A number of CIM Clients to provide usage examples, CIM Server
92 test functions,
93 and administrative
94 functions.</li>
95 <li>More complete information on the exact functions
96 and their functional state is available from the release notes for each
97 OpenPegasus release, and at the OpenPegasus <a
98 href="http://www.openpegasus.org/page.tpl?CALLER=index.tpl&ggid=799">Feature
99 Status Page</a>.</li>
100 </ol>
101 <div style="margin-left: 40px;">OpenPegasus is open source and is
102 covered under the MIT open-source
103 license.
104 </div>
105 <p style="margin-left: 40px;">OpenPegasus is being developed and
106 dave.sudlik 1.1 maintained under the auspices of
107 The
108 Open
109 Group. OpenPegasus is maintained under the license defined in the
110 doc
111 directory of this release. The specific file is: <font
112 style="color: rgb(0, 0, 0);">pegasus/doc/license.txt</font>.
113 This licensing is intended to support as
114 wide a
115 distribution as possible with minimal demands on the users.
116 </p>
117 <p style="margin-left: 40px;">More information on this project, access
118 to the CVS, and
119 documentation<span style="color: rgb(255, 0, 0);"><span
120 style="text-decoration: line-through;"></span></span> is available
121 from the Ope<span style="color: rgb(255, 0, 0);"><span
122 style="text-decoration: line-through;"></span></span>nPegasus web
123 site.
124 </p>
125 <p style="margin-left: 40px;"> <a target="blank"
126 href="http://www.openpegasus.org/">http://www.openpegasus.org</a><br>
127 dave.sudlik 1.1 </p>
128 <p style="margin-left: 40px;">Note
129 that all references in this readme to files in the OpenPegasus source
130 tree are of the form pegasus/..., where "pegasus" is the top-level
131 directory and also the name of the OpenPegasus module in CVS.<br>
132 </p>
133 <h2><a name="avail_of_peg">Availability</a></h2>
134 <div style="margin-left: 40px;">OpenPegasus is distributed as open
135 source under the MIT open-source
136 license. The distribution is available via CVS, and as snapshot images
137 in
138 tar, zip, and (self-extracting) exe
139 file
140 formats on the OpenPegasus web site.</div>
141 <ol style="color: rgb(0, 0, 0);">
142 OpenPegasus can be obtained via any of the following:<br>
143 <ol>
144 <li>Released tarballs (see <a
145 href="http://www.openpegasus.org/page.tpl?CALLER=page.tpl&ggid=392">ZIP/GZ/EXE
146 link for this release</a>)</li>
147 <li>CVS (See <a
148 dave.sudlik 1.1 href="http://www.openpegasus.org/protected/page.tpl?CALLER=index.tpl&ggid=667">CVS
149 code repository</a> for
150 more information)</li>
151 <li>Linux RPMs
152 (see <a
153 href="http://www.openpegasus.org/page.tpl?CALLER=page.tpl&ggid=392">RPM
154 link for this release</a>)</li>
155 </ol>
156 </ol>
157 <p style="margin-left: 40px;"><span class="norm"></span><font
158 style="color: rgb(0, 0, 0);">CVS
159 write accounts are managed by Martin Kirk of The Open Group </font>
160 (<a href="mailto:%28k.m.kirk@opengroup.org">m.kirk@opengroup.org</a>)
161 </p>
162 <h2><a name="peg_sup_plat">Supported Platforms</a></h2>
163 <p style="margin-left: 40px;">OpenPegasus is regularly tested against a
164 variety of platforms by the
165 development group. The results of the nightly tests can be found
166 here on our <a
167 href="http://cvs.opengroup.org/cgi-bin/pegasus-build-status.cgi">Nightly
168 Build and Test Status</a> page. The Release Notes provide
169 dave.sudlik 1.1 additional details
170 regarding the platforms.
171 PEP 287 contains the Release Notes for the 2.6.0 release.<br>
172 </p>
173 <h2><a name="peg_dep">Dependencies</a></h2>
174 <p style="margin-left: 40px;">
175 We have worked to minimize the dependence of OpenPegasus on other
176 software
177 packages and tools. Currently OpenPegasus has the following
178 dependencies:
179 </p>
180 <ol style="margin-left: 40px;">
181 <li><b>GNUMAKE</b> - To simplify the building of OpenPegasus across
182 multiple platforms we
183 have standardized on a set of build tools including: GNUMAKE. We are
184 using GNUMAKE 3.79.1 successfully both in Windows and Linux
185 environments. It is available from <a href="http://www.gnu.org">http://www.gnu.org</a>.
186 </li>
187 <li><b>FLEX </b>and<b> BISON</b> - These tools were used to develop
188 the
189 MOF
190 dave.sudlik 1.1 compiler and WQL
191 parser. <font style="color: rgb(0, 0, 0);">These tools are
192 required only for
193 development of the parsers, not for building OpenPegasus.</font></li>
194 <li><b>DOC++ </b>- The OpenPegasus documentation is taken from a
195 combination of text files
196 and header files themselves. This documentation is
197 formatted with DOC++ and GAWK. <span class="norm"></span><font
198 style="color: rgb(0, 0, 0);">These tools are required to build the
199 interface documentation set.</font> </li>
200 <li><b>ICU Internationalization libraries</b> - These libraries are
201 used as the basis for message catalogs for message
202 internationalization. See the ICU website
203 (<a href="http://icu.sourceforge.net/">http://icu.sourceforge.net</a>)
204 for more information on these
205 libraries.<span style="color: rgb(255, 0, 0);"></span><br>
206 </li>
207 <li><span style="font-weight: bold;"></span><b>OpenSSL </b>- If it
208 is intended to use SSL on the
209 communication protocol, the OpenSSL libraries are required (<a
210 href="http://www.openssl.org">http://www.openssl.org</a>).</li>
211 dave.sudlik 1.1 <li><span style="font-weight: bold;">OpenSLP</span> - If you choose
212 to use
213 OpenSLP as your choice of SLP implementations, then it will need to be
214 installed and available to OpenPegasus. Refer to the
215 PEGASUS_USE_OPENSLP and PEGASUS_OPENSLP_HOME build variables in PEP
216 277, and the OpenSLP web site (<a href="http://www.openslp.org">http://www.openslp.org</a>).</li>
217 <li><span style="font-weight: bold;">zlib</span> - If you choose to
218 enable the compressed repository feature with the
219 PEGASUS_ENABLE_COMPRESSED_REPOSITORY build variable, you will need to
220 install the gzip (GNU zip) compression utility. Refer to
221 readme.compressed_repository in OpenPegasus source tree, and the gzip
222 web site (<a style="color: rgb(204, 51, 204);"
223 href="http://www.gzip.org">http://www.gzip.org</a>).<br>
224 </li>
225 </ol>
226 <p style="margin-left: 40px;"><span style="font-weight: bold;">NOTE</span>:
227 A set of the required
228 tools for building on the Windows platform is available on the
229 OpenPegasus <a
230 href="http://www.openpegasus.org/pb/index.tpl?CALLER=index.tpl">Tools</a>
231 web page.<br>
232 dave.sudlik 1.1 </p>
233 <h2><a name="cmnd">Commands</a></h2>
234 <p style="margin-left: 40px;">
235 The manpages for each of the commands are in the pegasus/rpm/manLinux/
236 directory (from CVS). </p>
237 <p style="margin-left: 40px;">To see simple help for each command,
238 invoke it with the "--help" option.<br>
239 </p>
240 <div style="margin-left: 40px;"><span
241 style="font-family: times new roman;"></span><span
242 style="font-weight: bold;" class="norm"></span><span
243 style="font-family: times new roman; font-weight: bold;"><span
244 class="norm"></span></span><span style="font-weight: bold;">Some of
245 the basic commands:</span>
246 <br>
247 </div>
248 <ul>
249 <ul>
250 <li>cimserver (Start the server
251 cimserver)</li>
252 <li>cimserver -s (Shuts down the cimserver)</li>
253 dave.sudlik 1.1 <li>cimserver traceLevel=4 traceComponents=ALL (Starts server
254 with
255 config flags)</li>
256 <li>cimprovider -l -s (Lists providers and their status)</li>
257 <li>cimprovider -e -m OperatingSystemModule (Enables the
258 OperatingSystem provider)</li>
259 <li>cimuser -a -u guest _w <ThePassword> (Adds the user <span
260 style="font-style: italic;">guest</span> with specified password)<br>
261 </li>
262 <li>cimuser -l (Lists the users )</li>
263 <li>cimconfig -l -c (Lists the
264 current config options and their current values)<br>
265 </li>
266 </ul>
267 </ul>
268 <div style="margin-left: 40px;"><span style="font-weight: bold;">NOTE</span>:
269 <br>
270 </div>
271 <ol style="margin-left: 40px;">
272 <li>Refer to the admin guide in pegasus/doc/Admin_Guide_Release.pdf
273 for
274 dave.sudlik 1.1 more information about administering the OpenPegasus CIM Server.</li>
275 <li>There are some differences between Windows and other
276 platforms in
277 starting the server as a daemon/service. Whereas most supported
278 platforms use
279 the OpenPegasus <span style="font-weight: bold;">daemon</span>
280 configuration option to start the CIM Server as a daemon, on
281 Windows it
282 must be specifically installed as a service (ex. cimserver -install)
283 and then
284 started as a service (cimserver -start). The cimserver --help option
285 explains the
286 exact format of the start and stop options.</li>
287 <li>The cimuser command is used to manage OpenPegasus users only when
288 the CIM Server is compiled without the PEGASUS_PAM_AUTHENTICATION
289 environment variable defined. See PEP
290 277 for more information.<span style="color: rgb(204, 51, 204);"></span><br>
291 </li>
292 </ol>
293 <font><font color="RED"><span style="color: rgb(0, 0, 0);"></span></font></font><span
294 style="font-family: monospace;"></span>
295 dave.sudlik 1.1 <h2><a name="docs">Documentation</a></h2>
296 <p style="margin-left: 40px;"><span
297 style="color: rgb(255, 0, 0); text-decoration: line-through;"></span>Much
298 of
299 OpenPegasus
300 is documented in the <a
301 href="http://www.openpegasus.org/pp/index.tpl?CALLER=index.tpl">Pegasus
302 Enhancement Process (PEPs)</a> which are the basis for approval of
303 OpenPegasus functionality, changes, plans, etc. The approved PEPs
304 are publicly available on the OpenPegasus web site.<span
305 style="color: rgb(255, 0, 0);"><br>
306 </span></p>
307 <p style="margin-left: 40px;">Other
308 documentation available
309 is an api document (creatable
310 from the
311 source tree, see pegasus/doc/apidoc) and other miscellaneous
312 documentation
313 in the doc directory. Also, there is a set of Release Notes for each
314 release in the pegasus root
315 source directory of CVS.</p>
316 dave.sudlik 1.1 <p style="margin-left: 40px;">Note that the <a
317 href="http://www.openpegasus.org/">OpenPegasus web
318 site</a> will be the source
319 of most
320 documentation in the future, and today is the source of most discussion
321 and
322 design documentation. </p>
323 <h2><a name="part">How to Participate</a></h2>
324 <p style="margin-left: 40px;"><span class="norm"></span><font
325 style="color: rgb(0, 0, 0);">Contributors
326 are welcome to participate in the OpenPegasus development effort. Join
327 the mailing list by going to the <a
328 href="http://www.openpegasus.org/mailinglists.tpl?CALLER=index.tpl">Mailing
329 Lists</a> web page from the OpenPegasus site.</font></p>
330 <h1>
331 <a name="inst_peg">Installing OpenPegasus</a> </h1>
332 <h2><a name="download"></a>Download or Checkout</h2>
333 <p style="margin-left: 40px;">Refer to the <a href="#avail_of_peg">Availability</a>
334 section for instructions on obtaining source code.<br>
335 </p>
336 <p style="margin-left: 40px;">If you want to install pre-built Pegasus
337 dave.sudlik 1.1 executables instead of building from source code, then refer to the <a
338 href="http://www.openpegasus.org/pr/">RPM installation instructions</a>.<br>
339 </p>
340 <h2><strong><strong><a name="vfy_req_sw"></a>Verify Dependencies</strong></strong><strong><strong><span
341 style="font-weight: normal;"></span></strong></strong></h2>
342 <p style="margin-left: 40px;"><strong><strong><span
343 style="font-weight: normal;">Be</span></strong></strong>fore
344 you build, install, or run OpenPegasus, be sure you have the proper set
345 of software
346 it depends on. Refer to the section <a href="#peg_dep">Dependencies</a>
347 for
348 the complete list.<br>
349 </p>
350 <strong></strong>
351 <h2><a name="set_envt_var"><strong>Set the Environment
352 Variables</strong></a></h2>
353 <p style="margin-left: 40px;">Before building, installing, or running
354 OpenPegasus, some environment variables may
355 have to be defined or updated. See PEP 277 for the full list of
356 environment variables and configuration options for OpenPegasus. The
357 minimum set is:<br>
358 dave.sudlik 1.1 </p>
359 <ul>
360 <ul>
361 <li>PEGASUS_ROOT -- The directory
362 containing the pegasus root directory from CVS.</li>
363 <li>PEGASUS_HOME -- The directory
364 that will contain all output from building and running OpenPegasus, it
365 can be the same as PEGASUS_ROOT if desired.</li>
366 <li>PEGASUS_PLATFORM -- The
367 platform on which OpenPegasus is being built.<br>
368 </li>
369 </ul>
370 </ul>
371 <h2><a name="bld_peg"></a>Build the Executables<br>
372 </h2>
373 <div style="margin-left: 40px;">OpenPegasus
374 is compiled and linked using a make structure that recurses through the
375 source tree.<br>
376 <font><font color="RED"><span
377 style="color: rgb(0, 0, 0); font-weight: bold;"><br>
378 Makefile commands
379 dave.sudlik 1.1 </span></font></font><br>
380 <div style="margin-left: 40px;"><font><font color="RED"><span
381 style="color: rgb(0, 0, 0); font-weight: bold;"></span></font></font></div>
382 <br>
383 Open<font><font color="RED"><span
384 style="color: rgb(0, 0, 0); font-weight: bold;"></span></font></font>Pegasus
385 includes several Makefiles that enable
386 you to quickly build or
387 refresh files for the server, clients, providers, test cases, and
388 repository. To use these Makefiles, type "make" followed by one of the
389 supplied targets. <br>
390 <br>
391 For more information on the
392 available make targets, enter "make usage" from the PEGASUS_ROOT
393 directory. A recommended minimum set
394 to know are:
395 <br>
396 <ul>
397 <li>usage -- Explains the
398 available make targets in some detail.</li>
399 <li>new -- Clean out all
400 dave.sudlik 1.1 objects, libs, executables, and the repository.</li>
401 <li>build -- Builds
402 dependencies, compiles, links, and installs the server. After this
403 OpenPegasus is ready to run.</li>
404 <li>alltests - Builds the
405 repository entries and other resources required by the tests, and then
406 executes all automated tests.</li>
407 </ul>
408 <font><font color="RED"><span
409 style="color: rgb(0, 0, 0); font-weight: bold;"></span><span
410 style="color: rgb(0, 0, 0);">For a comprehensive</span></font></font>
411 list of the
412 make targets, refer to pegasus/Makefile
413 at the top of the OpenPegasus source directory.<font><font color="RED"><span
414 style="color: rgb(0, 0, 0);"></span></font></font><font
415 style="text-decoration: line-through; color: rgb(204, 51, 204);"><span
416 style="font-weight: bold;"></span></font><br>
417 </div>
418 <ul>
419 </ul>
420 <h2><a name="pop_peg_rep">Populate the Repository</a> </h2>
421 dave.sudlik 1.1 <p style="margin-left: 40px;">
422 Before using OpenPegasus you must populate the repository. Typically,
423 this
424 is done during the build process by the 'make repository' target<span
425 style="color: rgb(255, 0, 0);"><span
426 style="text-decoration: line-through;"></span></span>. However,
427 you
428 can also compile MOF (Managed Object Format) code manually with the
429 cimmof compiler.<br>
430 </p>
431 <p style="margin-left: 40px;">The 'make repository' target in pegasus<span
432 style="color: rgb(255, 0, 0);"><span
433 style="text-decoration: line-through;"></span></span>/Makefile doe<span
434 style="color: rgb(255, 0, 0);"><span
435 style="text-decoration: line-through;"></span></span>s several things:
436 </p>
437 <ul>
438 <ul>
439 <li><span style="color: rgb(0, 0, 0);">Removes the existing
440 repository (if one exists).</span><br>
441 </li>
442 dave.sudlik 1.1 <li>Generates the default
443 CIM Schema (currently v2.9)
444 in the repository (skeleton of CIM
445 objects). Refer to
446 PEGASUS_CIM_SCHEMA in PEP 277 for alternate versions.<br>
447 </li>
448 <li>Loads
449 schema for CIM Server functions (shutdown, add users, etc) and
450 CIM indications
451 (SNMP, Events, Alert, Threshold, etc)
452 internal to Pegasus. </li>
453 <li>Registers included CIM Providers (libOSProvider.so,
454 libDNSProvider.so, … ) in OpenPegasus (which are located in
455 src/Providers) <br>
456 </li>
457 </ul>
458 </ul>
459 <h2><a name="reg_prov">Register
460 Providers</a></h2>
461 <p style="margin-left: 40px;">OpenPegasus registers Providers using a
462 set of provider registration classes
463 dave.sudlik 1.1 encoded in MOF. This set of classes is close
464 to, but not
465 exactly the same as, the experimental DMTF definition (See the DMTF
466 Interop
467 schema, experimental versions starting with 2.6). This will be
468 harmonized in the future when the DMTF schema is moved to final
469 status. </p>
470 <p style="margin-left: 40px;">Registration
471 is performed by creating instances of the
472 registration classes that represent the provider module, providers,
473 capabilities, etc. to be
474 registered. The easiest way to create a new
475 registration today is to copy from one of the existing registration
476 MOFs. See the src/Providers/sample/Load directory for examples of
477 several registration instance implementations that do work with
478 OpenPegasus
479 today.</p>
480 <h2><a name="note_bld_peg_lnx">Notes about
481 Building on Linux </a></h2>
482 <p style="margin-left: 40px;">
483 To build OpenPegasus on Linux, ensure that you you have the necessary
484 dave.sudlik 1.1 environment
485 variables set (eg. PEGASUS_HOME, PEGASUS_ROOT, PEGASUS_PLATFORM).
486 For
487 32 bit linux, the definition of PEGASUS_PLATFORM is normally
488 LINUX_IX86_GNU. Use the g++
489 compiler to compile and link the executables.<br>
490 </p>
491 <h2><a name="bld_peg_win">Notes
492 about Building on Windows </a></h2>
493 <p style="margin-left: 40px;">
494 Use of Windows 2000 SP3 or later is recommended. OpenPegasus is
495 regularly tested on both Windows 2000 and Windows XP using the
496 Microsoft Visual C++ compilers.</p>
497 <p style="margin-left: 40px;">Today we build OpenPegasus on Windows
498 using a set of Makefiles
499 contained
500 in the source distribution, the Microsoft compilers (DevStudio 5.x is
501 not supported, Visual Studio 6.0 (SP5) or later is supported) and the
502 GNUMAKE
503 make utility. Note that you MUST have the OpenPegasus <a
504 href="#mu_utility">mu.exe </a>utility compiled and available
505 dave.sudlik 1.1 before trying to compile OpenPegasus on the normal windows platform.
506 The
507 following is the basic setup steps for the environment.
508 </p>
509 <p style="margin-left: 40px;">Setup the environment variables and path
510 for the Micrososft Visual C
511 compiler.
512 Typically this can be done by running the VCVARS32.BAT file supplied
513 with Microsoft Visual C++. (contained in the same directory as cl.exe).
514 </p>
515 <p style="margin-left: 40px;">For Windows, try the following for an
516 example environment: </p>
517 <blockquote>
518 <pre style="margin-left: 40px;">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 to 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
519 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, it can be the same as PEGASUS_ROOT<br>set PEGASUS_HOME=%PEGASUS_ROOT% <br>REM set PEGASUS_PLATFORM for Windows<br
520 style="color: rgb(255, 0, 0);">set PEGASUS_PLATFORM=WIN32_IX86_MSVC<br>REM setup the path to the runtime files. <br>set path=%path%;%PEGASUS_HOME%\bin <br></pre>
521 </blockquote>
522 <h3>
523 <a name="mu_utility">The MU Utility </a></h3>
524 <p style="margin-left: 40px;">
525 In order to provide a consistent build structure across multiple
526 dave.sudlik 1.1 platforms, we
527 developed a utility to provide a consistent set of functions across
528 these platforms. The MU utility is a simple utility that
529 contains
530 many
531 commands. For example:
532 </p>
533 <p style="margin-left: 40px;"><font face="Courier New">
534 C:\> mu rm myfile.cpp yourfile.cpp </font>
535 </p>
536 <p style="margin-left: 40px;">You may type "mu" to get a list of valid
537 commands. Here are some
538 of them:
539 </p>
540 <p style="margin-left: 40px;">
541 rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
542 </p>
543 <p style="margin-left: 40px;">The MU utility supports globing
544 (expansion of wildcards) so
545 you can do things like this:
546 </p>
547 dave.sudlik 1.1 <p style="margin-left: 40px;"><font face="Courier New">
548 C:\> mu rm *.obj *.exe </font>
549 </p>
550 <p style="margin-left: 40px;">MU is required to build under the Windows
551 environment. MU is
552 available as part
553 of the distribution of OpenPegasus.<br>
554 </p>
555 <div style="margin-left: 40px;">NOTE: The binary for MU.EXE is not
556 distributed in the OpenPegasus bin
557 directory.
558 You must build it separately. MU source code is part of the
559 distribution
560 in the directory src/utils/MU with its own make file. You must compile
561 MU
562 before you initiate the OpenPegasus make. A copy of the binary is made
563 available as a zip file on the OpenPegasus <a
564 href="http://www.openpegasus.org/pb/index.tpl?CALLER=index.tpl">Tools</a>
565 web page.<br>
566 </div>
567 <h2><a name="note_bld_peg_ssl">Notes about
568 dave.sudlik 1.1 Building with SSL
569 </a></h2>
570 <p style="margin-left: 40px;">
571 To build with SSL you need the OpenSSL libraries and header files. They
572 are NOT distributed with OpenPegasus. Make sure you have them in a
573 standard
574 directory so OpenPegasus can find them. If that's not
575 the case, set the environment variable OPENSSL_HOME= to point where
576 your OpenSSL
577 installation is (refer to PEP 277
578 for more details on build variables).<br>
579 </p>
580 <p style="margin-left: 40px;">You
581 must also have the PEGASUS_HAS_SSL variable defined. Then when you
582 build
583 OpenPegasus, it
584 will include the SSL support.
585 </p>
586 <div style="margin-left: 40px;">Refer to the OpenPegasus SSL Guide
587 (found in doc/PegasusSSLGuidelines.htm)
588 for details on
589 dave.sudlik 1.1 using OpenPegasus with SSL,
590 creating SSL certificates, etc.<br>
591 </div>
592 <h1>
593 <a name="test">Testing an OpenPegasus Installation</a></h1>
594 <p style="margin-left: 40px;">
595 OpenPegasus includes an extensive set of test facilities as part of the
596 CVS
597 environment, including:
598 </p>
599 <ul>
600 <ul>
601 <li><b>Test Clients</b> - There are several clients that have been
602 built specifically to test OpenPegasus, or parts of OpenPegasus,
603 including
604 TestClient, Client, cimcli, ipinfo,
605 osinfo, wbemexec,
606 etc. See the
607 src/Clients directory for more information. These programs require a
608 running CIM Server with a
609 complete repository. Note that some of
610 dave.sudlik 1.1 these tests use classes and instances that are only installed with the
611 "make testrepository" target including: test namespaces, extra
612 classes and instances in those namespaces, and additional sample and
613 test providers.<span
614 style="color: rgb(255, 0, 0); text-decoration: line-through;"></span> </li>
615 <li><b>Sample and Test Providers</b> - Test providers exist
616 for
617 the major provider types in the src/Providers/sample
618 and src/Providers/TestProviders directories. </li>
619 <li><b>Unit Tests</b> - Most OpenPegasus functions include unit
620 tests
621 for
622 the functions. These are normally executed with the "make
623 unittests"
624 top-level target, or "make tests"
625 which can be executed at many different levels of the source
626 tree. Usually the unit test functions can be found
627 in test
628 directories immediately below their corresponding source code
629 (i.e Common/tests contains the unit test
630 functions for the Common
631 dave.sudlik 1.1 directory). Unit tests are executed with the CIM Server shutdown and
632 normally do not require the existence of class definitions in the
633 repository. </li>
634 <li><b>An end-to-end Test Suite</b> - the directory "test" contains
635 a
636 set of operatio<span
637 style="color: rgb(255, 0, 0); text-decoration: line-through;"></span>n
638 tests that cover the major CIM Operations. See<span
639 style="color: rgb(255, 0, 0); text-decoration: line-through;"></span>
640 TestMakefile in the PEGASUS_ROOT directory to execute
641 these tests. This set of tests executes an extensive set of fixed
642 tests and compares the results against predefined results.</li>
643 </ul>
644 </ul>
645 <h2><a name="test_icu">Testing with ICU enabled</a></h2>
646 <p style="margin-left: 40px;">ICU (International Components for
647 Unicode) refers to the set of
648 libraries that OpenPegasus uses to run with globalization support. For
649 example, these
650 libraries are used
651 to
652 dave.sudlik 1.1 load messages in different languages, format currency and numbers
653 according to
654 a specific locale etc. In order to enable globalization, OpenPegasus
655 must be built with ICU enabled, ie. the right environment variables
656 must be
657 set prior to running "make". Refer to the GlobalizationHOWTO.htm in the
658 pegasus/docs
659 directory for details.<br>
660 </p>
661 <p style="margin-left: 40px;">When users run "make servertests"
662 to verify the integrity of an OpenPegasus download, a series of tests
663 are
664 run that
665 require the CIM Server to be running. These tests currently depend on
666 specific
667 messages returned from the CIM Server. When ICU is enabled, all
668 messages
669 come from the resource bundles and these usually do not match the
670 hardcoded default messages within OpenPegasus. These hardcoded default
671 messages are what the various test programs expect in order to complete
672 successfully. If the ICU-enabled CIM Server is started without
673 dave.sudlik 1.1 disabling message loading from the bundles, "make servertests"
674 will
675 fail.
676 In order to run "make servertests"
677 successfully with ICU enabled, an
678 environment variable called PEGASUS_USE_DEFAULT_MESSAGES must be
679 defined
680 prior to
681 starting OpenPegasus. Once
682 this is defined, when OpenPegasus starts,
683 all
684 messages generated will be the default hardcoded messages. This will
685 enable
686 "make servertests"
687 to complete successfully. Once "make
688 servertests"
689 is
690 complete, you should stop OpenPegasus and
691 then undefine
692 PEGASUS_USE_DEFAULT_MESSAGES. If this variable is left defined,
693 OpenPegasus
694 dave.sudlik 1.1 will not be able to load messages
695 using ICU resource bundles.<br>
696 </p>
697 <p style="margin-left: 40px;">When
698 running the "make unittests"
699 command with ICU enabled, the PEGASUS_MSG_HOME
700 environment variable must be set to the home directory where the ICU
701 resource bundles are built. By default the resource bundles are built
702 into directories below PEGASUS_HOME/msg, so that should be the setting
703 for PEGASUS_MSG_HOME.<font style="color: rgb(0, 0, 0);"><br>
704 </font></p>
705 <hr>
706 <p><br>
707 Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;<br>
708 EMC Corporation; Symantec Corporation; The Open Group.<br>
709 <br>
710 Permission is hereby granted, free of charge, to any person obtaining a
711 copy<br>
712 of this software and associated documentation files (the "Software"), to<br>
713 deal in the Software without restriction, including without limitation
714 the<br>
715 dave.sudlik 1.1 rights to use, copy, modify, merge, publish, distribute, sublicense,
716 and/or<br>
717 sell copies of the Software, and to permit persons to whom the Software
718 is<br>
719 furnished to do so, subject to the following conditions:<br>
720 <br>
721 THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED
722 IN<br>
723 ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS
724 PROVIDED<br>
725 "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
726 BUT NOT<br>
727 LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR<br>
728 PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br>
729 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
730 AN<br>
731 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
732 CONNECTION<br>
733 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
734 <hr>
735 </body>
736 dave.sudlik 1.1 </html>
|