B.6 BCCVFS.NLM Components

The BCCVFS.NLM contains all of the elements for configuring, managing, and controlling BCC after it is integrated with Novell Cluster Services, as described in the following sections:

B.6.1 BCC_Config.cmd

The following XML elements configure the BCC using the command datastream. These files are currently used by the Novell iManager snapin and the Perl-based CLI:

<getClusterInfo>

Retrieves the BCC-specific attributes from the current cluster (that is, the cluster to which the _ADMIN volume is currently connected).

bccRequest

Description

getClusterInfo

An empty tag.

Request Example

 <bccRequest>
   <bccConfig>
     <getClusterInfo>
   </bccConfig>
 </bccRequest>  
 

bccReply

Description

name

The name of the cluster.

enabled

(Optional) If missing, the cluster is disabled. An enabled cluster registers itself as a peer in a BCC. The cluster must be enabled before individual resources can be enabled.

peers

  • cluster

  • tree

(Optional)

  • The name of the cluster.

  • The tree in which the cluster resides.

Xforms

  • search

  • replace

Optional

  • A search string.

  • A replacement string.

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply>
   <bccConfig>
     <getClusterInfo>
       <name>
       <enabled>
       <peers>
         <peer>
           <cluster>
           <tree>
         </peer>
       </peers>
       <xforms>
           <search>
           <replace>
         </xform>
       </xforms>
       <result value="">
         <description>
       </result>
     </getClusterInfo>
   </bccConfig>
 </bccReply>
 

<getPeerData>

Retrieves peer data for the current cluster. The peer data lists those clusters that are members of this BCC.

bccRequest

Description

getPeerData

Empty tag.

Request Example

 <bccRequest>
   <bccConfig>
     </getPeerData>
   </bccConfig>
 </bccRequest>  
 

bccReply

Description

peers

  • cluster

  • tree

Optional

  • The name of the peer cluster.

  • The tree in which the cluster resides.

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply>
   <bccConfig>
     <getPeerData>
       <peers>
         <peer>
           <cluster>
           <tree>
         </peer>
       </peers>
       <result value="">
         <description>
       </result>
     </getPeerData>
   </bccConfig>
 <bccReply>  
 

<getResourceInfo>

Retrieves the BCC specific attributes of the given cluster resource.

bccRequest

Description

name

The name of the resource to get.

Request Example

 <bccRequest>
     <bccConfig>
         <getResourceInfo>
             <name>          
         </getResourceInfo>
     </bccConfig>
 </bccRequest>
 

bccReply

Description

name

Name of resource.

enabled

(Optional) Disabled if missing. An "enabled" resource can be failed over to other clusters in the BCC.

peers

  • cluster

  • tree

(Optional) Describes the peer clusters this resource can failover to.

  • Name of the peer cluster to which this resource can failover to.

  • Tree in which cluster resides.

xforms

  • search regex="true|false"

  • replace

(Optional) Contains the search and replace string used during cluster load/unload script processing. For example, this can be used to change the IP address of this resource.

  • Search string.

  • Replacement string.

lunMap

(Optional) Opaque LUN map data. This is the script or data the NSMI uses to communicate with the SAN.

result value

  • description

A BCC result code.

Reply Example

 <bccReply>
   <bccConfig>
     <getResourceInfo>
       <name>
       <enabled>
       <peers>
         <peer>
           <cluster>    
           <tree>
         </peer>
       </peers>
       <xforms>
         <xform>
           <search>  
           <replace>    
         </xform>
       </xforms>
       <lunMap>
       <result value="">
         <description>
       </result>
     </getResourceInfo>
   </bccConfig>
 </bccReply>
 

<listClusterResources>

Retrieves a list of all the resources on the given cluster. The NCS XML interface has a similar function. However, this function provides BCC-specific attributes.

bccRequest

Description

ListClusterResources

Empty tag

Request Example

 <bccRequest>
   <bccConfig>
     <listClusterResources>
   </bccConfig>
 </bccRequest>  
 

bccReply

Description

name

The name of resource or template.

ResourceType

  • masterIP

  • resource

  • pool

  • template

  • bccResource

  • bccPool

  • bccTemplate

The type of resource. The type sub-elements are mutually exclusive.

  • This resource is the cluster master.

  • A standard NCS resource.

  • A standard NCS pool.

  • A standard NCS template.

  • A BCC-enabled resource.

  • A BCC-enabled pool.

  • A BCC-enabled template.

ipAddress

(Optional) IP address of the resource.

distringuishedName

(Optional) The DN of the resource.

poolName

