reqmaster

Sets access controls for mastership requests, or requests mastership of a branch or branch type

Applicability

Product

Command type

VersionVault

cleartool subcommand

MultiSite

multitool subcommand

Platform

UNIX

Linux

Windows

Synopsis

  • Display or set the ACL for mastership requests:
    reqmaster –acl [ –edi/t | –set pname | –get ] vob-selector
  • Set access controls for the replica, branches, or branch types:
    reqmaster [ –c/omment comment | –cq/uery | –nc/omment ]
    { { –enable | –dis/able } vob-selector

    | { –den/y | –allow } [ –inst/ances ] branch-type-selector ...

    | { –den/y | –allow } branch-pname ... }

  • Request mastership of a branch or branch type:
    reqmaster [ –c/omment comment | –cq/uery | –nc/omment ]
    [ –lis/t ] { [ branch-pname ... ] [ branch-type-selector ... ] }

Description

This command has three forms: two forms to configure access controls for mastership requests and one form to request mastership of a branch or branch type from the replica that masters the object. For more information, see the Help.

Setting access controls

To allow requests for mastership, the MultiSite administrator must set access controls at each replica:

  • Add developers to the replica's access control list (ACL). Use the –acl option with –edit or –set to edit the ACL.
  • Enable replica-level access. By default, replica-level access is not enabled. To enable it, use the –enable option.

Also, the type and the object must allow mastership requests. By default, type-level and object-level access are enabled. You can enable replica-level access, but deny requests for mastership of specific branches or branch types, or all branches of a specific type. Even if replica-level access is enabled, the reqmaster command fails if requests are denied at the type level or object level. Use the –deny option to deny requests at the type and object level.

Note: Mastership request settings are not replicated. The describe command and the Mastership tab in the Properties Browser on Windows display the current replica's settings.

Requesting mastership of a branch or branch type

This form of the reqmaster command contacts a sibling replica and requests that the replica transfer mastership to the current replica. You can also use reqmaster to display information about whether a mastership request will succeed.

If you specify multiple branches or branch types and the request fails for one or more items, reqmaster prints error messages for the failures and continues processing the other items.

Troubleshooting

If the reqmaster command fails, the error message indicates whether the failure occurred at the current replica or the sibling replica.

If the reqmaster command fails with the message can't get handle, reenter the command. If it continues to fail, ask the sibling replica's administrator to check the status of the VOB server.

When you request mastership, the reqmaster command may complete successfully, but the mastership is not transferred to your current replica. In this case, verify that the synchronization packet was sent from the sibling replica and that your current replica imported it successfully.

Errors that occur during the mastership request process, including errors occurring during the synchronization export, are written to the msadm log file. To view this log, use the cleartool getlog command or the VersionVault Administration Console (Windows).

For more information about error messages from the reqmaster command, see the Help.

Restrictions

Setting access controls

Identities

To set the ACL, you must have write permission on the ACL or have one of the following identities:

  • VOB owner
  • root (UNIX and Linux)
  • Member of the VersionVault administrators group (Windows)

To enable mastership requests at the replica level, you must have one of the following identities:

  • VOB owner
  • root (UNIX and Linux)
  • Member of the VersionVault administrators group (Windows)

Locks

No locks apply.

Mastership

The replica must be self-mastering. For you to allow or deny mastership requests for a branch or branch type, your current replica must master the object.

Other

You do not have to be logged on to a VOB server host to edit the mastership request ACL for a replica on that host. However, if you are not already on the ACL, both of the following conditions must be true in order for you to edit the ACL:

  • You must be the VOB owner or privileged user.
  • You must be logged in to a host in the same domain as the VOB server host.

Requesting mastership of a branch

Identities

You must be on the replica's ACL.

Locks

An error occurs if one or more of these objects are locked (even if you are on the —nusers list): branch, branch type, VOB.

Mastership

Your current replica must not master the branch.

Other

An error occurs in any of the following cases:

  • Mastership requests are denied at any of the following levels: replica, type object, object.
  • There are checkouts on the branch (except for unreserved, nonmastered checkouts).
  • You specify a branch associated with a stream.
  • Your client host is running a later major version of VersionVault than the master replica's host.

Requesting mastership of a branch type

Identities

You must be on the replica's ACL.

Locks

An error occurs if one or more of these objects are lockedd (even if you are on the —nusers list): branch type, VOB, branch instances that have default mastership.

Mastership

Your current replica must not master the branch type.

Other

An error occurs in any of the following cases:

  • Mastership requests are denied at any of the following levels: replica, type object, any branch type instances with default mastership.
  • There are checkouts on any branch type instances with default mastership (except for unreserved, nonmastered checkouts).
  • You specify a branch type associated with a stream.
  • Your client host is running a later major version of VersionVault than the master replica's host.

Options and arguments

Event records and comments

Default
Creates one or more event records, with commenting controlled by the standard VersionVault user profile (default: –nc). See comments.html#ref_comments_refsect1_30223__ref_comments_refsect2_30268 in the comments reference page. To edit a comment, use chevent.
–c/omment comment | –cq/uery | –nc/omment
Overrides the default with the specified comment option.

Displaying or setting access controls

Default
None. You must specify access controls. Specifying –acl with no other option displays the ACL for the current replica in the VOB family specified by vob-selector.
–acl [ –edi/t | –set pname | –get ] vob-selector
By default or with –get, displays the ACL for the current replica in the VOB family specified by vob-selector. With –edit, opens the ACL for the current replica in the editor specified by (in order) the WINEDITOR (UNIX and Linux), VISUAL, or EDITOR environment variable. With –set, uses the contents of pname to set the ACL for the current replica.

