Revision 5bb0a1cb lib/block/drbd_info.py

b/lib/block/drbd_info.py
149 149

  
150 150
  """
151 151

  
152
  _VERSION_RE = re.compile(r"^version: (\d+)\.(\d+)\.(\d+)(?:\.\d+)?"
152
  _VERSION_RE = re.compile(r"^version: (\d+)\.(\d+)\.(\d+)(?:\.(\d+))?"
153 153
                           r" \(api:(\d+)/proto:(\d+)(?:-(\d+))?\)")
154 154
  _VALID_LINE_RE = re.compile("^ *([0-9]+): cs:([^ ]+).*$")
155 155

  
......
164 164
      - k_major
165 165
      - k_minor
166 166
      - k_point
167
      - k_fix (only on some drbd versions)
167 168
      - api
168 169
      - proto
169 170
      - proto2 (only on drbd > 8.2.X)
......
171 172
    """
172 173
    return self._version
173 174

  
175
  def GetVersionString(self):
176
    """Return the DRBD version as a single string.
177

  
178
    """
179
    version = self.GetVersion()
180
    retval = "%d.%d.%d" % \
181
             (version["k_major"], version["k_minor"], version["k_point"])
182
    if "k_fix" in version:
183
      retval += ".%s" % version["k_fix"]
184

  
185
    retval += " (api:%d/proto:%d" % (version["api"], version["proto"])
186
    if "proto2" in version:
187
      retval += "-%s" % version["proto2"]
188
    retval += ")"
189
    return retval
190

  
174 191
  def GetMinors(self):
175 192
    """Return a list of minor for which information is available.
176 193

  
......
198 215
      "k_major": int(values[0]),
199 216
      "k_minor": int(values[1]),
200 217
      "k_point": int(values[2]),
201
      "api": int(values[3]),
202
      "proto": int(values[4]),
218
      "api": int(values[4]),
219
      "proto": int(values[5]),
203 220
      }
204
    if values[5] is not None:
205
      retval["proto2"] = values[5]
221
    if values[3] is not None:
222
      retval["k_fix"] = values[3]
223
    if values[6] is not None:
224
      retval["proto2"] = values[6]
206 225

  
207 226
    return retval
208 227

  

Also available in: Unified diff