(Optional) The pool name the resource is using.

result value=""

  • description

value is a BCC result code (see the description of the Section B.6.6, BCC Result Code).

result

See Section B.6.6, BCC Result Code.

Reply Example

 <bccReply>
   <bccConfig>
     <listClusterResources>
         <resourceInfo>
             <resourceType>
                 <bccPool/>
             </resourceType>
             <ipAddress>
             <distinguishedName>
             <poolName>
         </resourceInfo>
       </listClusterResources>  
       <result value="">
         <description>
       </result>
     </getClusterInfo>
   </bccConfig>
 </bccReply>  
 

<setClusterInfo>

Sets the BCC-specific attributes on the current cluster.

bccRequest

Description

enabled

(Optional) If missing, the cluster is disabled. An enabled cluster registers itself as a peer in a BCC. The cluster must be enabled before individual resources can be enabled

xforms

  • search

  • replace

Optional

  • A search string.

  • A replacement string.

Request Example

 <bccRequest>
   <bccConfig>
     <setClusterInfo>
       <enabled>
       <xforms>
         <xform>
           <search regex="true|false">
           <replace>
         </xform>
       </xforms>
     </setClusterInfo>
   </bccConfig>
 </bccRequest>  
 

bccRequest

Description

result value=""

  • description

value is a BCC result code

Reply Example

 <bccReply>
   <bccConfig>
     <setClusterInfo>
       <result value="">
         <description>
       </result>
     </setClusterInfo>
   </bccConfig>
 </bccReply>  
 

<setCredentials>

Sets the credentials used by the BCC software on the current cluster to communicate with the remote peer clusters in the BCC.

bccRequest

Description

cluster

Name of the peer cluster for which the credentials are used.

blob

blob containing the username and password pair.

clearText

(Optional) If elements exist, blob is not encrypted.

WARNING:It is a security risk to send clear text across the network. This XML element should be used only by NLMs residing directly on the server.

Request Example

 <bccRequest>
   <bccConfig>
     <setCredentials>
       <cluster>
       <blob>
       </clearText>
     </setCredentials>
   </bccConfig> 
 </bccRequest>  
 

bccReply

Description

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply>
   <bccConfig>
     <setCredentials>
       <result value="">
         <description>
       </result>
     </setCredentials>
   </bccConfig>
 </bccReply>  
 

<setResourceInfo>

Modifies the BCC-specific attributes of the given cluster resource.

bccRequest

Description

name

Name of the resource.

enabled

(Optional) Disabled if missing. An enabled resource can be failed over to other clusters in the BCC.

peers

  • cluster

  • name

(Optional) No peers if missing.

  • The name of the cluster.

  • Tree in which cluster resides.

xforms

  • search regex="true|false"

  • replace

(Optional) If missing then no transformations.

  • Search string; regex defaults to false.

  • Replacement string

lunMap

(Optional) Opaque LUN map data. This is the NSMI script or data used to communicate with the SAN.

Request Example

 <bccRequest>
   <bccConfig>
     <setResourceInfo>
       <name>
       <enabled>
       <peers>
         <peer>
           <cluster>
           <tree>
         </peer>
       </peers>
       <xforms>
         <xform>
           <search>
           <replace>
         </xform>
       </xforms>
       <lunMap>
     </setResourceInfo>
   </bccConfig>
 </bccRequest> 
 

bccReply

Description

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply>
   <bccConfig>
     <setResourceInfo>
       <result value="">
         <description>
       </result>
     </setResourceInfo>
   </bccConfig>
 </bccReply>
 
 

B.6.2 BCC_Manage.cmd

Use the following command datastream elements to manage the BCC. These elements are currently used by the iManager snapin and the Pearl-based CLI:

<getClusterConnections>

Retrieves the BCC connection status for the current cluster.

bccRequest

Description

getClusterConnections

Empty tag.

Request Example

 <bccRequest>
   <bccManage> 
     <getClusterConnections/> 
       <name>
       <targetNode>
       <targetCluster>
       <sourceCluster> 
     </getClusterConnections>
   </bccManage> 
 <bccRequest>    
 

bccReply

Description

cluster

Name of cluster connection is for.

username

DN of user object used to make the connection.

tree

Tree user resides in.

status

Status of connection. Valid status: okay, authentication, invalidCredentials, cannotConnect.

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply> 
   <bccManage> 
     <getClusterConnections>
       <connections>
         <connection>
           <cluster>
           <username>
           <tree>
           <status>
         </connection>
       </connections> 
       <result value="">
         <description>
       </result>
     </getClusterConnections>  
   </bccManage>
 </bccReply>
 

