Error processing default value xxx for Opt type of HostAddress

  • 前言
  • 问题原因和如何解决
  • 代码分析
  • 正则记录
  • 总结

前言

同事小伙伴在使用packstack安装openstack时报错,报错信息为oslo_config.cfg.DefaultValueError: Error processing default value control_compute0 for Opt type of HostAddress.
看日志发现是执行下列命令同步neutron数据库时报错:

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

问题原因和如何解决

此控制节点的主机名为’control_compute0’,openstack节点的主机名不能有下划线。
检查时:会对hostname进行匹配,要求以 “.” 分隔后不以"-"开头和结尾,[A-Z][0-9]和‘-’,长度为1到63位,字母不区分大小。
解决:更改主机名重新安装。

代码分析

oslo_config.types
# 检查主机名的部分
# 通过使用re进行匹配来检验可用性
class Hostname(ConfigType):def __init__(self, type_name='hostname value'):super(Hostname, self).__init__(type_name=type_name)def __call__(self, value):# 字符长度大于0小于254if len(value) == 0:raise ValueError("Cannot have an empty hostname")if len(value) > 253:raise ValueError("hostname is greater than 253 characters: %s"% value)# 末尾有.则舍掉进行匹配if value.endswith("."):value = value[:-1]# 匹配的内容为不以"-"开头和结尾,[A-Z][0-9]和‘-’,长度为1到63位,字母不区分大小;allowed = re.compile("(?!-)[A-Z0-9-]{1,63}(?<!-)$", re.IGNORECASE)if not re.search('[a-zA-Z-]', value.split(".")[-1]):raise ValueError('%s contains no non-numeric characters in the ''top-level domain part of the host name and is ''invalid' % value)# 对HostName用'.'分隔后进行匹配,如果有不符合的则匹配失败;if any((not allowed.match(x)) for x in value.split(".")):raise ValueError("%s is an invalid hostname" % value)return value

正则记录

(?!pattern):正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?<!pattern):反向否定预查,与正向否定预查类拟,只是方向相反。

总结

在搭建OpenStack环境时,不能随意设置主机名,不能有"_";
后续:需要多了解正则表达式的内容

OpenStack安装部署报错记录,Error processing default value xxx for Opt type of HostAddress相关推荐

  1. 安装yaml报错:ERROR: Cannot uninstall 'PyYAML'.

    安装yaml报错:ERROR: Cannot uninstall 'PyYAML'. 文章目录: 一.错误原因分析 二.最终错误解决方式 一.错误原因分析 1.开始安装 我是一开始安装yaml,使用命 ...

  2. Windows安装pyav报错:ERROR: Failed building wheel for av.Failed to build av. ERROR: Could not build wheel

    Windows安装pyav报错:ERROR: Failed building wheel for av.Failed to build av. ERROR: Could not build wheel ...

  3. ubuntu安装celery报错 encountered error while generating package metadata

    ubuntu安装celery报错 encountered error while generating package metadata Preparing metadata (setup.py) . ...

  4. C语言报错:error: static declaration of xxx follows non-static declaration

    C语言报错:error: static declaration of xxx follows non-static declaration 报错原因 调用了静态函数,但没有声明 解决方案 在使用函数之 ...

  5. ROS安装与报错记录

    ubuntu18.04 安装ros-melodic的踩最全的坑的记录 目录 ubuntu18.04 安装ros-melodic的踩最全的坑的记录 ubuntu 18.04 ros-melodic 安装 ...

  6. 【ujson】pip安装ujson报错: error:Microsoft Visual C++ 14.0 is required

    在win10上pip安装ujson报错 在使用pip安装依赖包ujson时,遇到了问题,如下:  building 'ujson' extension     error: Microsoft Vis ...

  7. Deepin下安装scrapy报错fatal error: Python.h: 没有那个文件或目录

    Deepin下安装scrapy报错(亲测有效!) 问题描述 在deepin操作系统上,使用python3.6,通过sudo pip3 install scrapy安装时候,出现以下错误: src/tw ...

  8. 安装redis 报错-记录安装软件的坑

    redis 安装 make 报错 MAKE hiredis cd hiredis && make static make[3]: Entering directory `/home/u ...

  9. Mac安装Node-sass报错 warning: loop variable ‘numerator‘ creates a copy from type ‘const std::string

    Mac安装Node-sass报错 运行前端项目,npm i 时报错 warning: loop variable 'numerator' creates a copy from type 'const ...

最新文章

  1. MVC通过ViewBag动态生成Html输出到View
  2. 如何让整个表格高度固定_财务预算太费精力?多亏了这73张财务预算表格模板,让你算量快又准!直接用...
  3. tty,串口,控制台与驱动程序
  4. Java script生成apk_lua脚本实现自动生成APK包
  5. html5饼图的制作方法,html5制作饼图
  6. 税收征管信息系统_聚焦湖北税收征管信息系统正式切换上线啦! 首日办理业务逾26万件...
  7. JavaScript(1)之——this指针
  8. 解决在ubuntu 12.10安装vmware-tools实现文件共享问题
  9. linux下载并安装JDK流程
  10. 计算机网络 Kurose 第二章 应用层 2.5 P2P文件分发 2.6 视频流和内容分发网
  11. 借助excel工具进行多元线性回归模型的建立及案例分析
  12. doc 问卷调查模板表_问卷调查表.doc
  13. 数据结构、算法、程序的关系
  14. nadcházející basketbalové boty velkoobchodní další
  15. Java读取文件夹下的文件并进行处理
  16. 收集的JS代码,学习js的入门经典
  17. 墨瞳漫画 升级vue2 踩坑
  18. 如何让USB-C手机,电脑投屏到VR眼镜方案?还能同时实现充电?乐得瑞LDR6282 转接器方案
  19. python运算符计算集合并集_Python集合、集合的运算、集合方法详细讲解
  20. 城市快速路拥堵治理及一体化交通组织优化经验分享

热门文章

  1. 用来在计算机各功能部件之间,广义相对论确认光在太阳附近会弯曲,引力透镜,水星进动等实验支持广义相对论。()...
  2. One Pixel Attack(对抗攻击) —— 使用差分进化算法寻找最优解
  3. Cisco 路由器 基于时间控制策略案例
  4. Android开发蓝牙篇之蓝牙设备开启、搜索周边蓝牙设备
  5. Qt 开源项目收集大全
  6. MATLAB terminal远程启动桌面GUI界面
  7. docer-compose
  8. Gradle使用Junit5进行test
  9. 风流霸主姜小白-第1章 姜太公劳苦功高始建齐 周幽王荒淫无度葬西周
  10. AGPS定位基本原理浅析