def _check_sync(self): """ This will be the main operation related with checking that the information on this platform agent (and sub-platforms) is consistent with the information in the external network rooted at the corresponding platform, then publishing relevant notification events. For the moment, it only reports the value of the external checksum and the value of the local checksum. @todo complete implementation @return {'external_checksum': string, 'local_checksum': string} """ log.debug("%r: _check_sync: getting external checksum...", self._platform_id) external_checksum = self.get_external_checksum() local_checksum = self._pnode.compute_checksum() if log.isEnabledFor(logging.DEBUG): # pragma: no cover filename = "logs/checksum_check_from_driver.yml" try: from ion.agents.platform.util.network_util import NetworkUtil open(filename, "w").write(NetworkUtil.serialize_pnode(self._pnode)) except Exception as e: log.debug("%r: cannot write %s: %s", self._platform_id, filename, e) result = {'external_checksum': external_checksum, 'local_checksum': local_checksum} log.debug("%r: _check_sync: result: %s", self._platform_id, result) # TODO - if checksums are different, determine what sub-components are # in disagreement; publish relevant event(s), etc. return result