Package rtslib :: Module target :: Class TPG

[hide private]
[frames] | no frames]

# Class TPG

      object --+
               |
    node.CFSNode --+
                   |
                  TPG

This is a an interface to Target Portal Groups in configFS. A TPG is identified by its parent Target object and its TPG Tag. To a TPG object is attached a list of NetworkPortals. Targets without the 'tpgts' feature cannot have more than a single TPG, so attempts to create more will raise an exception.

Instance Methods | [hide private]

__init__(self, parent_target, tag, mode=`'``any``'`, nexus_wwn=None) Returns: A TPG object. |

_get_tag(self) |

_get_parent_target(self) |

_list_network_portals(self) |

_get_enable(self) |

_set_enable(self, boolean) Enables or disables the TPG. |

_get_nexus(self) Gets the nexus initiator WWN, or None if the TPG does not have one. |

_set_nexus(self, nexus_wwn=None) Sets the nexus initiator WWN. |

_create_in_cfs_ine(self, mode) Creates the configFS node if it does not already exist depending on the mode. |

_list_node_acls(self) |

_list_luns(self) |

_control(self, command) |

_get_alua_metadata_path(self) |

has_feature(self, feature) Whether or not this TPG has a certain feature. |

delete(self) Recursively deletes a TPG object. |

node_acl(self, node_wwn, mode=`'``any``'`) Same as NodeACL() but without specifying the parent_tpg. |

network_portal(self, ip_address, port, mode=`'``any``'`) Same as NetworkPortal() but without specifying the parent_tpg. |

lun(self, lun, storage_object=None, alias=None) Same as LUN() but without specifying the parent_tpg. |

has_enable(self) Returns True if the TPG has the enable attribute, else False. |

Inherited from `node.CFSNode`: `__nonzero__`, `__str__`, `get_attribute`, `get_auth_attr`, `get_parameter`, `list_attributes`, `list_auth_attrs`, `list_parameters`, `set_attribute`, `set_auth_attr`, `set_parameter`

Inherited from `node.CFSNode` (private): `_check_self`, `_exists`, `_get_path`, `_is_fresh`, `_list_files`

Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]

Inherited from `node.CFSNode`: `alua_metadata_dir`, `configfs_dir`

Properties | [hide private]

| alua_metadata_path Get the ALUA metadata directory path for the TPG.
| tag Get the TPG Tag as an int.
| parent_target Get the parent Target object to which the TPG is attached.
| enable Get or set a boolean value representing the enable status of the TPG.
| network_portals Get the list of NetworkPortal objects currently attached to the TPG.
| node_acls Get the list of NodeACL objects currently attached to the TPG.
| luns Get the list of LUN objects currently attached to the TPG.
| nexus_wwn Get or set (once) the TPG's Nexus initiator WWN.
Inherited from `node.CFSNode`: `exists`, `is_fresh`, `path` Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, parent_target, tag, mode=`'``any``'`, nexus_wwn=None)
(Constructor)

x.__init__(...) initializes x; see help(type(x)) for signature

Parameters:
  - `parent_target` (Target) - The parent Target object of the TPG.
  - `tag` (int > 0) - The TPG Tag (TPGT).
  - `mode` (string) - An optionnal string containing the object creation mode:
    - 'any' means the configFS object will be either looked up or created.
    - 'lookup' means the object MUST already exist configFS.
    - 'create' means the object must NOT already exist in configFS.
  - `nexus` (string) - An optionnal naa WWN that makes sense only for fabrics supporting that feature, like the loopback fabric.
Returns:
  A TPG object.
Overrides: object.__init__

### _set_enable(self, boolean)

Enables or disables the TPG. Raises an error if trying to disable a TPG without an enable attribute (but enabling works in that case).

### _set_nexus(self, nexus_wwn=None)

Sets the nexus initiator WWN. Raises an exception if the nexus is already set or if the TPG does not use a nexus.

### _create_in_cfs_ine(self, mode)

Creates the configFS node if it does not already exist depending on the mode. any -> makes sure it exists, also works if the node already does exist lookup -> make sure it does NOT exist create -> create the node which must not exist beforehand Upon success (no exception raised), self._fresh is True if a node was created, else self._fresh is False.

Overrides: node.CFSNode._create_in_cfs_ine
  (inherited documentation)

### delete(self)

Recursively deletes a TPG object. This will delete all attached LUN, NetworkPortal and Node ACL objects and then the TPG itself. Before starting the actual deletion process, all sessions will be disconnected.

Overrides: node.CFSNode.delete

Property Details | [hide private]

### alua_metadata_path

Get the ALUA metadata directory path for the TPG.

Get Method:
  _get_alua_metadata_path(self)

### tag

Get the TPG Tag as an int.

Get Method:
  _get_tag(self)

### parent_target

Get the parent Target object to which the TPG is attached.

Get Method:
  _get_parent_target(self)

### enable

Get or set a boolean value representing the enable status of the TPG. True means the TPG is enabled, False means it is disabled.

Get Method:
  _get_enable(self)
Set Method:
  _set_enable(self, boolean) - Enables or disables the TPG.

### network_portals

Get the list of NetworkPortal objects currently attached to the TPG.

Get Method:
  _list_network_portals(self)

### node_acls

Get the list of NodeACL objects currently attached to the TPG.

Get Method:
  _list_node_acls(self)

### luns

Get the list of LUN objects currently attached to the TPG.

Get Method:
  _list_luns(self)

### nexus_wwn

Get or set (once) the TPG's Nexus initiator WWN.

Get Method:
  _get_nexus(self) - Gets the nexus initiator WWN, or None if the TPG does not have one.
Set Method:
  _set_nexus(self, nexus_wwn=None) - Sets the nexus initiator WWN.