<getClusterStatus>

Retrieves the status for the specified cluster. Note that the cluster can be a remote peer cluster in the BCC.

bccRequest

Description

cluster

Name of the cluster to retrieve the status from. This can be the name of a remote cluster in the BCC.

Request Example

 <bccRequest>
   <bccManage> 
     <getClusterStatus> 
       <cluster>
     </getClusterStatus>
   </bccManage> 
 <bccRequest>    
 

bccReply

Description

name

Name of the cluster.

status

Status of the cluster. Valid status: okay, invalidCredentials, cannotConnect.

epoch

Cluster epoch value.

masterNode

Name of the master node.

nodeInfo

  • name

  • state

Information about the nodes in the cluster.

  • The name of the node.

  • Node state. Valid states are: Unknown, Running, Failed/

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply> 
   <bccManage> 
     <getClusterStatus> 
       <name>
       <status>
       <epoch>
       <masterNode>
       <nodeInfo>
         <name>
         <state>
       </nodeInfo>
       <result value="">
         <description>
       </result>
     </getClusterStatus>  
   </bccManage>
 </bccReply>
 

<getConnections>

Retrieves the BCC connection status for the specified cluster. Note that the cluster can be a remote peer cluster in the BCC.

bccRequest

Description

cluster

Name of the cluster to retrieve the connection status for, which can be the name of a remote cluster in the BCC.

Request Example

 <bccRequest>
   <bccManage> 
     <getConnections> 
       <cluster>
     </getConnections>
   </bccManage> 
 <bccRequest>   
 

bccReply

Description

cluster

Name of cluster connection is for.

username

DN of user object used to make the connection.

tree

The tree user resides in.

status

Status of connection. Valid status: okay, authentication, invalidCredentials, cannotConnect.

result value=""

  • description

value is a BCC result code.

Reply Example

 <bccReply> 
   <bccManage> 
     <getConnections>
       <connections>
         <connection>
           <cluster>
           <username>
           <tree>
           <status>
         </connection>
     </getConnections> 
       <result value="">
         <description>
       </result>
     </getConnections>  
   </bccManage>
 </bccReply>
 

<getResourceStatus>

Retrieves the status for all resources from the specified cluster. Note that the cluster can be a remote peer cluster in the BCC.

bccRequest

Description

cluster

Name of the cluster to retrieve the resource status from. This can be the name of a remote cluster in the BCC.

Request Example

 <bccRequest>
   <bccManage>
     <getResourceStatus>
       <cluster>
     </getResourceStatus>
   </bccManage>
 </bccRequest>  
 

bccReply

Description

name

Name of the cluster resource

resourceType

  • masterIP

  • resource

  • pool

  • template

  • bccResource

  • bccPool

  • bccTemplate

Type of resource. Can contain one and only one of the sub-elements.

  • This resource is the cluster master.

  • A standard NCS resource.

  • A standard NCS pool.

  • A standard NCS template.

  • A BCC-enabled resource.

  • A BCC-enabled pool.

  • A BCC-enabled template.

state

State of the resource. Valid states are: Secondary, Offline, Comatose, Loading, Unloading, Running, Unassigned, Quorum Wait, NDS Sync, Upgrade, Failback Alert, Failover Alert, Start Alert, BCC SAN Alert, BCC Source Cluster Alert, BCC Authentication Alert, BCC Authenticating, BCC Loading.

location

Location of the resource. If resource is secondary then this is the name of the cluster the resources is primary at. Otherwise, this is the node name.

incarnation

The number of lives.

upSince

Up time. Generalized time format (YYYYMMDDHHSS).

result value=""

  • description

value is a BCC Result Code.

Reply Example

 <bccReply>
   <bccManage>
     <getResourceStatus>  
       <statusInfo>  
         <name>
         <resourceType>
         <state>
         <location>
         <incarnation>
         <upSince>
       </statusInfo>
       <result value="">
         <description>
       </result>
     </getResourceStatus>
   </bccManage>
 </bccReply>  
 

<migrate>

Migrates a resource or all resources to another cluster in the BCC.

bccRequest

Description

name

(Required) The name of the resource. If "*" then all BCC-enabled resources on the source cluster are migrated.

targetNode

(Optional) The target node on the target cluster. If missing, the most preferred node is online.

targetCluster

(Optional) The target cluster. If missing then migrate the resource(s) to the most preferred peer cluster.

sourceCluster

(Optional) Designates the source cluster. If missing, the resource is NOT offlined on the source cluster.

