version 1.62, 2002/02/18 14:39:06
|
version 1.152, 2002/06/08 13:42:55
|
|
|
CHANGE LOG FOR PEGASUS | CHANGE LOG FOR PEGASUS |
| |
|
Version 1.10 - Started 5 April |
|
|
|
Code Freeze in Preperation for V2 Release |
|
From here forward, We are fixing bugs. |
|
TAG: Version_1_10 |
|
|
|
----------------------------------------------------------------- |
|
Version 1.09 - Started 5 April 2002 |
|
TAG: Version_1_09. |
|
|
|
1. 5 April 2002 (KS) Update version to 1.09. TAG, and took snapshot. |
|
|
|
2. (Roger Kumpf - HP) 5 Apr 2002 - Modified the CIMOperationResponseMessage |
|
class and its subclasses to contain a CIMException instead of a |
|
CIMStatusCode and String description. This allows extra information in |
|
a CIMException, such as file name and line number, to be carried |
|
internally throughout the system. |
|
|
|
This change creates a single place where CIMExceptions are converted |
|
to an error code and description to be written out in XML. This |
|
single place controls the ability to tune what gets included in the |
|
error description, as well as providing a convenient place to trace |
|
errors that get returned to clients. In particular, client applications |
|
currently see messages that contain redundant error code information, |
|
such as: |
|
|
|
CIM_ERR_INVALID_PARAMETER: One or more parameter values passed |
|
to the method were invalid: "CIM_ERR_INVALID_PARAMETER: One |
|
or more parameter values passed to the method were invalid: |
|
"Unrecognized parameter "Bogus""" |
|
|
|
The CIMOperationResponseMessage change will allow the redundant |
|
information to be eliminated from the messages. |
|
|
|
3. (KS) 7 April 2002- Minor really bad hack to systemwindows.cpp getcurrenttime |
|
after roger fixed timevalue. |
|
|
|
4. (DME) 7 April 2002 Added support for HPUX running on IA64 hardware. |
|
|
|
5. (DME) 7 April 2002 Update master result file for MOF Compiler CLI tests. |
|
Update master result file of wbemexec CLI tests. |
|
|
|
6. (Ramnath Ravindran - Compaq) 8 Apr 2002 - Modified a libraries.mak file in the src/Pegasus/Security/Authentication/tests directory in order to fix the |
|
build on Tru64. |
|
|
|
7. (Roger Kumpf - HP) 8 Apr 2002 - The RETURNVALUE and IRETURNVALUE elements |
|
of the XML encoding of operation responses had been treated as mandatory. |
|
The client response decoder has been updated to make those elements |
|
optional for operations that do not require a return value. The server |
|
response encoder has been updated not to include those elements when the |
|
request does not include a return value. |
|
|
|
8. (Roger Kumpf - HP) 9 Apr 2002 - Updated the Instance, Association, and |
|
Class provider interfaces to use CIMPropertyList instead of Array<String> |
|
for the propertyList parameters. All providers that implement a method |
|
with a propertyList parameter must be modified in accordance with this |
|
change. All providers linked into the Pegasus build have been updated. |
|
|
|
9. (Roger Kumpf - HP) 11 Apr 2002 - Defined an HTTP error message to be |
|
returned to the CIMClient when an HTTP error response is returned. |
|
Added a method to parse the status line of an HTTP response. |
|
|
|
10. (Roger Kumpf - HP) 11 Apr 2002 - Changed the MessageQueue::getQueueName() |
|
method from virtual to non-virtual, and removed that method definition |
|
from all the subclasses. To make sure that the MessageQueue class gets |
|
the queue name value, the default value for the queue name parameter to |
|
the MessageQueue constructor was removed. Constants were defined in |
|
Constants.h for all the queue names currently used in Pegasus. The |
|
places where those queue names were being used for lookup were also |
|
changed to use the constants. |
|
|
|
11. (Roger Kumpf - HP) 12 Apr 2002 - Defined an HTTPError exception to |
|
report non-200-OK HTTP responses back to client applications. Added |
|
an HTTPErrorMessage class to hold information about an HTTP error |
|
response. Added support in the CIMOperationResponseDecoder to |
|
process HTTP error responses and turn them into HTTPErrorMessages. |
|
Added support in CIMClient to process HTTPErrorMessages and throw an |
|
HTTP error. This functionality required fundamental changes in the |
|
way CIMClient processes messages. It can no longer search its queue |
|
for a message of the expected type. Instead, is assumes that no |
|
messages should be on its queue unless it has sent a request to the |
|
encoder. In that case, it assumes that any message on its queue is |
|
the response to that request. |
|
|
|
12. (Denise Eckstein - HP) 12 Apr 2002 - Extended versioning strategy |
|
to allow platform-specific version strings. |
|
|
|
13. (Denise Eckstein - HP) 14 Apr 2002 - Renamed shared library for |
|
ManagedSystem/OperatingSystem provider so that it would not |
|
conflict with library name of generic/OperatingSystem provider. |
|
|
|
14. (Denise Eckstein - HP) 14 Apr 2002 - Added compile flags _REENTRANT and RWSTD_MULTI_THREAD flags for platform_HPUX_PARISC_ACC. |
|
|
|
|
|
15. (Nag Boranna - HP) 15 Feb 2002 - HP-Nag: Added PAM based user |
|
authentication module. The implementation is available only on Unix |
|
platforms. The PAM module is optional and it can be built by setting |
|
the environment variable PEGASUS_PAM_AUTHENTICATION." |
|
|
|
16. (Sushma Fernandes - HP) 15 Apr 2002 - Implemented static methods |
|
Uint64 getDifference(CIMDateTime, CIMDateTime), to get the difference |
|
between two CIMDateTimes and CIMDateTime getCurrentDateTime(), to return |
|
the current date time as CIMDateTime in the CIMDateTime class. Also added |
|
method Boolean isInterval(), to check if the CIMDateTime object is an |
|
interval. |
|
|
|
17. (Nitin Upasani - HP) 15 Apr 2002 - Improved Consumer interface with |
|
indications. Now indications can be displayed using sample |
|
DisplayConsumer. To test, create Handler with destination as |
|
localhost:5988/logicalname. Create a file consumer_list.dat in your |
|
PEGASUS_HOME directory and then ass entry as follows: |
|
logicalname = DisplayConsumer |
|
This will help ConsumerTable to load the DisplayConsumer to consume |
|
the indication passed through ExportServer (CIMExportRequestDispathcer). |
|
|
|
18. (Yi Zhou - HP) 15 Apr 2002 - Implemented sending message of provider |
|
registration notification to subscription service. |
|
|
|
19. (Roger Kumpf - HP) 16 Apr 2002 - Defined an exception hierarchy for |
|
CIMClient API users. All exceptions thrown by CIMClient are now |
|
subclasses of CIMClientException. The CIMClient methods are defined |
|
as throwing CIMClientException, which will allow the actual exceptions |
|
thrown to change without changing the method signatures. It also makes |
|
it more clear to the client application which exceptions need to be |
|
handled. |
|
|
|
A new message type, ClientExceptionMessage has been defined as well. |
|
This message is used to communicate client exceptions from the CIM |
|
operation response decoder to the CIMClient. Previously, several |
|
classes of exceptions were being dropped in the decoder. New |
|
CIMClientException subclasses have been defined to model these |
|
exceptions. These changes allow decoding exceptions to be passed |
|
back to the client application. Examples are unparsable HTTP |
|
responses, malformed XML, and mismatched CIM responses (message ID, |
|
message type). |
|
|
|
The CIM clients that are linked into the Pegasus build have been |
|
updated to catch CIMClientException instead of CIMException. |
|
|
|
20. (KS) 18 Apr 2002 -Incorporated tomof client into the build. Includes |
|
usage and help. |
|
This program outputs mof or xml from repository either as a client |
|
or direct to the repository. |
|
|
|
21. (KS) 18 Apr 2002 - Changed all FIXME, etc. in compiler to ATTN with |
|
priorities. |
|
|
|
22. (MM) 18 Apr 2002 - Associator provider handling |
|
|
|
23. (MM) 18 Apr 2002 - HiRes pegasus_gettimeofday() for Windows needed |
|
for performance statistics. |
|
|
|
24. (Roger Kumpf - HP) 18 Apr 2002 - Removed the "match" code in the |
|
String class which had a dependency on the TCL license. Where this |
|
code was being used to match HTTP headers, I replaced the call to |
|
String::matchNoCase() with specific logic to check for the namespace |
|
in an HTTP extension header. For example, if the allowNamespacePrefix |
|
argument is true and the search tag is "Tag", HTTPMessage::lookupHeader |
|
will match "Tag" and "45-Tag", but not "abcTag". This behavior more |
|
closely models the intent of the String match in this case and is |
|
therefore more correct. |
|
|
|
25. (Denise Eckstein - HP) 20 Apr 2002 - Added an instance of |
|
PegasusVersion.h to each product component. This was done |
|
to support component level version tracking. |
|
|
|
26. (MM) 22 Apr 2002 - Performance Measurement Implementation |
|
|
|
27. (Susan Campbell - HP) 22 Apr 2002 - Various enhancements and bug fixes |
|
to the Managed System OS provider. Rolled in the Linux support from |
|
the Linux-specific OS provider and added properties to the HP-UX and |
|
Windows OS providers. |
|
|
|
28. (Roger Kumpf - HP) 24 Apr 2002 - Overhauled the configuration property |
|
"unset" functionality. cimconfig now uses modifyInstance with a |
|
property list to specify whether the current or planned value (or both) |
|
are to be updated. It uses a "null" value to indicate that the value |
|
should be unset (reset to default). |
|
|
|
29. (Roger Kumpf - HP) 24 Apr 2002 - Restructured the configuration |
|
property owners to remove redundant code. |
|
|
|
30. (Warren Otsuka - HP) 26 Apr 2002 - Reimplement wbemexec to use a |
|
new WbemExecClient interface based on HTTPConnection instead of the |
|
obsolete Channel code. Also add SSL option to wbemexec. |
|
|
|
31. (Roger Kumpf - HP) 26 Apr 2002 - Added copy constructors to the |
|
CIMMessage subclasses. |
|
|
|
32. (Denise Eckstein - HP) 27 Apr 2002 - Fixed several defects |
|
in MOF compiler associated with the handling the initialization |
|
of array values. |
|
|
|
33. (KS) 30 April 2002 - Added Namespace Control Provider. Note that it is |
|
not completely tested today and only enumeratenames is guaranteed. |
|
|
|
34. (Roger Kumpf - HP) 6 May 2002 - Reworked the String class. Fixed the |
|
places where StrLen() was reading off the end of arrays. Removed the |
|
Cat() functions. Moved Open(), OpenAppend(), and GetLine() functions |
|
to the FileSystem module. Removed the EmptyStringArray() method. |
|
Moved method implementations from header file to source file. Marked |
|
the _CString class for internal use only. |
|
|
|
35. (Sushma Fernandes - HP) 9 May 2002 - Updated the Logger to log to |
|
syslog on the HP-UX platform. |
|
|
|
36. (Sushma Fernandes - HP) 9 May 2002 - Fixed the method |
|
CIMDateTime::getCurrentDateTime() to return local time instead of UTC. |
|
Updated the CIMDateTime::getDifference() method to compute the difference |
|
between two local times. Also updated the getDifference to compute the |
|
difference between two intervals. |
|
|
|
37. (Mary Hinton) 10 May 2002 - Fixed the problem in the new version of |
|
pegasus_gettimeofday(struct timeval *tv)function for the Windows |
|
platform. The new implementation was implemented for higher resolution |
|
for performance statistics. However, it was causing an intermittent |
|
hang in the ThreadPool test on the Windows platform.When (long int) |
|
is changed to (__int64), the tv_usec variable of timeval struct has |
|
the correct value. |
|
|
|
38. (Roger Kumpf - HP) 13 May 2002 - To eliminate the possibility of |
|
collisions (and subsequent corruption) when different threads |
|
concurrently update the ArrayRep reference count, I added a Mutex |
|
to the ArrayRep structure. This Mutex gets locked in the inc() |
|
and dec() methods that manage the reference count. |
|
|
|
After adding the Mutex, the "mysterious" memory problems seemed to clear |
|
up. This seems like a very good thing. However, note that the addition |
|
of the Mutex adversely affects performance (nearly 2:1). I tried using |
|
an AtomicInt for the reference count, but that seemed to yield even worse |
|
performance on my system. |
|
|
|
Anyone should feel free to optimize the performance of the locking in |
|
the ArrayRep structure. Since I believe this locking is required for |
|
proper operation, I've added the Mutex for all platforms. Note that I |
|
had to comment out the assert statements in internal_dq.h to avoid a |
|
circular header file dependency (Array.h->IPC.h->internal_dq.h-> |
|
Exception.h->String.h->Array.h). |
|
|
|
39. (Roger Kumpf - HP) 13 May 2002 - Removed operator int() methods from |
|
all CIM* classes. These methods had been causing a number of difficult |
|
to find defects, including the use of the wrong versions of the methods |
|
in Memory.h by the Array template (leading to major memory leaks). |
|
|
|
In general, it is dangerous to define a casting operator method that |
|
loses so much information, because the compiler will apply the cast |
|
at will in an effort to match types. I've replaced all instances of |
|
the int cast operator with isNull() methods. |
|
|
|
40. (Nag Boranna - HP) 14 May 2002 - HP-Nag: Added SSL Certificate verification |
|
code in TLS.cpp, created a new class CertificateInfo to pass certificate |
|
information to the client's call back function. Modified CIMServer.cpp and |
|
the Command lines that are using SSLContext to pass a call back function. |
|
Fixed few display messages in CIMConfigCommand.cpp to show meaningfule |
|
messages when CIM server is not running. |
|
|
|
41. (Roger Kumpf - HP) 15 May 2002 - Moved CIM*::toXml() methods to |
|
XmlWriter::append*Element(). Moved CIM*::print() methods to |
|
XmlWriter::print*Element(). Putting this function in XmlWriter |
|
instead of the CIM* classes keeps those internal methods out of |
|
the published client and provider APIs. |
|
|
|
42. (Roger Kumpf - HP) 15 May 2002 - Moved CIM*::toMof() methods to |
|
a new MofWriter class as MofWriter::append*Element(). Moved |
|
CIM*::printMof() methods to MofWriter::print*Element(). |
|
|
|
43. (Nag Boranna - HP) 16 May 2002 - Implemented SSL handling in |
|
CIMClient.cpp for local connection and modified the CLIs to not to pass |
|
SSLContext to the client api. |
|
|
|
44. (Roger Kumpf - HP) 16 May 2002 - Reworked the Array template so that |
|
each array has its own ArrayRep copy rather than Arrays sharing |
|
ArrayReps and reference counting. |
|
|
|
45. (Nag Boranna - HP) 17 May 2002 - Moved SSLContext class out of |
|
TLS files, created SSLContextRep to hide members from the users of |
|
SSLContext. Also included CertificateInfo in SSLContext files and |
|
removed the CertificateInfo files, so that the client SDK can only |
|
need to include SSLContext.h for the client apps to use. |
|
|
|
46. (Sushma Fernandes - HP) 17 May 2002 - Fixed the CIMInstanceRep::resolve |
|
method to return the correct class origin. Fixed SecurityPropertyOwner to |
|
disallow passwordFilePath="". |
|
|
|
47. (Nag Boranna - HP) 20 May 2002 - Modified CIM Server and Client |
|
API to lookup port number from services. CIM Server uses default port |
|
number (5988 for HTTP or 5989 for HTTPS) if no port number is configured |
|
and no port is specified in the configuration file. CIMClient's connectLocal() |
|
method is modified to try and connect to HTTP port, if failed then try and |
|
connect to HTTPS port. |
|
|
|
48. (Sushma Fernandes - HP) 21 May 2002: Fixed a problem in repository related |
|
to rollback failure. |
|
|
|
49. (MM) 23 May 2002 - Added ProviderAdapter support |
|
The ProviderAdapterManager loads an additional Adapter library in |
|
case of a non-default interfaceName. This Adapter library has to offer a |
|
factory callback PegasusCreateProviderAdapter() in analogy to the |
|
CIMBaseProvider - an example, the AdapterSkeleton, can be found in |
|
src/Providers/generic/CMPIAdapter/ |
|
|
|
50. (MM) 23 May 2002 - New AtomicInt implementation using pthread_spinlocks. |
|
|
|
51. (Nag Boranna - HP) 23 May 2002 - Added config properties |
|
'enableHttpConnection' and 'enableHttpsConnection'. Renamed |
|
'requireAuthentication' to 'enableAuthentication' and 'requireAuthorization' |
|
to 'enableNamespaceAuthorization'. Removed few ATTN's in Authentication code. |
|
|
|
52. (Roger Kumpf - HP) 28 May 2002 - Reworked the Array template so that |
|
the implementation is hidden from clients and providers. This was |
|
accomplished by using explicit instantiation of the array template for |
|
each array type that is supported in the client and provider APIs. |
|
The array template implementation is still available for use within |
|
the Pegasus core, allowing implicit instantiation of additional array |
|
types used internally. |
|
|
|
53. KS 28 May 2002 - Added heiarchial subclass search of subclasses to |
|
enumerateinstancenames and enumerateinstances. There is a problem |
|
however with trashing of the requests messages so there is a |
|
flag LIMIT_ENUM_TO_ONE_LEVEL in CIMOperationDispatcher.cpp that |
|
causes it to go through all the motions except to request instances |
|
only for the current level. |
|
|
|
54. (Sushma Fernandes - HP) 28 May 2002 - Replaced getenv("PEGASUS_TRACE") |
|
with Tracer calls. Fixed UserAuthProvider and ConfigSettingProvider to |
|
check for user credentials. UserAuthProvider checks whether the user |
|
is a privileged user for all operations. ConfigSettingProvider checks |
|
whether the user is a privileged user only for write operations. |
|
|
|
55. (Carol Ann Krug Graves - HP) 30 May 2002 - |
|
Removed the CIMNamedInstance and CIMObjectWithPath classes. The CIMObject |
|
and CIMInstance classes now include a setPath (CIMObjectPath) method. |
|
These changes will affect Clients and Providers. A call to the |
|
CIMNamedInstance constructor with a CIMObjectPath and a CIMInstance should |
|
be replaced with a call to the setPath () method on the CIMInstance, |
|
passing the same CIMObjectPath. A call to the CIMNamedInstance |
|
getInstance () method should be replaced with the CIMInstance, and a call |
|
to the CIMNamedInstance getInstanceName () method should be replaced with a |
|
call to the getPath () method on the CIMInstance. A call to the |
|
CIMObjectWithPath constructor with a CIMObjectPath and a CIMObject, should |
|
be replaced with a call the setPath () method on the CIMObject, passing the |
|
same CIMObjectPath. A call to the CIMObjectWithPath getObject () method |
|
should be replaced with the CIMObject, and a call to the CIMObjectWithPath |
|
getReference () method should be replaced with a call to the CIMObject |
|
getPath () method. |
|
|
|
56. (Jenny Yu - HP) 31 May 2002 - Implemented a cimserver_kill() method |
|
to kill the CIMServer process if the CIM Server is still running after |
|
the shutdown timeout has expired during shutdown. The CIMServer process |
|
Id is saved in a file after CIMServer starts up. This file is removed |
|
after CIMServer terminates normally. Only added code for the HPUX |
|
platform. |
|
|
|
57. (Jenny Yu - HP) 03 Jun 2002 - Removed all cimserver command line options |
|
except for: -v (version), -h (help), -D (home), -s (shutdown), and |
|
-install and -remove (for Windows only). All other options can be set |
|
using the <configProperty=value> command line syntax. |
|
======================================================================== |
|
|
|
Version 1.08 working towards 1.1 - Started 27 March 2002 |
|
TAG: Version_1_08. Note that the tagging was not all simultaneous because |
|
of problems with the CVS repository |
|
|
|
1. KS 27 March 2002 - Updaded pegasus version to 1.08. Took snapshot. |
|
Tagged CVS 1_08. |
|
|
|
2. KS 2 April 2002 -Add better qualifier testfunctions to cimclass, |
|
qualifierlist, etc. and start to add specific qualifier tests on creates. |
|
======================================================================== |
| |
Version 1.07 working towards 1.1 - Started 4 Feb 2002 | Version 1.07 working towards 1.1 - Started 4 Feb 2002 |
Started just before cutover to the new dispatcher, etc. | Started just before cutover to the new dispatcher, etc. |
|
|
| |
2. (Markus Mueller) 05 Feb 2002 - AIX support. | 2. (Markus Mueller) 05 Feb 2002 - AIX support. |
| |
3. KS - 18 Feb 02 Add changes to test for and set the NULL value for CIMValues. |
3. (Sushma Fernandes - HP) 13 Feb 2002 Implemented FileSystemPropertyOwner |
|
class to support PEGASUS_HOME dependent properties like Repository |
|
location, Provider location and Consumer location. |
|
The default location for these properties continue to be the same |
|
as before. Added support to the Config Manager to own the |
|
Pegasus Home variable and implemented method (getHomedPath) to |
|
return absolute paths based from Pegasus Home. |
|
|
|
For more information look in to the following files: |
|
pegasus/src/Pegasus/Config/ConfigManager.h |
|
pegasus/src/Pegasus/Config/ConfigManager.cpp |
|
pegasus/src/Pegasus/Config/FileSystemPropertyOwner.h |
|
pegasus/src/Pegasus/Config/FileSystemPropertyOwner.cpp |
|
|
|
4. KS - 18 Feb 02 Add changes to test for and set the NULL value for CIMValues. |
This forces new CIMValues to have a NULL attributes that is only | This forces new CIMValues to have a NULL attributes that is only |
reset when a value is "set" or copied into them. the XML and MOF | reset when a value is "set" or copied into them. the XML and MOF |
also deliver a NULL value back when the state of the CIMValue is NULL. | also deliver a NULL value back when the state of the CIMValue is NULL. |
There is a remaining addition to put an exception on CIMValue gets when | There is a remaining addition to put an exception on CIMValue gets when |
the NULL attribute is set that we will install later. | the NULL attribute is set that we will install later. |
| |
|
5. KS - 19 Feb 2002 Extended testclient slightly and cleaned up numerous bugs. |
|
|
|
6. KS - 19 Feb 2002 - Add workpaper in doc/workpaper defining the Pegasus Qualifiers. |
|
Note that this version of the paper still needs work. |
|
|
|
7. (Nag Boranna - HP) 20 Feb 2002 - Modified HTTPAcceptor to optionally bind to |
|
loopback host. Modified CIMClient to connect to loopback host when connectLocal() |
|
method is used. Added a new method lookupPort() in System.h to return the system |
|
configured wbem port number. Modified cimuser, cimauth and cimconfig CLI's to use |
|
modified CIMClient connectLocal() interface. |
|
|
|
8. (KS- 21 Feb 2002) - Modified Makefile for repository load so located in |
|
schema directory. The one in src/pegasus/compiler/load is deprecated and |
|
will be deleted. |
|
|
|
9. KS-21 Feb 2002 - Added new constructor to CIMValue and associated tests |
|
|
|
10. RK-20 Feb 2002 - Add Array reference to CIMValue and added tests |
|
|
|
11. (Sushma Fernandes - HP, Nag Boranna - HP) 22 Feb 2002 Implemented |
|
checks for privileged user when performing authorization. |
|
Added a configuration property enableRemotePrivilegedUserAccess. |
|
This property needs to be set to true to enable privileged user access |
|
for remote clients. |
|
|
|
12. (Roger Kumpf - HP) 22 Feb 2002 - Added type information to extrinsic |
|
method (InvokeMethod) operations. This change involves the addition |
|
of PARAMTYPE attributes to PARAMVALUE and RETURNVALUE tags. This tag |
|
allows the server to determine the type of a parameter value without |
|
having to look up the method definition in the schema. It also allows |
|
the client API to do the same for output parameters as well as return |
|
values. |
|
|
|
PROVIDER IMPLICATIONS: |
|
|
|
Method providers ARE affected by this change. Previously, all input |
|
parameters to invokeMethod were sent to the provider as String type |
|
regardless of what the client actually specified or how the method |
|
was defined. With this change, providers will now receive input |
|
parameters of the type that was actually specified by the client |
|
application (regardless of how the method was defined in the schema). |
|
|
|
However, parameters coming from clients other than the Pegasus client |
|
API may omit the PARAMTYPE attribute. In this case, the operation |
|
processor (currently dispatcher) will find these "typeless" parameters |
|
and convert them to the correct type based on the method definition. |
|
The result is that if the client specifies the parameter type in the |
|
XML encoding (as the Pegasus client API does), the method provider |
|
will receive the type specified by the client; if the client does not |
|
specify the parameter type, the method provider will see the type |
|
specified in the method definition. |
|
|
|
CLIENT IMPLICATIONS: |
|
|
|
Clients ARE affected by this change. Any output parameters that are |
|
returned from Pegasus (or other CIM servers using the PARAMTYPE |
|
attribute) will now be received by Pegasus clients as the same type |
|
sent by the server. Previously, they would have always been of |
|
String type. In addition, the return value will be received as the |
|
correct type rather than as a String. |
|
|
|
Parameters coming from servers other than Pegasus may omit the |
|
PARAMTYPE attribute. In this case, the client will see a |
|
CIMParamValue with type==CIMType::NONE, with a CIMValue of type |
|
String. Similarly, return values coming from other servers that omit |
|
PARAMTYPE will be seen by the client as String type. These return |
|
values will NOT have the CIMType::NONE hint that parameters get, |
|
because they are CIMValues rather than CIMParamValues. |
|
|
|
This behavior will remain for the forseeable future (through |
|
Pegasus version 2), as it is not possible to require that other |
|
implementations use the PARAMTYPE attribute. |
|
|
|
SIDE EFFECTS: |
|
|
|
In the process of implementing this functionality, I discovered |
|
that there was no way to set a CIMValue to be an array of |
|
CIMReferences. This appeared to be an oversight, since method |
|
parameters are permitted to be arrays of CIMReferences. I've |
|
added the necessary functionality to the CIMValue class. |
|
|
|
I also found that the CIMParamValue class needed significant |
|
clean-up, which I completed. |
|
|
|
SETPROPERTY CHANGES: |
|
|
|
A similar problem in SetProperty operations was addressed by |
|
"typing" the specified property value in the operation processor |
|
(currently dispatcher). This is achieved by looking up the |
|
relevant schema to get the property definition, and then converting |
|
the specified value to that property's type. |
|
|
|
The SetProperty operation encoding has not changed to accomodate |
|
inclusion of type information that would obviate the need for this |
|
extra processing. However, clients can avoid this overhead by using |
|
ModifyInstance operations (with a property list) instead of SetProperty. |
|
|
|
The GetProperty operation also has NOT been updated with type |
|
information. Client applications using the Pegasus client API will |
|
always receive String or reference values when calling GetProperty |
|
against any server (Pegasus or not). Clients that require properties |
|
to be returned as the correct type must use GetInstance (perhaps with |
|
a property list) rather than GetProperty. |
|
|
|
13. (Roger Kumpf - HP) 22 Feb 2002 - Reworked the CIMParamValue class. |
|
Instead of being composed of a CIMParameter and a CIMValue, this |
|
class is now composed of a String (parameter name) and a CIMValue. |
|
This change removes the redundancy of having the type, isArray, |
|
and arraySize members in both the CIMParameter and the CIMValue. |
|
The new CIMParamValue definition is more consistent with the XML |
|
encoding of parameter values. |
|
|
|
An isTyped member was also added to CIMParamValue to support the |
|
behavior outlined in item 12 above. Clients should use the isTyped() |
|
method to determine whether the output parameters returned from |
|
InvokeMethod operations are of the correct type, or whether they |
|
have defaulted to String type. |
|
|
|
14. (KS) 4 March 2002 - Corrections for NULL value and the XML code. |
|
Corrections to compiler for Null values input (parser and valuectory) |
|
|
|
15. (Nag Boranna - HP) 04 March 2002 - Modified CIMClient API to accept |
|
username and password as parameters to connect() method, added a new |
|
method diconnect() that closes the open connection with the server |
|
and added code to handle HTTP Basic authentication challenges from |
|
the server. |
|
|
|
16 (KS) 4 March 2002 - Correct problem with array constants not picking up |
|
all of the entires in the array. Bugzilla bug # 6. |
|
|
|
17. (Yi Zhou - HP) 4 March 2002 - Implemented provider registration manager |
|
to perform efficient lookup of instance provider, method provider, and |
|
indication provider. Also, implemented provider registration instances |
|
operations. |
|
|
|
Modified registration provider to use latest provider registration schema. |
|
|
|
18 (KS) 6 March 2002 - Implemented changes to compiler and flavors to correct the |
|
definition of CIMFlavors. |
|
|
|
|
|
19. (Roger Kumpf - HP) 1 Mar 2002 - Reworked the XmlWriter class to |
|
eliminate many of the redundant memory copies that resulted from the |
|
nested method call structure. Now, instead of having a method at |
|
each level that adds a begin tag, contents, and an end tag, there |
|
are separate methods to add the begin and end tags. At the top |
|
level, each of the begin tag methods are called, then the message |
|
"body" is added, followed by calls to the end tag methods. |
|
|
|
The message body is currently still copied twice, once into the XML |
|
payload and then again when the HTTP header is added. (Since the |
|
HTTP header contains a content length field, the header cannot be |
|
constructed until the payload is complete.) It is possible to |
|
remove these extra copies as well, but that would require additional |
|
changes elsewhere in the code. For example, the HTTPMessage class |
|
would need to hold the headers and payload separately rather than in |
|
a single buffer. |
|
|
|
Along with these changes, I did a lot of cleanup. Much of the XML |
|
formatting code has been moved from CIMReference to XmlWriter. Also, |
|
error message formatting has been consolidated in XmlWriter from the |
|
various encoders and decoders, etc. |
|
|
|
20. (Roger Kumpf - HP) 5 Mar 2002 - Added checks in the |
|
CIMOperationRequestDecoder and CIMExportRequestDecoder to validate |
|
that the information in the HTTP headers of a request is consistent |
|
with what is encoded in the XML request itself. |
|
|
|
Specifically, the CIMOperation, CIMProtocolVersion, CIMMethod, |
|
CIMObject, CIMBatch, CIMExport, and CIMExportBatch headers are |
|
validated. |
|
|
|
21. (KS) 7 March 2002 - Correct error in qualifier propagation processing in |
|
qualifierlist.resolve. Temporarily remove the DEFAULT setup on the |
|
Compiler qualifier generation. Add tests for resolve processing. |
|
|
|
22. (Roger Kumpf - HP) 8 Mar 2002 - Simplified CIMClient API construction. |
|
Previously, the client application constructed a client API using: |
|
|
|
Monitor* monitor = new Monitor; |
|
HTTPConnector* connector; |
|
connector = new HTTPConnector(monitor); |
|
Uint32 timeoutMillis = 60 * 1000; // optional |
|
|
|
CIMClient client(monitor, connector, timeoutMillis); |
|
|
|
With this change, the client application now looks like: |
|
|
|
Uint32 timeoutMillis = 60 * 1000; // optional |
|
|
|
CIMClient client(timeoutMillis); |
|
|
|
The old style allowed an SSL context to be specified in the HTTPConnector |
|
constructor. It seems that the SSL context is really a property of a |
|
connection rather than of the client API. So instead of adding an SSL |
|
context parameter to the CIMClient constructor, I added it to the CIMClient |
|
connect() method. There are now forms of the connect() method with and |
|
without an SSL context. Similar changes were made in the HTTPConnector |
|
class to allow specification of an SSL context in the connect() method |
|
rather than in the constructor. |
|
|
|
NOTE: Client applications are affected and must be updated with this |
|
change. I've already updated all the clients that are checked in and |
|
included in the Pegasus build. |
|
|
|
23. (KS) 8 March 2002 - Correct error in compiler that caused length field |
|
of fixed length arrays to be lost. |
|
|
|
24. (Jenny Yu - HP) 8 March 2002 - Modified the CIMException class to NOT |
|
include the source filename and line number in the exception message. |
|
However, for anyone who wishes to include such information in the |
|
CIM Exception message, a compile option DEBUG_CIMEXCEPTION can be used |
|
for that purpose. |
|
|
|
A couple of changes have been made to the Tracer class: |
|
|
|
- CIMException messages can now be put in a trace file using the Tracer. |
|
A new interface has been added to the Tracer to accept a CIMException |
|
as input and writes the exception message in the CIMException to the |
|
trace file. This message will include the source filename and the |
|
line number of the CIMException originator. |
|
|
|
Tracer::traceCIMException(traceComponent, traceLevel, cimException); |
|
|
|
- Strings can now be traced using the Tracer class: |
|
A new interface has been added to the Tracer to accept a String as |
|
input and writes the String to the trace file. |
|
|
|
(ex.) |
|
You can issue the following method call: |
|
Tracer::trace(TRC_CONFIG, Tracer::LEVEL2, "Operation Failed."); |
|
|
|
or use the following new macro: |
|
PEG_TRACE_STRING(TRC_CONFIG, Tracer::LEVEL2, "Operation Failed."); |
|
|
|
25. (Ramnath Ravindran - Compaq) 11 March 2002 - added IPCTru64.h and modified |
|
several files so that Pegasus could build and run on Tru64 unix. Added |
|
one macro in ConfigUnix and ConfigWindows (PEGASUS_OR_IOS_BINARY) in |
|
the case where std::ios::binary is present with a bitwise OR operator. |
|
This macro only works when the std::ios::binary is NOT the first |
|
operator to be "OR"ed. |
|
|
|
26. (Ramnath Ravindran - Compaq) 12 March 2002 - modified more files so that |
|
Pegasus could build and run on Tru64 unix. Finished replacing instances |
|
of ios::binary with the macros PEGASUS_IOS_BINARY and |
|
PEGASUS_OR_IOS_BINARY. Also modified some code that dealt with file |
|
streams. Tru64 does not support the use of the " != " operator on a |
|
fstream object. Instances of such were either modified or an ifdef |
|
block detecting a build on Tru64 was used. Added cstdarg and ctime in |
|
pegasus/src/stdcxx/cwrappers/ directory. |
|
|
|
27. (Mary Hinton) 16 March 2002 - fixed the CIMServer so that it could once |
|
again be installed as a Windows service. The repositoryRootPath could |
|
not be found, because the pegasusHome variable was not being set properly |
|
in the Windows service work thread. |
|
|
|
28. (Bob Blair by KS) 17 March 2002 - Modified repository so there is both a |
|
local repository (cimmofl) and a client interface repository (cimmof) |
|
executable |
|
|
|
29. (KS ) 18 March 2002 - Modified schema makefiles to use the cimomfl respository |
|
executable. |
|
|
|
30. (Roger Kumpf - HP) 19 Mar 2002 - Added range checking for Uint* and |
|
Sint* values in XmlReader.cpp. Previously, values that were out of |
|
range were simply truncated to fit the given integer size. An |
|
exception is now thrown when the given string can not be parsed into |
|
an integer of the specified size. |
|
|
|
31. (Roger Kumpf - HP) 20 Mar 2002 - Added support for hexadecimal integers |
|
in XmlReader.cpp. |
|
|
|
32. (Nag Boranna - HP) 21 March 2002 - Implemented server side Basic |
|
Authentication handling code and cleaned up ATTN's in the authentication |
|
releated files. Implemented a new AuthenticationInfoRep class and modified |
|
the related files. Added more test cases to test the authentication classes. |
|
|
|
33. (Ramnath Ravindran - Compaq) 21 March 2002 - replaced instances of "| ios::binary" |
|
with PEGASUS_OR_IOS_BINARY in 3 files: System.cpp, InstanceIndexFile.cpp, and |
|
InstanceDataFile.cpp |
|
|
|
34. (KS) 25 March 2002 - Extended qualifier resolution to correctly handle Flavors nad |
|
enabled the scope and flavors testing. Had been pretty much blocked before. |
|
|
|
35. (Roger Kumpf - HP) 26 Mar 2002 - Created a class to map CIM operation |
|
request messages to provider API calls. Cleaned up the dispatcher and |
|
added the ability to pass requests to control providers through the |
|
ModuleController. Integrated the ConfigSettingProvider with the |
|
ModuleController and set up the structure for getting the control |
|
providers working. Moved the ConfigSettingProvider from the |
|
Providers tree to the Pegasus tree, since it really is statically |
|
linked into the server. |
|
|
|
36. (Roger Kumpf - HP) 27 Mar 2002 - Integrated the UserAuthProvider with |
|
the ModuleController as a control provider. Moved the UserAuthProvider |
|
from the Providers tree to the Pegasus tree. |
|
|
|
37. (Roger Kumpf - HP) 27 Mar 2002 - Integrated the |
|
ProviderRegistrationProvider with the ModuleController as a control |
|
provider. Moved the ProviderRegistrationProvider to the Pegasus |
|
ControlProviders directory. Obsoleted and removed the |
|
Server/ConfigurationManager class and files. |
|
|
|
38. (KS) 27 march 2002 - Modifications to common functions and the compiler to |
|
extend the processing of class creation and correct the flavors and their |
|
use. This allows flavors to be inherited with rules for override, etc. |
|
|
|
|
------------------------------------------------------------------- | ------------------------------------------------------------------- |
Version 1.06 working towards 1.1 Started 13 December 2001 | Version 1.06 working towards 1.1 Started 13 December 2001 |
| |
|
|
| |
60. (Bapu Patil - HP) Updated makefiles to support HP-UX IA64 bits O.S. | 60. (Bapu Patil - HP) Updated makefiles to support HP-UX IA64 bits O.S. |
| |
61. (Sushma Fernandes - HP) 13 Feb 2001 Implemented FileSystemPropertyOwner |
|
class to support PEGASUS_HOME dependent properties like Repository |
|
location, Provider location and Consumer location. |
|
The default location for these properties continue to be the same |
|
as before. Added support to the Config Manager to own the |
|
Pegasus Home variable and implemented method (getHomedPath) to |
|
return absolute paths based from Pegasus Home. |
|
|
|
For more information look in to the following files: |
|
pegasus/src/Pegasus/Config/ConfigManager.h |
|
pegasus/src/Pegasus/Config/ConfigManager.cpp |
|
pegasus/src/Pegasus/Config/FileSystemPropertyOwner.h |
|
pegasus/src/Pegasus/Config/FileSystemPropertyOwner.cpp |
|
|
|
--------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
Version 1.1 - July 2001 Development branch | Version 1.1 - July 2001 Development branch |
Tagged as version_1_01 on 3 August 2001 (sorry should have been | Tagged as version_1_01 on 3 August 2001 (sorry should have been |