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