version 1.49.2.37, 2001/10/31 15:56:43
|
version 1.49.2.53, 2001/11/21 23:24:43
|
|
|
Created new class SignalHandler that allow registration, activation and | Created new class SignalHandler that allow registration, activation and |
deactivation of signal handler functions (Linux only !). | deactivation of signal handler functions (Linux only !). |
| |
22. (Nitin Upasani - HP) 27 Sep 2001 - Modification of ExportServer and ExportClient |
22. (Nitin Upasani - HP) 27 Sep 2001 - Modification of ExportServer and |
to support ExportIndication. DisplayConsumer, a sample consumer is added which |
ExportClient to support ExportIndication. DisplayConsumer, a sample |
will consume (by displaying on screen) the indication exported by |
consumer is added which will consume (by displaying on screen) the |
CIMExportRequestDispatcher. This complete implementation is based on |
indication exported by CIMExportRequestDispatcher. This complete |
CIM_EXPORT_INDICATION_REQUEST and RESPONSE messages. CIMMessage.h, Message.cpp |
implementation is based on CIM_EXPORT_INDICATION_REQUEST and |
and Message.h files are modified to implement above messages. |
RESPONSE messages. CIMMessage.h, Message.cpp and Message.h files |
|
are modified to implement above messages. |
XmlIndicationDispatcher test program is modified to test complete operation. |
|
It now creates a consumer, handler and indication instance and then calls |
XmlIndicationDispatcher test program is modified to test complete |
CIMExportRequestDispatcher to export the indication to consumer. This |
operation. It now creates a consumer, handler and indication |
program needs src/Pegasus/Server/tests/XmlIndicationDispatcher/TestSoftwarePkg.mof |
instance and then calls CIMExportRequestDispatcher to export the |
and Schemas/Pegasus/PG_ConsumerRegistration.mof files to be loaded in the repository |
indication to consumer. This program needs |
to complete the test successfully. This test program also needs Handler qualifier |
src/Pegasus/Server/tests/XmlIndicationDispatcher/TestSoftwarePkg.mof |
defined in repository and modify CIM_Event25.mof for CIM_IndicationHandlerXMLHTTP |
and Schemas/Pegasus/PG_ConsumerRegistration.mof files to be loaded |
class as below: |
in the repository to complete the test successfully. This test |
|
program also needs Handler qualifier defined in repository and |
|
modify CIM_Event25.mof for CIM_IndicationHandlerXMLHTTP class as |
|
below: |
| |
//==================================================================== | //==================================================================== |
// CIM_IndicationHandlerXMLHTTP | // CIM_IndicationHandlerXMLHTTP |
|
|
ProviderTable.cpp and SystemUnix.cpp to indicate progress of loading | ProviderTable.cpp and SystemUnix.cpp to indicate progress of loading |
a provider library. | a provider library. |
| |
24. (Nitin Upasani - HP) 05 Oct 2001 - implementation of InvokeMethod interface for the |
24. (Nitin Upasani - HP) 05 Oct 2001 - implementation of InvokeMethod |
provider. InvokeMethod currently uses CIMValue as type for inParameters and |
interface for the provider. InvokeMethod currently uses CIMValue as |
outParameters, which are unable to give information about param name, type and value. |
type for inParameters and outParameters, which are unable to give |
This should be changed to CIMParamValue which will help providers to know details of |
information about param name, type and value. This should be changed |
the parameter name and type along with value passed through InvoleMethod call. |
to CIMParamValue which will help providers to know details of the |
Current implementation uses CIMParamValue as parameters while travelling through message |
parameter name and type along with value passed through InvoleMethod |
queues and converts it back to array of CIMValue before calling Provider API (which |
call. Current implementation uses CIMParamValue as parameters while |
needs to be changed later). |
travelling through message queues and converts it back to array of |
|
CIMValue before calling Provider API (which needs to be changed |
|
later). |
| |
Also added are two test programs: | Also added are two test programs: |
| |
src/Pegasus/Common/tests/ParamValue - which demonstrate use of CIMParamValue class. |
src/Pegasus/Common/tests/ParamValue - which demonstrate use of |
|
CIMParamValue class. |
| |
src/Pegasus/Client/tests/InvokeMethod - which makes call to InvokeMethod and |
src/Pegasus/Client/tests/InvokeMethod - which makes call to |
displays the return value. Current implementation assumes that provider had returned |
InvokeMethod and displays the return value. Current |
true value and outParameters (which are now hard coded in CIMOperationRequestDispatcher |
implementation assumes that provider had returned true value |
to implement functionality) which are passed as response of InvokeMethod to client. |
and outParameters (which are now hard coded in |
|
CIMOperationRequestDispatcher to implement functionality) |
|
which are passed as response of InvokeMethod to client. |
| |
25. (Nag Boranna - HP) 05 Oct 2001 - Added first level implementation of | 25. (Nag Boranna - HP) 05 Oct 2001 - Added first level implementation of |
authentication to the pegasus code. Created an Authentication Manager and |
authentication to the pegasus code. Created an Authentication Manager |
authenticator interfaces. The file based local authentication module has |
and authenticator interfaces. The file based local authentication |
been modified to implement the local authenticator interface, to generate |
module has been modified to implement the local authenticator |
the challenge for the unauthorized requests and to verify the authentication. |
interface, to generate the challenge for the unauthorized requests |
A skeleton program has been created for the Basic Authenticator. This code is |
and to verify the authentication. |
in the Security/Authentication directory which is not yet linked into the build. |
|
|
A skeleton program has been created for the Basic Authenticator. |
26. (Nitin Upasani - HP) 08 Oct 2001 - Changes to Operation and Export Decoders. Earlier |
This code is in the Security/Authentication directory which is not |
decoders were sending requests and responses before finishing complete Xml parse. |
yet linked into the build. |
This was prone to send request/response even the Xml is wrong after the MethodCall. |
|
New changes collects the Message* as return value from the appropriate functions |
26. (Nitin Upasani - HP) 08 Oct 2001 - Changes to Operation and Export |
while parsing the Xml and sends on _outputQueue only when Xml is parsed successfully. |
Decoders. Earlier decoders were sending requests and responses |
|
before finishing complete Xml parse. This was prone to send |
27. (Nag Boranna - HP) 11 Oct 2001 - Modified ProviderModule.cpp to fix the problem with |
request/response even the Xml is wrong after the MethodCall. |
constructing provider name and loading the providers for unix platforms. Also moved |
New changes collects the Message* as return value from the |
the shared library name construction (appending .sl or .so) from |
appropriate functions while parsing the Xml and sends on |
CIMOperationRequestDispatcher.cpp/SystemUnix.cpp to ProviderModule.cpp and included |
_outputQueue only when Xml is parsed successfully. |
it in a method that returns provider file path name. |
|
|
27. (Nag Boranna - HP) 11 Oct 2001 - Modified ProviderModule.cpp to |
28. (Nitin Upasani - HP) 12 Oct 2001 - Implementation of SNMP Indication Handler. |
fix the problem with constructing provider name and loading the |
This handler extracts MappingStrings qualifier from class definition and converts it |
providers for unix platforms. Also moved the shared library name |
into SNMP specific trap data. The trap structure is defined in a abstract class in |
construction (appending .sl or .so) from |
snmpDeliverTrap.h file. Every one has his or her own SNMP agent, which will talk with |
CIMOperationRequestDispatcher.cpp/SystemUnix.cpp to |
master agent to deliver the trap or may have some other mechanism. Extending |
ProviderModule.cpp and included it in a method that returns |
snmpDeliverTrap class and deliverTrap method will help to implement specific trap |
provider file path name. |
delivery mechanism. |
|
|
28. (Nitin Upasani - HP) 12 Oct 2001 - Implementation of SNMP Indication |
|
Handler. This handler extracts MappingStrings qualifier from class |
|
definition and converts it into SNMP specific trap data. The trap |
|
structure is defined in a abstract class in snmpDeliverTrap.h file. |
|
Every one has his or her own SNMP agent, which will talk with master |
|
agent to deliver the trap or may have some other mechanism. |
|
Extending snmpDeliverTrap class and deliverTrap method will help to |
|
implement specific trap delivery mechanism. |
| |
29. (Yi Zhou - HP) 09 Oct 2001 - Changed cimconfig to allow setting property to | 29. (Yi Zhou - HP) 09 Oct 2001 - Changed cimconfig to allow setting property to |
be NULL. Also, if -u -p specified in the cimconfig, instead of updating | be NULL. Also, if -u -p specified in the cimconfig, instead of updating |
|
|
string. Also modified the XmlIO trace code to use the new interface. | string. Also modified the XmlIO trace code to use the new interface. |
Changed the config file defaults for tracing. | Changed the config file defaults for tracing. |
| |
31. (Jenny Yu - HP) 29 Oct 2001 - Fixed CIMReference constructor to allow |
31. (Rudy Schuet - Compaq) 28 Oct 2001 - Added "make" support for Compaq |
|
NonStop platform (NSK) in directory pegasus/mak. The following files |
|
were added: platform_NSK_NONSTOP_NMCPLUS.mak, objects-nsk.mak, |
|
library-nsk.mak, config-nsk.mak, program-nsk.mak, program-windows.mak, |
|
program-unix.mak. The original program.mak which previously covered |
|
all platforms was split into platform-specific make files, and now |
|
only contains conditionals. Files config.mak, objects.mak, and |
|
library.mak were changed to include the NSK files. |
|
File platform_NSK_NONSTOP_NMCPLUS.mak includes config-nsk.mak. |
|
|
|
32. (Jenny Yu - HP) 29 Oct 2001 - Fixed CIMReference constructor to allow |
commas (,) in the string values of key properties. | commas (,) in the string values of key properties. |
| |
32. (Karl Schopmeyer 30 October 2001- Move the repository load to CIM schema 2.6 |
33. (Karl Schopmeyer) 30 October 2001- Move the repository load to CIM schema 2.6 |
|
|
|
34. (Rudy Schuet - Compaq) 30 Oct 2001 - Fixed a problem in |
|
pegasus/mak/program-windows.mak that prevented program builds for |
|
the windows platform (related to change from 28 Oct). Replaced |
|
leading whitespace in front of commands with tabs as required |
|
in make files. |
|
|
|
35. (K Schopmeyer 2 Nov 2001)Temporarily moved repository back to CIM25 |
|
because getting an error in 26 |
|
|
|
35. (Roger Kumpf - HP) 30 Oct 2001 - Association classes have keys |
|
whose types are references. These reference values must be |
|
treated specially in the XML encoding, using the VALUE.REFERENCE |
|
tag structure. |
|
|
|
Pegasus had been passing reference values simply as String values. |
|
For example, EnumerateInstanceNames returned KEYVALUEs of string |
|
type rather than VALUE.REFERENCEs. |
|
|
|
I've modified the XmlReader::getKeyBindingElement() and |
|
CIMReference::instanceNameToXml() methods to read and write the |
|
XML in the proper format. However, making that change required |
|
that a CIMReference object be able to distinguish between a key |
|
of String type and a key of reference type. |
|
|
|
I've modified the String format of CIMReferences slightly to |
|
allow efficient processing of references whose keys are also of |
|
reference type. The "official" form uses the same encoding for |
|
key values of String type and of reference type, and so it |
|
would be necessary to retrieve the class definition and look up |
|
the types of the key properties to determine how to treat the |
|
key values. This is clearly too inefficient for internal |
|
transformations between CIMReferences and String values. |
|
|
|
The workaround is to encode a 'R' at the beginning of the value |
|
for a key of reference type (before the opening '"'). This allows |
|
the parser to know a priori whether the key is of String or |
|
reference type. |
|
|
|
In this example: |
|
|
|
MyClass.Key1="StringValue",Key2=R"RefClass.KeyA="StringA",KeyB=10" |
|
|
|
Property Key1 of class MyClass is of String type, and so it gets |
|
the usual encoding. Key2 is a reference property, so the extra 'R' |
|
is inserted before its encoded value. Note that this algorithm is |
|
recursive, such that RefClass could include KeyC of reference type, |
|
which would also get encoded with the 'R' notation. |
|
|
|
The toString() method inserts the 'R' to provide symmetry. A new |
|
KeyBinding type (REFERENCE) has been defined to denote keys in a |
|
CIMReference that are of reference type. This KeyBinding type must |
|
be used appropriately for CIMReference::ttoString() to behave |
|
correctly. |
|
|
|
The files that have been modified to make this change are |
|
CIMReference.h, CIMReference.cpp, and CIMInstanceRep.cpp. |
|
|
|
A result of this change is that instances names in the instance |
|
repository will include this extra 'R' character. Thus, you will |
|
need to repopulate your repository when you download the latest |
|
CIMOM version. |
|
|
|
Note that for user-facing uses of the String encoding of instance |
|
names (such as might appear in MOF for static association |
|
instances or in the CGI client), this solution is non-standard and |
|
therefore unacceptable. It is likely that these points will need |
|
to process the more expensive operation of retrieving the class |
|
definition to determine the key property types. |
|
|
|
36. (Sushma Fernandes - HP) Modified tracer to return invalid components |
|
in case of error in setting trace components. Modified the property owner |
|
init and update methods. Submitted the pegasus/mak/Buildmakefile with |
|
cleanbuild, rebuild and trace configuration options. |
|
|
|
37. (Yi Zhou - HP) 05 Nov 2001 Fixed createInstance to return a CIMReference |
|
(instanceName). |
|
|
|
38. (Roger Kumpf - HP) 08 Nov 2001 Implemented encoding/decoding of |
|
GetProperty/SetProperty/EnumerateInstances request/response messages. |
|
Added encoding and decoding of PropertyList parameters on all |
|
relevant intrinsic methods. |
|
|
|
39. (Markus Mueller - IBM) 09 Nov 2001 Added Associator calls to CIMBase |
|
ProviderFacade.cpp; fixed Provider unloading in CIMProviderManager.cpp |
|
|
|
40. (Rudy Schuet - Compaq) 12 Nov 2001 Common module: added the following |
|
files for nsk platform support: TraceFileHandlerNsk.cpp, ThreadNsk.cpp, |
|
TCPChannelNsk.cpp, SystemNsk.cpp, ServiceNsk.cpp, SelectorNsk.cpp, |
|
IPCNsk.cpp, DirNsk.cpp. Most of these files (with the exception of |
|
SystemNsk.cpp) contain stubs. The associated control files |
|
(TraceFileHandler.cpp, Thread.cpp, etc) have been updated to include |
|
nsk platform links. |
|
|
|
41. (Roger Kumpf - HP) 14 Nov 2001 Changed the behavior of the CIMValue |
|
toString() method for CIMValues of String type. The old behavior |
|
returned an XML encoding of the String with special characters |
|
replaced by their UTF-8 equivalents. For example, a CIMValue of a"b |
|
would be returned as a"b. The new behavior just returns the |
|
String value directly with no translation. (Note that |
|
CIMValue.toXml() may still be used to get the XML-encoded value.) |
|
|
|
This change was necessary in part to correct the behavior of the |
|
repository. CreateInstance stores the instance name returned by |
|
CIMInstance.getInstanceName(), which is built using calls to |
|
CIMValue.toString(). GetInstance searches for the instance name |
|
without UTF-8 encoding of special characters. For GetInstance to |
|
be successful, CreateInstance must have stored the instance name |
|
in that same form, without special character encoding. |
|
|
|
42. (Roger Kumpf - HP) 15 Nov 2001 Added a toXml(void) method to |
|
the CIMValue class. Eliminated improper use of CIMValue.toString(), |
|
often replacing with CIMValue.get(String&) or CIMValue.toXml(). |
|
Also added some error handling in the indication handlers. |
|
|
|
43. (Sushma Fernandes - HP) 16 Nov 2001 Added a function |
|
localObjectPathtoXml(Array<Sint8>& out) to the CIMReference class |
|
to handle local instance path and local classpath. Modified the |
|
CIMOperationRequestDecoder to handle <LOCALCLASSPATHELEMENT ...>. |
|
Changed the CIMOperationRequestEncoder to call the localObjectPathtoXml. |
|
|
|
44. (Roger Kumpf - HP) 19 Nov 2001 Added a CIMNamedInstance class |
|
to hold the argument to ModifyInstance and the return values |
|
from EnumerateInstances. The client and provider APIs need to |
|
be updated to use this class. |
|
|
|
45. (Sushma Fernandes - HP) 19 Nov 2001 Added the cimuser command line |
|
source files. This CLI allows addition, modification, removal and listing |
|
of CIM users. The CLI is not linked to the main makefile as the Provider |
|
functionality is yet to be implemented. Added the function |
|
String getPassword(char* prompt) to the System.h and cpp files. |
|
|
|
46. (Nag Boranna - HP) 20 Nov 2001 Implemented Authentication code on |
|
the server to challenge the unauthorized requests, authenticate |
|
the challenge responses, and verify the subsequent authorized requests. |
|
Implemented authentication mechanism on the Client api to send |
|
responses to the challenges from the server. Current implementation |
|
supports only 'local' authentication mechanism. |
|
|
|
47. (Roger Kumpf - HP) 20 Nov 2001 Commited the following set of changes: |
|
|
|
- Changed the return value of EnumerateInstances from Array<CIMInstance> |
|
to Array<CIMNamedInstance> |
|
- Changed the parameter to ModifyInstance from CIMInstance to |
|
CIMNamedInstance |
|
- Added an optional PropertyList parameter to ModifyInstance |
|
- Changed all handling of PropertyList parameters to use the |
|
CIMPropertyList class instead of Array<String> |
|
|
|
Each of these changes was required to comply with the DMTF specification. |
|
|
|
These changes were made throughout the system except for in the provider |
|
API. For now, the CIMProviderHandle and CIMBaseProviderHandle hide the |
|
differences from providers, so older providers will continue to function. |
|
However, this means that clients can not yet take advantage of the added |
|
functionality. |
|
|
|
When the provider API is updated, the following changes will be visible: |
|
|
|
- Providers will get a PropertyList parameter to ModifyInstance which |
|
they are required to respect. Providers that can not process the |
|
PropertyList must throw a NOT_SUPPORTED exception whenever the |
|
list is not null. Clients can take advantage of this change by |
|
issuing a ModifyInstance request against a selected set of |
|
properties in an instance, rather than being required to replace |
|
the entire instance. |
|
|
|
- Providers will be required to return instance names along with |
|
instances in the EnumerateInstances method. Clients will receive |
|
these instance names, as the standard dictates. |
|
|
|
- Providers will receive a CIMPropertyList argument containing the |
|
PropertyList instead of an Array<String>. This change allows |
|
providers to distinguish between an empty list and a null list. |
|
|
|
Note that the repository also does not yet handle the PropertyList in |
|
ModifyInstance correctly. |
|
|
|
47. (Roger Kumpf - HP) 21 Nov 2001 I have updated the Provider2 instance |
|
provider API to match the changes made to the EnumerateInstances and |
|
ModifyInstance operations. These changes were made to comply with |
|
the DMTF specification. |
|
|
|
The original Provider API has not been updated, and I have no |
|
plans to do so. Providers written to the original API will |
|
continue to function, but they will not have the opportunity |
|
to take advantage of the features that have been added. |
|
|
|
The significant changes to the Provider2 API are: |
|
|
|
- Providers will get a PropertyList parameter to ModifyInstance which |
|
they are required to respect. Providers that can not process the |
|
PropertyList must throw a NOT_SUPPORTED exception whenever the |
|
list is not null. Clients can take advantage of this change by |
|
issuing a ModifyInstance request against a selected set of |
|
properties in an instance, rather than being required to replace |
|
the entire instance. |
|
|
|
- Providers will get an IncludeQualifiers parameter to ModifyInstance |
|
which they are required to respect. If IncludeQualifiers is |
|
false, the qualifiers on the modified instance provided must not |
|
be used to update the instance. |
|
|
|
- Providers will be required to return instance names along with |
|
instances in the EnumerateInstances method. Clients will receive |
|
these instance names, as the standard dictates. |
|
|
|
The providers that are in the Pegasus build have all been updated. |
|
However, whenever the PropertyList is not null, the providers throw |
|
a NOT_SUPPORTED exception. |
| |
--------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
Version 1.1 - July 2001 Development branch | Version 1.1 - July 2001 Development branch |