Raritan / Server Technology Xerus™ PDU JSON-RPC API
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
cascading::CascadeManager Interface Reference

JSON-RPC Cascade Manager. More...

import"CascadeManager.idl";

Classes

struct  LinkPortStatus
 Status of the Link Port. More...
 
struct  LinkUnit
 Link Unit Status. More...
 
struct  PrimaryUnitSettings
 Settings for primary unit. More...
 
struct  Status
 Full Cascading Status. More...
 

Public Types

enum  Role { STANDALONE , PRIMARY_UNIT , LINK_UNIT }
 JSON-RPC Cascade Role. More...
 
enum  LinkUnitType { NETWORK , SECURE_SERIAL }
 
enum  LinkUnitStatus {
  UNKNOWN , OK , UNREACHABLE , ACCESS_DENIED ,
  FIRMWARE_UPDATE , FIRMWARE_MISMATCH , PENDING
}
 Link Unit Communication Status. More...
 

Public Member Functions

PrimaryUnitSettings getPrimaryUnitSettings ()
 Retrieve settings for the primary unit. More...
 
int setPrimaryUnitSettings (in PrimaryUnitSettings primaryUnitSettings)
 Set settings for the primary unit. More...
 
Status getStatus ()
 Retrieve the full cascading status for this unit. More...
 
LinkPortStatus getLinkPortStatus ()
 Retrieve the current Link Port status. More...
 
int addLinkUnit (in int linkId, in string host, in string login, in string password, in string newPassword)
 Put a new link unit under this primary unit's control. More...
 
int releaseLinkUnit (in int linkId)
 Release a link unit from this primary unit's control. More...
 
int requestLink (in string token)
 Request to make this unit a link unit and put it under the remote primary unit's control. More...
 
void finalizeLink (in string token)
 Finalize the link with this link unit. More...
 
void unlink ()
 Release this link unit from the remote primary unit's control. More...
 
vector< RolegetSupportedRoles ()
 Check which cascading roles this unit supports. More...
 
vector< LinkUnitTypegetSupportedLinkUnitTypes ()
 Check which type of link units this unit supports. More...
 
int addCascadeLinkUnit (in int linkId, in int nodeIndex, in string login, in string password, in boolean positionDependent)
 Can be called on a network cascade primary unit to add expansion units of the network cascade as link units. More...
 
int addLinkPortLinkUnit ()
 Add a neighbor that was discovered on the link port as link unit. More...
 
int addSecureSerialLinkUnit (in int linkId, in string installKey)
 Add a serial link unit (ScalePoint Base). More...
 

Public Attributes

constant int NO_ERROR = 0
 Operation successful, no error.
 
constant int ERR_INVALID_PARAM = 1
 A parameter was invalid.
 
constant int ERR_UNSUPPORTED_ON_PRIMARY_UNIT = 2
 Operation not allowed for a primary unit.
 
constant int ERR_UNSUPPORTED_ON_LINK_UNIT = 3
 Operation not allowed for a link unit.
 
constant int ERR_LINK_ID_IN_USE = 4
 The specified link ID is already used.
 
constant int ERR_HOST_IN_USE = 5
 The specified host is already in use.
 
constant int ERR_LINK_UNIT_UNREACHABLE = 6
 Could not connect to the link device.
 
constant int ERR_LINK_UNIT_ACCESS_DENIED = 7
 Login to link device failed.
 
constant int ERR_LINK_UNIT_REFUSED = 8
 Remote device refused to become a link unit.
 
constant int ERR_UNIT_BUSY = 9
 The unit could not respond because it was busy.
 
constant int ERR_NOT_SUPPORTED = 10
 Operation not supported on this device.
 
constant int ERR_PASSWORD_CHANGE_REQUIRED = 11
 The unit requires a password change.
 
constant int ERR_PASSWORD_POLICY = 12
 The given password did not meet the requirements.
 
constant int ERR_LINK_UNIT_COMM_FAILED = 13
 Communication with the link unit failed.
 
constant int ERR_LINK_UNIT_NOT_SUPPORTED = 14
 Link unit does not support cascading.
 
constant int ERR_FIRMWARE_VERSION_MISMATCH = 15
 The firmware versions between primary and link unit do not match.
 
