Solaris WBEM Services Administrator's Guide

Appendix B The Solaris Schema

During installation, the CIM Object Manager compiles MOF files that describe the CIM Schema and the Solaris Schema in the directory /usr/sadm/mof/. CIM Schema files, which implement the Core and Common Models of the Common Information Model, are denoted by the use of CIM in their associated file names. The Solaris Schema files, denoted by the use of Solaris in their file names, provide the implementation of the Solaris extension into the Common Information Model. This appendix describes the Solaris Schema files.

Solaris Schema Files

The following table provides a brief overview of the Solaris Schema files located in /usr/sadm/mof.

Table B-1 Solaris Schema Files
 Solaris Schema File Description of What it Provides
Solaris_Schema1.0.mof

Lists all of the MOF files of the Solaris Schema, in #pragma Include statements. Specifies the order in which the MOF files are read and compiled.

Solaris_CIMOM1.0.mof

Contains all the system properties that the CIM Object Manager uses. 

Solaris_Core1.0.mof

Enables WBEM core features to be implemented. Lets you set locales, qualifiers, and providers. 

Solaris_Application1.0.mof

Models Solaris packages and patches in CIM. 

Solaris_System1.0.mof

Models the Solaris Schema components for a system, including the operating system and processes of the system. Extends CIM Schema definitions through the definition of the Solaris_Process and Solaris_OperatingSystem classes.

Solaris_Device1.0.mof

Enables a description of your system's processor, serial ports, printing devices, and time settings to make your computer work with the CIM Object Manager.  

Solaris_Acl1.0.mof

Sets the base class and qualifiers for user ACLs. 

Solaris_Network1.0.mof

Defines classes pertaining to network domains, IP subnets, and naming services (including NIS, NIS+, LDAP, DNS, and server /etc files).

Solaris_Users1.0.mof

Defines classes for working with user accounts. 

For more detailed information about each file, see the following sections.

The Solaris_Schema1.0.mof File

The Solaris_Schema1.0.mof file is the high-level container of all other MOF files comprised by the Solaris Schema. It lists the MOF files in the order in which they must be compiled. The Java classes generated from each compilation are then sent to the CIM Object Manager, where they are either enacted as events or sent to the CIM Repository for storage as objects. The following listing of the Solaris_Schema1.0.mof file shows the Include statements in the order required for compilation.

/* 
Title:				Solaris Master MOF 1.0
Description:	Include pragmas for all other mofs
Date:        	05/09/00
Version:     	1.0 
Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved.
*/
#pragma Include ("usr/sadm/mof/Solaris_Core1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Application1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_System1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Device1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Network1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Users1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_CIMOM1.0.mof")
// This must be the last include since it changes the CIM namespace
#pragma Include ("usr/sadm/mof/Solaris_Acl1.0.mof")

The compiler parses a line of the Solaris_Schema1.0.mof file, compiles the file specified in the Include statement, and then parses the next line of the Solaris_Schema1.0.mof file, until all included files are compiled.

The Solaris_CIMOM1.0.mof File

The Solaris_CIMOM1.0.mof file contains all the system properties used by the CIM Object Manager.

/*
Title	:	    	Solaris CIMOM mof specification
Description:	Models the system properties used by the CIMOM
Date:				05/09/00
Version:			1.0
Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved.
*/
#pragma namespace ("root/system")

Qualifier Abstract : boolean = false,
		    Scope(class, association, indication),
		    Flavor(DisableOverride, Restricted);
Qualifier Association : boolean = false,
		    Scope(class, association), 
		    Flavor(DisableOverride);
Qualifier Key : boolean = false, 
		    Scope(property, reference), 
		    Flavor(DisableOverride);
Qualifier Override : string = null,
		    Scope(property, method, reference);
Qualifier Description : string = null,
			 Scope(any), 
			 Flavor(Translatable);
Qualifier Expensive : boolean = false, 
		    Scope(property, reference, method, class, association);
Qualifier In : boolean = true, 
		    Scope(parameter);
Qualifier Provider : string = null, 
		    Scope(any);

[Provider("internal"),
 Description("Each instance becomes part of the classpath")
]
class Solaris_ProviderPath {
    [key] 
    string pathurl;
};

