资讯专栏INFORMATION COLUMN

使用Devstack进行开发

lewif / 759人阅读

摘要:翻译自官方文档检查服务默认情况下,的大多数服务都以的名字作为运行。例如将会让任何操作如使用自定义的文件夹和分支。当测试这些文件夹的复杂提交时,进行通常是一种较好的测试方法。默认情况下我们只使用上的这些库的发行版本进行测试。

翻译自 devstack 官方文档 Developing with Devstack

检查服务

默认情况下,DevStack 的大多数服务都以 devstack@$servicename.service 的名字作为 system unit 运行。关于 system unit 可以参考Understanding system units and unit files。你可以通过以下命令行查看服务情况。

sudo systemctl status "devstack@*"
为服务添加补丁

如果你想为正在运行的服务做一些修改,最简单的办法是直接改变在 /opt/stack/$service(服务名) 里的代码,然后重启相关的守护进程。

sudo systemctl restart devstack@n-cpu.service

如果你的改变影响超过一个守护进程,你也可以使用通配符。

sudo systemctl restart "devstack@n-*"
测试补丁集

当你想测试某个很大的补丁集或影响一个项目内多个服务的补丁,使用自定义的 git 文件夹会减少开发的困惑也能让你的所有改变都能保存在专用的 git 分支。

大多数项目可以在 local.conf 中添加 **REPO**_BRANCH 来使用自定义的 git 分支,而不是使用默认的上游分支。

例如:

[[local|localrc]]
NOVA_REPO=/home/sdague/nova
NOVA_BRANCH=fold_disk_config

将会让任何 devstack 操作如 stack.sh 使用自定义的 git 文件夹和分支。

当测试这些 git 文件夹的复杂提交时,进行 ./unstacksh && ./stack.sh 通常是一种较好的测试方法。由于每次都需要重建 openstack 服务,这种操作相比于直接打补丁每次测试间隔更长。

你也可以使用这种相同的方法,通过使用 gerrit 上 change id 来测试 gerrit 上 review 相应的补丁。

[[local|localrc]]
NOVA_BRANCH=refs/changes/10/353710/1
测试修改的库

当测试被 Openstack 服务使用的库(比如 oslo 或 任何的 python 相应服务客户段)时事情开始变得有些复杂。默认情况下我们只使用 pypi 上的这些库的发行版本进行测试。

你首先必须通过设置 LIBS_FROM_GIT 来覆盖默认设置。这能让你的 Devstack 使用某个库相应的 git 版本,而非发行版本。

在这之后你也可以指明 **_REPO**_BRANCH 来使用你的分支而非上游的主分支。

[[local|localrc]]
LIBS_FROM_GIT=oslo.policy
OSLOPOLICY_REPO=/home/sdague/oslo.policy
OSLOPOLICY_BRANCH=better_exception

对于 pip 没有安装的库,你在进行任何修改后需要:

进入库的根目录

sudo pip install -U

重启使用新库的服务

你可以使用通配符来完成,比如

sudo systemctl restart "devstack@n-*"

这将会重启所有的 nova 服务。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41941.html

相关文章

  • 使用DevStack部署OpenStack开发服务器

    摘要:前期准备配置安装好服务器后,在指定目录下,键入克隆远程到本地。进入存在的目录下,执行安装脚本。以后再运行,就不会要求输入密码了,因为第一次输入的密码已经被保存在中了,再次运行时将默认使用该密码。 1.前期准备: 0x00 Ubuntu Server 14.04 0x01 Git 0x02 DevStack 2.配置安装好服务器OS后,在指定目录下,键入git ...

    cfanr 评论0 收藏0
  • 以公司实际应用讲解OpenStack到底是什么

    摘要:就目前而言,在国外慢慢的流行开来,不少企业和个人也在对它进行二次开发。在图中可以看出,有,,的模板。以上就是一个最简单的搭建教程。 可能很多人从Ubuntu和HP的新闻当中听说过OpenStack,知道它跟云计算相关,可是OpenStack究竟是做什么的,可能不少人还只有比较模糊的感觉。OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的...

    LeoHsiun 评论0 收藏0
  • 通过demo学习OpenStack开发所需的基础知识 -- 单元测试

    摘要:本文将进入单元测试的部分,这也是基础知识中最后一个大块。本文将重点讲述和中的单元测试的生态环境。另外,在中指定要运行的单元测试用例的完整语法是。中使用模块管理单元测试用例。每个项目的单元测试代码结构可 本文将进入单元测试的部分,这也是基础知识中最后一个大块。本文将重点讲述Python和OpenStack中的单元测试的生态环境。 单元测试的重要性 github上有个人画了一些不同语言的学...

    douzifly 评论0 收藏0
  • 通过demo学习OpenStack开发所需的基础知识 -- 数据库(1)

    摘要:另外,项目在单元测试中使用的是的内存数据库,这样开发者运行单元测试的时候不需要安装和配置复杂的数据库,只要安装好就可以了。而且,数据库是保存在内存中的,会提高单元测试的速度。是实现层的基础。项目一般会使用数据库来运行单元测试。 OpenStack中的关系型数据库应用 OpenStack中的数据库应用主要是关系型数据库,主要使用的是MySQL数据库。当然也有一些NoSQL的应用,比如Ce...

    warnerwu 评论0 收藏0

发表评论

0条评论

lewif

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<