Mitaka版OpenStack中调用ceilometerclient创建alarm的问题
来源:互联网 发布:中国银联 工作知乎 编辑:程序博客网 时间:2024/06/15 11:45
近期发现在dashboard中调用ceilometerclient的创建alarm的接口时,偶尔的会报以下错误
Gone: Gone (HTTP 410) (Request-ID: req-6d7898ba-92b2-48b8-98c5-0059fe759e54)
目前出现了两次这个问题,均在搭建完干净的openstack后进行代码移植并测试功能的过程中发现的
但有的时候新搭建的openstack并移植时不会出现这种问题
在找原因的过程中发现,是与ceilometer的接口有关,我测试了一下两种方法来创建alarm:
- 使用各个组件的client调用接口
- 使用bash命令
已调用ceilometerclient创建alarm为例
- 使用client调用时,走的端口号是8777
curl -g -i -X 'POST' 'http://172.18.31.16:8777/v2/alarms'
- 使用bash命令时,走的端口号是8042
curl -g -i -X 'POST' 'http://172.18.31.16:8042/v2/alarms'
其整个调用alarm create的流程如下:
1. /usr/lib/python2.7/site-packages/ceilometerclient/v2/alarms.py return self._create(self._path(), new)2. /usr/lib/python2.7/site-packages/ceilometerclient/common/base.py body = self.api.post(url, json=body).json()3. /usr/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py return self.client_request("POST", url, **kwargs)4. /usr/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py line 345, in client_request5. /usr/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py line 261, in client_request# 在client.py的261行,有这么一段代码return self.request(method, self.concat_url(endpoint, url), **kwargs)# 其中:endpoint = "http://172.18.31.16:8777"url = "/v2/alarms"# 在261行前加一个判断就好了if url[4:10] == 'alarms': endpoint = endpoint.replace('8777', '8042')
以上是之前发现的问题,进一步的分析源码之后明白了事情发生
以上是openstack中的两个端口,发现8777端口是ceilometer的服务,8042是aodh的端口
那么问题来了,为什么在用命令的时候走的是aodh的服务呢
ceilometer和aodh本是一家,aodh是ceilometer把关于alarm相关的操作都独立出来的一个服务
仔细查看ceilometerclient的源码,会发现有这么一段注释,ceilometerclient会对发过来关于alarm的请求进行转发
但是为何现在转发失败就不清楚了,手动改端口号为8042相当于手动进行了转发。
# Users may just provided ceilometer endpoint and token, and no# auth_url, in this case, we need 'aodh_endpoint' also# provided, otherwise we cannot get aodh endpoint from# keystone, and assume aodh is unavailable.
0 0
- Mitaka版OpenStack中调用ceilometerclient创建alarm的问题
- openstack mitaka 遇到的一些问题
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++七、Openstack创建网络
- Openstack Mitaka
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++二、Openstack环境准备篇中
- OpenStack Mitaka 中Ceph支持Discard
- Centos7手动部署Openstack Mitaka版安装配置--(八)命令创建并使用实例
- Mitaka版Openstack虚拟机启动流程
- openstack mitaka 配置完毕dashboard界面,验证时遇到的问题!
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十、Openstack对象存储服务(swift)中
- OpenStack mitaka DevStack 部署
- OpenStack Mitaka Dashboard
- 初探OpenStack Mitaka
- OpenStack Mitaka新版特性
- 自定义OpenStack Horizon(Mitaka)
- OpenStack Mitaka Ceilometer-Aodh
- OpenStack mitaka,lbaasV2安装
- 【Alarm】Android中alarm的使用
- 挤牛奶
- ServletContext——被称为context域对象
- scala(2)-使用Scala解释器(interpreter)
- ProcessShellCommand(cmdInfo)函数功能
- ProcessShellCommand(cmdInfo)函数功能
- Mitaka版OpenStack中调用ceilometerclient创建alarm的问题
- PAT乙级1012 数字分类
- C++简单加解密
- 正则表达式基础学习
- Java抽象类与接口的区别
- golang reflect简单使用
- HTTP中Get与Post的区别
- java集合架构____Arraylist
- Java 创建对象的几种方式