|
46 | 46 | PLUGIN = 'linstor-manager'
|
47 | 47 |
|
48 | 48 |
|
| 49 | +PATH_NAME = "xostor" |
| 50 | + |
49 | 51 | # ==============================================================================
|
50 | 52 |
|
51 | 53 | def get_local_volume_openers(resource_name, volume):
|
@@ -1613,6 +1615,41 @@ def set_node_preferred_interface(self, node_name, name):
|
1613 | 1615 | 'Failed to set preferred node interface on `{}`: {}'.format(node_name, error_str)
|
1614 | 1616 | )
|
1615 | 1617 |
|
| 1618 | + def get_node_path(self, hostname1, hostname2): |
| 1619 | + result = self._linstor.node_conn_list_specific_pair(node_a=hostname1, node_b=hostname2) |
| 1620 | + errors = self._filter_errors(result) |
| 1621 | + if errors: |
| 1622 | + error_str = self._get_error_str(errors) |
| 1623 | + raise LinstorVolumeManagerError( |
| 1624 | + 'Failed to get node connection for `{}` <-> `{}`: {}'.format(hostname1, hostname2, error_str) |
| 1625 | + ) |
| 1626 | + return result |
| 1627 | + |
| 1628 | + def set_node_path(self, hostname1, hostname2, network_name): |
| 1629 | + property_name1 = "Paths/{netname}/{node_name}".format(netname=PATH_NAME, node_name=hostname1) |
| 1630 | + property_name2 = "Paths/{netname}/{node_name}".format(netname=PATH_NAME, node_name=hostname2) |
| 1631 | + result = self._linstor.node_conn_modify(hostname1, hostname2, property_dict={property_name1: network_name, property_name2: network_name}, delete_props=None) |
| 1632 | + errors = self._filter_errors(result) |
| 1633 | + if errors: |
| 1634 | + error_str = self._get_error_str(errors) |
| 1635 | + raise LinstorVolumeManagerError( |
| 1636 | + 'Failed to set node connection: {}'.format(error_str) |
| 1637 | + ) |
| 1638 | + return result |
| 1639 | + |
| 1640 | + def destroy_node_path(self, hostname1, hostname2): |
| 1641 | + property_name1 = "Paths/{netname}/{node_name}".format(netname=PATH_NAME, node_name=hostname1) |
| 1642 | + property_name2 = "Paths/{netname}/{node_name}".format(netname=PATH_NAME, node_name=hostname2) |
| 1643 | + result = self._linstor.node_conn_modify(hostname1, hostname2, property_dict=None, delete_props=[property_name1, property_name2]) |
| 1644 | + errors = self._filter_errors(result) |
| 1645 | + if errors: |
| 1646 | + error_str = self._get_error_str(errors) |
| 1647 | + raise LinstorVolumeManagerError( |
| 1648 | + 'Failed to set node connection: {}'.format(error_str) |
| 1649 | + ) |
| 1650 | + return result |
| 1651 | + |
| 1652 | + |
1616 | 1653 | def get_nodes_info(self):
|
1617 | 1654 | """
|
1618 | 1655 | Get all nodes + statuses, used or not by the pool.
|
|
0 commit comments