def _refresh_and_update(self):
        """Refresh the operation and update the result if needed."""
        # If the currently cached operation is done, no need to make another
        # RPC as it will not change once done.
        if not self._operation.done:
            self._operation = self._refresh()
            self._set_result_from_operation()