def ctl_add_image(self, image_name): if image_name in self._metadata_dict: return errno.EEXIST metadata = UKAIMetadata(image_name, self._config) self._metadata_dict[image_name] = metadata data = UKAIData(metadata=metadata, node_error_state_set=self._node_error_state_set, config=self._config) self._data_dict[image_name] = data UKAIStatistics[image_name] = UKAIImageStatistics() return 0
def proxy_update_metadata(self, image_name, encoded_metadata): metadata_raw = json.loads(zlib.decompress(self._rpc_trans.decode( encoded_metadata))) if image_name in self._metadata_dict: self._metadata_dict[image_name].metadata = metadata_raw else: metadata = UKAIMetadata(image_name, self._config, metadata_raw) self._metadata_dict[image_name] = metadata self._data_dict[image_name] = UKAIData(metadata, self._node_error_state_set, self._config) UKAIStatistics[image_name] = UKAIImageStatistics() return 0
fh.close() else: remote = xmlrpclib.ServerProxy( 'http://%s:%d/' % (node, self._config.get('core_port'))) remote.proxy_allocate_dataspace(self._metadata.name, self._metadata.block_size, blk_idx) if __name__ == '__main__': from ukai_node_error_state import UKAINodeErrorStateSet ukai_config.set('data_root', './test/local/data') ukai_config.set('metadata_root', './test/local/metadata') ness = UKAINodeErrorStateSet() meta = UKAIMetadata('./test/local/metadata/test') fh = UKAIData(meta, ness) data = 'Hello World!' offset = 0 print 'offset %d' % offset fh.write(data, offset) ver = fh.read(len(data), offset) if ver != data: print 'error at offset %d' % offset offset = meta.block_size - (len(data) / 2) print 'offset %d' % offset fh.write(data, offset) ver = fh.read(len(data), offset) if ver != data: print ver