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