1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22/* 23 * ident "%Z%%M% %I% %E% SMI" 24 * Title Solaris Network File System (NFS) MOF specification 1.3 25 * Description Solaris Network File System model. 26 * Date 03/21/2003 27 * Version 1.3 28 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 29 * Use is subject to license terms. 30 */ 31 32#pragma namespace("root/cimv2") 33#pragma Locale ("en_US") 34 35// =================================================================== 36// Objects 37// =================================================================== 38 39#pragma namespace("__create") 40 41[Provider("jni:libWBEMnfs.so"), 42 Version("1.3.0"), 43 Description ( 44 "A class that represents a local NFS shared object on the " 45 "server side that is made accessible to other systems.") 46] 47class Solaris_NFSShare : CIM_NFSShare 48{ 49 [Description("If set to true: maximal access is given to all " 50 "clients. Valid for NFS version 2 only. Corresponds " 51 "to the 'aclok' share_nfs option (Solaris 9)."), 52 ModelCorrespondence{"Solaris_NFSMount.Version"}] 53 boolean AllowAccessControl = false; 54 55 [Description("Sets the the effective user ID of unknown users. By " 56 "default, unknown users are given the effective user " 57 "ID UID_NOBODY. UID_NOBODY is usually set to 60001 but " 58 "because an administrator can change this we don't set " 59 "it to this by default. Corresponds to the " 60 "'anon=' share_nfs option (Solaris 9)."), 61 Required, 62 Units("Bytes")] 63 Uint32 EffectiveUID; 64 65 [Description("If set to true: causes the server file system to " 66 "silently ignore any attempt to enable the setuid or " 67 "setgid mode bits. Corresponds to the 'nosuid' " 68 "share_nfs option (Solaris 9).")] 69 boolean IgnoreSetId = false; 70 71 [Description("Enables NFS server logging for the specified file " 72 "system. The optional tag determines the location of " 73 "the related log files. The tag is defined in " 74 "etc/nfs/nfslog.conf. The default value is the global " 75 "tag. The log file tag is only applicable when logging is " 76 "turned on. Corresponds to the 'log=' share_nfs option " 77 "(Solaris 9)."), 78 MappingStrings{"SOLARIS9.SUN|/etc/nfs/nfslog.conf"}] 79 String LogFileTag; 80 81 [Description("If set to true: the share is to be persistent across " 82 "reboots.")] 83 boolean Persistent = false; 84 85 [Description( 86 "A value of true prevents clients from mounting subdirectories " 87 "of shared directories. Corresponds to the 'nosub' share_nfs " 88 "option (Solaris 9).")] 89 boolean PreventSubDirMount = false; 90 91 [Description("If set to true: the public file handle is moved from " 92 "root (/) to the exported directory. Corresponds to " 93 "the 'public' share_nfs option (Solaris 9).")] 94 boolean Public = false; 95 96 [Description("This attribute is only used upon creation of a share. " 97 "Security information should be retrieved from " 98 "Solaris_NFSShareSecurity and Solaris_NFSShareSecurityModes." 99 "This attribute stores the security options for a share. " 100 "Each element of the array is a string starting with " 101 "sec=<mode> and including all options, such as access lists, " 102 "pertaining to that security mode.")] 103 String SecurityOptions[]; 104 105 [Description("A string of share options for the shared file system as found" 106 "in /etc/dfs/sharetab.")] 107 String ShareOptions; 108 109 [Description("An attribute that is only used at the time of creation of " 110 "a Solaris_NFSShare instance. If it is set to true, the " 111 "the NFS server daemons (nfsd and mountd) will be started " 112 "with the default settings, if and only if, nfsd and mountd " 113 "aren't already running on the host. The daemons will NOT " 114 "be stopped and restarted. As a side effect of starting the " 115 "NFS server daemons the share being created will be placed " 116 "as an entry in /etc/dfs/dfstab since the starting of the " 117 "daemon relies on entries here."), 118 MappingStrings{"SOLARIS9.SUN|/etc/init.d/nfs.server start"}] 119 boolean StartDaemons = false; 120}; 121 122[Provider( 123 "jni:libWBEMnfs.so"), 124 Version("1.3.0"), 125 Description ( 126 "A class used to represent the NFS share security mode and " 127 "associated options for a Solaris_NFSShare object.") 128] 129class Solaris_NFSShareSecurity : CIM_Setting 130{ 131 132 [Description("Sets the maximum life time (in seconds) of the " 133 "RPC request's credential, that the NFS server " 134 "will allow. Valid for NFS sec mode of diffie " 135 "helman (dh) only. Corresponds to the 'window=' " 136 "share_nfs option (Solaris 9)." 137 "If the security mode is not Diffie Helman, this " 138 "property will not be set."), 139 ModelCorrespondence{"Solaris_NFSShareSecurity.Mode"}, 140 Units("seconds")] 141 uint32 MaxLife = 30000; 142 143 [Key, 144 Description ( 145 "Security mode used. Can be either sys, dh, krb5, krb5i, " 146 "krb5p. Unknown and other default to the default security " 147 "mode of AUTH_SYS (sys). Corresponds to the 'sec=' share_nfs " 148 "option (Solaris 9)."), 149 Required, 150 ValueMap {"Unknown", "Other", "sys", "dh", "krb5", "krb5i", "krb5p"}] 151 String Mode; 152 153 [Description ( 154 "If true: Access will be read-only for all clients in this " 155 "security mode. else: access will be read-write. Corresponds " 156 "to the 'ro' share_nfs option (Solaris 9).")] 157 boolean ReadOnly; 158 159 [Description ( 160 "The list of clients whose access will be read-only. " 161 "Corresponds to the 'ro=' share_nfs option (Solaris 9).")] 162 string ReadOnlyList[]; 163 164 [Description ( 165 "The list of clients whose access will be read-write. " 166 "Corresponds to the 'rw=' share_nfs option (Solaris 9).")] 167 string ReadWriteList[]; 168 169 [Description ( 170 "The list of hosts with root access. Only root users from the " 171 "hosts specified will have root access. Corresponds to the " 172 "'root=' share_nfs option (Solaris 9).")] 173 string RootServers[]; 174 175 [Override("SettingId"), 176 Key, 177 Description("The path name of the share."), 178 Required] 179 String SettingId; 180}; 181 182#pragma namespace("__modify") 183 184[Provider( 185 "jni:libWBEMnfs.so"), 186 Version("1.3.0"), 187 Description ( 188 "The options used to mount a Solaris NFS file system.")] 189class Solaris_NFS : CIM_NFS 190{ 191 [Deprecated { 192 "This is not replaced with anything. Global doesn't apply to NFS file " 193 "system mounts."}, 194 Description("If set to true: the filesystem is mounted 'globally' on all " 195 "nodes of a cluster. " 196 "If set to false (default): the filesystem is not mounted on " 197 "all nodes of a cluster. " 198 "Ignored for non-clustered systems.")] 199 boolean Global = false; 200 201 [Deprecated { 202 "Solaris_NFSMount.GroupId"}, 203 Description("If set to true: use BSD style group id semantics. " 204 "If set to false (default): use System V style group " 205 "id semantics.")] 206 boolean GrpId = false; 207 208// [Override("Name"), 209// Description("The Name property is populated with the following string: " 210// "resource:=<resource> devid:=<devid> " 211// "Upon creation of an instance of Solaris_NFS, Name must be " 212// "populated with just the file system resource " 213// "(ex: /dev/dsk/c0t0d0s6 or pogo:/export) since the devid/file " 214// "system id is not yet known.")] 215// string Name; 216 217 [Deprecated { 218 "Solaris_Mount.NoMnttabEntry"}, 219 Description("If set to true: the mount entry is not added to /etc/mnttab. " 220 " If set to false (default): the mount is recorded in " 221 "/etc/mnttab.")] 222 boolean NoMnttabEntry = false; 223 224 [Deprecated { 225 "Solaris_Mount.NoSuid"}, 226 Description("If set to true: don't allow allow setuid execution. " 227 "If set to false (default): allow setuid execution.")] 228 boolean NoSuid = false; 229 230 [Deprecated { 231 "Solaris_Mount.Overlay"}, 232 Description("If set to true: the file system is mounted over an existing " 233 "mounted filesystem. " 234 "If set to false (default): the filesystem is not mounted over " 235 "an existing mounted filesystem.")] 236 boolean Overlay = false; 237 238 [Deprecated { 239 "Solaris_NFSMount.Posix"}, 240 Description("If set to true: use POSIX.1 semantics for filesystem. " 241 "If set to false (default): do not use POSIX.1 semantics.")] 242 boolean Posix = false; 243 244 [Deprecated { 245 "Solaris_NFSMount.Protocol"}, 246 Description("A string specifying the transport protocol used for the " 247 "NFS mount. It is the value of the network_id field from " 248 "/etc/netconfig.")] 249 String Proto; 250 251 [Deprecated { 252 "Solaris_NFSMount.Public"}, 253 Description("If set to true: use the public file handle. " 254 "If set to false (default): do not use the public " 255 "file handle.")] 256 boolean Public = false; 257 258 [Deprecated { 259 "Solaris_NFSMount.EnableQuotaChecking"}, 260 Description("If set to true: enable quota checking. " 261 "If set to false (default): disable quota checking.")] 262 boolean Quota = false; 263 264 [Deprecated { 265 "The same effect can be achieved by setting Solaris_Mount.ReadOnly " 266 "to false which resets the mount option to read-write. Then remount " 267 "the filesystem."}, 268 Description("If set to true: remount a read-only file system with " 269 "read-write options. " 270 "If set to false (default): the filsystem is mounted with " 271 "the specified mount options.")] 272 boolean Remount = false; 273 274 [Deprecated { 275 "Solaris_NFSMount.SecurityMode"}, 276 Description("A string describing the security mode for NFS transactions. " 277 "Available modes is listed in /etc/nfssec.conf.")] 278 String SecurityMode; 279 280 [Deprecated { 281 "Calculate from CIM_FileSystem.FileSystemSize and " 282 "CIM_FileSystem.AvailableSpace. " 283 "UsedSpace = CIM_FileSystem.FileSystemSize - " 284 "CIM_FileSystem.AvailableSpace. " 285 "Note: CIM_FileSystem.AvailableSpace now contains " 286 "the correct value with respect to the space " 287 "reserved only for superuser."}, 288 Description("Indicates the total amount of used space on the " 289 "File System in bytes. Note that this is not the " 290 "FileSystemSize minus AvailableSpace due to the space " 291 "reserved only for superuser."), 292 Units("Bytes")] 293 uint64 UsedSpace; 294 295 [Deprecated { 296 "Solaris_NFSMount.Version"}, 297 Description ("Version number of NFS protocol to use."), 298 ValueMap {"2", "3", "4", "highest"}] 299 String Version = "highest"; 300 301 // Methods 302 [Deprecated { 303 "Solaris_NFSMount.getNetCfgList"}, 304 Description("Method to obtain the list of network IDs from " 305 "the /etc/netconfig file.")] 306 sint32 getNetCfgList([OUT, IN(false)]string ids[]); 307 308 [Deprecated { 309 "Solaris_NFSMount.getNfsSecList"}, 310 Description("Method to obtain the list of nfs security modes from " 311 "the /etc/nfssec.conf file.")] 312 sint32 getNfsSecList([OUT, IN(false)]string secmodes[]); 313 314 [Deprecated { 315 "Solaris_NFSMount.getDefaultNfsSecMode"}, 316 Description("Method to obtain the the default nfs security mode from " 317 "the /etc/nfssec.conf file.")] 318 sint32 getDefaultNfsSecMode([OUT, IN(false)]string secmode); 319}; 320 321#pragma namespace("__create") 322 323[Provider( 324 "jni:libWBEMnfs.so"), 325 Version("1.3.0"), 326 Description ( 327 "This class represents a share that is to be persistent across reboots. " 328 "There is a possiblity depending on the persistance mechanism " 329 "(ex: /etc/dfs/dfstab) that there are multiple shares that are to be " 330 "persistent which have the same path. If this occurs, a Key Not Unique " 331 "type of error will be set when calling intrinsic methods getInstance, " 332 "deleteInstance, addInstance and editInstance and no instance will be " 333 "returned.")] 334class Solaris_PersistentShare : CIM_SystemSetting 335{ 336 337 [Description( 338 "String representing the share command entry in /etc/dfs/dfstab.")] 339 String Command; 340 341 [Override ("SettingID"), 342 Description("The path of the persistent share.")] 343 string SettingID; 344 345 //Methods 346 [Description("Method to be used to clear up conflicts in the " 347 "/etc/dfs/dfstab file. Conflicts are defined as any entries that have " 348 "the same path to be shared. All entries with the same path as passed " 349 "in with the <path> parameter will be deleted. The method returns 1 " 350 "if it succeded, 0 if a failure occurred.")] 351 sint32 deleteAllWithDuplicatePath([IN]String path); 352}; 353 354[Experimental, 355 Version("1.3.0"), 356 Description("The Solaris_MountSetting object contains attributes that " 357 "are commonly used to configure a file system mount on a " 358 "Solaris system. Attributes which have the potential of " 359 "operating at a different value than what was configured " 360 "will also be on the Solaris_Mount object.")] 361class Solaris_MountSetting : CIM_SettingData { 362 363 [Description ("The underlying file system type the mount is to be " 364 "configured for."), 365 ValueMap {"Unknown", "Other", "ufs", "nfs", "hsfs", "cachefs", "pcfs", 366 "procfs", "tmpfs", "VxFS", "SAMQFS", "devfs", "udfs", "sockfs", 367 "autofs", "specfs", "fifofs"}, 368 ModelCorrespondence {"CIM_FileSystem.FileSystemType"}, 369 MappingStrings {"SOLARIS9.SUN|mount -F <FStype>"}] 370 string FsType; 371 372 [Description ("A string of file system mount options specified when " 373 "mounting the file system. This property is also present on " 374 "the Solaris_Mount class. The Solaris_Mount.MountOptions " 375 "property represents the actual operational value of the " 376 "mount options string as reported in /etc/mnttab. " 377 "Therefore, the properties may have different values."), 378 MappingStrings {"SOLARIS9.SUN|mount -o <mount options, comma delimited>"}] 379 string MountOptions; 380 381 [Description("If set to true: the mount entry is added to /etc/mnttab." 382 "If set to false (default): the mount is not recorded in " 383 "/etc/mnttab."), 384 MappingStrings {"SOLARIS9.SUN|mount -m"}] 385 boolean NoMnttabEntry = false; 386 387 [Description("If set to true: don't allow allow setuid execution. " 388 "If set to false (default): allow setuid execution."), 389 MappingStrings {"SOLARIS9.SUN|mount -o suid | nosuid"}] 390 boolean NoSuid = false; 391 392 [Description("If set to true: the filesystem is mounted over an " 393 "existing mounted filesystem. If set to false (default): " 394 " the filesystem is not mounted over an existing mounted " 395 "filesystem."), 396 MappingStrings {"SOLARIS9.SUN|mount -O"}] 397 boolean Overlay = false; 398 399 [Description("If set to true: the filesystem is mounted as a read only " 400 "filesystem. If set to false (default): the " 401 "filesystem is mounted as a read/write " 402 "filesystem."), 403 MappingStrings {"SOLARIS9.SUN|mount -o rw | ro"}] 404 boolean ReadOnly = false; 405 406 [Description("If set to true, the file system will have a corresponding " 407 "device to mount/mount point entry in /etc/vfstab. This " 408 "property is also present on the Solaris_Mount class. The " 409 "Solaris_Mount.VfstabEntry property represents the actual " 410 "operational value of whether or not the mount has and entry " 411 "in /etc/vfstab. Therefore, the properties may have " 412 "different values."), 413 MappingStrings {"SOLARIS9.SUN|vfstab"}] 414 415 boolean VfstabEntry; 416 417}; 418 419[Experimental, 420 Version("1.3.0"), 421 Description ("The Solaris_NFSMountSetting object contains attributes " 422 "that are commonly used to configure an NFS mount " 423 "on a Solaris system. Attributes which have the " 424 "potential of operating at a different value than what " 425 "was configured will also be on the Solaris_NFSMount object.") ] 426class Solaris_NFSMountSetting : Solaris_MountSetting 427{ 428 429 [Description ( 430 "If set to true, allow data and attribute caching. If set to " 431 "false, suppress data and attribute caching. Corresponds to " 432 "the 'noac' mount_nfs option (Solaris 9).") ] 433 boolean AttributeCaching = true; 434 435 [Description ( 436 "Maximum number of seconds that cached attributes are held " 437 "after directory update. Corresponds to the 'acdirmax=' " 438 "mount_nfs option (Solaris 9)."), 439 Units("Seconds") ] 440 uint16 AttributeCachingForDirectoriesMax = 60; 441 442 [Description ( 443 "Minimum number of seconds that cached attributes are held " 444 "after directory update. Corresponds to the 'acdirmin=' " 445 "mount_nfs option (Solaris 9)."), 446 Units("Seconds") ] 447 uint16 AttributeCachingForDirectoriesMin = 30; 448 449 [Description ( 450 "Maximum number of seconds that cached attributes are held " 451 "after file modification. Corresponds to the 'acregmax=' " 452 "mount_nfs option (Solaris 9)."), 453 Units("Seconds") ] 454 uint16 AttributeCachingForRegularFilesMax = 60; 455 456 [Description ( 457 "Minimum number of seconds that cached attributes are held " 458 "after file modification. Corresponds to the 'acregmin=' " 459 "mount_nfs option (Solaris 9)."), 460 Units("Seconds") ] 461 uint16 AttributeCachingForRegularFilesMin = 3; 462 463 [Description("If set to true: enable quota checking. If set to " 464 "false (default): disable quota checking. " 465 "Corresponds to the 'quota/noquota' mount_nfs " 466 "options (Solaris 9).")] 467 boolean EnableQuotaChecking = false; 468 469 [Description ( 470 "The list of resources to be used for failover. Each " 471 "resource must be of the form host:/pathname, NFS URL or a " 472 "list of hosts, if the exported directory name is the same.")] 473 string FailoverList[]; 474 475 [Description("If true, data is transferred directly between " 476 "client and server, with no buffering on the client. " 477 "If false: Data is buffered on the client. " 478 "The default is false. Corresponds to the " 479 "'forcedirectio/noforcedirectio' mount_nfs options " 480 "(Solaris 9).")] 481 boolean ForceDirectIO = false; 482 483 [Description("If set to true: use BSD style group id semantics. " 484 "If set to false (default): use System V style group " 485 "id semantics. Corresponds to the 'grpid' mount_nfs " 486 "option (Solaris 9).")] 487 boolean GroupId = false; 488 489 [Description ( 490 "If set to true, once the FileSystem is mounted, NFS requests " 491 "are retried until the hosting System responds. " 492 "If set to false, once the FileSystem is mounted, an error " 493 "is returned if the hosting System does not respond. " 494 "Corresponds to the 'hard/soft' mount_nfs options (Solaris 9).")] 495 boolean HardMount = true; 496 497 [Description ( 498 "If set to true, keyboard interrupts are permitted to kill a " 499 "process that is hung while waiting for a response on a hard- " 500 "mounted file system. If set to false, keyboard interrupts " 501 "are ignored. Corresponds to the 'intr/nointr' mount_nfs " 502 "options (Solaris 9).") ] 503 boolean Interrupt = true; 504 505 [Description ("Maximum number of NFS retransmissions allowed. " 506 "Corresponds to the 'retrans=' mount_nfs option (Solaris 9).") ] 507 uint16 MaxRetransmissionAttempts = 5; 508 509 [Description ("Maximum number of mount failure retries allowed. The " 510 "default for the mount command is 10000. The default for the " 511 "automounter is 0. " 512 "Corresponds to the 'retry=' mount_nfs option (Solaris 9). " 513 "This value is only valid upon creation of an instance of " 514 "instance of Solaris_NFSMount. This is actually a mount _process_ " 515 "option and not a mount option.") ] 516 uint16 MountFailureRetries; 517 518 [Description("If true, do not perform the normal close-to-open " 519 "consistency. The client will not perform the flush " 520 "on close and the request for validation, allowing " 521 "the possiblity of differences among copies of the " 522 "same file as stored on multiple clients. This can " 523 "be used where it can be guaranteed that accesses to " 524 "a specified file system will be made from only one " 525 "client and only that client. The default is false. " 526 "Corresponds to the 'nocto' mount_nfs option (Solaris 9).")] 527 boolean NoCloseToOpenConsistency = false; 528 529 [Description("If set to true: use POSIX.1 semantics for filesystem. " 530 "If set to false (default): do not use POSIX.1 " 531 "semantics. Corresponds to the 'posix' mount_nfs " 532 "option (Solaris 9).")] 533 boolean Posix = false; 534 535 [Description("A string specifying the transport protocol used for the " 536 "NFS mount. It is the value of the network_id field from " 537 "/etc/netconfig. Corresponds to the 'proto=' " 538 "mount_nfs option (Solaris 9)."), 539 MappingStrings{"SOLARIS9.SUN|/etc/netconfig"} ] 540 String Protocol; 541 542 [Description("If set to true: use the public file handle. " 543 "If set to false (default): do not use the public " 544 "file handle. Corresponds to the 'public' mount_nfs " 545 "option (Solaris 9).")] 546 boolean Public = false; 547 548 [Description ("Read buffer size in bytes. The default is 32768 for " 549 "version 3 and 8192 for version 2. Corresponds to the " 550 "'rsize=' mount_nfs option (Solaris 9)."), 551 Units("Bytes") ] 552 uint64 ReadBufferSize; 553 554 [Description ("NFS timeout in tenths of a second. The default is 11 " 555 "tenths of a second for connectionless transports and 600 " 556 "tenths of a second for connection oriented transports. " 557 "Corresponds to the 'timeo=' mount_nfs option (Solaris 9)."), 558 Units ("Tenths of Seconds") ] 559 uint32 RetransmissionTimeout; 560 561 [Description ( 562 "If set to true, if the first mount attempt fails, retries are " 563 "performed in the foreground. If set to false, retries are " 564 "performed in the background. Corresponds to the 'bg/fg' " 565 "mount_nfs options (Solaris 9). " 566 "This value is only valid upon creation of an instance of " 567 "instance of Solaris_NFSMount. This is actually a mount _process_ " 568 "option and not a mount option.") ] 569 boolean RetryInForeground = true; 570 571 [Description("A string describing the security mode for NFS transactions. " 572 "Available modes is listed in /etc/nfssec.conf. " 573 "Corresponds to the 'sec=' mount_nfs option (Solaris 9)."), 574 MappingStrings{"SOLARIS9.SUN|/etc/nfssec.conf"} ] 575 String SecurityMode; 576 577 [Description ( 578 "The NFS Server IP port number. Default is NFS_PORT which is defined " 579 "in /usr/include/nfs/nfs.h. Corresponds to the 'port=' mount_nfs " 580 "option (Solaris 9).") ] 581 uint32 ServerCommunicationPort; 582 583 [Description("The name of the NFS server.")] 584 String ServerName; 585 586 [Description("The path of the NFS resource on the server.")] 587 String ServerPath; 588 589 [Description ( 590 "Version number of NFS protocol to use. Corresponds to the " 591 "'vers=' mount_nfs option (Solaris 9)."), 592 ValueMap {"2", "3", "4", "highest"} ] 593 String Version = "highest"; 594 595 [Description ("Write buffer size in bytes. The default is 32768 for " 596 "version 3 and 8192 for version 2. Corresponds to the " 597 "'wsize=' mount_nfs option (Solaris 9)."), 598 Units("Bytes") ] 599 uint64 WriteBufferSize; 600 601 602 [Description( 603 "Allows the creation and manipulation of extended attributes. " 604 "Corresponds to the 'xattr/noxattr' mount_nfs options (Solaris 9). ")] 605 boolean Xattr = true; 606}; 607 608 [Experimental, 609 Version("1.3.0"), 610 Description("The Solaris_ShareSetting object contains attributes that " 611 "are commonly used to configure the sharing of a resource " 612 "on a Solaris system.")] 613class Solaris_ShareSetting : CIM_SettingData { 614}; 615 616[Experimental, 617 Version("1.3.0"), 618 Description ( 619 "A class that contains attributes for a local NFS shared object " 620 "on the server side that is made accessible to other systems. " 621 "Attributes which have the potential of operating at a different " 622 "value than what was configured will also be on the Solaris_Mount " 623 "object.") 624] 625class Solaris_NFSShareSetting : Solaris_ShareSetting 626{ 627 628 [Description("If set to true: maximal access is given to all " 629 "clients. Valid for NFS version 2 only. Corresponds " 630 "to the 'aclok' share_nfs option (Solaris 9)."), 631 ModelCorrespondence{"Solaris_NFSMount.Version"}] 632 boolean AllowAccessControl; 633 634 [Description("Sets the the effective user ID of unknown users. By " 635 "default, unknown users are given the effective user " 636 "ID UID_NOBODY. UID_NOBODY is usually set to 60001 but " 637 "because an administrator can change this we don't set " 638 "it to this by default. Corresponds to the " 639 "'anon=' share_nfs option (Solaris 9)."), 640 Required, 641 Units("Bytes")] 642 Uint32 EffectiveUID; 643 644 [Description("If set to true: causes the server file system to " 645 "silently ignore any attempt to enable the setuid or " 646 "setgid mode bits. Corresponds to the 'nosuid' " 647 "share_nfs option (Solaris 9).")] 648 boolean IgnoreSetId; 649 650 [Description("Enables NFS server logging for the specified file " 651 "system. The optional tag determines the location of " 652 "the related log files. The tag is defined in " 653 "etc/nfs/nfslog.conf. The default value is the global " 654 "tag. Corresponds to the 'log=' share_nfs option (Solaris 9)."), 655 MappingStrings{"SOLARIS9.SUN|/etc/nfs/nfslog.conf"}] 656 String LogFileTag = "global"; 657 658 [Description("If set to true: the public file handle is moved from " 659 "root (/) to the exported directory. Corresponds to " 660 "the 'public' share_nfs option (Solaris 9).")] 661 boolean Public; 662 663 [Description ( 664 "A value of true prevents clients from mounting subdirectories " 665 "of shared directories. Corresponds to the 'nosub' share_nfs " 666 "option (Solaris 9).")] 667 boolean PreventSubDirMount; 668 669 [Description("An attribute that is only used at the time of creation of " 670 "a NFS Share instance. If it is set to true, the " 671 "the NFS server daemons (nfsd and mountd) will be started " 672 "with the default settings, if and only if, nfsd and mountd " 673 "aren't already running on the host. The daemons will NOT " 674 "be stopped and restarted. As a side effect of starting the " 675 "NFS server daemons the share being created will be placed " 676 "as an entry in /etc/dfs/dfstab since the starting of the " 677 "daemon relies on entries here."), 678 MappingStrings{"SOLARIS9.SUN|/etc/init.d/nfs.server start"}] 679 boolean StartDaemons; 680}; 681 682 683 [Provider("jni:libWBEMnfs.so"), 684 Version("1.3.0"), 685 Description("A logical element that contains the information necessary " 686 "to represent and manage the functionality provided by " 687 "shares in Solaris.")] 688 689class Solaris_ShareService : CIM_Service { 690 691 //Methods 692 [Description("Method which shares all resources listed in the file " 693 "specified with the file parameter. The specified file " 694 "should contain a list of share command lines. " 695 "If no file is specified /etc/dfs/dfstab is used. " 696 "Resources may be shared by specific file system types by " 697 "specifying the file system type (or types in a comma " 698 "delimited list) as input parameter, fstype. The method " 699 "returns 1 if it succeded, 0 if a failure occurred. " 700 "Corresponds to /usr/sbin/shareall (Solaris 9)")] 701 sint32 shareall([IN]String fstype, [IN]String file); 702 703 [Description("Method which unshares all currently shared resources. " 704 "If a fstype (or fstypes in a comma delimited list) is not " 705 "specified in the fstype parameter, all distributed file " 706 "system type resources will be unshared. The method " 707 "returns 1 if it succeded, 0 if a failure occurred. " 708 "Corresponds to /usr/sbin/unshareall (Solaris 9)")] 709 sint32 unshareall([IN]String fstype); 710}; 711 712 713 714 [Provider("jni:libWBEMnfs.so"), 715 Version("1.3.0"), 716 Description("A logical element that contains the information necessary " 717 "to represent and manage the functionality provided by " 718 "file system mounts in Solaris.")] 719 720class Solaris_MountService : CIM_Service { 721 722 //Methods 723 [Description("Method which mounts file systems listed in the file system " 724 "table as specified with the fstable parameter." 725 "The specified file system table (file) must be in the vfstab " 726 "format. If no file system table is specified (an empty " 727 "string is passed in) /etc/vfstab is used. Only the file " 728 "systems having the mount at boot field set to yes in the " 729 "table will be mounted. " 730 "The fstype parameter can be used to specify the file " 731 "system type of the file systems to be mounted. The " 732 "onlyLocalFileSystems and onlyRemoteFileSystems parameters " 733 "are mutually exclusive. If onlyLocalFileSystems is true, " 734 "the mountall action will be limited to local file systems. " 735 "If onlyRemoteFileSystems is true, the mountall action will " 736 "be limited to remote file system types. The method " 737 "returns 1 if it succeded, 0 if a failure occurred. " 738 "Corresponds to /usr/sbin/mountall (Solaris 9)")] 739 sint32 mountall([IN]String fstype, [IN]Boolean onlyLocalFileSystems, 740 [IN]Boolean onlyRemoteFileSystems, [IN]String fstable); 741 742 [Description("Method used to unmount all file systems except root, /usr, " 743 "/var, /var/adm, /var/run, /proc, and /dev/fd. There is no " 744 "guarantee that this function will unmount busy file " 745 "systems. " 746 "The fstype parameter can be used to specify the fstype of " 747 "the file systems to be unmounted. The host parameter " 748 "can be used to unmount all file systems listed in " 749 "/etc/mnttab that are remote-mounted from the host specified." 750 " If onlyLocalFileSystems is true, limit the unmounting to " 751 "local file systems. If onlyRemoteFileSystems is true, the " 752 "mounting will be limited to remote file system types. " 753 "If killProcesses is true, a SIGKILL signal is sent to each " 754 "process using the file and this spawns kills for those" 755 "processes. If unmountInParallel is true, the umount " 756 "operation will be performed in parallel. " 757 "The onlyLocalFileSystems and onlyRemoteFileSystems " 758 "parameters are mutually exclusive and cannot be used when " 759 "a host is defined. The fstype and host parameters are also " 760 "mutually exclusive. The method returns 1 if it succeded, 0 " 761 "if a failure occurred. Corresponds to /usr/sbin/umountall " 762 "(Solaris 9)")] 763 sint32 unmountall([IN]String fstype, 764 [IN]String host, 765 [IN]Boolean onlyLocalFileSystems, 766 [IN]Boolean onlyRemoteFileSystems, 767 [IN]Boolean killProcesses, 768 [IN]Boolean umountInParallel); 769}; 770 771// =================================================================== 772// Associations 773// =================================================================== 774#pragma namespace("__modify") 775 776[Association, 777 Provider( 778 "jni:libWBEMnfs.so"), 779 Version("1.3.0"), 780 Description ( 781 "An association between a remote directory that can be mounted " 782 "and the NFS mounted file system.") ] 783class Solaris_NFSMount : Solaris_Mount 784{ 785 [Description ( 786 "If set to true, allow data and attribute caching. If set to " 787 "false, suppress data and attribute caching. Corresponds to " 788 "the 'noac' mount_nfs option (Solaris 9).") ] 789 boolean AttributeCaching = true; 790 791 [Description ( 792 "Maximum number of seconds that cached attributes are held " 793 "after directory update. Corresponds to the 'acdirmax=' " 794 "mount_nfs option (Solaris 9)."), 795 Units("Seconds") ] 796 uint16 AttributeCachingForDirectoriesMax = 60; 797 798 [Description ( 799 "Minimum number of seconds that cached attributes are held " 800 "after directory update. Corresponds to the 'acdirmin=' " 801 "mount_nfs option (Solaris 9)."), 802 Units("Seconds") ] 803 uint16 AttributeCachingForDirectoriesMin = 30; 804 805 [Description ( 806 "Maximum number of seconds that cached attributes are held " 807 "after file modification. Corresponds to the 'acregmax=' " 808 "mount_nfs option (Solaris 9)."), 809 Units("Seconds") ] 810 uint16 AttributeCachingForRegularFilesMax = 60; 811 812 [Description ( 813 "Minimum number of seconds that cached attributes are held " 814 "after file modification. Corresponds to the 'acregmin=' " 815 "mount_nfs option (Solaris 9)."), 816 Units("Seconds") ] 817 uint16 AttributeCachingForRegularFilesMin = 3; 818 819 [Override ("Dependent"), 820 Description ("The file system mounted via NFS. " 821 "It is also referred to as the resource to mount.") ] 822 Solaris_NFS REF Dependent; 823 824 [Description("If set to true: enable quota checking. If set to " 825 "false (default): disable quota checking. " 826 "Corresponds to the 'quota/noquota' mount_nfs " 827 "options (Solaris 9).")] 828 boolean EnableQuotaChecking = false; 829 830 [Description("If true, data is transferred directly between " 831 "client and server, with no buffering on the client. " 832 "If false: Data is buffered on the client. " 833 "The default is false. Corresponds to the " 834 "'forcedirectio/noforcedirectio' mount_nfs options " 835 "(Solaris 9).")] 836 boolean ForceDirectIO = false; 837 838 [Description ( 839 "The list of resources to be used for failover. Each " 840 "resource must be of the form host:/pathname, NFS URL or a " 841 "list of hosts, if the exported directory name is the same.")] 842 string FailoverList[]; 843 844 [Description("If set to true: use BSD style group id semantics. " 845 "If set to false (default): use System V style group " 846 "id semantics. Corresponds to the 'grpid' mount_nfs " 847 "option (Solaris 9).")] 848 boolean GroupId = false; 849 850 [Description ( 851 "If set to true, once the FileSystem is mounted, NFS requests " 852 "are retried until the hosting System responds. " 853 "If set to false, once the FileSystem is mounted, an error " 854 "is returned if the hosting System does not respond. " 855 "Corresponds to the 'hard/soft' mount_nfs options (Solaris 9).")] 856 boolean HardMount = true; 857 858 [Description ( 859 "If set to true, keyboard interrupts are permitted to kill a " 860 "process that is hung while waiting for a response on a hard- " 861 "mounted file system. If set to false, keyboard interrupts " 862 "are ignored. Corresponds to the 'intr/nointr' mount_nfs " 863 "options (Solaris 9).")] 864 boolean Interrupt = true; 865 866 [Description ("Maximum number of NFS retransmissions allowed. " 867 "Corresponds to the 'retrans=' mount_nfs option (Solaris 9).") ] 868 uint16 MaxRetransmissionAttempts = 5; 869 870 [Description ("Maximum number of mount failure retries allowed. The " 871 "default for the mount command is 10000. The default for the " 872 "automounter is 0. " 873 "Corresponds to the 'retry=' mount_nfs option (Solaris 9). " 874 "This value is only valid upon creation of an instance of " 875 "instance of Solaris_NFSMount. This is actually a mount _process_ " 876 "option and not a mount option.") ] 877 uint16 MountFailureRetries; 878 879 [Description("If true, do not perform the normal close-to-open " 880 "consistency. The client will not perform the flush " 881 "on close and the request for validation, allowing " 882 "the possiblity of differences among copies of the " 883 "same file as stored on multiple clients. This can " 884 "be used where it can be guaranteed that accesses to " 885 "a specified file system will be made from only one " 886 "client and only that client. The default is false. " 887 "Corresponds to the 'nocto' mount_nfs option (Solaris 9).")] 888 boolean NoCloseToOpenConsistency = false; 889 890 [Description("If set to true: use POSIX.1 semantics for filesystem. " 891 "If set to false (default): do not use POSIX.1 " 892 "semantics. Corresponds to the 'posix' mount_nfs " 893 "option (Solaris 9).")] 894 boolean Posix = false; 895 896 [Description("A string specifying the transport protocol used for the " 897 "NFS mount. It is the value of the network_id field from " 898 "/etc/netconfig. Corresponds to the 'proto=' " 899 "mount_nfs option (Solaris 9)."), 900 MappingStrings{"SOLARIS9.SUN|/etc/netconfig"}] 901 String Protocol; 902 903 [Description("If set to true: use the public file handle. " 904 "If set to false (default): do not use the public " 905 "file handle. Corresponds to the 'public' mount_nfs " 906 "option (Solaris 9).")] 907 boolean Public = false; 908 909 [Description ("Read buffer size in bytes. The default is 32768 for " 910 "version 3 and 8192 for version 2. Corresponds to the " 911 "'rsize=' mount_nfs option (Solaris 9)."), 912 Units("Bytes") ] 913 uint64 ReadBufferSize; 914 915 [Deprecated { 916 "Solaris_NFSMount.FailoverList"}, 917 Description ( 918 "Array of replicated resources to be used for failover. Each " 919 "resource must be of the form host:/pathname, NFS URL or a " 920 "list of hosts, if the exported directory name is the same.") ] 921 string ReplicatedResources[]; 922 923 [Description ("NFS timeout in tenths of a second. The default is 11 " 924 "tenths of a second for connectionless transports and 600 " 925 "tenths of a second for connection oriented transports. " 926 "Corresponds to the 'timeo=' mount_nfs option (Solaris 9)."), 927 Units ("Tenths of Seconds")] 928 uint32 RetransmissionTimeout; 929 930 [Description ( 931 "If set to true, if the first mount attempt fails, retries are " 932 "performed in the foreground. If set to false, retries are " 933 "performed in the background. Corresponds to the 'bg/fg' " 934 "mount_nfs options (Solaris 9). " 935 "This value is only valid upon creation of an instance of " 936 "instance of Solaris_NFSMount. This is actually a mount _process_ " 937 "option and not a mount option.")] 938 boolean RetryInForeground = true; 939 940 [Description("A string describing the security mode for NFS transactions. " 941 "Available modes are listed in /etc/nfssec.conf. " 942 "Corresponds to the 'sec=' mount_nfs option (Solaris 9)."), 943 MappingStrings{"SOLARIS9.SUN|/etc/nfssec.conf"}] 944 String SecurityMode; 945 946 [Description ( 947 "The NFS Server IP port number. Default is NFS_PORT which is defined " 948 "defined in /usr/include/nfs/nfs.h. Corresponds to the " 949 "'port=' mount_nfs option (Solaris 9).") ] 950 uint32 ServerCommunicationPort; 951 952 [Description("The name of the NFS server.")] 953 String ServerName; 954 955 [Description("The path of the NFS resource on the server.")] 956 String ServerPath; 957 958 [Description ( 959 "Version number of NFS protocol to use. Corresponds to the " 960 "'vers=' mount_nfs option (Solaris 9)."), 961 ValueMap {"2", "3", "4", "highest"} ] 962 String Version = "highest"; 963 964 965 [Description ("Write buffer size in bytes. The default is 32768 for " 966 "version 3 and 8192 for version 2. Corresponds to the " 967 "'wsize=' mount_nfs option (Solaris 9)."), 968 Units("Bytes") ] 969 uint64 WriteBufferSize; 970 971 [Description( 972 "Allows the creation and manipulation of extended attributes. " 973 "Corresponds to the 'xattr/noxattr' mount_nfs options (Solaris 9). ")] 974 boolean Xattr = true; 975 976 // Methods 977 [Description("Method to obtain the list of network IDs from " 978 "the /etc/netconfig file. Returns 1 if method completed " 979 "successfully, 0 if an error occurred. Corresponds to the " 980 "data stored in /etc/netconfig (Solaris 9).")] 981 sint32 getNetCfgList([OUT, IN(false)]string ids[]); 982 983 [Description("Method to obtain the list of nfs security modes from " 984 "the /etc/nfssec.conf file. Returns 1 if method completed " 985 "successfully, 0 if an error occurred. Corresponds to the " 986 "data stored in /etc/nfssec.conf (Solaris 9).")] 987 sint32 getNfsSecList([OUT, IN(false)]string secmodes[]); 988 989 [Description("Method to obtain the the default nfs security mode from " 990 "the /etc/nfssec.conf file. Returns 1 if method completed " 991 "successfully, 0 if an error occurred. Corresponds to the " 992 "data stored in /etc/nfssec.conf (Solaris9).")] 993 sint32 getDefaultNfsSecMode([OUT, IN(false)]string secmode); 994}; 995 996#pragma namespace("__create") 997 998[Association, 999 Provider( 1000 "jni:libWBEMnfs.so"), 1001 Version("1.3.0"), 1002 Description ( 1003 "This association represents the relationship between an NFS " 1004 "share and its security modes.") 1005] 1006class Solaris_NFSShareSecurityModes : CIM_ElementSetting 1007{ 1008 [Override ("Element"), 1009 Description ("The share the mode is for.")] 1010 Solaris_NFSShare REF Element; 1011 1012 [Override("Setting"), Description ( 1013 "The Setting that can be applied") ] 1014 Solaris_NFSShareSecurity REF Setting; 1015 1016}; 1017 1018[Association, 1019 Version("1.3.0"), 1020 Description ("Class represents the relationship between an NFS " 1021 "Share object and its default setting. The default " 1022 "setting of AUTH_SYS for the security mode will be " 1023 "set in the provider.") 1024] 1025class Solaris_NFSShareDefSecurityMode : CIM_DefaultSetting 1026{ 1027 [Override ("Element"), 1028 Description ("The share the mode is for.")] 1029 Solaris_NFSShare REF Element; 1030 1031 [Override("Setting"), 1032 Description ("The Setting that can be applied to ") ] 1033 Solaris_NFSShareSecurity REF Setting; 1034 1035}; 1036 1037 1038 1039[Association, 1040 Provider( 1041 "jni:libWBEMnfs.so"), 1042 Version("1.3.0"), 1043 Description ("Class that represents the association between the " 1044 "share and its host.") 1045] 1046class Solaris_HostedShare : CIM_HostedShare 1047{ 1048 [Override ("Antecedent"), 1049 Description ("The host of the NFS shared file system.")] 1050 Solaris_ComputerSystem REF Antecedent; 1051 1052 [Override ("Dependent"), 1053 Description ("The NFS shared directory.")] 1054 Solaris_NFSShare REF Dependent; 1055}; 1056 1057[Association, 1058 Aggregation, 1059 Version("1.3.0"), 1060 Description( 1061 "An association that represents the aggregation of all of " 1062 "the Solaris_PersistentShare objects and ties them to a " 1063 "Solaris_SystemConfiguration object.")] 1064class Solaris_PersistentShareConfiguration : CIM_SystemSettingContext 1065{ 1066 1067}; 1068 1069[Association, 1070 Provider( 1071 "jni:libWBEMnfs.so"), 1072 Version("1.3.0"), 1073 Description( 1074 "This class ties an individual Solaris_PersistentShare to its " 1075 "owning system.")] 1076class Solaris_PersistentShareForSystem : CIM_SettingForSystem 1077{ 1078 1079 [Override ("Antecedent"), 1080 Description ("The Solaris Hosting System.")] 1081 Solaris_ComputerSystem REF Antecedent; 1082 1083 [Override ("Dependent"), 1084 Description ("The dfstab entry for the system.")] 1085 Solaris_PersistentShare REF Dependent; 1086}; 1087 1088 1089[Association, 1090 Provider( 1091 "jni:libWBEMnfs.so"), 1092 Version("1.3.0"), 1093 Description( 1094 "This class ties an individual Solaris_PersistentShare to a " 1095 "Solaris_NFSShare.")] 1096class Solaris_NFSShareEntry : CIM_ElementSetting 1097{ 1098 [Override ("Setting"), 1099 Description ("The persistent share setting")] 1100 Solaris_PersistentShare REF Setting; 1101 1102}; 1103 1104[Association, 1105 Version("1.3.0"), 1106 Description ("associates the Share to a LogicalElement that is " 1107 "being exported.") ] 1108class Solaris_SharedElement : CIM_SharedElement 1109{ 1110}; 1111 1112#pragma namespace("__modify") 1113 1114[Association, 1115 Provider("java:com.sun.wbem.solarisprovider.fsmgr.share.Solaris_NFSExport"), 1116 Deprecated { 1117 "Solaris_SharedFileSystem"}, 1118 Description ("Solaris_NFSExport inherited from CIM_Export")] 1119class Solaris_NFSExport : CIM_Export 1120{ 1121 1122 [Description ( 1123 "If set to true: give maximum access to NFS v2 clients. " 1124 "If set to false (default): give minimum access to NFS v2 " 1125 "clients.") ] 1126 boolean AclOk = false; 1127 1128 [Description ( 1129 "The effective UID of unknown users. The default value is " 1130 "UID_NOBODY (60001).") ] 1131 sint32 AnonUid; 1132 1133 [Description ("Share description.") ] 1134 string Description; 1135 1136 [Description ( 1137 "Index file to use when accessing a Web-NFS directory.") ] 1138 string IndexFile; 1139 1140 [Description ( 1141 "If set to true: prevents clients from mounting " 1142 "subdirectories of the exported directory. " 1143 "If set to false (default): allows clients to mount " 1144 "subdirectories.") ] 1145 boolean NoSub = false; 1146 1147 [Description ( 1148 "If set to true: don't allow allow setuid execution. " 1149 "If set to false (default): allow setuid execution.") ] 1150 boolean NoSuid = false; 1151 1152 [Description ( 1153 "If set to true: use exported directory as the location of " 1154 "the public file handle for Web-NFS. " 1155 "If set to false (default): exported directory is not the " 1156 "location of the public file handle.") ] 1157 boolean Public = false; 1158 1159 [Description ( 1160 "If set to true: grant read-only access to all clients. " 1161 "If set to false (default):do not grant read-only access " 1162 "to all clients.") ] 1163 boolean ReadOnly = false; 1164 1165 [Description ( 1166 "If set to true (default): grant read-write access to all " 1167 "clients. " 1168 "If set to false: do not grant read-write access to all " 1169 "clients.") ] 1170 boolean ReadWrite = true; 1171 1172 [Description ("Array of clients granted read-only access.") ] 1173 string ROAccessList[]; 1174 1175 [Description ( 1176 "Array of hosts from which root users can gain " 1177 "root access.") ] 1178 string RootAccessList[]; 1179 1180 [Description ("Array of clients granted read-write access.") ] 1181 string RWAccessList[]; 1182 1183 [Description ( 1184 "If set to true: the filesystem is shared at boot. " 1185 "If set to false (default): the resource is not shared at " 1186 "boot.") ] 1187 boolean ShareAtBootEntry = false; 1188 1189 [Description ( 1190 "Array of security modes to be used to NFS transactions. " 1191 "Available modes is listed in /etc/nfssec.conf.") ] 1192 string SecurityModes[]; 1193 1194 [Description ("Share options.") ] 1195 string ShareOptions; 1196 1197 [Description ( 1198 "Maximum lifetime of a request allowed by the NFS server " 1199 "(in seconds) when using Diffie-Hellman or Kerberos security. " 1200 "Default value is 30000 seconds (8.3 hours).") ] 1201 uint32 Window = 30000; 1202 1203 1204 //Methods 1205 [Description("Method to delete a dfstab entry.")] 1206 sint32 deleteDfstabEntry([IN]string pathName); 1207 1208}; 1209 1210#pragma namespace("__create") 1211 1212[Association, 1213 Version("1.3.0"), 1214 Provider( 1215 "jni:libWBEMnfs.so"), 1216 Description ("Class that represents the association between the local " 1217 "filesystem and the Solaris_NFSShare on the server.") 1218] 1219class Solaris_SharedFileSystem : Solaris_SharedElement 1220{ 1221 [Override("SystemElement"), Key, MAX(1), 1222 Description ("The Directory that is Shared.") ] 1223 CIM_LogicalElement REF SystemElement; 1224 1225 [Override("SameElement"), Key, Description ( 1226 "The Shared view of the Directory.") ] 1227 CIM_Share REF SameElement; 1228 1229}; 1230