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. WCF wsdlexception(at/html):faultCode=INVALID_WSDL

    WCF 部署正常,通过浏览器查看服务也OK,但是通过SOAP UI创建客户端请求时就异常: wsdlexception(at/html):faultCode=INVALID_WSDL: Expecte ...

  2. 继承static的注意点

    继承static的注意点 singleton模式会使用 <?php class Auth { protected static $_instance = null; /** * 单用例入口 * ...

  3. NodeJS —— 自定义流的实现

    概述 常见的自定义流有四种,Readable(可读流).Writable(可写流).Duplex(双工流)和 Transform(转换流),常见的自定义流应用有 HTTP 请求.响应,crypto 加 ...

  4. 关于使用 autoFac 的注入方法

    1.使用 NUGET 安装 Autofac 2.需要引用Autofac ASP.NET MVC 5 Integration  这个扩展包. 但有时候在NuGet中找不到 该包 需要使用“程序要控制器控 ...

  5. Verification Mind Games---how to think like a verifier像验证工程师一样思考

    1. 有效的验证需要验证工程师使用不同于设计者的思维方式思考问题.具体来说,验证更加关心在严格遵循协议的基础上发现设计里面的bug,搜索corner cases,对设计的不一致要保持零容忍的态度. m ...

  6. Slow HTTP Denial of Service Attack 漏洞解决办法

    编辑 删除 问题名称: Slow HTTP Denial of Service Attack 问题URL http://10.238.*.*:58*** 风险等级: 高 问题类型: 服务器配置类 漏洞 ...

  7. (转)全文检索技术学习(二)——配置Lucene的开发环境

    http://blog.csdn.net/yerenyuan_pku/article/details/72589380 Lucene下载 Lucene是开发全文检索功能的工具包,可从官方网站http: ...

  8. Codeforces_758_D_(区间dp)

    D. Ability To Convert time limit per test 1 second memory limit per test 256 megabytes input standar ...

  9. SpringBoot基于websocket的网页聊天

    一.入门简介正常聊天程序需要使用消息组件ActiveMQ或者Kafka等,这里是一个Websocket入门程序. 有人有疑问这个技术有什么作用,为什么要有它?其实我们虽然有http协议,但是它有一个缺 ...

  10. day02python

    ''' 列表 定义:在[]内,可以存放多个任意类型的值,并以逗号隔开. 一般用于存放学生的爱好,课堂的周期等等... ''' students=['钱垚','李小龙','张全蛋','赵铁柱'] pri ...