python_swift_project_middleware
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的更多相关文章
随机推荐
- EditText(3)输入时自动完成功能
在android输入自动完成功能由EditText的子类 AutoCompleteTextView 实现.如下: 1,在xml中使用 <AutoCompleteTextView android: ...
- python调用chrome ie等浏览器
chrome: 首先,要安装下谷歌浏览器,查看谷歌浏览器的版本,对应版本下载相应的chromedriver插件,http://blog.csdn.net/huilan_same/article/det ...
- 对数组名取地址&a和 数组首地址a
#include <iostream> using namespace std; ] = {,,,,}; int main() { cout<<a<<" ...
- 网站开发综合技术 一 JavaScript简介 二JavaScript语法
第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...
- Xml学习笔记(2)
不同的xml文档构可能要用到不同的方法进行解析这里用到的是例如<student name="张三" id="1" sex="男"/&g ...
- NHibernate3.2学习笔记-几种查询方式
一.开发环境 数据库:SQLServer2008 编译器:VS2010 .Net版本:.Net Framework 4.0 二.开发过程 1.项目结构 承接上一篇 2.执行sql语句 (1)基本语法 ...
- django.db.utils.OperationalError: (1050, "Table '表名' already exists)解决方法
django.db.utils.OperationalError: (1050, "Table '表名' already exists)解决方法 找到解决方案,执行: python mana ...
- MySQL性能优化必备25条
1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...
- LockDemo 锁对象
class Resource { private boolean flag = false; private String name; private int count; //资源锁 Lock lo ...
- 三维重建:GitHub百度Apollo 2.0
GitHub:https://github.com/ApolloAuto/apollo 1. 关于Apollo的数据:Apollo的数据会如何开放? 自动驾驶数据将包括具有高分辨率图像和像素级别标注的 ...