mirror of https://github.com/sipwise/heartbeat.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
625 lines
18 KiB
625 lines
18 KiB
/*
|
|
* LinuxHA.mof : CIM MOF file
|
|
*
|
|
* Author: Jia Ming Pan <jmltc@cn.ibm.com>
|
|
* Copyright (c) 2005 International Business Machines
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
*/
|
|
|
|
|
|
//-------------------------------------------------
|
|
// HA_Cluster
|
|
//-------------------------------------------------
|
|
|
|
[ Provider("cmpi:HA_ClusterProvider") ]
|
|
class HA_Cluster : CIM_Cluster {
|
|
[ Description("The heartbeat version")]
|
|
string HBVersion;
|
|
|
|
//********************************************
|
|
// Configuration directives
|
|
// refer to http://wiki.linux-ha.org/ha_2ecf for details
|
|
//*********************************************
|
|
|
|
[ Description(
|
|
"The apiauth directive specifies what users and/or groups"
|
|
"are allowed to connect to a specific API group name")
|
|
]
|
|
string APIAuth [];
|
|
string NiceFailBack;
|
|
|
|
[ Description(
|
|
"Determins whether a resource will automatically fail back to"
|
|
"its primary node, or remain on whatever the node is serving."
|
|
"Possible values are: on, off, legacy.")
|
|
]
|
|
string AutoFailBack;
|
|
|
|
[ Description ( "The speed for serial communications" ) ]
|
|
string BaudRate;
|
|
|
|
[ Description(
|
|
"Which interfaces Heartbeat sends UDP broadcast traffic on")
|
|
]
|
|
string BroadCastPath;
|
|
|
|
|
|
[ Description(
|
|
"The time Heartbeat will reconnect to the logging daemon if"
|
|
"the connection between Heartbeat and the logging daemon is "
|
|
"broken")
|
|
]
|
|
string ConnLogdTime = "60s";
|
|
|
|
[ Description ( "Making core dump" ) ]
|
|
string CoreDump;
|
|
|
|
[ Description(
|
|
"Whether Heartbeat should run the 1.x-style cluster manager "
|
|
"or the 2.x-style cluster manager that supports more than 2 "
|
|
"nodes" )
|
|
]
|
|
string WithCrm;
|
|
|
|
[ Description(
|
|
"How quickly Heartbeat should decide that a ping node in a "
|
|
"cluster is dead")
|
|
]
|
|
string DeadPing;
|
|
|
|
[ Description(
|
|
"How quickly Heartbeat should decide that a node in a "
|
|
"cluster is dead")
|
|
]
|
|
string DeadTime;
|
|
|
|
[ Description ( "The Level of debugging" ) ]
|
|
string DebugLevel;
|
|
|
|
[ Description ( "The file Heartbeat will write debug messages to" ) ]
|
|
string DebugFile;
|
|
|
|
[ Description ( "Declare fiber channel devices as PingNodes to "
|
|
"Heartbeat" )
|
|
]
|
|
string Aping;
|
|
|
|
[ Description(
|
|
"How Heartbeat should compute its current generation number "
|
|
"for communications")
|
|
]
|
|
string GenMethod = "file";
|
|
|
|
[ Description(
|
|
"Controls how many nodes a packet can be forwarded through "
|
|
"before it is thrown away in the worst case")
|
|
]
|
|
string HOPFudge;
|
|
|
|
[ Description(
|
|
"The time that it takes to declare a cluster node dead when "
|
|
"Heartbeat is first started")
|
|
]
|
|
string InitDead;
|
|
|
|
[ Description(
|
|
"The interval between heartbeat packets")
|
|
]
|
|
string KeepAlive;
|
|
|
|
[ Description(
|
|
"Which syslog logging facility it should use for logging "
|
|
"its messages")
|
|
]
|
|
string LogFacility;
|
|
|
|
[ Description(
|
|
"Configures a log file. All non-debug messages from "
|
|
"Heartbeat will go into this file" )
|
|
]
|
|
string LogFile;
|
|
|
|
[ Description("Configure a multicast communication path")]
|
|
string MultiCastPath;
|
|
|
|
[ Description ( "The format Heartbeat uses in wire, classic or "
|
|
"netstring" ) ]
|
|
string MsgFmt = "classic";
|
|
|
|
|
|
[ Description("What machines are in the cluster")]
|
|
string Node [];
|
|
|
|
[ Description("Declare PingNodes to Heartbeat")]
|
|
string PingNode [];
|
|
|
|
[ Description("Declare PingNodes to Heartbeat")]
|
|
string PingGroup [];
|
|
|
|
[ Description(
|
|
"The realtime directive specifies whether or not Heartbeat "
|
|
"should try and take advantage of the operating system's "
|
|
"realtime scheduling features. ")
|
|
]
|
|
string RealTime;
|
|
|
|
[ Description(
|
|
"specify a program to run and monitor while it runs")
|
|
]
|
|
string Respawn;
|
|
|
|
[ Description ("specifies Heartbeat's realtime priority" ) ]
|
|
string RTPriority;
|
|
|
|
[ Description ( "configure serial communication path" ) ]
|
|
string SerialPath;
|
|
|
|
[ Description ( "onfigure Heartbeat's (release 1), STONITH "
|
|
"configuration" ) ]
|
|
string Stonith;
|
|
|
|
[ Description ( "onfigure Heartbeat's (release 1), STONITH "
|
|
"configuration" ) ]
|
|
string StonithHost;
|
|
|
|
[ Description(
|
|
"configures Heartbeat to communicate over a UDP "
|
|
"unicast communications link")
|
|
]
|
|
string UniCastPath;
|
|
|
|
[ Description("specifies port for UDP communication")]
|
|
string UDPPort;
|
|
|
|
[ Description(
|
|
"the directive to determine whether heartbeats use logging "
|
|
"daemon or not" )
|
|
]
|
|
string UseLogd;
|
|
|
|
[ Description(
|
|
"how quickly Heartbeat should issue a \"late heartbeat\" "
|
|
"warning" )
|
|
]
|
|
string WarnTime;
|
|
|
|
[ Description("configure watchdog device")]
|
|
string WatchdogTimer;
|
|
|
|
string NormalPoll;
|
|
string CoreRootDir;
|
|
string LogBadPack;
|
|
|
|
/* Authentication config */
|
|
[ Description("Authentication method"),
|
|
ValueMap { "0", "1", "2" },
|
|
Values { "sha1", "md5", "crc" } ]
|
|
uint32 AuthMethod;
|
|
string AuthKey;
|
|
|
|
/* CRM config */
|
|
string TransitionIdleTimeout;
|
|
string SymmetricCluster;
|
|
string StonithEnabled;
|
|
string NoQuorumPolicy;
|
|
string DefaultResourceStickiness;
|
|
|
|
string HaveQuorum;
|
|
|
|
/* methods */
|
|
/* RequestStateChange */
|
|
};
|
|
|
|
//----------------------------------------
|
|
// HA_SoftwareIdentity
|
|
//----------------------------------------
|
|
|
|
[ Provider("cmpi:HA_SoftwareIdentityProvider") ]
|
|
class HA_SoftwareIdentity : CIM_SoftwareIdentity {
|
|
[ Override ("InstanceID") ]
|
|
string InstanceID;
|
|
|
|
[ Override ("MajorVersion") ]
|
|
uint16 MajorVersion;
|
|
|
|
[ Override ("MinorVersion") ]
|
|
uint16 MinorVersion;
|
|
|
|
[ Override ("RevisionNumber") ]
|
|
uint16 RevisionNumber;
|
|
|
|
[ Override ("BuildNumber") ]
|
|
uint16 BuildNumber;
|
|
|
|
[ Override ("VersionString") ]
|
|
string VersionString;
|
|
};
|
|
|
|
|
|
//--------------------------------------------------
|
|
// Association: HA_InstallSoftwareIdentity
|
|
//--------------------------------------------------
|
|
|
|
[ Association,
|
|
Provider ( "cmpi:HA_InstalledSoftwareIdentityProvider" ) ]
|
|
class HA_InstalledSoftwareIdentity : CIM_InstalledSoftwareIdentity {
|
|
[ Key, Override ( "System" ) ]
|
|
HA_Cluster REF System;
|
|
|
|
[ Key, Override ( "InstalledSoftware" ) ]
|
|
HA_SoftwareIdentity REF InstalledSoftware;
|
|
|
|
};
|
|
|
|
/*===========================================================================*/
|
|
|
|
//----------------------------------------
|
|
// ClusterNode
|
|
//----------------------------------------
|
|
|
|
[ Provider ( "cmpi:HA_ClusterNodeProvider" ) ]
|
|
class HA_ClusterNode : CIM_ComputerSystem {
|
|
[ Override ( "Name" ), Description ("Node's uname") ]
|
|
string Name;
|
|
|
|
string OnLine;
|
|
string Unclean;
|
|
|
|
string Status;
|
|
string IsDC;
|
|
|
|
string Standby;
|
|
string Unclean;
|
|
string Shutdown;
|
|
string ExpectedUp;
|
|
string NodePing;
|
|
};
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
// HA_ClusterAbstractResource, Primitive Resource or ReousrceGroup
|
|
//-------------------------------------------------------------------
|
|
/* this class inherit from CIM_Service originally */
|
|
[ Description ( "Cluster resource class")
|
|
/* ,Provider("cmpi:HA_ResourceProvider") */
|
|
]
|
|
class HA_ClusterResource {
|
|
[ Key, Description("Group id, resource name, etc.") ]
|
|
string Id;
|
|
|
|
[ Key, Description("ClassName that created the instance.") ]
|
|
string CreationClassName;
|
|
|
|
[ Key, Description("Always LinuxHACluster.") ]
|
|
string SystemName = "LinuxHACluster";
|
|
|
|
[ Key, Description("Always HA_Cluster") ]
|
|
string SystemCreationClassName = "HA_Cluster";
|
|
|
|
[ Description ("Status of the resource") ]
|
|
string ResourceStatus; /* running or not running */
|
|
/* DTD1.0/Annotated */
|
|
|
|
string Description;
|
|
string IsManaged = "true"; /* true|false */
|
|
string OnStopFail; /* ignore|stonith|block */
|
|
string RestartType = "ignore"; /* ignore|restart */
|
|
string MultipleActive = "stop_start"; /* stop_start|stop_only|block */
|
|
string ResourceStickiness = "0"; /* 0|INFINITY|-INFINITY */
|
|
string StartPreRep; /* nothing|quorum|fencing */
|
|
|
|
string Caption;
|
|
|
|
string Enabled = "false";
|
|
|
|
/*
|
|
uint32 AddOperation(
|
|
[IN, Description("Resource to be added") ]
|
|
HA_Operation REF Operation);
|
|
*/
|
|
};
|
|
|
|
//----------------------------------------
|
|
// HA_PrimitiveResource
|
|
//----------------------------------------
|
|
|
|
[ Description ( "LinuxHA cluster resource class" ),
|
|
Provider("cmpi:HA_PrimitiveResourceProvider")
|
|
]
|
|
class HA_PrimitiveResource : HA_ClusterResource {
|
|
string ResourceClass = "ocf";
|
|
string Type;
|
|
string Provider = "heartbeat";
|
|
string HostingNode;
|
|
/*
|
|
string InstanceAttributes [];
|
|
*/
|
|
};
|
|
|
|
//------------------------------------------------
|
|
// HA_ResourceGroup
|
|
//------------------------------------------------
|
|
|
|
[ Provider("cmpi:HA_ResourceGroupProvider") ]
|
|
class HA_ResourceGroup : HA_ClusterResource {
|
|
uint32 AddPrimitiveResource(
|
|
[IN, Description("Resource to be added") ]
|
|
HA_PrimitiveResource REF Resource);
|
|
};
|
|
|
|
//----------------------------------------
|
|
// HA_ResrouceClone
|
|
//----------------------------------------
|
|
[ Provider("cmpi:HA_ResourceCloneProvider") ]
|
|
class HA_ResourceClone : HA_ClusterResource {
|
|
string Notify;
|
|
string Ordered;
|
|
string Interleave;
|
|
string CloneMax;
|
|
string CloneNodeMax;
|
|
uint32 AddResource(
|
|
[IN, Description("Resource to be added") ]
|
|
HA_Resource REF Resource);
|
|
};
|
|
|
|
//------------------------------------------------
|
|
// HA_ResourceMasterSlave
|
|
//------------------------------------------------
|
|
[ Provider("cmpi:HA_MasterSlaveResourceProvider") ]
|
|
class HA_MasterSlaveResource : HA_ClusterResource {
|
|
string CloneMax;
|
|
string CloneNodeMax;
|
|
string MaxMasters;
|
|
string MaxNodeMasters;
|
|
uint32 AddResource(
|
|
[IN, Description("Resource to be added") ]
|
|
HA_Resource REF Resource);
|
|
};
|
|
|
|
//----------------------------------------
|
|
// HA_InstanceAttributes
|
|
//----------------------------------------
|
|
[ Provider("cmpi:HA_InstanceAttributesProvider") ]
|
|
class HA_InstanceAttributes {
|
|
[ Key ]
|
|
string Id;
|
|
|
|
[ Key ]
|
|
string ResourceId;
|
|
string Name;
|
|
string Value;
|
|
string Caption;
|
|
};
|
|
//----------------------------------------
|
|
// Association, HA_AttributesOfResource
|
|
//----------------------------------------
|
|
[ Association, Aggregation, Provider ("cmpi:HA_AttributesOfResourceProvider") ]
|
|
class HA_AttributesOfResource {
|
|
[ Key, Aggregate, Description("Resource") ]
|
|
HA_PrimitiveResource REF Resource;
|
|
|
|
[ Key, Description("InstanceAttributes") ]
|
|
HA_InstanceAttributes REF InstanceAttributes;
|
|
};
|
|
//----------------------------------------
|
|
// HA_Operation
|
|
//----------------------------------------
|
|
[ Provider("cmpi:HA_OperationProvider") ]
|
|
class HA_Operation {
|
|
[ Key, Description ("This operation's Id.") ]
|
|
String Id;
|
|
|
|
[ Key, Description ("The resource that this operation belongs to") ]
|
|
String ResourceId;
|
|
|
|
[ Description ("The name of the operation") ]
|
|
string Name = "start|stop|monitor"; /* start|stop|monitor */
|
|
|
|
string Description;
|
|
|
|
[ Description ("Operation interval, only applies to monitor") ]
|
|
string Interval = "10s";
|
|
|
|
[ Description ("The maximum period of time before considering "
|
|
"the action failed") ]
|
|
string Timeout;
|
|
|
|
[ Description ("What conditions need to be met before this action "
|
|
"can be run") ]
|
|
string PreReq; /* nothing|quorum|fencing */
|
|
|
|
[ Description ("The action to take if this action fails") ]
|
|
string OnFail; /* nothing|block|stop|fence */
|
|
|
|
string Enabled = "true";
|
|
string Caption;
|
|
};
|
|
|
|
//----------------------------------------
|
|
// Association, HA_OperationOnResource
|
|
//----------------------------------------
|
|
[ Association, Aggregation, Provider ("cmpi:HA_OperationOnProvider") ]
|
|
class HA_OperationOnResource {
|
|
[ Key, Description("Resource") ]
|
|
HA_PrimitiveResource REF Resource;
|
|
|
|
[ Key, Description("Operation") ]
|
|
HA_Operation REF Operation;
|
|
};
|
|
|
|
//------------------------------------------------
|
|
// HA_ResourceConstraint, Abstract
|
|
//------------------------------------------------
|
|
class HA_ResourceConstraint {
|
|
[ Key, Description (" Id ") ]
|
|
string Id;
|
|
|
|
[ Key ]
|
|
string CreationClassName;
|
|
|
|
[ Key ]
|
|
string SystemName;
|
|
|
|
[ Key ]
|
|
string SystemCreationClassName;
|
|
|
|
string Caption;
|
|
};
|
|
|
|
|
|
//------------------------------------------------
|
|
// HA_OrderConstraint
|
|
//------------------------------------------------
|
|
/* rsc_order constraint */
|
|
[ Provider ("cmpi:HA_OrderConstraintProvider" ) ]
|
|
class HA_OrderConstraint :
|
|
HA_ResourceConstraint {
|
|
string From;
|
|
string OrderType;
|
|
string To;
|
|
};
|
|
|
|
|
|
//------------------------------------------------
|
|
// HA_ColocationConstraint
|
|
//------------------------------------------------
|
|
/* rsc_colocation constraint */
|
|
[ Provider ("cmpi:HA_ColocationConstraintProvider" ) ]
|
|
class HA_ColocationConstraint :
|
|
HA_ResourceConstraint {
|
|
string From;
|
|
string To;
|
|
string Score;
|
|
};
|
|
|
|
|
|
//------------------------------------------------
|
|
// HA_LocationConstraint
|
|
//------------------------------------------------
|
|
/* rsc_location constraint */
|
|
[ Provider ("cmpi:HA_LocationConstraintProvider" ) ]
|
|
class HA_LocationConstraint:
|
|
HA_ResourceConstraint {
|
|
string Resource;
|
|
string Score;
|
|
};
|
|
|
|
[ Provider ("cmpi:HA_LocationConstraintRuleProvider" ) ]
|
|
class HA_LocationConstraintRule {
|
|
[ Key ]
|
|
string Id;
|
|
[ Key ]
|
|
string ConstraintId;
|
|
|
|
string Attribute;
|
|
string Operation;
|
|
string Value;
|
|
string Caption;
|
|
};
|
|
|
|
[ Association, Aggregation,
|
|
Provider ("cmpi:HA_RuleOfLocationConstraintProvider" ) ]
|
|
class HA_RuleOfLocationConstraint {
|
|
[Key]
|
|
HA_LocationConstraint REF Constraint;
|
|
[Key]
|
|
HA_LocationConstraintRule REF Rule;
|
|
};
|
|
|
|
//-----------------------------------------------
|
|
// Association, HA_SubResource
|
|
//-----------------------------------------------
|
|
|
|
[ Association, Aggregation,
|
|
Provider ( "cmpi:HA_SubResourceProvider" ) ]
|
|
class HA_SubResource {
|
|
[ Key, Aggregate, Description ( "Resource Group/Clone/Master" ) ]
|
|
HA_ClusterResource REF Antecedent;
|
|
|
|
[ Key, Description ( "SubResource or SubResourceGroup" ) ]
|
|
HA_ClusterResource REF Dependent;
|
|
};
|
|
|
|
|
|
//-----------------------------------------
|
|
// Association, HA_ParticipatingNode
|
|
//-----------------------------------------
|
|
|
|
[ Association,
|
|
Provider("cmpi:HA_ParticipatingNodeProvider") ]
|
|
class HA_ParticipatingNode : CIM_ParticipatingCS{
|
|
[ Override ("Dependent"),
|
|
Description ("The LinuxHA Cluster.")
|
|
]
|
|
HA_Cluster REF Dependent;
|
|
|
|
[ Override ("Antecedent"),
|
|
Description ("The LinuxHA Node.")
|
|
]
|
|
HA_ClusterNode REF Antecedent;
|
|
|
|
};
|
|
|
|
|
|
//-------------------------------------------
|
|
// Assocition, HA_HostedResource
|
|
//-------------------------------------------
|
|
|
|
[ Association,
|
|
Provider("cmpi:HA_HostedResourceProvider") ]
|
|
class HA_HostedResource {
|
|
[ Key,
|
|
Description ("The cluster node that host the resource.")
|
|
]
|
|
HA_ClusterNode REF Antecedent;
|
|
|
|
[ Key,
|
|
Description ("The cluster resource.")
|
|
]
|
|
HA_PrimitiveResource REF Dependent;
|
|
};
|
|
|
|
|
|
|
|
//-------------------------------------------
|
|
// Indication, HA_Indication
|
|
//-------------------------------------------
|
|
|
|
[ Indication,
|
|
Provider ("cmpi:HA_IndicationProvider") ]
|
|
class HA_Indication : CIM_ProcessIndication {
|
|
uint16 Type;
|
|
string Message;
|
|
datetime Time;
|
|
};
|
|
|
|
|
|
[ Provider ("cmpi:HA_ClusteringServiceProvider") ]
|
|
class HA_ClusteringService {
|
|
[ Key ]
|
|
string Id;
|
|
string Caption;
|
|
uint32 AddResource(
|
|
[IN, Description ("The resource to be added.")]
|
|
HA_ClusterResource REF Resource);
|
|
};
|
|
|
|
//-----------------------------------------
|
|
// End of File
|
|
//-----------------------------------------
|
|
|