One question here, why returning None if not self.serial_console without trying to create a serial_console ?? Why not to create_serial_console() too in this case？
So, what about change it like that below:
```
if not(self.serial_console and os.path.exists(self.serial_console.inpipe_filename)):
    self.create_serial_console()
```