Python 连接到openstack失败

Python 连接到openstack失败,python,openstack,openstack-shade,Python,Openstack,Openstack Shade,我已经编写了一些python代码来与Openstack实例交互;使用图书馆 电话 myinstance = shade.openstack_cloud(cloud='mycloud', **auth_data) 在我的本地Ubuntu安装上运行良好;但在我们的“后端”服务器(运行RHEL 7.2)上失败 文件“mystuff/core.py”,第248行,在创建连接中 myinstance=shade.openstack_cloud(cloud='mycloud',**auth_data) o

我已经编写了一些python代码来与Openstack实例交互;使用图书馆

电话

myinstance = shade.openstack_cloud(cloud='mycloud', **auth_data)
在我的本地Ubuntu安装上运行良好;但在我们的“后端”服务器(运行RHEL 7.2)上失败

文件“mystuff/core.py”,第248行,在创建连接中 myinstance=shade.openstack_cloud(cloud='mycloud',**auth_data)

openstack_cloud中的文件“/usr/local/lib/python3.5/site packages/shade-1.20.0-py3.5.egg/shade/init.py”,第106行 返回OpenStackCloud(cloud\u config=cloud\u config,strict=strict)

文件“/usr/local/lib/python3.5/site packages/shade-1.20.0-py3.5.egg/shade/openstackcloud.py”,第312行,在init self.\u local\u ipv6=\u utils.localhost\u支持\u ipv6()

文件“/usr/local/lib/python3.5/site packages/shade-1.20.0-py3.5.egg/shade/_utils.py”,第254行,在localhost_supports_ipv6中 返回netifaces.gateways()中的netifaces.AF_INET6['default']

AttributeError:模块“netifaces”没有属性“AF_INET6”

该系统的管理员告诉我那里没有启用IPv6;也许这就是失败的原因。我做了一些研究,但没有找到任何可以防止失败的方法

欢迎有任何想法

更新:我编辑了myclouds.yml;看起来是这样的:

# openstack/shade config file 
# required to connect provisioning using the shade module
client:
    force_ipv4: true
clouds:
    mycloud:
        auth:
        user_domain_name: xxx
        auth_url: 'someurl'
    region_name: RegionOne

我还尝试了导出OS\u FORCE\u IPV4=True,但错误消息仍然存在。

如果您查看OpenStack,他们提到了与IPV6相关的问题

IPv6是未来,如果您的云 支持它,如果您的本地网络支持它。这两个都是 易于检测和所有友好的软件应该做正确的事情。 然而,有时你可能生活在一个你有 IPv6协议栈,但一些邪恶的东西导致它无法实际运行。 在这种情况下,有一个配置选项可以设置为unbreak your force_ipv4或OS_force_ipv4布尔环境变量

因此,使用这些
boolean
config可以强制执行适当的网络协议。将以下行添加到
clouds.yaml
文件

 client:
   force_ipv4: true
将强制使用IPV4,希望它能解决您的问题

按OP编辑:不幸的是,上面没有帮助;通过修改
shade-1.20.0-py3.5.egg/shade/_utils.py
修复了它:我更改了返回语句

return netifaces.AF_INET6 in netifaces.gateways()['default']` 
简单地说

return False

这些东西都在起作用。当然,这只是一个解决办法;但也提交了一份错误报告。

我无法复制您的问题,因此添加了一个可能的解决方案。谢谢@GhostCat