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