public static void fillVMMenu(IMenuManager manager, VMTreeObject selection) { VMTreeObjectVMinGroup vminGroup = (VMTreeObjectVMinGroup) selection; if (selection.getParent().getName().equals(Constants.VM_GROUP_DEFAULT_NAME)) { MenuManager addtogroupMenu = new MenuManager("Ìí¼Óµ½..."); for (VMTreeObject group : vminGroup.getParent().getParent().getChildren()) { if (!group.getName().equals(Constants.VM_GROUP_DEFAULT_NAME)) { addtogroupMenu.add(new AddtoGroupAction(vminGroup, (VMTreeObjectGroup) group)); } } manager.add(addtogroupMenu); } else { manager.add(new ResetGroupAction(vminGroup)); } manager.add(new Separator()); VMTreeObjectVM vm = vminGroup.getVmObject(); VM.Record record = vm.getRecord(); Types.VmPowerState state = record.powerState; if (state.equals(Types.VmPowerState.RUNNING)) { manager.add(new ShutDownAction(vm)); manager.add(new RebootAction(vm)); } else { manager.add(new StartAction(vm)); } }
public static void addVM(VMTreeObjectVM vm) { VMTreeObjectRoot root = vm.getRoot(); if (root.getShadowObject() != null && vm.getShadowObject() == null) { // if(vm.getRecord()==null // ||vm.getRecord().powerState==null // ||!vm.getRecord().powerState.equals(Types.VmPowerState.RUNNING)){ // for(VMTreeObject o:root.getShadowObject().getChildren()){ // if(o.getName().equals(Constants.HALTED_VM_GROUP_DEFAULT_NAME)){ // VMTreeObjectVMinGroup vmInGroup = new VMTreeObjectVMinGroup(vm); // vm.setShadowObject(vmInGroup); // o.addChild(vmInGroup); // break; // } // } // }else{ for (VMTreeObject o : root.getShadowObject().getChildren()) { if (o.getName().equals(Constants.VM_GROUP_DEFAULT_NAME)) { VMTreeObjectVMinGroup vmInGroup = new VMTreeObjectVMinGroup(vm); vm.setShadowObject(vmInGroup); o.addChild(vmInGroup); break; } } // } } if (Constants.groupView != null) { Display display = PlatformUI.getWorkbench().getDisplay(); if (!display.isDisposed()) { Runnable runnable = new Runnable() { public void run() { Constants.groupView.getViewer().refresh(); } }; display.syncExec(runnable); } } }
public static boolean addServer(VMTreeObject object) { VMTreeObjectRootinGroup rootinGroup = null; if (object instanceof VMTreeObjectHost) { VMTreeObjectHost host = (VMTreeObjectHost) object; VMTreeObjectHostinGroup hostInGroup = new VMTreeObjectHostinGroup(host); host.setShadowObject(hostInGroup); rootinGroup = hostInGroup; } else { VMTreeObjectPool pool = (VMTreeObjectPool) object; VMTreeObjectPoolinGroup poolInGroup = new VMTreeObjectPoolinGroup(pool); pool.setShadowObject(poolInGroup); rootinGroup = poolInGroup; } rootinGroup.groupMap = GroupUtil.getGroupConfig(rootinGroup); ArrayList<VMTreeObjectVM> vmList = new ArrayList<VMTreeObjectVM>(); for (VMTreeObjectVM vm : ((VMTreeObjectRoot) object).vmMap.values()) { vmList.add(vm); } VMTreeObject defaultGroup = null; // VMTreeObject haltedVmGroup = null; // VMTreeObject templateGroup = null; for (VMTreeObject o : rootinGroup.getChildren()) { if (o.getName().equals(Constants.VM_GROUP_DEFAULT_NAME)) { defaultGroup = o; } // else if(o.getName().equals(Constants.HALTED_VM_GROUP_DEFAULT_NAME)){ // haltedVmGroup = o; // } // else if(o.getName().equals(Constants.TEMPLATE_GROUP_DEFAULT_NAME)){ // templateGroup = o; // } } if (defaultGroup == null) { defaultGroup = new VMTreeObjectGroup(Constants.VM_GROUP_DEFAULT_NAME); rootinGroup.addChild(defaultGroup); } // if(haltedVmGroup == null){ // haltedVmGroup = new VMTreeObjectGroup(Constants.HALTED_VM_GROUP_DEFAULT_NAME); // rootinGroup.addChild(haltedVmGroup); // } // if(templateGroup == null){ // templateGroup = new VMTreeObjectGroup(Constants.TEMPLATE_GROUP_DEFAULT_NAME); // rootinGroup.addChild(templateGroup); // } if (rootinGroup.groupMap != null) { ArrayList<VMTreeObjectVM> vminGroupList = new ArrayList<VMTreeObjectVM>(); for (String groupName : rootinGroup.groupMap.keySet()) { VMTreeObjectGroup group = new VMTreeObjectGroup(groupName); List<String> vminGroup = rootinGroup.groupMap.get(groupName); for (VMTreeObjectVM vm : vmList) { String vmUuid = vm.getApiObject().toWireString(); if (vminGroup.contains(vmUuid)) { // if(vm.getRecord()!=null // &&vm.getRecord().powerState!=null // &&vm.getRecord().powerState.equals(Types.VmPowerState.RUNNING)){ VMTreeObjectVMinGroup vmInGroup = new VMTreeObjectVMinGroup(vm); vm.setShadowObject(vmInGroup); group.addChild(vmInGroup); vminGroupList.add(vm); // } } } rootinGroup.addChild(group); } vmList.removeAll(vminGroupList); } else { rootinGroup.groupMap = new HashMap<String, List<String>>(); GroupUtil.addGroupConfig(rootinGroup); } for (VMTreeObjectVM vm : vmList) { VMTreeObjectVMinGroup vmInGroup = new VMTreeObjectVMinGroup(vm); vm.setShadowObject(vmInGroup); // if(vm.getRecord()!=null // &&vm.getRecord().powerState!=null // &&vm.getRecord().powerState.equals(Types.VmPowerState.RUNNING)){ defaultGroup.addChild(vmInGroup); // }else{ // haltedVmGroup.addChild(vmInGroup); // } } // for(VMTreeObjectTemplate vm:((VMTreeObjectRoot)object).templateMap.values()){ // VMTreeObjectTemplateinGroup vmInGroup = new VMTreeObjectTemplateinGroup(vm); // vm.setShadowObject(vmInGroup); // templateGroup.addChild(vmInGroup); // } Constants.VMGROUPS_TREE.addChild(rootinGroup); if (Constants.groupView != null) { Display display = PlatformUI.getWorkbench().getDisplay(); if (!display.isDisposed()) { Runnable runnable = new Runnable() { public void run() { Constants.groupView.getViewer().refresh(); } }; display.syncExec(runnable); } } return true; }