WARNING:This can result in data corruption in the source cluster if still alive. The source cluster MUST be destroyed if the element is missing.

Request Example

 <bccRequest>
   <bccManage> 
     <migrate> 
       <name>
       <targetNode>
       <targetCluster>
       <sourceCluster> 
     </migrate>
   </bccManage> 
 <bccRequest>    
 

bccReply

Description

result value=""

  • description

The value is a BCC result code.

  • Description of the BCC result code value.

result

See Section B.6.6, BCC Result Code.

Reply Example

 <bccReply> 
   <bccManage> 
     <migrate> 
       <result value="">
         <description>
       </result>
     </migrate>  
   </bccManage>
 </bccReply>
 

<remoteRequest>

Performs a VFS request on a remote cluster.

bccRequest

Description

cluster

Name of the remote cluster to send the VFS request to.

file

(Optional) File on _ADMIN volume to send VFS request to. Default: _ADMIN:/Novell/Cluster/Manage.cmd. If filename is included only, the default path is _ADMIN:/Novell/Cluster.

tag

(Optional) The element that must be completed in results. Default: ncsReply.

embeddedRequest

The request XML to send to the other cluster.

Request Example

 <bccRequest>
   <bccManage> 
     <remoteRequest> 
       <cluster>
       <file>
       <tag>
       <embeddedRequest> 
     </remoteRequest>
   </bccManage> 
 <bccRequest>    
 

bccReply

Description

embeddedReply

The reply from the other cluster.

result value=""

  • description

BCC result code. Not results from the other cluster.

Reply Example

 <bccReply> 
   <bccManage> 
     <remoteRequest> 
       <result value="">
         <description>
       </result>
     </remoteRequest>  
   </bccManage>
 </bccReply>
 

B.6.3 BCC_ResourceControl.cmd

This file is used internally by the BCC during resource failover and migration and is not intended to be used by iManager, the Perl-based CLI, or end users.

WARNING:Opening or locking this file can result in disastrous effects during a BCC failover.

B.6.4 BCC_ResourceData.cmd

This file is used internally by the BCC during resource failover and migration and is not intended to be used by iManager, the Perl-based CLI, or end users.

WARNING:Opening or locking this file can result in disastrous effects during an attribute synchronization.

B.6.5 BCC.xml

Returns the version and build numbers for the BCC. This information is static and cannot be changed.

bccReply

Description

build

The BCC build number.

version

The BCC version number

Reply Example

 <bccReply>
   <module>
     <build>
     <version>
   </module>
 </bccReply>  
 

B.6.6 BCC Result Code

Name

Value

Description

ERR_SUCCESS

0

ERR_UNKNOWN

1000

Unkown error.

ERR_INVALID_XML

1001

The XML received is invalid.

ERR_INVALID_EDIR_RELATIONSHIP

1002

The object pointers in eDirectory for the given cluster resource are invalid.

ERR_INVALID_OBJECT

1003

The referenced object is not a valid NCS/BCC object.

ERR_INVALID_RESOURCE_STATE

1004

The referenced cluster resource is in an invalid state.

ERR_NOT_BCC_ENABLED

1005

The specified resource is not enabled for BCC.

ERR_INVALID_PARAMETER

1006

An invalid parameter was passed to the BCC API.

ERR_NO_MEMORY

1007

An attempt to allocate memory failed.

ERR_VFS_FILE_IO

1008

An attempt to communicate with the BCC VFS system failed.

ERR_BUFFER_TO_SMALL

1009

The size of the specified buffer is not large enough.

ERR_DSML_READ

1010

An error occured while performing a DSML read.

ERR_DSML_MODIFY

1011

Error performing a DSML modify.

ERR_NOT_SUPPORTED

1012

Operation not supported.

ERR_OBTAINING_LOCK

1013

Error obtaining lock on synchronization object.

ERR_INVALID_CREDENTIALS

1014

Invalid credentials.

ERR_NICI

1015

Error returned from the NICI API.

ERR_NO_PEER

1016

Cannot find peer cluster data.

ERR_INVALID_API_VERSION

1017

Invalid BCC API version.

ERR_POOL_NOT_FOUND

1018

Could not find a pool for the specified cluster resource.

ERR_NSMI

1019

Error managing the SAN via the Novell SAN Management Interface.

ERR_LAST

1020

Place holder for the last error value.

B.6.7 BCC_Readme.txt

BCC_Readme.txt provides a brief overview of all BCCVFS.NLM files documented in this section. Because this file is intended to provide documentation information for the end user, it is written in human readable text rather than XML.