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.
The following table provides a brief overview of the Solaris Schema files located in /usr/sadm/mof.
Table B-1 Solaris Schema FilesSolaris 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 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 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 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.
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{};
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:
Directory--Directory to where the log file is written
FileSize--Size allowed for a log file before it is renamed and saved
NumFiles--Number of log files you can have in the archive
SyslogSwitch--Ability to write log data to syslog, the default logging system of the Solaris operating environment
The Solaris_Application1.0.mof file lets you set up packages and patches for your applications that extend the Solaris Schema.
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 ProvidePackage Attribute | pkginfo 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. |
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 ProvidePatch 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 defines the following classes:
Solaris_Process
Solaris_OperatingSystem
Solaris_InstalledOS
Solaris_RunningOS
Solaris_OSProcess
Solaris_LocalFileSystem
Solaris_UFS
Solaris_HSFS
Solaris_NFS
Solaris_Directory
Solaris_ScheduledJob
Solaris_ScheduledJob_Cron
Solaris_JobScheduler
Solaris_JobScheduler_Cron
Solaris_DisklessClient
Solaris_OsService
In addition, the Solaris_System1.0.mof file defines the following association classes:
Solaris_Mount
Solaris_NFSMount
Solaris_NFSExport
Solaris_UFSMount
Solaris_HSFSMount
Solaris_OwningJobScheduler
Solaris_HostedJobScheduler
Solaris_SystemDevice
The Solaris_Device1.0.mof file defines the following classes:
Solaris_Processor
Solaris_Environment
Solaris_DiskDrive
Solaris_DiskPartition
Solaris_SerialPort
Solaris_SerialPortConfiguration
Solaris_SerialPortSetting
Solaris_EthernetAdapter
Solaris_SoundDevice
Solaris_Keyboard
Solaris_TimeZone
Solaris_Printer
Solaris_PrintJob
Solaris_PrintService
Solaris_PrintQueue
Solaris_PrintSAP
In addition, the Solaris_Device1.0.mof file defines the following association classes:
Solaris_MediaPresent
Solaris_QueueForPrintService
Solaris_OwningPrintQueue
Solaris_PrinterServicingQueue
Solaris_SystemTimeZone
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.
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.
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; };
This file specifies the Solaris WBEM Services security classes. It defines the following base classes for access control lists, users, and namespaces:
Solaris_Acl
Solaris_UserAcl
Solaris_NamespaceAcl
For information about these classes, see "Using the APIs to Set Access Control" in Chapter 3, Administering Security.
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:
Solaris_AdminDomain
Solaris_SystemAdminDomain
Solaris_NisAdminDomain
Solaris_NisplusAdminDomain
Solaris_LdapAdminDomain
Solaris_DnsAdminDomain
Solaris_IPProtocolEndpoint
Solaris_IPSubnet
The Solaris_Users1.0.mof file defines the following classes:
Solaris_UserAccount
Solaris_UserGroup
Solaris_UserTemplate
Solaris_UserHomeDirectory
Solaris_AuthorizationAttribute
Solaris_ExecutionProfile
Solaris_ProfileAttribute
Solaris_MailBox
Solaris_EmailAlias