1. 写openstack swift的middleware 首先要确定swift用的是哪个middleware文件。 比如healthcheck这个中间件,在机器上有很多同名文件如下,

这两行可能是源代码
/etc/swift/swift-src/swift/common/middleware/healthcheck.py
/etc/swift/swift-src/build/lib.linux-x86_64-2.7/swift/common/middleware/healthcheck.py 这行不知道干嘛的
/usr/share/pyshared/swift/common/middleware/healthcheck.py
这行链接到上一行
/usr/lib/python2./dist-packages/swift/common/middleware/healthcheck.py
/usr/lib/python2./dist-packages/swift/common/middleware/healthcheck.pyc 这行是真正用的。并且在修改这个文件后不需要compile成pyc直接重启 swift即可
/usr/local/lib/python2./dist-packages/swift/common/middleware/healthcheck.py
/usr/local/lib/python2./dist-packages/swift/common/middleware/healthcheck.pyc

2. 确定了middleware文件的位置为/usr/local后,在这个目录下尝试创建一个文件,然后配置。

首先,创建一个中间件文件。我是把一个现成的中间件文件copy过来。当然要改里面的类名之类的信息。

其次在/etc/swift/proxy-server.conf里做如下配置。myck是我的中间件文件

pipeline = catch_errors healthcheck myck cache authtoken keystoneauth proxy-server

除了上面一行还有下面一行

[filter:myck]
paste.filter_factory = swift.common.middleware.myck:filter_factory

OK 重启swift即可看到新的中间件生效

swift-init all restart

root@A071103070098:~# curl -D- -H 'X-Storage-User: admin:admin' -H 'X-Storage-Pass: root1234' http://10.194.148.102:8080/myck
HTTP/1.0 OK
Content-Type: text/plain
X-Trans-Id: tx5421cc00cae8401682b42-00540a6ceb
Date: Sat, Sep :: GMT
Content-Length:
Age:
X-Cache: MISS from NS-M46903639710
X-Cache-Lookup: MISS from NS-M46903639710:
Connection: close OK this is from /usr/local. Do not need to recompile this file,just restart swift

python_swift_project_middleware的更多相关文章

随机推荐

  1. ACM_错排(递推dp)

    RPG的错排 Time Limit: 2000/1000ms (Java/Others) Problem Description: 今年暑假GOJ集训队第一次组成女生队,其中有一队叫RPG,但做为集训 ...

  2. C# 访问mongodb数据库

    1.引用四个mongodb动态库MongoDB.Bson.dll,MongoDB.Driver.Core.dll,MongoDB.Driver.dll,MongoDB.Driver.Legacy.dl ...

  3. Elasticsearch--搜索

    目录 基本知识 查询结果返回设置:版本值.得分限制.定制返回字段 搜索类型 搜索执行偏好 基本查询 过滤器类型 高亮 控制高亮的片段 验证查询 数据排序 查询重写 基本知识 查询结果返回设置:版本值. ...

  4. redis的安装、启动、主从配置,以及.Net下StackExchange.Redis的使用

    开门见山,Linux下配个环境真是苦逼死了,这里记录一下,囧 一.环境 服务端:Ubuntu16.04 LTS(虚拟机,redis官方没有window发布版本,而且在Linux下运行更稳定) 客户端: ...

  5. postgreSQL在Centos6下编译安装

    1.准备安装源 下载地址:https://www.postgresql.org/ftp/source/ 下载并解压. 2.软件编译安装 配置.检查安装环境 ./configure --prefix=/ ...

  6. 如何在Win8.1和Win2012上运用PowerShell快速生成、安装、导出自签名证书 (Self-Signed Certificate)

    自签名证书用途很广,测试,开发,本地或者云端网站(比如Microsoft Azure Web Site)都会使用到.本文会介绍一种在Win8.1和Win2012 R2上使用PowerShell快速生成 ...

  7. python学习笔记- 补遗

    1.extend 和 append区别 extend 和 append区别 #extend接受list参数,添加每个元素至原list尾端 >>> l=[1,2,3] >> ...

  8. [JSOI2012]玄武密码 题解(AC自动机)

    显然是AC自动机对吧 插入单词之后把文章在自动机上跑一遍,到达过的节点打上花火标记 之后检查一下每个单词有几个标记即可 可以把题目中的4个字母映射成abcd方便遍历 一定要记得把文章也映射啊! #in ...

  9. 05网页<div></div>块内容

    网页<div></div>块内容 <header>此处为新 header 标签的内容</header> <navigation>此处为新 n ...

  10. php file_get_contents函数分段读取大记事本或其它文本文件

    当我们遇到文本文件体积很大时,比如超过几十M甚至几百M几G的大文件,用记事本或者其它编辑器打开往往不能成功,因为他们都需要把文件内容全部放到内存里面,这时就会发生内存溢出而打开错误,遇到这种情况我们可 ...