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