version 1.9, 2001/05/24 00:48:34
|
version 1.25, 2001/07/06 04:27:20
|
|
|
Urgent |
|
====== |
|
| |
- Fix case sensitivity problems in repository (just add an _Open method |
- Revisit use of namespace v.s. objectName in all CIM operations. |
that ignores the case of the file). |
|
| |
- Add newly implemented repository operations to protocol and to |
- What do we do when getInstance() is called and the nameSpace is |
dispatcher. |
provided both as an argument and as part of the instance name? |
| |
- Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in |
- ReferenceNames should return classes not just instances? |
Repository). |
|
| |
- Add tracing of output HTTP messages. |
- Remove final const from const methods in non-const CIM element classes. |
| |
- Need CIMInstance::removeMethod() and CIMInstance::removeProperty(). |
- Null vs. empty CIM/HTTP parameters. |
| |
Topical To-Do List |
- Resolve constness problems. (get rid or Const classes?) |
================== |
|
| |
- Support unloading of dynamic libraries (presently only load() is |
- Change CIMReference to CIMObjectPath? |
supported). |
|
| |
- Instances: |
- Finish associations. |
| |
- Implement CIMRepository::getProperty() |
- Provide CIMOM Context. |
| |
- Implement CIMRepository::setProperty() |
- Complete conventions document. |
| |
- Implement CIMRepository::deleteInstance() |
- The CIMServer.exe program should probably create the logs directory |
|
under PEGASUS_HOME. |
| |
- Implement CIMRepository::modifyInstance() |
- Clean up exceptions. |
| |
- Implement CIMRepository::enumerateInstances() |
- Resolve redundancy in which the namespace is passed to certain methods |
|
(getClass) and the CIMReference itself may contain a namespace arguent. |
| |
- Implement CIMRepository::enumerateInstanceNames() |
- Implement consistency and constraint checking on classes and instances. |
| |
- Handle inheritance in all instance operations. |
- Implement filtering (using includeQualifiers, localOnly, etc.) |
| |
- Double check that all these operations work across protocol. |
- Consider eliminating const CIM element classes. |
| |
- Check that they have keys during validation. |
- Support for NULL property lists (in interface and protocol). |
| |
- Associations: |
- Rename tests (prepend "Test" to each test). |
| |
- Implement CIMRepository::referencesOf() |
- Fix bug with cimserver.exe causing it to fail to start without te |
|
"-l" option. |
| |
- Implement CIMRepository::associatorsOf() |
- Resolve whether the backslash should be permitted in namespaces. |
| |
- Implement protocol stubs for these operations. |
- Create CIMOMContext (interface to CIMOM used b the provider). |
| |
- Exceptions: |
- Define Encoding module interface. |
| |
- Force __FILE__ and __LINE__ argument on every usage of CIMException. |
- Develop XMLEncodings module. |
| |
- Clean up and consolidate exception classes. |
- Develop BinaryEncodings module. |
| |
- Propagate underlying error messages across the CIM protocol. |
- Develop MOFEncodings module. |
| |
- References: |
- Employ BinaryEncodings module in repository (reduce disk usage). |
| |
- Validate arguments to CIMReference compound constructor and modifiers. |
- Combine repository instances, classes, and qualifiers into their |
(namespaces, hosts, classnames, and keybindings) |
respective files (to reduce the number of files). |
| |
- Be sure that escape sequences are handled inside of object names. For |
- Employ an efficient indexing scheme in repository (B-trees or hashing). |
example: |
|
| |
X.key1="Hello \"You\"" |
- Develop module manager: interface, lookup scheme, and loading scheme. |
| |
- Protocol: |
- Package Encodings classes as a module. |
| |
- Improve protocol tracing to show messages in both directions. |
- Finalize repository assocations. |
| |
- The TCPChannel::writeN() method blocks when the client and server |
- Add association CIM/HTTP operations. |
are in the same process. That is because the client cannot read |
|
anything as long as writeN() is blocked on a synchronous write. |
|
| |
- Figure out how to handle getProperty() return type. |
- Design association provider infrastructure. |
| |
- Provide ACE Channel implementation (for porting purposes)? |
- Implement missing CIM protocol operations. |
| |
- Handle PARAMETER.REFARRAY in Procotol? |
- Implement good observer module interface which allows different levels: |
| |
- Ignore extraneous XML elements (loosely valid). |
- Observation of client/CIMMOM connections/disconnection. |
| |
- Porting: |
- Observation of client/CIMOM communication. |
| |
- Replace "std::something" with "STD(something)" |
- Observation of CIMOM/repository communication. |
| |
- Replace "using namespace std" with "USING_NAMESPACE_PEGASUS" |
- Observation of CIMOM/provider communication. |
| |
- Aesthetics/Consistency/Usability: |
- Observation of CIMOM state transitions. |
| |
- Change getLength() and getSize() to just size(): "Brevity is the soul |
- Pegasus providers for Sun WBEM Services. |
of genius and of Lingerie". |
|
| |
- Add methods to get objects by their names, in addition to index. For |
- Pegasus providers for WMI. |
example: |
|
|
|
CIMProperty CIMClass::getProperty(const String& name); |
|
| |
- Perform walkthrough to expose consistency problems. |
- Sun WBEM Services providers for Pegasus. |
| |
- Distinguish between private and public classes (otherwise, users may |
- CIM/HTTP Proxy for WMI. |
come to depend on classes with unstable interfaces). |
|
| |
- Documentation: |
- Web Server/Pegasus Integration (use HTTP protocol capabilities of |
|
web server rather than Pegasus). |
| |
- Suggest newlines after methods. |
- Add CIMRepository::namespaceExists() method. |
| |
- Suggest use of "/** ... */" instead of "///" |
- Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN". |
| |
- Refine header file documentation. |
- GetInstances() and GetClasses() need to use iterators on |
|
provider and repository end. Otherwise, all classes or instance |
|
to be enumerated, must be sucked into memory. |
| |
- Write Pegasus Architecture Paper. |
- Template bloat reduction. |
| |
- Integrate DOC++ with make system (put all docs in doc tree): |
- Need a tool to say which features are supported by a compiler. |
| |
- Namespaces: |
- Support unloading of dynamic libraries (presently only load() is |
|
supported). |
| |
- Implement create and destroy namespace (according to the standard). |
- Clean up and consolidate exception classes. |
| |
- Providers |
- Asynchronous socket writes in the CIMOM (need write enabled flags). |
| |
- Add CIM-Server handles to provider interface. |
- Handle PARAMETER.REFARRAY in Procotol? |
| |
- Implement MOF provider registration scheme (according to the standard). |
- Implemented stream oriented XML parsing. |
| |
- WBEM Query Language |
- Ignore extraneous XML elements (implement "loose validation" concept). |
| |
- Find someone to work on standard. |
- Add methods to get objects by their names, in addition to index. For |
|
example: |
| |
- Implement leve-1 parser. |
CIMProperty CIMClass::getProperty(const String& name); |
| |
- MOF compiler: |
- Distinguish between private and public classes (otherwise, users may |
|
come to depend on classes with unstable interfaces). |
| |
- Work with Bob to identify work items. |
- Walk through all code to expose consistency/aesthetic issues. |
| |
- Threading |
- Provide ACE Channel implementation (for porting purposes)? |
| |
- Write thread queuing document (input and output thread queue per |
- Expand datatime (setCurrentTime() and comparison and increment |
provider). |
functions). |
| |
- Implement queuing. |
- Write Pegasus Architecture Paper. |
| |
- Make reference counted objects thread safe (Mutexing and atomic |
- Implement MOF provider registration scheme (according to the |
increments). |
standard). |
| |
- Connectors |
- WBEM Query Language and integration. |
| |
- Work out basic concepts (write paper). |
- Threading |
| |
- Package up pegasus in Install Shield application. | - Package up pegasus in Install Shield application. |
| |
|
- Internationalization: Handle UCS2 characters in XML |
|
(parsing and writing). |
| |
- Install |
- Export of repository to MOF. |
|
|
- Need install mechanism for Unix and Windows. |
|
|
|
- Interoperability |
|
|
|
- Fix reported bugs. |
|
|
|
- Internationalization |
|
|
|
- Handle UCS2 characters in XML (parsing and writing). |
|
|
|
- Repository: |
|
|
|
- Export to MOF. |
|
|
|
- Miscellaneous |
|
| |
- Change CompareNoCase() to String::compareNoCase(). | - Change CompareNoCase() to String::compareNoCase(). |
| |
- Place configuration startup parameters in Repository (e.g., port). |
- Figure out how to handle CIM NULL values. |
|
|
- Integrate logging |
|
|
|
- Figure out how to handle CIM null values. |
|
|
|
- Generalize iteration. |
|
| |
- Figure out how inheritance of keys works. | - Figure out how inheritance of keys works. |
| |
- Investiage weak assocations. | - Investiage weak assocations. |
| |
- Provide conversions between DateTime and time_t. |
|
|
|
- Constraint hanlding |
|
|
|
- Enforce constraint qualifiers. | - Enforce constraint qualifiers. |
| |
- Disallow resetting size of fixed length arrays. | - Disallow resetting size of fixed length arrays. |
| |
- Optimization/Tuning |
|
|
|
- Shrink object sizes. | - Shrink object sizes. |
| |
- Use lighter I/O system (than C++ streams). | - Use lighter I/O system (than C++ streams). |
|
|
| |
- Optimize clear method on arrays (to not release memory). | - Optimize clear method on arrays (to not release memory). |
| |
- Porting |
- Provide conversions between DateTime and time_t. |
| |
- Port to Solaris | - Port to Solaris |
| |
- Port to HPUX |
- Support multiple providers of the extact same class. |
|
DiskController example and LanController. |
- Port to AIX |
|
|
|
- Testing |
|
|
|
- Test case insensitivity of class names and qualifier names. |
|
|
|
- Run Purify on all sources (port to Sun first). |
|
|
|
- Run CIM/XML test suite. |
|
|
|
- Server |
|
|
|
- Use Service class in cimserver |
|
| |
- Implement Service class on Unix (daemonization from Comer book). |
- SLP |
|
- Eliminate lib directory. |