我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用charmhelpers.core.host.file_hash()。
def __call__(self, manager, service_name, event_name): pre_checksum = '' if self.on_change_action and os.path.isfile(self.target): pre_checksum = host.file_hash(self.target) service = manager.get_service(service_name) context = {'ctx': {}} for ctx in service.get('required_data', []): context.update(ctx) context['ctx'].update(ctx) result = templating.render(self.source, self.target, context, self.owner, self.group, self.perms, template_loader=self.template_loader) if self.on_change_action: if pre_checksum == host.file_hash(self.target): hookenv.log( 'No change detected: {}'.format(self.target), hookenv.DEBUG) else: self.on_change_action() return result # Convenience aliases for templates
def contents_match(self, path): """Determines if the file content is the same. This is determined by comparing hashsum of the file contents and the saved hashsum. If there is no hashsum, then the content cannot be sure to be the same so treat them as if they are not the same. Otherwise, return True if the hashsums are the same, False if they are not the same. :param path: the file to check. """ checksum = file_hash(path) kv = unitdata.kv() stored_checksum = kv.get('hardening:%s' % path) if not stored_checksum: # If the checksum hasn't been generated, return False to ensure # the file is written and the checksum stored. log('Checksum for %s has not been calculated.' % path, level=DEBUG) return False elif stored_checksum != checksum: log('Checksum mismatch for %s.' % path, level=DEBUG) return False return True