valueobject RoleChangedEvent: idl::Event { Role oldRole
 Event: This unit's role in the cascade has changed. More...
 
Role newRole
 New role after the change.
 
string primaryUnit
 Primary unit IP address (if new role is link unit)
 
valueobject LinkUnitAddedEvent: event::UserEvent { int linkId
 Event: A new link unit has been added. More...
 
LinkUnitType type
 Link unit type.
 
string host
 Host name, IP address or bus address.
 
valueobject LinkUnitReleasedEvent: event::UserEvent { int linkId
 Event: A link unit has been released. More...
 
valueobject LinkUnitStatusChangedEvent: idl::Event { int linkId
 Event: A link unit's communication status has changed. More...
 
LinkUnitStatus oldStatus
 Previous communication status.
 
LinkUnitStatus newStatus
 New communication status.
 
valueobject LinkPortStatusChangedEvent: idl::Event { LinkPortStatus oldStatus
 Link Port Status changed. More...
 
LinkPortStatus newStatus
 New Link Port status.
 

Detailed Description

JSON-RPC Cascade Manager.

Member Enumeration Documentation

◆ LinkUnitStatus

Link Unit Communication Status.

Enumerator
UNKNOWN 

The status of the link unit is unknown.

OK 

The link unit operates normally.

UNREACHABLE 

The link unit is unreachable.

ACCESS_DENIED 

The link unit denies access.

FIRMWARE_UPDATE 

This link unit is performing a firmware update.

FIRMWARE_MISMATCH 

This link unit's firmware version does not match that of the primary unit.

PENDING 

The link unit becomes active after the next reboot.

◆ LinkUnitType

Enumerator
NETWORK 

High-level linking via JSON-RPC API.

SECURE_SERIAL 

Linking via encrypted serial bus (ScalePoint)

◆ Role

JSON-RPC Cascade Role.

Enumerator
STANDALONE 

Standalone unit, not in cascade.

PRIMARY_UNIT 

Primary unit controlling other devices.

LINK_UNIT 

Link unit under primary unit control.

Member Function Documentation

◆ addCascadeLinkUnit()

int cascading::CascadeManager::addCascadeLinkUnit ( in int  linkId,
in int  nodeIndex,
in string  login,
in string  password,
in boolean  positionDependent 
)

Can be called on a network cascade primary unit to add expansion units of the network cascade as link units.

Parameters
linkIdThe ID for the new link unit
nodeIndexThe expansion unit's index in the network cascade (1 - 15)
loginThe administrator login for the link unit
passwordThe administrator password for the link unit
positionDependentIf true, host names that depend on the nodex index will be used. If false, unique link-local IPv6 addresses will be used for linking.
Returns
see addLinkUnit

◆ addLinkPortLinkUnit()

int cascading::CascadeManager::addLinkPortLinkUnit ( )

Add a neighbor that was discovered on the link port as link unit.

If a new password needs to be set, it will be generated.

Returns
NO_ERROR The operation was successful
ERR_INVALID_PARAM No neighbor currently discovered or no link id left
ERR_UNSUPPORTED_ON_LINK_UNIT This unit is currently a link unit and can't have link units of its own
ERR_HOST_IN_USE The link port neighbor was already added
ERR_LINK_UNIT_UNREACHABLE Connection to the link unit failed
ERR_LINK_UNIT_ACCESS_DENIED The credentials for the link unit were invalid
ERR_LINK_UNIT_REFUSED The remote unit refused to become our link unit because it's a primary unit itself
ERR_UNIT_BUSY This unit is currently busy with handling another request
ERR_NOT_SUPPORTED This device does not support PDU linking via link port
ERR_LINK_UNIT_COMM_FAILED Communication with the link unit failed
ERR_LINK_UNIT_NOT_SUPPORTED Link unit does not support cascading
ERR_FIRMWARE_VERSION_MISMATCH The firmware version of the link unit does not match that of the primary unit

◆ addLinkUnit()

int cascading::CascadeManager::addLinkUnit ( in int  linkId,
in string  host,
in string  login,
in string  password,
in string  newPassword 
)

Put a new link unit under this primary unit's control.

The login credentials must have administrator privileges on the link unit. They are only used to establish a trust relationship between primary and link unit and not stored.

This method can also be used to re-authenticate a link unit that denies access. In that case the linkId and host parameter must exactly match the existing values.

Parameters
linkIdThe ID for the new link unit
hostThe link unit's host name or IP address
loginThe administrator login for the link unit
passwordThe administrator password for the link unit
newPasswordThe new administrator password for the unit. This is needed for adding a link unit that still has default settings and requires a password change. Otherwise it can be left empty.
Returns
NO_ERROR The operation was successful
ERR_INVALID_PARAM One of the parameters had an invalid value
ERR_UNSUPPORTED_ON_LINK_UNIT This unit is currently a link unit and can't have link units of its own
ERR_LINK_ID_IN_USE The specified link ID is already in use
ERR_HOST_IN_USE The specified host is already in use
ERR_LINK_UNIT_UNREACHABLE Connection to the link unit failed
ERR_LINK_UNIT_ACCESS_DENIED The credentials for the link unit were invalid
ERR_LINK_UNIT_REFUSED The remote unit refused to become our link unit because it's a primary unit itself
ERR_UNIT_BUSY This unit is currently busy with handling another request
ERR_NOT_SUPPORTED This device does not support PDU linking
ERR_PASSWORD_CHANGE_REQUIRED The specified link unit requires a password change
ERR_PASSWORD_POLICY The new password did not meet the requirements
ERR_LINK_UNIT_COMM_FAILED Communication with the link unit failed
ERR_LINK_UNIT_NOT_SUPPORTED Link unit does not support cascading
ERR_FIRMWARE_VERSION_MISMATCH The firmware version of the link unit does not match that of the primary unit

◆ addSecureSerialLinkUnit()

int cascading::CascadeManager::addSecureSerialLinkUnit ( in int  linkId,
in string  installKey 
)

Add a serial link unit (ScalePoint Base).

Parameters
linkIdThe ID for the new link unit
installKeyThe install key from the Base unit's label
Returns
NO_ERROR The operation was successful
ERR_INVALID_PARAM One of the parameters had an invalid value
ERR_UNSUPPORTED_ON_LINK_UNIT This unit is currently a link unit and can't have link units of its own
ERR_LINK_ID_IN_USE The specified link ID is already in use
ERR_LINK_UNIT_UNREACHABLE Connection to the link unit failed
ERR_UNIT_BUSY This unit is currently busy with handling another request
ERR_NOT_SUPPORTED This device does not support PDU linking
ERR_LINK_UNIT_COMM_FAILED Communication with the link unit failed

◆ finalizeLink()

void cascading::CascadeManager::finalizeLink ( in string  token)

Finalize the link with this link unit.

Parameters
tokensame authorization token as used for requestLink()

This method should only be called by the primary unit in order to acknowledge the establishment of the link to the link unit and finalize the link build-up. The linking will only take effect once the link unit received this acknowledgement.

If this method fails, you will get the ACCESS_DENIED status for this link unit and you will have to re-authenticate it.

◆ getLinkPortStatus()

LinkPortStatus cascading::CascadeManager::getLinkPortStatus ( )

Retrieve the current Link Port status.

Returns
Current Link Port status

◆ getPrimaryUnitSettings()

PrimaryUnitSettings cascading::CascadeManager::getPrimaryUnitSettings ( )

Retrieve settings for the primary unit.

Returns
Primary unit settings

◆ getStatus()

Status cascading::CascadeManager::getStatus ( )

Retrieve the full cascading status for this unit.

Returns
Full cascading status

◆ getSupportedLinkUnitTypes()

vector<LinkUnitType> cascading::CascadeManager::getSupportedLinkUnitTypes ( )

Check which type of link units this unit supports.

Returns
vector with supported link unit types

◆ getSupportedRoles()

vector<Role> cascading::CascadeManager::getSupportedRoles ( )

Check which cascading roles this unit supports.

Returns
vector with Roles that are supported by this unit

◆ releaseLinkUnit()

int cascading::CascadeManager::releaseLinkUnit ( in int  linkId)

Release a link unit from this primary unit's control.

Parameters
linkIdThe ID of the link unit
Returns
NO_ERROR The operation was successful
ERR_INVALID_PARAM The specified link ID is invalid

◆ requestLink()

int cascading::CascadeManager::requestLink ( in string  token)

Request to make this unit a link unit and put it under the remote primary unit's control.

This method is usually called by the primary unit when adding a new link unit. The link will only be established once finalizeLink() is successfully called.

Parameters
tokenAuthorization token for future requests
Returns
NO_ERROR The operation was successful
ERR_UNSUPPORTED_ON_PRIMARY_UNIT This unit is a primary unit and can't become a link unit
ERR_NOT_SUPPORTED This device does not support PDU linking

◆ setPrimaryUnitSettings()

int cascading::CascadeManager::setPrimaryUnitSettings ( in PrimaryUnitSettings  primaryUnitSettings)

Set settings for the primary unit.

Parameters
primaryUnitSettingsPrimary unit settings
Returns
NO_ERROR The operation was successful
ERR_INVALID_PARAM At least one of the parameters had an invalid value

◆ unlink()

void cascading::CascadeManager::unlink ( )

Release this link unit from the remote primary unit's control.

This method is usually called by the primary unit when releasing a link unit. This unit will become a standalone unit.

Member Data Documentation

◆ LinkPortStatusChangedEvent

valueobject cascading::CascadeManager::LinkPortStatusChangedEvent

Link Port Status changed.

Old Link Port status

◆ LinkUnitAddedEvent

valueobject cascading::CascadeManager::LinkUnitAddedEvent

Event: A new link unit has been added.

Link ID

◆ LinkUnitReleasedEvent

valueobject cascading::CascadeManager::LinkUnitReleasedEvent

Event: A link unit has been released.

Link ID

◆ LinkUnitStatusChangedEvent

valueobject cascading::CascadeManager::LinkUnitStatusChangedEvent

Event: A link unit's communication status has changed.

Link ID

◆ RoleChangedEvent

valueobject cascading::CascadeManager::RoleChangedEvent

Event: This unit's role in the cascade has changed.

Previous role before the change


The documentation for this interface was generated from the following file: