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 (the License).
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/CDDL.txt
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/CDDL.txt.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets [] replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 #
  22 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  23 # Use is subject to license terms.
  24 #
  25 #ident  "%Z%%M% %I%     %E% SMI"
  26 #
  27 
  28 RESOURCE_TYPE = "ldom";
  29 VENDOR_ID = SUNW;
  30 RT_DESCRIPTION = "Sun Cluster HA for xVM SPARC Guest Domains";
  31 
  32 RT_version ="1"; 
  33 API_version = 10;        
  34 
  35 RT_basedir=/opt/SUNWscgds/bin;
  36 
  37 Init                            =       ../../SUNWscxvm/bin/init_xvm;
  38 Boot                            =       ../../SUNWscxvm/bin/boot_xvm;
  39 
  40 Start                           =       gds_svc_start;
  41 Stop                            =       gds_svc_stop;
  42 
  43 Validate                        =       ../../SUNWscxvm/bin/validate_xvm;
  44 Update                          =       gds_update;
  45 
  46 Monitor_start                   =       gds_monitor_start;
  47 Monitor_stop                    =       gds_monitor_stop;
  48 Monitor_check                   =       gds_monitor_check;
  49 
  50 Init_nodes = RG_PRIMARIES;
  51 Failover = FALSE;
  52 
  53 # The paramtable is a list of bracketed resource property declarations 
  54 # that come after the resource-type declarations
  55 # The property-name declaration must be the first attribute
  56 # after the open curly of a paramtable entry
  57 #
  58 # The following are the system defined properties. Each of the system defined
  59 # properties have a default value set for each of the attributes. Look at 
  60 # man rt_reg(4) for a detailed explanation.
  61 #
  62 {  
  63         PROPERTY = Start_timeout; 
  64         MIN = 60;
  65         DEFAULT = 300;
  66 }
  67 {
  68         PROPERTY = Stop_timeout; 
  69         MIN = 60;
  70         DEFAULT = 300;
  71 }
  72 { 
  73         PROPERTY = Validate_timeout; 
  74         MIN = 60;
  75         DEFAULT = 300; 
  76 }
  77 {
  78         PROPERTY = Update_timeout;
  79         MIN = 60;
  80         DEFAULT = 300;
  81 }
  82 { 
  83         PROPERTY = Monitor_Start_timeout; 
  84         MIN = 60;
  85         DEFAULT = 300; 
  86 }
  87 { 
  88         PROPERTY = Monitor_Stop_timeout; 
  89         MIN = 60;
  90         DEFAULT = 300; 
  91 }
  92 { 
  93         PROPERTY = Monitor_Check_timeout; 
  94         MIN = 60;
  95         DEFAULT = 300; 
  96 }
  97 {
  98         PROPERTY = FailOver_Mode;
  99         DEFAULT = SOFT;
 100         TUNABLE = ANYTIME;
 101 }
 102 {
 103         PROPERTY = Network_resources_used;
 104         TUNABLE = ANYTIME;
 105         DEFAULT = "";
 106 }
 107 { 
 108         PROPERTY = Thorough_Probe_Interval; 
 109         MAX = 3600; 
 110         DEFAULT = 60; 
 111         TUNABLE = ANYTIME;
 112 }
 113 { 
 114         PROPERTY = Retry_Count; 
 115         MAX = 10; 
 116         DEFAULT = 2; 
 117         TUNABLE = ANYTIME;
 118 }
 119 { 
 120         PROPERTY = Retry_Interval; 
 121         MAX = 3600; 
 122         DEFAULT = 370; 
 123         TUNABLE = ANYTIME;
 124 }
 125 
 126 {
 127         PROPERTY = Port_list;
 128         DEFAULT = "";
 129         TUNABLE = ANYTIME;
 130 }
 131 
 132 {
 133         PROPERTY = Scalable;
 134         DEFAULT = FALSE;
 135         TUNABLE = AT_CREATION;
 136 }
 137 
 138 {
 139         PROPERTY = Load_balancing_policy;
 140         DEFAULT = LB_WEIGHTED;
 141         TUNABLE = AT_CREATION;
 142 }
 143 
 144 {
 145         PROPERTY = Load_balancing_weights;
 146         DEFAULT = "";
 147         TUNABLE = ANYTIME;
 148 }
 149 
 150 #
 151 # Extension Properties
 152 #
 153 
 154 # These two control the restarting of the fault monitor itself
 155 # (not the server daemon) by PMF.
 156 {
 157         PROPERTY = Monitor_retry_count;
 158         EXTENSION;
 159         INT;
 160         DEFAULT = 4;
 161         TUNABLE = ANYTIME;
 162         DESCRIPTION = "Number of PMF restarts allowed for the fault monitor";
 163 }
 164 
 165 {
 166         PROPERTY = Monitor_retry_interval;
 167         EXTENSION;
 168         INT;
 169         DEFAULT = 2;
 170         TUNABLE = ANYTIME;
 171         DESCRIPTION = "Time window (minutes) for fault monitor restarts";
 172 }
 173 
 174 # Time out value for the probe
 175 {
 176         PROPERTY = Probe_timeout;
 177         EXTENSION;
 178         INT;
 179         MIN = 2;
 180         DEFAULT = 30;
 181         TUNABLE = ANYTIME;
 182         DESCRIPTION = "Time out value for the probe (seconds)";
 183 }
 184 
 185 # Child process monitoring level for PMF (-C option of pmfadm)
 186 # Default of -1 means: Do NOT use the -C option to PMFADM
 187 # A value of 0-> indicates the level of child process monitoring
 188 # by PMF that is desired.
 189 {
 190         PROPERTY = Child_mon_level;
 191         EXTENSION;
 192         INT;
 193         DEFAULT = -1;
 194         TUNABLE = AT_CREATION;
 195         DESCRIPTION = "Child monitoring level for PMF";
 196 }
 197 
 198 # This is an optional property.  Any value provided will be used as
 199 # the absolute path to a command to invoke to validate the application.
 200 # If no value is provided, The validation will be skipped.
 201 #
 202 {
 203         PROPERTY = Validate_command;
 204         EXTENSION;
 205         STRING;
 206         DEFAULT = "";
 207         TUNABLE = NONE;
 208         DESCRIPTION = "Command to validate the  application";
 209 }
 210 
 211 # This property must be specified, since this is the only mechanism
 212 # that indicates how to start the application.  Since a value must
 213 # be provided, there is no default.  The value must be an absolute path.
 214 {
 215         PROPERTY = Start_command;
 216         EXTENSION;
 217         STRINGARRAY;
 218         DEFAULT = "/opt/SUNWscxvm/bin/control_xvm start -R %RS_NAME -T %RT_NAME -G %RG_NAME";
 219         TUNABLE = NONE;
 220         DESCRIPTION = "Command to start application";
 221 }
 222 
 223 # This is an optional property.  Any value provided will be used as
 224 # the absolute path to a command to invoke to stop the application.
 225 # If no value is provided, signals will be used to stop the application.
 226 #
 227 # It is assumed that Stop_command will not return until the
 228 # application has been stopped.
 229 {
 230         PROPERTY = Stop_command;
 231         EXTENSION;
 232         STRING;
 233         DEFAULT = "/opt/SUNWscxvm/bin/control_xvm stop -R %RS_NAME -T %RT_NAME -G %RG_NAME";
 234         TUNABLE = NONE;
 235         DESCRIPTION = "Command to stop application";
 236 }
 237 
 238 # This is an optional property.  Any value provided will be used as
 239 # the absolute path to a command to invoke to probe the application.
 240 # If no value is provided, the "simple_probe" will be used to probe
 241 # the application.
 242 #
 243 {
 244         PROPERTY = Probe_command;
 245         EXTENSION;
 246         STRING;
 247         DEFAULT = "/opt/SUNWscxvm/bin/control_xvm probe -R %RS_NAME -G %RG_NAME -T %RT_NAME";
 248         TUNABLE = NONE;
 249         DESCRIPTION = "Command to probe application";
 250 }
 251 
 252 # This is an optional property.  It determines whether the application
 253 # uses network to communicate with its clients.
 254 #
 255 {
 256         PROPERTY = Network_aware;
 257         EXTENSION;
 258         BOOLEAN;
 259         DEFAULT = FALSE;
 260         TUNABLE = AT_CREATION;
 261         DESCRIPTION = "Determines whether the application uses network";
 262 }
 263 
 264 # This is an optional property, which determines the signal sent to the
 265 # application for being stopped.
 266 #
 267 {
 268         PROPERTY = Stop_signal;
 269         EXTENSION;
 270         INT;
 271         MIN = 1;
 272         MAX = 37;
 273         DEFAULT = 15;
 274         TUNABLE = WHEN_DISABLED;
 275         DESCRIPTION = "The signal sent to the application for being stopped";
 276 }
 277 
 278 # This is an optional property, which determines whether to failover when
 279 # retry_count is exceeded during retry_interval.
 280 #
 281 {
 282         PROPERTY = Failover_enabled;
 283         EXTENSION;
 284         BOOLEAN;
 285         DEFAULT = TRUE;
 286         TUNABLE = WHEN_DISABLED;
 287         DESCRIPTION = "Determines whether to failover when retry_count is exceeded during retry_interval";
 288 }
 289 
 290 # This is an optional property that specifies the log level GDS events.
 291 #
 292 {
 293         PROPERTY = Log_level;
 294         EXTENSION;
 295         ENUM { NONE, INFO, ERR };
 296         DEFAULT = "INFO";
 297         TUNABLE = ANYTIME;
 298         DESCRIPTION = "Determines the log level for event based traces";
 299 }
 300 
 301 {
 302         Property = Debug_level;
 303         Extension;
 304         Per_node;
 305         Int;
 306         Min = 0;
 307         Max = 2;
 308         Default = 0;
 309         Tunable = ANYTIME;
 310         Description = "Debug level";
 311 }
 312 
 313 {
 314         Property = Domain_name;
 315         Extension;
 316         String;
 317         Minlength = 1;
 318         Tunable = WHEN_DISABLED;
 319         Description = "LDoms Guest Domain name";
 320 }
 321 
 322 {
 323         Property = Migration_type;
 324         Extension;
 325         Enum { NORMAL, MIGRATE };
 326         Default = "MIGRATE";
 327         Tunable = ANYTIME;
 328         Description = "Type of guest domain migration to be performed";
 329 }
 330 
 331 {
 332         PROPERTY = Plugin_probe;
 333         EXTENSION;
 334         STRING;
 335         DEFAULT = "";
 336         TUNABLE = ANYTIME;
 337         DESCRIPTION = "Script or command to check the guest domain";
 338 }
 339 
 340 {
 341         PROPERTY = Password_file;
 342         EXTENSION;
 343         STRING;
 344         TUNABLE = WHEN_DISABLED;
 345         DESCRIPTION = "The complete path to the file containing the target host password";
 346 }
 347