http://blog.csdn.net/snail_ren/article/details/70318783

环境准备

  • ZStack已安装成功并在本地或远程某台机器上运行
  • ZStack项目的三个子项目ZStack-dashboard、ZStack、ZStack-utility代码已经从github上下载至本地(最新的还有一个zstack-vyos,由于我当时做的时候还没有这个模块,因此暂时不讨论)
  • eclipse IDE 已经在本地安装成功

开发

大家在拿到zstack后,可能会根据自己的业务需求进行一些个性化的修改,但是修改后如何使得修改的代码生效。下面介绍如何在修改代码后重新安装。


修改代码后重新安装

在修改代码后,当然我们可以像上一部分提到的,先整个编译成为all-in-on的一个包,再进行安装。但是这个过程很慢,完全没有必要全部重新安装,我总不能就修改一下dashboard的一个控件就全部编译一边吧。所以我们希望的是修改哪个部分,只需要更新那个部分就行了。

1.zstack-dashboard
当修改zstack-dashboarda后,我们只需要重新编译安装dashboard就行。zsack本身也提供了安装dashboard的命令,比较方便安装。

$ cd zstack-dashboard/ *进入代码路径下* $ python setup.py sdist *编译* $ cp zstack-dashboard/dist/zstack_dashboard-*.tar.gz /usr/local/zstack/apache-tomcat-7.0.35/webapps/zstack/WEB-INF/classes/tools/ *拷贝到tomcat里* $ /etc/init.d/zstack-dashboard stop *关闭dashboard* $ zstack-ctl install_ui *安装dashboard* $ /etc/init.d/zstack-dashboard start启动dashboard

2.zstack-utility
由于我对于这一部分的扩展,主要是对angent的扩展,因此如果你需要开发一个新的agent,如kvmagent,Xenagent等等,可以参考一下。假设现在需要开发自己的kvmagent。更新步骤如下:

请将新agent的xml文件添加至zstack.xml(位于[ZStack]/conf/springconf/zstack.xml)

Class1.假如是修改原有agent

假如修改了原有已有的agent,如kvm agent,只需要把修改后的代码压缩,命名和原来相同的名字,然后替换调tomcat里的包即可。如原来的名字是kvmagent-1.6.tar.gz。=

$cp kvmagent* /usr/local/zstack/apache-tomcat-7.0.35/webapps/zstack/WEB-INF/classes/ansible/kvm/

Class2.添加新agent

如需添加新的agent,如Aliyun agent。

Step1:
进入该agent目录进行编译,在agent目录下的dist下面会生成该agent压缩包。
Step2:
安装

$ . /var/lib/zstack/virtualenv/aliyun/bin/activate $ cd [ZStack-utility]/aliyunagent/dist $ pip install --upgrade aliyunagent-1.6.tar.gz

运行
$ . /var/lib/zstack/virtualenv/aliyun/bin/activate $ cd /var/lib/zstack/virtualenv/aliyun/lib/python2.7/site-packages/aliyunagent $ python -c "from aliyunagent import kdaemon; kdaemon.main()" start $ cat /var/log/zstack/zstack-aliyunagent.log

3.zstack
java部分的修改,暂时需要将全部重新编译,生成安装包重新安装。(可能也不用,maybe可以直接编译生成war包,放入tomcat里运行)。

Debug 调试


准备

1.关闭zstack
在运行ZStack的物理机上关闭ZStack

$ zstack-ctl stop

2.使用JPDA
这里因为我的调试方式是remote debug,因此需要使用tomcat的jpda功能。

$ cd /usr/local/zstack/apache-tomcat -7*/bin $ ./catalina.sh jpda run

当最终出现start ** in xxms时,启动成功

3.运行Web UI

$ zstack-ctl start_ui

调试

Step1:
导入代码,将代码中的zstack以maven文件的形式导入eclipse中
Step2:
在代码中需要的地方打上断点
Step3:
使用eclipse remote debug调试

  • eclipse- > debug- > debug configuration- > Remote java application
  • 选中有断点的子项目,输入IP,端口默认8000,确定

    Step4:

    操作Web UI,触发断点,在eclipse中调试

maven使用

http://blog.csdn.net/xuexin25java/article/details/7970603

http://blog.csdn.net/tounaobun/article/details/8955085[http://blog.csdn.net/tounaobun/article/details/8955085](http://blog.csdn.net/tounaobun/article/details/8955085)

results matching ""

    No results matching ""