hdh_1983 发表于 2012-10-02 12:39

有没有研究过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);
}

rising-star 发表于 2012-10-11 13:19

【北京】上市大公司高薪诚招IT销售经理

高薪诚招IT销售经理
1、软件销售
2、希望有渠道
3、或者短期有项目进来的

地点:北京
公司:某上市大公司

有兴趣的朋友同学们,发个邮件回复我:278092804@qq.com
精英汇Q群 244203161 (500人)


rising-star 发表于 2012-10-11 13:19

项目:电信的项目、银行项目==
周期:长期
地点:北京、深圳、广州
工资:发简历给我时,请提一下&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;

现在诚招:
1、PHP高级开发工程师(团队经理1人)
&nbsp; &nbsp;工作内容:
&nbsp; &nbsp;——开发门户的PHP界面部分框架,
&nbsp; &nbsp;——负责带领小团队开发人员进行协调和开发
&nbsp; &nbsp;——实现核心业务团队设计的业务逻辑。
&nbsp; &nbsp;招聘要求:
&nbsp; &nbsp;——负责维护、搭建开发框架
&nbsp; &nbsp;——需要熟悉Linux系统、Web网站的各个方面如负载均衡原理、HTTP协议
&nbsp; &nbsp;——Restful API、Web Service、消息队列AMQP、Memcache等
&nbsp; &nbsp;——能通过Extension扩展PHP,熟悉Yii Framewrok、ThinkPHP等常用框架

2、PHP开发工程师(4人)
&nbsp; &nbsp;工作内容:根据PHP开发框架实现界面展示等业务逻辑
&nbsp; &nbsp;招聘要求:
&nbsp; &nbsp;——熟悉PHP和web开发,熟悉HTML、CSS、jQuery
&nbsp; &nbsp; ——熟悉REST API,熟悉Web Service

3、JAVA高级开发工程师&nbsp;&nbsp;(3人=团队经理)
&nbsp; &nbsp;工作内容及招聘需求:
&nbsp; &nbsp;——开发业务系统的部分框架
&nbsp; &nbsp;——负责带领小团队开发人员进行协调和开发,实现核心业务设计团队设计的逻辑&nbsp; &nbsp;
&nbsp; &nbsp;——负责维护、搭建JAVA开发框架
&nbsp; &nbsp;——需要熟悉SSH企业级开发的内核源码级结构,
&nbsp; &nbsp;——熟悉企业级应用集成模式和常见设计模式,
&nbsp; &nbsp;——熟悉系统开发的各个方面如数据库、缓存、数据结构、算法、网络协议、WebService、消息队列、多线程、Linux部署等。
&nbsp; &nbsp;——熟悉Spring、iBatis、Oracle、MySQL等常见开发

4、JAVA业务逻辑开发 (9人=高级开发工程师)
&nbsp; &nbsp;工作内容及招聘需求:
&nbsp; &nbsp;——针对业务逻辑框架进行逻辑开发,保证代码风格一致、稳定正确
&nbsp; &nbsp;——熟悉SSH编程框架
&nbsp; &nbsp;——熟练掌握JAVA编程的基本原理,
&nbsp; &nbsp;——熟悉设计模式,掌握单元测试
&nbsp; &nbsp;——熟悉消息队列、REST等API接口。

另外:此项目还招
&nbsp; &nbsp;&nbsp; &nbsp;——UI前端交互设计的高级人才(3人)
将美工设计完成的页面进行切分,开发前端页面,
制作网页模板,完成业务模块的用户交互部分。
要求:熟悉HTML5、CSS和jQuery等前端开发技术,
熟悉RESTful API调用,
熟悉Photoshop等常见网页设计工具的使用。
&nbsp; &nbsp;&nbsp; &nbsp;
——Web原型设计的高级人才 (1人)
实现用户自服务门户、管理员门户中的交互逻辑高仿界面原型
要求:熟悉常用UI和UED设计方法和思路,
熟练掌握需求分析、原型设计等技能,
熟悉管理系统原型界面开发,
熟悉Web界面设计原理,
熟悉Axure RP、Photoshop等原型工具的使用

有兴趣的朋友同学们,发个邮件回复我:hr@rising-star.us 或 278092804@qq.com
精英汇:QQ群 244203161 (500人)
页: [1]
查看完整版本: 有没有研究过ovirt