有没有研究过ovirt
ovirt是redhat开发的虚拟管理平台,类似于vmware的vcenter,它是一个基于Jboss portal 的, 我对这么方面完全不懂啊,但是呢,又想了解一下,它怎么跟host机的 代理进程实现交互来管理vm(虚拟机)的,所以,硬着头皮在看,有这么方面经验的,请指导一下啊。比如说,这下面这段代码,有几个地方,搞不明白?
我知道,AddNetworkVDSCommand 继承了 VdsBrokerCommand, 当然了,这是一种泛型继承,泛型类型继承了 NetworkVdsmVDSCommandParameters
我搞不明白的是,整个代码里,没有人用这个类,可能我还没搞明白,JBOSS有什么其他的方法来调用他们,正常的JAVA里,我们都是new一个这个类的实例,然后,我们就可以调用它的方法了,请了解这么方面的,帮忙解答一下,谢谢。
@TransactiveAttribute
public class AddNetworkVDSCommand<P extends NetworkVdsmVDSCommandParameters> extends VdsBrokerCommand<P> {
public AddNetworkVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void ExecuteVdsBrokerCommand() {
String networkName = (getParameters().getNetworkName() == null) ? "" : getParameters()
.getNetworkName();
String vlanId = (getParameters().getVlanId() != null) ? getParameters().getVlanId().toString()
: "";
String bond = (getParameters().getBondName() == null) ? "" : getParameters().getBondName();
String[] nics = (getParameters().getNics() == null) ? new String[] {} : getParameters().getNics();
Map<String, String> options = new HashMap<String, String>();
switch (getParameters().getBootProtocol()) {
case Dhcp:
options.put(VdsProperties.bootproto, VdsProperties.dhcp);
break;
case StaticIp:
if (!StringHelper.isNullOrEmpty(getParameters().getInetAddr())) {
options.put(VdsProperties.ipaddr, getParameters().getInetAddr());
}
if (!StringHelper.isNullOrEmpty(getParameters().getNetworkMask())) {
options.put(VdsProperties.netmask, getParameters().getNetworkMask());
}
if (!StringHelper.isNullOrEmpty(getParameters().getGateway())) {
options.put(VdsProperties.gateway, getParameters().getGateway());
}
break;
}
options.put(VdsProperties.stp, (getParameters().getStp()) ? "yes" : "no");
if (!StringHelper.isNullOrEmpty(getParameters().getBondingOptions())) {
options.put(VdsProperties.bonding_opts, getParameters().getBondingOptions());
}
options.put(VdsProperties.stp, (getParameters().getStp()) ? "yes" : "no");
// options = "true";
options.put("bridged", Boolean.toString(getParameters().isVmNetwork()));
Network network = getParameters().getNetwork();
if (network != null && network.getMtu() != 0) {
options.put("mtu", String.valueOf(network.getMtu()));
}
status = getBroker().addNetwork(networkName, vlanId, bond, nics, options);
ProceedProxyReturnValue();
}
@Override
public void Rollback() {
try {
// We check for "Done" status because we want to be sure that we made the net change, or in case of empty
// response (which means the call to VDSM failed on timeout).
// 1. If we failed VDSM revert the change so we don't need to do anything.
// 2. If we are in transaction first command was AddNetworkCommand (end successfully), second command fails,
// we want to revert the network change (that is why we check for Done).
// 3. If the call to VDSM timeout out we assume it had succeeded and try to remove the network.
// 3.1. If the timeout was a failure to call the VDSM in the first place, then probably the call to delete
// the network will timeout also.
if (getReturnValueFromBroker() == null ||
VdcBllErrors.Done == GetReturnValueFromStatus(getReturnStatus())) {
String network = (getParameters().getNetworkName() == null) ? "" : getParameters()
.getNetworkName();
String vlanId = (getParameters().getVlanId() != null) ? getParameters().getVlanId()
.toString() : "";
String bond = (getParameters().getBondName() == null) ? "" : getParameters()
.getBondName();
String[] nics = (getParameters().getNics() == null) ? new String[] {} : getParameters()
.getNics();
status = getBroker().delNetwork(network, vlanId, bond, nics);
}
} catch (RuntimeException ex) {
log.error("Exception in Rollback ExecuteVdsBrokerCommand", ex);
}
}
private static Log log = LogFactory.getLog(AddNetworkVDSCommand.class);
}
【北京】上市大公司高薪诚招IT销售经理
高薪诚招IT销售经理
1、软件销售
2、希望有渠道
3、或者短期有项目进来的
地点:北京
公司:某上市大公司
有兴趣的朋友同学们,发个邮件回复我:278092804@qq.com
精英汇Q群 244203161 (500人)
项目:电信的项目、银行项目==
周期:长期
地点:北京、深圳、广州
工资:发简历给我时,请提一下
现在诚招:
1、PHP高级开发工程师(团队经理1人)
工作内容:
——开发门户的PHP界面部分框架,
——负责带领小团队开发人员进行协调和开发
——实现核心业务团队设计的业务逻辑。
招聘要求:
——负责维护、搭建开发框架
——需要熟悉Linux系统、Web网站的各个方面如负载均衡原理、HTTP协议
——Restful API、Web Service、消息队列AMQP、Memcache等
——能通过Extension扩展PHP,熟悉Yii Framewrok、ThinkPHP等常用框架
2、PHP开发工程师(4人)
工作内容:根据PHP开发框架实现界面展示等业务逻辑
招聘要求:
——熟悉PHP和web开发,熟悉HTML、CSS、jQuery
——熟悉REST API,熟悉Web Service
3、JAVA高级开发工程师 (3人=团队经理)
工作内容及招聘需求:
——开发业务系统的部分框架
——负责带领小团队开发人员进行协调和开发,实现核心业务设计团队设计的逻辑
——负责维护、搭建JAVA开发框架
——需要熟悉SSH企业级开发的内核源码级结构,
——熟悉企业级应用集成模式和常见设计模式,
——熟悉系统开发的各个方面如数据库、缓存、数据结构、算法、网络协议、WebService、消息队列、多线程、Linux部署等。
——熟悉Spring、iBatis、Oracle、MySQL等常见开发
4、JAVA业务逻辑开发 (9人=高级开发工程师)
工作内容及招聘需求:
——针对业务逻辑框架进行逻辑开发,保证代码风格一致、稳定正确
——熟悉SSH编程框架
——熟练掌握JAVA编程的基本原理,
——熟悉设计模式,掌握单元测试
——熟悉消息队列、REST等API接口。
另外:此项目还招
——UI前端交互设计的高级人才(3人)
将美工设计完成的页面进行切分,开发前端页面,
制作网页模板,完成业务模块的用户交互部分。
要求:熟悉HTML5、CSS和jQuery等前端开发技术,
熟悉RESTful API调用,
熟悉Photoshop等常见网页设计工具的使用。
——Web原型设计的高级人才 (1人)
实现用户自服务门户、管理员门户中的交互逻辑高仿界面原型
要求:熟悉常用UI和UED设计方法和思路,
熟练掌握需求分析、原型设计等技能,
熟悉管理系统原型界面开发,
熟悉Web界面设计原理,
熟悉Axure RP、Photoshop等原型工具的使用
有兴趣的朋友同学们,发个邮件回复我:hr@rising-star.us 或 278092804@qq.com
精英汇:QQ群 244203161 (500人)
页:
[1]