示例#1
0
 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
示例#2
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
示例#3
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