Revision 770fe0f9
b/lib/bdev.py | ||
---|---|---|
917 | 917 |
""" |
918 | 918 |
_VERSION_RE = re.compile(r"^version: (\d+)\.(\d+)\.(\d+)" |
919 | 919 |
r" \(api:(\d+)/proto:(\d+)\)") |
920 |
_DRBD_KVER = 0 |
|
920 |
_DRBD_MAJOR = 147 |
|
921 |
_ST_UNCONFIGURED = "Unconfigured" |
|
922 |
_ST_WFCONNECTION = "WFConnection" |
|
923 |
_ST_CONNECTED = "Connected" |
|
921 | 924 |
|
922 | 925 |
@staticmethod |
923 | 926 |
def _GetProcData(): |
... | ... | |
948 | 951 |
first_line) |
949 | 952 |
return [int(val) for val in version.groups()] |
950 | 953 |
|
954 |
@staticmethod |
|
955 |
def _DevPath(minor): |
|
956 |
"""Return the path to a drbd device for a given minor. |
|
957 |
|
|
958 |
""" |
|
959 |
return "/dev/drbd%d" % minor |
|
960 |
|
|
961 |
@classmethod |
|
962 |
def _GetUsedDevs(cls): |
|
963 |
"""Compute the list of used DRBD devices. |
|
964 |
|
|
965 |
""" |
|
966 |
data = cls._GetProcData() |
|
967 |
|
|
968 |
used_devs = {} |
|
969 |
valid_line = re.compile("^ *([0-9]+): cs:([^ ]+).*$") |
|
970 |
for line in data: |
|
971 |
match = valid_line.match(line) |
|
972 |
if not match: |
|
973 |
continue |
|
974 |
minor = int(match.group(1)) |
|
975 |
state = match.group(2) |
|
976 |
if state == cls._ST_UNCONFIGURED: |
|
977 |
continue |
|
978 |
used_devs[minor] = state, line |
|
979 |
|
|
980 |
return used_devs |
|
981 |
|
|
951 | 982 |
|
952 | 983 |
class DRBDev(BaseDRBD): |
953 | 984 |
"""DRBD block device. |
... | ... | |
962 | 993 |
valid size and is zeroed on create. |
963 | 994 |
|
964 | 995 |
""" |
965 |
_DRBD_MAJOR = 147 |
|
966 |
_ST_UNCONFIGURED = "Unconfigured" |
|
967 |
_ST_WFCONNECTION = "WFConnection" |
|
968 |
_ST_CONNECTED = "Connected" |
|
969 |
|
|
970 | 996 |
def __init__(self, unique_id, children): |
971 | 997 |
super(DRBDev, self).__init__(unique_id, children) |
972 | 998 |
self.major = self._DRBD_MAJOR |
... | ... | |
983 | 1009 |
self._lhost, self._lport, self._rhost, self._rport = unique_id |
984 | 1010 |
self.Attach() |
985 | 1011 |
|
986 |
@staticmethod |
|
987 |
def _DevPath(minor): |
|
988 |
"""Return the path to a drbd device for a given minor. |
|
989 |
|
|
990 |
""" |
|
991 |
return "/dev/drbd%d" % minor |
|
992 |
|
|
993 |
@classmethod |
|
994 |
def _GetUsedDevs(cls): |
|
995 |
"""Compute the list of used DRBD devices. |
|
996 |
|
|
997 |
""" |
|
998 |
data = cls._GetProcData() |
|
999 |
|
|
1000 |
used_devs = {} |
|
1001 |
valid_line = re.compile("^ *([0-9]+): cs:([^ ]+).*$") |
|
1002 |
for line in data: |
|
1003 |
match = valid_line.match(line) |
|
1004 |
if not match: |
|
1005 |
continue |
|
1006 |
minor = int(match.group(1)) |
|
1007 |
state = match.group(2) |
|
1008 |
if state == cls._ST_UNCONFIGURED: |
|
1009 |
continue |
|
1010 |
used_devs[minor] = state, line |
|
1011 |
|
|
1012 |
return used_devs |
|
1013 |
|
|
1014 |
|
|
1015 | 1012 |
@classmethod |
1016 | 1013 |
def _FindUnusedMinor(cls): |
1017 | 1014 |
"""Find an unused DRBD device. |
Also available in: Unified diff