[Provider("internal"),
 Description("This class represents the CIMOM")
]
class Solaris_CIMOM {
    [key] 
    string name;

    [Description("Shuts down the CIMOM")]
    sint8 shutdown();
};

The Solaris_Core1.0.mof File

The Solaris_Core1.0.mof file is the first of the Solaris Schema files to be compiled after the Solaris_Schema1.0.mof file. This file provides the definition of the Solaris_ComputerSystem class of the Solaris Provider, and also the Solaris_LogRecord, Solaris_LogService, Solaris_LogServiceProperties, and Solaris_LogServiceSetting classes.

Solaris_ComputerSystem Class

The first section of Solaris_Core1.0.mof sets the definition of Solaris_ComputerSystem as an extension of the CIM_UnitaryComputerSystem class.

[Provider("com.sun.wbem.solarisprovider.computersystem.Solaris_ComputerSystem")]class Solaris_ComputerSystem:CIM_UnitaryComputerSystem{}; 

Logging Definitions

The Solaris_LogRecord defines the types of data that can be written to WBEM system logs.

  
	[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogRecord")]
class Solaris_LogRecord 
{

WBEM system logs fall into three general categories: application logs, system logs, and security logs. Log records may be assigned different severities, including informational, warning, and error logs. For information about using the Solaris_LogRecord call to enable logging in your applications, see "Using the APIs to Enable Logging" in Chapter 5, System Logging.

All log records use a standard format that is defined in the Solaris_LogRecord class. The properties of Solaris_LogRecord indicate the types of data that are passed from an application into a log record. Some of the data passed is required by the CIM Object Manager and CIM Repository to identify the recorded data. These properties are flagged with a [read,key] qualifier to show that they are read-only. You can view the data but not change the values of these properties. You can change the values of properties assigned [read,write] qualifiers. The following list shows the properties as they are assigned to Solaris_LogRecord in Solaris_Core1.0.mof.

{
	[read, key]
	sint64 RecordID;
 [read, key]
	sint32 RecordHashCode;
	[read, key]
	string Filename;
	[read]
	datetime RecordDate;
	[read, write]
	sint32 category;
	[read, write]
	sint32 severity;
	[read, write]
	string AppName;
	[read, write]
	string UserName;
	[read, write]
	string ClientMachineName;
	[read, write]
	string ServerMachineName;
	[read, write]
	string SummaryMessage;
	[read, write]
	string DetailedMessage;
	[read, write]
	string data;
	[read, write]
	boolean SyslogFlag;
};

After properties are defined for Solaris_LogRecord, the Solaris_LogService class is defined as an extension of CIM_Service. This class controls the operation of the logging service.

	[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogService")]
class Solaris_LogService:CIM_Service
{

Each of the functions specified by the Solaris_LogService class defines how data is handled in a log file. For example, the clearLog() method specifies that all data is deleted from the log file and the log file is refreshed to accept new data.

{
	sint32 clearLog([IN] string fileName);
 
	sint64 getNumRecords([IN] string fileName, [OUT] sint64 numRec);
 
	sint32 listLogFiles([OUT]string logFiles[]);
 
	sint32 getCurrentLogFileName([OUT] string fileName);
 
	sint32 getNumLogFiles([OUT] sint32 numFiles);
 
	sint64 getLogFileSize([OUT] sint64 fileSize);
 
	sint32 getSyslogSwitch([OUT] string switch); 
 
	sint32 getLogStorageName([OUT] string fileName); 
 
	sint32 getLogFileDir([OUT] string dirName); 
};

The Solaris_LogServiceProperties class is defined as an extension of CIM_Setting:

	[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogServiceProperties")]
class Solaris_LogServiceProperties:CIM_Setting
{

The properties of this class control the following characteristics of a log file:

The Solaris_Application1.0.mof File

The Solaris_Application1.0.mof file lets you set up packages and patches for your applications that extend the Solaris Schema.

Packages

The Solaris_Application1.0.mof file contains classes that represent standard Solaris packages. These packages can be individually installed in and removed from the Solaris operating environment.

The following table lists the attributes you can set for your application packages, shows the field in which the package attribute is displayed when you run the pkginfo command, and describes the package attribute.

Table B-2 Package Information You Can Provide
 Package Attributepkginfo Field Description

Name 

PKGINST

The name you assign to your package. Names typically take the form of 3 to 4 uppercase characters indicating the vendor, and up to 5 lowercase characters to uniquely identify the package. 

Description 

DESC

A brief description of the package in the form of a character string. 

Caption 

NAME

An additional brief description of the package in the form of a character string. 

Category 

CATEGORY

Type of information contained in the package, for example, if the package contains video, graphic, or Java applications. The category is formed by a free-form string that usually contains the term system or application. The category string can be comprised of multiple terms separated by commas. Possible values include: ALE, graphics, java, video, JFP, SyMON.

Architecture 

ARCH

System architecture to which the package applies. The Architecture attribute can be a string or an enumeration. Use all to specify a generic text package such as a package that consists of man pages. Specify sparc or i386 to represent a binary (represented by its processor type) , or sparc.sun4u to specify a kernel (represented as a subclass of its processor type).

Base Directory 

BASEDIR

Valid UNIX path that indicates the top-level directory where the package was installed. 

Manufacturer 

VENDOR

Manufacturer of the product. 

Build Number 

PSTAMP

String showing the build host name followed by a time stamp. 

Install Date 

INSTDATE

Date and time values that indicate when the operating system was installed. 

Support Information 

HOTLINE

Character string that provides information about who to call for support. 

Patches

The Solaris_Application1.0.mof file also lets you provide fixes to problems and updated versions of your applications in the form of patches. The following table lists and describes the patch attributes that you can provide. All of the information contained in the patch attributes can be obtained with the showrev -p command.

Table B-3 Patch Information You Can Provide
 Patch Attribute Description
 Obsoletes Provides a description of patches that are obsolete or that have been integrated into the current patch.
 Requires Lists the patches required to make the current patch work.
 Incompatibles Lists patches that conflict with the current patch.
 Packages List of packages that this patch fixes.
 Manufacturer Lists the manufacturer's name.
 Installation Date Provides a date/time value indicating the date and time the patch was installed.

The Solaris_System1.0.mof File

The Solaris_System1.0.mof file defines the following classes:

In addition, the Solaris_System1.0.mof file defines the following association classes:

The Solaris_Device1.0.mof File

The Solaris_Device1.0.mof file defines the following classes:

In addition, the Solaris_Device1.0.mof file defines the following association classes:

Serial Ports

The Solaris_SerialPort class is defined with Boolean properties that let you control how serial port characteristics, such as baud rate and parity, are handled by the port. The Solaris_PortConfiguration class properties let you specify data values that a user can view or modify.

Solaris_Printer Class and Printing Definitions

The properties of the Solaris_Printer class and related classes are inherited from the CIM_Printer class and allow you to specify values for printers and printing services.

Solaris_TimeZone Class

The Solaris_TimeZone class properties allow you to specify values for setting and changing the date.

The Solaris_SystemTimeZone class is an association between the Solaris_ComputerSystem and Solaris_TimeZone classes. Its properties are Element, which holds the value of a CIM_ObjectPath to a Solaris_ComputerSystem instance, and Setting, which holds the value of a CIM_ObjectPath to a Solaris_TimeZone instance.

[Association, 	
         Provider ("com.sun.wbem.solarisprovider.tz.Solaris_SystemTimeZone")] 
class Solaris_SystemTimeZone:Solaris_SystemSetting 
{        [override("Element")]     
    Solaris_ComputerSystem REF Element;        
         [override("Setting")]     
    Solaris_TimeZone REF Setting; };     

The Solaris_Acl1.0.mof File

This file specifies the Solaris WBEM Services security classes. It defines the following base classes for access control lists, users, and namespaces:

For information about these classes, see "Using the APIs to Set Access Control" in Chapter 3, Administering Security.

The Solaris_Network1.0.mof File

The Solaris_Network1.0.mof file defines classes pertaining to network domains, IP subnets, and naming services (including NIS, NIS+, LDAP, DNS, and server /etc files). The following classes are defined:

The Solaris_Users1.0.mof File

The Solaris_Users1.0.mof file defines the following classes: