wrench::XRootD::Node

class Node : public wrench::StorageService

An XRootD node, this can be either a supervisor or a storage server. All nodes are classified as storage services even though not all have physical storage Unless a node is also has an internal storage service, some normal storage service messages will error out. Only File Read, locate, and delete are supported at this time, anything else requires talking directly to a specific file server with physical storage. Nodes not directly be created, instead an XRootD Metavisor should create them.

Public Functions

std::shared_ptr<Node> addChildStorageServer(const std::string &hostname, const std::string &mount_point, WRENCH_PROPERTY_COLLECTION_TYPE storage_property_list = {}, WRENCH_MESSAGE_PAYLOAD_COLLECTION_TYPE storage_messagepayload_list = {}, WRENCH_PROPERTY_COLLECTION_TYPE node_property_list = {}, WRENCH_MESSAGE_PAYLOAD_COLLECTION_TYPE node_messagepayload_list = {})

Adds a child, which will be a storage server, to a node.

Parameters:
  • hostname – the name of the host on which the child will run

  • mount_point – the mount point at that host

  • storage_property_list – the storage server’s property list

  • storage_messagepayload_list – the storage server’s message payload list

  • node_property_list – the XRootD node’s property list

  • node_messagepayload_list – the XRootD node’s message payload list

Returns:

The child

std::shared_ptr<Node> addChildSupervisor(const std::string &hostname)

Adds a child, which will be a supervisor, to a node.

Parameters:

hostname – the name of the host on which the child will run

Returns:

The child

std::shared_ptr<Node> getChild(unsigned int n)

A meta tree traversal operation to get the nth child of this node.

Parameters:

n – The index of the child to receive. Nodes are in order added

Returns:

the Child Nodes shared pointer, or nullptr if this node is a leaf

Node *getParent()

A Meta tree traversal to get the parent of this node.

Returns:

pointer supervisor. Will be nullptr if root