def updateInfo(self, info):
        result = info
        if isinstance(info, Failure):
            info = info.check(DroneCommandFailed)
            if info: info = info.resultContext
        if not isinstance(info, dict):
            return result
        #don't allow dumb changes
        info.pop('pid', None)
        info.pop('inode', None)
        self.info.update(dict(**info))
        return result
Called by app managers after a start/stop condition
dataset/ETHPy150Open OrbitzWorldwide/droned/droned/lib/droned/models/app.py/AppInstance.updateInfo