def get_port_old_version(intr):
port_file = '/tmp/port.da'
- for _ in xrange(10):
- ret, out, _ = intr.shell('cat %s' % port_file)
- if ret != 0:
- continue
-
- if len(out) == 0:
- raise ValueError('Port not found (%s)' % port_file)
-
- return int(out)
+ # port file appears in some time after start, so let's wait it 60 secs
+ ret, out, _ = intr.shell('while [ ! -s ' + port_file + ' ]; '
+ + 'do sleep 1; done; cat ' + port_file, 60)
+ if ret != 0 or len(out) == 0:
+ raise ValueError('Port not found (%s)' % port_file)
- raise ValueError('Cannot get port from target (%s)' % port_file)
+ return int(out)
def get_port(intr):
port_file = '/run/swap/manager/port'
- ret, out, _ = intr.shell('cat %s' % port_file)
- if ret != 0:
+ # sdb shell doesn't provide return code of the command, so we check it
+ # this way
+ _, out, _ = intr.shell('ls ' + port_file)
+ if len(out) >= len(port_file) and out[0:len(port_file)] == port_file:
+ _, out, _ = intr.shell('cat ' + port_file)
+ if len(out) == 0:
+ raise ValueError('Port not found (%s)' % port_file)
+ else:
return get_port_old_version(intr)
- if len(out) == 0:
- raise ValueError('Port not found (%s)' % port_file)
-
return int(out)