千家信息网

OpenStack中怎么扩展自定义功能

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,OpenStack中怎么扩展自定义功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Text代码[pipeline:openstac
千家信息网最后更新 2024年11月28日OpenStack中怎么扩展自定义功能

OpenStack中怎么扩展自定义功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Text代码

[pipeline:openstackapi11]    pipeline = faultwrap authtoken keystonecontext ratelimit audit extensions osapiapp11    [filter:audit]    paste.filter_factory = nova.api.openstack.audit:AuditMiddleware.factory

然后我们写一个Middleware:

Python代码

  1. import time

  2. from nova import log as logging

  3. from nova import wsgi as base_wsgi

  4. from nova.api.openstack import wsgi

  5. LOG = logging.getLogger('nova.api.audit')

  6. class AuditMiddleware(base_wsgi.Middleware):

  7. """store POST/PUT/DELETE api request for audit."""

  8. def __init__(self, application, audit_methods='POST,PUT,DELETE'):

  9. base_wsgi.Middleware.__init__(self, application)

  10. self._audit_methods = audit_methods.split(",")

  11. def process_request(self, req):

  12. self._need_audit = req.method in self._audit_methods

  13. if self._need_audit:

  14. self._request = req

  15. self._requested_at = time.time()

  16. def process_response(self, response):

  17. if self._need_audit and response.status_int >= 200 and response.status_int < 300:

  18. self._store_log(response)

  19. return response

  20. def _store_log(self, response):

  21. req = self._request

  22. LOG.info("tenant: %s, user: %s, %s: %s, at: %s",

  23. req.headers.get('X-Tenant', 'admin'),

  24. req.headers.get('X-User', 'admin'),

  25. req.method,

  26. req.path_info,

  27. self._requested_at)



重启一下nova-api进程,然后在dashboard上做一些操作,我们就能在日志文件里面看到如下的信息:

Text代码

tenant: 1, user: admin, POST: /1/os-security-group-rules, at: 1326352441.16     tenant: 1, user: admin, DELETE: /1/servers/32, at: 1326353021.58

这里默认记录所有的非GET请求,如果不想将PUT请求记录(PUT对应更新),在配置文件里面更改一下:

Text代码

[filter:audit]     audit_methods=POST,DELETE

关于OpenStack中怎么扩展自定义功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0