Examples of UpdatableItem


Examples of lcmc.common.ui.utils.UpdatableItem

     */
    @Override
    public List<UpdatableItem> createPopup() {
        final List<UpdatableItem> items = new ArrayList<UpdatableItem>();
        /* New domain */
        final UpdatableItem newDomainMenuItem = menuFactory.createMenuItem(
                Tools.getString("VMListInfo.AddNewDomain"),
                HostBrowser.HOST_OFF_ICON_LARGE,
                new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
            .addAction(new MenuAction() {
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

                    });
            hostInfo.addMouseOverListener(startPcmkItem, startPcmkItemCallback);
        }
        items.add(startPcmkItem);
        /* change host color */
        final UpdatableItem changeHostColorItem =
                menuFactory.createMenuItem(Tools.getString("HostBrowser.Drbd.ChangeHostColor"),
                        null,
                        "",
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                final Color newColor = JColorChooser.showDialog(
                                        guiData.getMainFrame(),
                                        "Choose " + hostInfo.getHost().getName() + " color",
                                        hostInfo.getHost().getPmColors()[0]);
                                if (newColor != null) {
                                    hostInfo.getHost().setSavedHostColorInGraphs(newColor);
                                }
                            }
                        });
        items.add(changeHostColorItem);

        /* view logs */
        final UpdatableItem viewLogsItem =
                menuFactory.createMenuItem(Tools.getString("HostBrowser.Drbd.ViewLogs"),
                        HostInfo.LOGFILE_ICON,
                        "",
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (!hostInfo.getHost().isConnected()) {
                                    return Host.NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                                }
                                return null;
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                final HostLogs hostLogs = hostLogsProvider.get();
                                hostLogs.init(hostInfo.getHost());
                                hostLogs.showDialog();
                            }
                        });
        items.add(viewLogsItem);
        /* advacend options */
        final MyMenu hostAdvancedSubmenu = menuFactory.createMenu(Tools.getString("HostBrowser.AdvancedSubmenu"),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        if (!hostInfo.getHost().isConnected()) {
                            return Host.NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                        }
                        return null;
                    }
                });
        hostAdvancedSubmenu.onUpdate(new Runnable() {
            @Override
            public void run() {
                hostAdvancedSubmenu.updateMenuComponents();
                hostInfo.getBrowser().addAdvancedMenu(hostAdvancedSubmenu);
            }
        });
        items.add(hostAdvancedSubmenu);

        /* remove host from gui */
        final UpdatableItem removeHostItem =
                menuFactory.createMenuItem(Tools.getString("HostBrowser.RemoveHost"),
                        HostBrowser.HOST_REMOVE_ICON,
                        Tools.getString("HostBrowser.RemoveHost"),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

                        });
        servicesInfo.addMouseOverListener(removeMenuItem, removeItemCallback);
        items.add((UpdatableItem) removeMenuItem);

        /* cluster wizard */
        final UpdatableItem clusterWizardItem =
                menuFactory.createMenuItem(Tools.getString("ClusterBrowser.Hb.ClusterWizard"),
                        ServicesInfo.CLUSTER_ICON,
                        null,
                        new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                        new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL))
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                editClusterDialog.showDialogs(servicesInfo.getBrowser().getCluster());
                            }
                        });
        items.add(clusterWizardItem);

        /* view logs */
        final UpdatableItem viewLogsItem =
                menuFactory.createMenuItem(Tools.getString("ClusterBrowser.Hb.ViewLogs"),
                        ServicesInfo.LOGFILE_ICON,
                        null,
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

    /** Create menu items for selected hosts. */
    private void createSelectedHostsPopup(final List<HostDrbdInfo> selectedHostInfos,
                                          final Collection<UpdatableItem> items) {
        /* load drbd */
        final UpdatableItem loadItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.LoadDrbd"),
                           null,
                           Tools.getString("MultiSelectionInfo.LoadDrbd"),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
            .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        for (final HostDrbdInfo hi : selectedHostInfos) {
                            if (hi.getHost().isConnected()) {
                                if (hi.getHost().isDrbdLoaded()) {
                                    return "already loaded";
                                }
                            } else {
                                return Host.NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                            }
                        }
                        return null;
                    }})
            .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        for (final HostDrbdInfo hi : selectedHostInfos) {
                            DRBD.load(hi.getHost(), Application.RunMode.LIVE);
                        }
                        for (final HostDrbdInfo hi : selectedHostInfos) {
                            getBrowser().updateHWInfo(hi.getHost(), !Host.UPDATE_LVM);
                        }
                    }});
        items.add(loadItem);

        /* load DRBD config / adjust all */
        final MyMenuItem adjustAllItem =
            menuFactory.createMenuItem(
                   Tools.getString("MultiSelectionInfo.AdjustAllDrbd"),
                   null,
                   Tools.getString("MultiSelectionInfo.AdjustAllDrbd"),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        if (!hi.getHost().isConnected()) {
                            return Host.NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                        }
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        DRBD.adjustApply(hi.getHost(), DRBD.ALL_DRBD_RESOURCES, null, Application.RunMode.LIVE);
                    }
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        getBrowser().updateHWInfo(hi.getHost(), !Host.UPDATE_LVM);
                    }
                }});
        items.add(adjustAllItem);
        final ButtonCallback adjustAllItemCallback =
               getBrowser().new DRBDMenuItemCallback(getBrowser().getDCHost())
                   .addAction(new CallbackAction() {
                           @Override
                           public void run(final Host host) {
                for (final HostDrbdInfo hi : selectedHostInfos) {
                    DRBD.adjustApply(hi.getHost(), DRBD.ALL_DRBD_RESOURCES, null, Application.RunMode.TEST);
                }
            }});
        multiSelectionInfo.addMouseOverListener(adjustAllItem, adjustAllItemCallback);

        /* start drbd */
        final MyMenuItem upAllItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.UpAll"),
                           null,
                           Tools.getString("MultiSelectionInfo.UpAll"),
                           new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                           new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL))
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        if (!hi.getHost().isDrbdStatusOk()) {
                            return HostDrbdInfo.NO_DRBD_STATUS_TOOLTIP;
                        }
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        DRBD.up(hi.getHost(), DRBD.ALL_DRBD_RESOURCES, null, Application.RunMode.LIVE);
                    }
                }});
        items.add(upAllItem);
        final ButtonCallback upAllItemCallback =
             getBrowser().new DRBDMenuItemCallback(getBrowser().getDCHost())
                 .addAction(new CallbackAction() {
                         @Override
                         public void run(final Host host) {
                for (final HostDrbdInfo hi : selectedHostInfos) {
                    DRBD.up(hi.getHost(), DRBD.ALL_DRBD_RESOURCES, null, Application.RunMode.TEST);
                }
            }});
        multiSelectionInfo.addMouseOverListener(upAllItem, upAllItemCallback);

        /* stop drbd proxy with init script */
        final UpdatableItem stopProxyItem =
            menuFactory.createMenuItem(
                        Tools.getString("MultiSelectionInfo.HostStopProxy"),
                        null,
                        Tools.getString("MultiSelectionInfo.HostStopProxy"),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        if (hi.getHost().isDrbdProxyRunning()) {
                            return true;
                        }
                    }
                    return false;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        DRBD.stopProxy(hi.getHost(), Application.RunMode.LIVE);
                    }
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        getBrowser().updateHWInfo(hi.getHost(), !Host.UPDATE_LVM);
                    }
                }});
        items.add(stopProxyItem);

        /* start drbd proxy with init script */
        final UpdatableItem startProxyItem = menuFactory.createMenuItem(
                      Tools.getString("MultiSelectionInfo.HostStartProxy"),
                      null,
                      Tools.getString("MultiSelectionInfo.HostStartProxy"),
                      new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                      new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        if (!hi.getHost().isDrbdProxyRunning()) {
                            return true;
                        }
                    }
                    return false;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        DRBD.startProxy(hi.getHost(), Application.RunMode.LIVE);
                    }
                    for (final HostDrbdInfo hi : selectedHostInfos) {
                        getBrowser().updateHWInfo(hi.getHost(), !Host.UPDATE_LVM);
                    }
                }});
        items.add(startProxyItem);

        /* change host color */
        final UpdatableItem changeHostColorItem = menuFactory.createMenuItem(
                    Tools.getString("MultiSelectionInfo.ChangeHostColor"),
                    null,
                    "",
                    new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                    new AccessMode(AccessMode.RO, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

            }});
        multiSelectionInfo.addMouseOverListener(disconnectMenu, disconnectItemCallback);
        items.add(disconnectMenu);

        /* set primary */
        final UpdatableItem setPrimaryItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.SetPrimary"),
                           null,
                           Tools.getString("MultiSelectionInfo.SetPrimary"),
                           new AccessMode(AccessMode.OP, AccessMode.ADVANCED),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean oneSecondary = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!application.isAdvancedMode() && bdi.getDrbdVolumeInfo().isUsedByCRM()) {
                            continue;
                        }
                        final BlockDevInfo oBdi = bdi.getOtherBlockDevInfo();
                        if (bdi.getBlockDevice().isSecondary()
                            && ((!oBdi.getBlockDevice().isPrimary() && !selectedBlockDevInfos.contains(oBdi))
                                || bdi.allowTwoPrimaries())) {
                            oneSecondary = true;
                        }
                    }
                    if (!oneSecondary) {
                        return "nothing to promote";
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && !bdi.getBlockDevice().isPrimary()
                            && (application.isAdvancedMode() || !bdi.getDrbdVolumeInfo().isUsedByCRM())) {
                            final BlockDevInfo oBdi = bdi.getOtherBlockDevInfo();
                            if (oBdi != null
                                && oBdi.getBlockDevice().isPrimary()
                                && !selectedBlockDevInfos.contains(oBdi)
                                && !bdi.allowTwoPrimaries()) {
                                continue;
                            }
                            bdi.setPrimary(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(setPrimaryItem);

        /* set secondary */
        final UpdatableItem setSecondaryItem =
            menuFactory.createMenuItem(
                        Tools.getString("MultiSelectionInfo.SetSecondary"),
                        null,
                        Tools.getString("MultiSelectionInfo.SetSecondary"),
                        new AccessMode(AccessMode.OP, AccessMode.ADVANCED),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean onePrimary = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!application.isAdvancedMode() && bdi.getDrbdVolumeInfo().isUsedByCRM()) {
                            continue;
                        }
                        if (bdi.getBlockDevice().isPrimary()) {
                            onePrimary = true;
                        }
                    }
                    if (!onePrimary) {
                        return "nothing to demote";
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && bdi.getBlockDevice().isPrimary()
                            && (application.isAdvancedMode() || !bdi.getDrbdVolumeInfo().isUsedByCRM())) {
                            bdi.setSecondary(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(setSecondaryItem);

        /* force primary */
        final UpdatableItem forcePrimaryItem =
            menuFactory.createMenuItem(
                        Tools.getString("MultiSelectionInfo.ForcePrimary"),
                        null,
                        Tools.getString("MultiSelectionInfo.ForcePrimary"),
                        new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean oneSecondary = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!application.isAdvancedMode() && bdi.getDrbdVolumeInfo().isUsedByCRM()) {
                            continue;
                        }
                        final BlockDevInfo oBdi = bdi.getOtherBlockDevInfo();
                        if (bdi.getBlockDevice().isSecondary()
                            && ((!oBdi.getBlockDevice().isPrimary() && !selectedBlockDevInfos.contains(oBdi))
                                || bdi.allowTwoPrimaries())) {
                            oneSecondary = true;
                        }
                    }
                    if (!oneSecondary) {
                        return "nothing to promote";
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && !bdi.getBlockDevice().isPrimary()
                            && (application.isAdvancedMode() || !bdi.getDrbdVolumeInfo().isUsedByCRM())) {
                            final BlockDevInfo oBdi = bdi.getOtherBlockDevInfo();
                            if (oBdi != null
                                && oBdi.getBlockDevice().isPrimary()
                                && !selectedBlockDevInfos.contains(oBdi)
                                && !bdi.allowTwoPrimaries()) {
                                continue;
                            }
                            bdi.forcePrimary(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(forcePrimaryItem);

        /* invalidate */
        final UpdatableItem invalidateItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.Invalidate"),
                           null,
                           Tools.getString("MultiSelectionInfo.Invalidate"),
                           new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean canInvalidate = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!application.isAdvancedMode() && bdi.getDrbdVolumeInfo().isUsedByCRM()) {
                            continue;
                        }
                        if (bdi.getBlockDevice().isSyncing()) {
                            continue;
                        }
                        if (bdi.getDrbdVolumeInfo().isVerifying()) {
                            continue;
                        }
                        if (selectedBlockDevInfos.contains(bdi.getOtherBlockDevInfo())) {
                            continue;
                        }
                        canInvalidate = true;
                    }
                    if (canInvalidate) {
                        return null;
                    } else {
                        return "nothing to invalidate";
                    }
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && !bdi.getBlockDevice().isSyncing()
                            && !bdi.getDrbdVolumeInfo().isVerifying()
                            && !selectedBlockDevInfos.contains(bdi.getOtherBlockDevInfo())
                            && (application.isAdvancedMode() || !bdi.getDrbdVolumeInfo().isUsedByCRM())) {
                            bdi.invalidateBD(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(invalidateItem);

        /* resume */
        final UpdatableItem resumeSyncItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.ResumeSync"),
                           null,
                           Tools.getString("MultiSelectionInfo.ResumeSync"),

                           new AccessMode(AccessMode.OP, AccessMode.ADVANCED),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean resumable = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!bdi.getBlockDevice().isSyncing()) {
                            continue;
                        }
                        if (bdi.getBlockDevice().isSyncTarget() || bdi.getBlockDevice().isSyncSource()) {
                            continue;
                        }
                        resumable = true;
                    }
                    if (!resumable) {
                        return "nothing to resume";
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && bdi.getBlockDevice().isSyncing()
                            && !bdi.getBlockDevice().isSyncTarget()
                            && !bdi.getBlockDevice().isSyncSource()) {
                            bdi.resumeSync(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(resumeSyncItem);

        /* pause sync */
        final UpdatableItem pauseSyncItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.PauseSync"),
                           null,
                           Tools.getString("MultiSelectionInfo.PauseSync"),
                           new AccessMode(AccessMode.OP, AccessMode.ADVANCED),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean pausable = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!bdi.getBlockDevice().isSyncTarget() && !bdi.getBlockDevice().isSyncSource()) {
                            continue;
                        }
                        pausable = true;
                    }
                    if (!pausable) {
                        return "nothing to pause";
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && (bdi.getBlockDevice().isSyncTarget() || bdi.getBlockDevice().isSyncSource())) {
                            bdi.pauseSync(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(pauseSyncItem);

        /* resize */
        final UpdatableItem resizeItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.Resize"),
                           null,
                           Tools.getString("MultiSelectionInfo.Resize"),
                           new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean resizable = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (bdi.getBlockDevice().isSyncing()) {
                            continue;
                        }
                        if (selectedBlockDevInfos.contains(bdi.getOtherBlockDevInfo())) {
                            continue;
                        }
                        resizable = true;
                    }
                    if (resizable) {
                        return null;
                    } else {
                        return "nothing to resize";
                    }
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && !selectedBlockDevInfos.contains(bdi.getOtherBlockDevInfo())
                            && !bdi.getBlockDevice().isSyncing()) {
                            bdi.resizeDrbd(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(resizeItem);

        /* discard my data */
        final UpdatableItem discardDataItem =
            menuFactory.createMenuItem(
                         Tools.getString("MultiSelectionInfo.DiscardData"),
                         null,
                         Tools.getString("MultiSelectionInfo.DiscardData"),
                         new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                         new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    boolean discardable = false;
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        if (!application.isAdvancedMode() && bdi.getDrbdVolumeInfo().isUsedByCRM()) {
                            continue;
                        }
                        if (bdi.getBlockDevice().isSyncing()) {
                            continue;
                        }
                        if (bdi.getBlockDevice().isPrimary()) {
                            continue;
                        }
                        if (selectedBlockDevInfos.contains(bdi.getOtherBlockDevInfo())) {
                            continue;
                        }
                        discardable = true;
                    }
                    if (discardable) {
                        return null;
                    } else {
                        return "nothing to discard";
                    }
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (bdi.getBlockDevice().isDrbd()
                            && !selectedBlockDevInfos.contains(bdi.getOtherBlockDevInfo())
                            && (application.isAdvancedMode() || !bdi.getDrbdVolumeInfo().isUsedByCRM())
                            && !bdi.getBlockDevice().isSyncing()
                            && !bdi.getBlockDevice().isPrimary()) {
                            bdi.discardData(Application.RunMode.LIVE);
                        }
                    }
                }});
        items.add(discardDataItem);

        /* proxy down */
        final UpdatableItem proxyDownItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.ProxyDown"),
                           null,
                           Tools.getString("MultiSelectionInfo.ProxyDown"),
                           new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .visiblePredicate(new VisiblePredicate() {
                        @Override
                        public boolean check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        final ResourceInfo dri = bdi.getDrbdVolumeInfo().getDrbdResourceInfo();
                        final Host pHost = dri.getProxyHost(bdi.getHost(), !ResourceInfo.WIZARD);
                        if (pHost == null) {
                            return false;
                        }
                        if (pHost.isDrbdProxyUp(dri.getName())) {
                            return true;
                        }
                    }
                    return false;
                }})
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        final ResourceInfo dri = bdi.getDrbdVolumeInfo().getDrbdResourceInfo();
                        final Host pHost = dri.getProxyHost(bdi.getHost(), !ResourceInfo.WIZARD);
                        if (pHost == null) {
                            return "";
                        }
                        if (!pHost.isConnected()) {
                            return Host.PROXY_NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                        }
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    final Collection<Host> hosts = new HashSet<Host>();
                    for (final BlockDevInfo bdi : selectedBlockDevInfos) {
                        if (!bdi.getBlockDevice().isDrbd()) {
                            continue;
                        }
                        final ResourceInfo dri = bdi.getDrbdVolumeInfo().getDrbdResourceInfo();
                        final Host pHost = dri.getProxyHost(bdi.getHost(), !ResourceInfo.WIZARD);
                        if (pHost.isDrbdProxyUp(dri.getName())) {
                            DRBD.proxyDown(pHost,
                                           dri.getName(),
                                           bdi.getDrbdVolumeInfo().getName(),
                                           Application.RunMode.LIVE);
                            hosts.add(pHost);
                        }
                    }
                    for (final Host h : hosts) {
                        getBrowser().updateProxyHWInfo(h);
                    }
                }});
        items.add(proxyDownItem);

        /* proxy up */
        final UpdatableItem proxyUpItem =
            menuFactory.createMenuItem(Tools.getString("MultiSelectionInfo.ProxyUp"),
                           null,
                           Tools.getString("MultiSelectionInfo.ProxyUp"),
                           new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                           new AccessMode(AccessMode.OP, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

    private Provider<DrbdLogs> drbdLogsProvider;

    public List<UpdatableItem> getPulldownMenu(final GlobalInfo globalInfo) {
        final List<UpdatableItem> items = new ArrayList<UpdatableItem>();

        /** Add proxy host */
        final UpdatableItem addProxyHostMenu = menuFactory.createMenuItem(
                Tools.getString("GlobalInfo.AddProxyHost"),
                null,
                Tools.getString("GlobalInfo.AddProxyHost"),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        addProxyHostWizard(globalInfo);
                    }
                });
        items.add(addProxyHostMenu);

        /* cluster wizard */
        final UpdatableItem clusterWizardItem = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Hb.ClusterWizard"),
                GlobalInfo.CLUSTER_ICON,
                null,
                new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL))
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        final EditClusterDialog editClusterDialog = editClusterDialogProvider.get();
                        editClusterDialog.showDialogs(globalInfo.getBrowser().getCluster());
                    }
                });
        items.add(clusterWizardItem);

        /* Rescan LVM */
        final UpdatableItem rescanLvmItem = menuFactory.createMenuItem(
                Tools.getString("GlobalInfo.RescanLvm"),
                null, /* icon */
                null,
                new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.ADVANCED))
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        globalInfo.getBrowser().updateHWInfo(Host.UPDATE_LVM);
                    }
                });
        items.add(rescanLvmItem);

        /* view log */
        final UpdatableItem viewLogMenu = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Drbd.ViewLogs"),
                GlobalInfo.LOGFILE_ICON,
                null,
                new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                new AccessMode(AccessMode.RO, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

            }
        });
        items.add(resumeSync);
   
        /* resolve split-brain */
        final UpdatableItem splitBrainMenu = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Drbd.ResolveSplitBrain"),
                null,
                Tools.getString("ClusterBrowser.Drbd.ResolveSplitBrain.ToolTip"),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        if (volumeInfo.isSplitBrain()) {
                            return null;
                        } else {
                            return "";
                        }
                    }
                })
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        volumeInfo.resolveSplitBrain();
                    }
                });
        items.add(splitBrainMenu);
   
        /* start online verification */
        final UpdatableItem verifyMenu = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Drbd.Verify"),
                null,
                Tools.getString("ClusterBrowser.Drbd.Verify.ToolTip"),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        if (!volumeInfo.isConnected(runMode)) {
                            return "not connected";
                        }
                        if (volumeInfo.isSyncing()) {
                            return VolumeInfo.IS_SYNCING_STRING;
                        }
                        if (volumeInfo.isVerifying()) {
                            return VolumeInfo.IS_VERIFYING_STRING;
                        }
                        return null;
                    }
                })
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        volumeInfo.verify(runMode);
                    }
                });
        items.add(verifyMenu);
        /* remove resource */
        final UpdatableItem removeResMenu = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Drbd.RemoveEdge"),
                ClusterBrowser.REMOVE_ICON,
                Tools.getString("ClusterBrowser.Drbd.RemoveEdge.ToolTip"),
                new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        /* this resourceInfo remove myself and this calls
                           removeDrbdResource in this class, that removes the edge
                           in the graph. */
                        volumeInfo.removeMyself(runMode);
                    }
                })
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        final DrbdXml dxml = getBrowser().getDrbdXml();
                        if (!application.isAdvancedMode() && getResourceInfo().isUsedByCRM()) {
                            return VolumeInfo.IS_USED_BY_CRM_STRING;
                        } else if (dxml.isDrbdDisabled()) {
                            return "disabled because of config";
                        }
                        return null;
                    }
                });
        items.add(removeResMenu);
   
        /* view log */
        final UpdatableItem viewLogMenu = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Drbd.ViewLogs"),
                VolumeInfo.LOGFILE_ICON,
                null,
                new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                new AccessMode(AccessMode.RO, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

    /** Adds vnc viewer menu items. */
    private void addVncViewersToTheMenu(final Collection<UpdatableItem> items) {
        if (application.isUseTightvnc()) {
            /* tight vnc test menu */
            final UpdatableItem tightvncViewerMenu = menuFactory.createMenuItem(
                            "start TIGHT VNC viewer",
                            null,
                            null,
                            new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                            new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                    .enablePredicate(new EnablePredicate() {
                        @Override
                        public String check() {
                            final VmsXml vxml = virtualDomainInfo.getVMSXML(getRunningOnHost());
                            if (vxml == null || domainInfo == null) {
                                return "VM is not available";
                            }
                            final int remotePort = vxml.getRemotePort(domainInfo.getName());
                            if (remotePort <= 0) {
                                return "remote port is not greater than 0";
                            }
                            return null;
                        }
                    })
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    virtualDomainInfo.hidePopup();
                    final DomainInfo vvdi = domainInfo;
                    final VmsXml vxml = virtualDomainInfo.getVMSXML(getRunningOnHost());
                    if (vxml != null && vvdi != null) {
                        final int remotePort = vxml.getRemotePort(vvdi.getName());
                        final Host host = vxml.getDefinedOnHost();
                        if (host != null && remotePort > 0) {
                            application.startTightVncViewer(host, remotePort);
                        }
                    }
                }});
            items.add(tightvncViewerMenu);
        }

        if (application.isUseUltravnc()) {
            /* ultra vnc test menu */
            final UpdatableItem ultravncViewerMenu = menuFactory.createMenuItem(
                            "start ULTRA VNC viewer",
                            null,
                            null,
                            new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                            new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                    .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                    final VmsXml vxml = virtualDomainInfo.getVMSXML(getRunningOnHost());
                    if (vxml == null || domainInfo == null) {
                        return "VM is not available";
                    }
                    final int remotePort = vxml.getRemotePort(domainInfo.getName());
                    if (remotePort <= 0) {
                        return "remote port is not greater than 0";
                    }
                    return null;
                }})
                .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                    virtualDomainInfo.hidePopup();
                    final DomainInfo vvdi = domainInfo;
                    final VmsXml vxml = virtualDomainInfo.getVMSXML(getRunningOnHost());
                    if (vxml != null && vvdi != null) {
                        final int remotePort = vxml.getRemotePort(vvdi.getName());
                        final Host host = vxml.getDefinedOnHost();
                        if (host != null && remotePort > 0) {
                            application.startUltraVncViewer(host, remotePort);
                        }
                    }
                }});
            items.add(ultravncViewerMenu);
        }

        if (application.isUseRealvnc()) {
            /* real vnc test menu */
            final UpdatableItem realvncViewerMenu = menuFactory.createMenuItem(
                            "start REAL VNC test",
                            null,
                            null,
                            new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                            new AccessMode(AccessMode.RO, AccessMode.NORMAL))
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

                            }
                        });
        pcmkMultiSelectionInfo.addMouseOverListener(startPcmkItem, startPcmkItemCallback);
        items.add(startPcmkItem);
        /* change host color */
        final UpdatableItem changeHostColorItem =
                menuFactory.createMenuItem(
                        Tools.getString("PcmkMultiSelectionInfo.ChangeHostColor"),
                        null,
                        "",
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
View Full Code Here

Examples of lcmc.common.ui.utils.UpdatableItem

                });
        pcmkMultiSelectionInfo.addMouseOverListener(stopMenuItem, stopItemCallback);
        items.add((UpdatableItem) stopMenuItem);

        /* clean up resource */
        final UpdatableItem cleanupMenuItem =
                menuFactory.createMenuItem(
                        Tools.getString("PcmkMultiSelectionInfo.CleanUpFailedResource"),
                        ServiceInfo.SERVICE_RUNNING_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,

View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.