Specify vob-selector in the form vob:pname-in-vob

pname-in-vob

Pathname of the VOB tag (whether or not the VOB is mounted) or of any file system object within the VOB (if the VOB is mounted)

–enable vob-selector
Allows mastership requests to be made to the current replica in the VOB family specified by vob-selector.
dis/able vob-selector
Denies all mastership requests made to the current replica in the VOB family specified by vob-selector.
{ –deny | –allow } [ –inst/ances ] branch-type-selector ...
Denies or allows requests for mastership of the specified branch type. With –instances, denies or allows requests for mastership of all branches of the specified type. Specify branch-type-selector in the form brtype:type-name[@vob-selector]

Displaying or setting access controls

type-name

Name of the branch type

vob-selector

VOB specifier; can be omitted if the current working directory is within the VOB.

Specify vob-selector in the form [vob:]pname-in-vob

pname-in-vob

Pathname of the VOB tag (whether or not the VOB is mounted) or of any file system object within the VOB (if the VOB is mounted)

{ –deny | –allow } branch-pname ...
Denies or allows requests for mastership of the specified branch object. Specify branch-pname in the form file-pname@@branch. For example:
cmdsyn.c@@/main/v3.8 
header.h@@\main\v1\bugfix 

Requesting mastership

Default
Sends a request for mastership to the master replica of the object.
–lis/t
Displays information about whether a request would succeed, but does not send a request for mastership.
branch-pname
Branch whose mastership you are requesting. For example:
cmdsyn.c@@/main/v3.8 
header.h@@\main\v1\bugfix 
branch-type-selector
Branch type whose mastership you are requesting. For example:
brtype:main@/vobs/doc 
brtype:v2.0_integration@vob:\tests

Examples

  • Display the ACL for the current replica in the VOB family /vobs/dev, and then change it to give full access to ccadmin and permission to request mastership to gail and paul.

    multitool reqmaster –acl –get vob:/vobs/dev
    # Replica boston_hub@/vobs/dev
    # Request for Mastership ACL:
    Everyone: Read


    cat > /tmp/boston_hub_aclfile
    # Replica boston_hub@/vobs/dev
    # Request for Mastership ACL:
    User:purpledoc.com/ccadmin Full
    User:purpledoc/ccadmin Full
    User:purpledoc.com/gail Change
    User:purpledoc/gail Change
    User:purpledoc.com/paul Change
    User:purpledoc/paul Change


    multitool reqmaster –acl –set /tmp/boston_hub_aclfile vob:/vobs/dev

    multitool reqmaster –acl –get vob:/vobs/dev

    # Replica boston_hub@/vobs/dev
    # Request for Mastership ACL:
    User:purpledoc.com/ccadmin Full
    User:purpledoc/ccadmin Full
    User:purpledoc.com/gail Change
    User:purpledoc/gail Change
    User:purpledoc.com/paul Change
    User:purpledoc/paul Change

  • Allow requests for mastership for all branches and branch types mastered by the current replica in VOB family \tests, except for the branch type v2.0_integration and all branches of that type.

    multitool reqmaster –enable vob:\tests
    Requests for mastership enabled in the replica object for "vob:\tests"

    multitool reqmaster –deny –instances brtype:v2.0_integration@vob:\tests

    Requests for mastership denied for all instances of
    "brtype:v2.0_integration@vob:\tests"

    multitool reqmaster –deny brtype:v2.0_integration@vob:\tests
    Requests for mastership denied for "brtype:v2.0_integration@vob:\tests"

  • Allow requests for mastership for all branches and branch types mastered by the current replica in VOB family \dev, except for the branch cmdsyn.m@@\main\v1.0_bugfix.
    multitool reqmaster –enable vob:\dev
    Requests for mastership enabled in the replica object for "vob:\dev"
    
    multitool reqmaster –deny \dev\cmdsyn.m@@\main\v1.0_bugfix
    Requests for mastership denied for branch "\dev\cmdsyn.m@@\main\v1.0_bugfix"
  • Deny requests for mastership for all branches and branch types mastered by the current replica.
    multitool reqmaster –disable vob:/vobs/dev
    Requests for mastership disabled in the replica object for "vob:/vobs/dev"
  • Deny requests for mastership of the branch type v2.0_integration.

    multitool reqmaster –deny brtype:v2.0_integration@vob:\tests
    Requests for mastership denied for "brtype:v2.0_integration@vob:\tests"

  • Display mastership information about the branches include.h@@\main\integ and acc.c@@\main.

    multitool reqmaster –list include.h@@\main\integ acc.c@@\main
    multitool: Error:  acc.c@@\main
    The following would block the "reqmaster" operation at replica
    "sydney".
    At least one checkout prevents the request.

  • Request mastership of the branch cmdsyn.m@@/main/v2.6_dev.

    multitool reqmaster cmdsyn.m@@/main/v2.6_dev
    cmdsyn.m@@/main/v2.6_dev: Change of mastership at sibling replica
    "boston_hub" was successful.
    Mastership is in transit to the new master replica.

  • Request mastership of the branch type v2.0_integration.

    multitool reqmaster brtype:v2.0_integration@vob:\tests
    brtype:v2.0_integration@vob:\tests: Change of mastership at sibling
    replica "sydney" was successful.
    Mastership is in transit to the new master replica.