openstack storlet 文档(九):python storlet编写和部署指南

来源:互联网 发布:电话软件哪个好 编辑:程序博客网 时间:2024/06/05 20:11

这是Python特定的storlet编写和部署指南。 本指南补充了编写和部署更一般的指南,应该首先阅读。

实现一个storlet的python模块如下所示:

class <Class name>(object):    def __init__(self, logger):        self.logger = logger    def __call__(self, in_files, out_files, params):        """        The function called for storlet invocation        :param in_files: a list of StorletInputFile        :param out_files: a list of StorletOutputFile        :param params: a dict of request parameters        """

下面是一个类图,说明了in_files,out_files和logger后面的类。 该图仅列出了storlet writer预期使用的方法。
这里写图片描述

  1. StorletInputFile用于将对象的数据传输到storlet中。 StorletInputFile具有与python FileObject相同的读取方法。 尝试写入StorletInputFile会产生NotImplemented错误。 每当调用一个storlet时,都会提供这个类的一个实例。 要使用元数据则调用StorletInputFile.get_metadata方法。
  2. StorleOutputFile用于写入storlet输出。 StorletOutputFile具有与python FileObject相同的写入方法。 尝试从一个StorletOutputFile读取会产生NotImplemented错误。 每当调用一个storlet时,都会提供这个类的一个实例。 使用StorletInputFile.set_metadata方法设置对象的元数据。 请注意,storlet必须调用StorletInputFile set_metadata方法。 必须在写入数据之前调用StorletInputFile.set_metadata。
  3. StorletLogger。 StorletLogger类实现与Python日志记录器相同的日志方法。

当通过Swift REST API调用时,__call__方法将被如下调用:
1. in_files列表将包括一个或多个类型为StorleInputFile的元素,表示出现在请求的URI中的对象(以及可能的额外资源)。
2. out_files将包括一个类型为StorleOutputFile的单个元素,表示返回给用户的响应。
3. 参数是发送执行参数的字典。 这些参数可以在storlet执行请求中指定。
4. 一个StorletLogger实例。

Deploying a Python Storlet

以下是部署Python storlet的具体指导:
1. 包含storlet类实现的python模块的对象名称必须以.py结尾
2. 类实现依赖的任何python模块都应该以独立的.py()方式上传。
3. ‘X-Object-Meta-Storlet-Main’元数据key的格式为:<module_name>.<class_name> 例如,如果storlet名称是SimpleStorlet,并且它位于simple_storlet.py中,那么’X-Object-Meta-Storlet-Main’元数据key就是“simple_storlet.SimpleStorlet”

Deploying a Python Dependency

  1. 目前,关于什么作为依赖上传时没有限制的。