Package lcmc.common.domain

Examples of lcmc.common.domain.AccessMode


        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() {
                @Override
                public void run(final String text) {
                    hidePopup();
                    addDomainPanel();
View Full Code Here


                        null,
                        Tools.getString("HostDrbdInfo.Connect"),
                        Tools.getString("HostDrbdInfo.Disconnect"),
                        null,
                        Tools.getString("HostDrbdInfo.Disconnect"),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                        .predicate(new Predicate() {
                            @Override
                            public boolean check() {
                                return !getHost().isConnected();
                            }
                        })
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (getHost().getUsername() == null) {
                                    return NOT_CONNECTABLE_STRING;
                                }
                                return null;
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                if (getHost().isConnected()) {
                                    getHost().disconnect();
                                } else {
                                    getHost().connect(null, null);
                                }
                                getClusterBrowser().updateProxyHWInfo(getHost());
                            }
                        });
        items.add(connectItem);

        /* host wizard */
        final MyMenuItem hostWizardItem = menuFactory.createMenuItem(
                        Tools.getString("HostBrowser.ProxyHostWizard"),
                        HostBrowser.HOST_ICON_LARGE,
                        Tools.getString("HostBrowser.ProxyHostWizard"),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                proxyHostWizard.init(getHost(), null);
                                proxyHostWizard.showDialogs();
                            }
                        });
        items.add(hostWizardItem);
        guiData.registerAddHostButton(hostWizardItem);
        final Application.RunMode runMode = Application.RunMode.LIVE;

        /* proxy start/stop */
        final UpdatableItem proxyItem = menuFactory.createMenuItem(
                        Tools.getString("HostDrbdInfo.Drbd.StopProxy"),
                        null,
                        getMenuToolTip("DRBD.stopProxy", ""),
                        Tools.getString("HostDrbdInfo.Drbd.StartProxy"),
                        null,
                        getMenuToolTip("DRBD.startProxy", ""),
                        new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .predicate(new Predicate() {
                            @Override
                            public boolean check() {
                                return getHost().isDrbdProxyRunning();
                            }
                        })
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (!getHost().isConnected()) {
                                    return Host.NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                                }
                                return null;
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                if (getHost().isDrbdProxyRunning()) {
                                    DRBD.stopProxy(getHost(), runMode);
                                } else {
                                    DRBD.startProxy(getHost(), runMode);
                                }
                                getClusterBrowser().updateProxyHWInfo(getHost());
                            }
                        });
        items.add(proxyItem);

        /* all proxy connections up */
        final UpdatableItem allProxyUpItem = menuFactory.createMenuItem(
                        Tools.getString("HostDrbdInfo.Drbd.AllProxyUp"),
                        null,
                        getMenuToolTip("DRBD.proxyUp", DRBD.ALL_DRBD_RESOURCES),
                        new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .visiblePredicate(new VisiblePredicate() {
                            @Override
                            public boolean check() {
                                return getHost().isConnected() && getHost().isDrbdProxyRunning();
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                DRBD.proxyUp(getHost(), DRBD.ALL_DRBD_RESOURCES, null, runMode);
                                getClusterBrowser().updateProxyHWInfo(getHost());
                            }
                        });
        items.add(allProxyUpItem);

        /* all proxy connections down */
        final UpdatableItem allProxyDownItem = menuFactory.createMenuItem(
                        Tools.getString("HostDrbdInfo.Drbd.AllProxyDown"),
                        null,
                        getMenuToolTip("DRBD.proxyDown", DRBD.ALL_DRBD_RESOURCES),
                        new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .visiblePredicate(new VisiblePredicate() {
                            @Override
                            public boolean check() {
                                return getHost().isConnected() && getHost().isDrbdProxyRunning();
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                DRBD.proxyDown(getHost(), DRBD.ALL_DRBD_RESOURCES, null, runMode);
                                getClusterBrowser().updateProxyHWInfo(getHost());
                            }
                        });
        items.add(allProxyDownItem);

        /* view logs */
        final UpdatableItem viewLogsItem = menuFactory.createMenuItem(
                        Tools.getString("HostBrowser.Drbd.ViewLogs"),
                        ProxyHostInfo.LOGFILE_ICON,
                        Tools.getString("HostBrowser.Drbd.ViewLogs"),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                        new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (!getHost().isConnected()) {
                                    return Host.NOT_CONNECTED_MENU_TOOLTIP_TEXT;
                                }
                                return null;
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                final DrbdsLog drbdsLog = drbdsLogProvider.get();
                                drbdsLog.init(getHost());
                                drbdsLog.showDialog();
                            }
                        });
        items.add(viewLogsItem);

        /* 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))
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (getHost().isInCluster()) {
                                    return "it is a member of a cluster";
View Full Code Here

                                        new StringValue(createNewMetadata),
                                        choices,
                                        Widget.NO_REGEXP,
                                        COMBOBOX_WIDTH,
                                        Widget.NO_ABBRV,
                                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                                        Widget.NO_BUTTON);
        } else {
            final Value[] choices = {new StringValue(useExistingMetadata),
                                     new StringValue(createNewMetadata),
                                     new StringValue(createNewMetadataDestroyData)};
            makeMetaDataButton.setEnabled(false);
            makeMetaDataButton.setText(Tools.getString("Dialog.DrbdConfig.CreateMD.OverwriteMDButton"));
            String metadataDefault = useExistingMetadata;
            if (application.getAutoOptionGlobal("autodrbd") != null) {
                metadataDefault = createNewMetadata;
                makeMetaDataButton.setEnabled(true);
            }
            metadataWidget = widgetFactory.createInstance(
                                        Widget.Type.COMBOBOX,
                                        new StringValue(metadataDefault),
                                        choices,
                                        Widget.NO_REGEXP,
                                        COMBOBOX_WIDTH,
                                        Widget.NO_ABBRV,
                                        new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                                        Widget.NO_BUTTON);
        }

        inputPane.add(metadataLabel);
        inputPane.add(metadataWidget.getComponent());
View Full Code Here

        /* start resource */
        final ComponentWithTest startMenuItem = menuFactory.createMenuItem(
                        Tools.getString("ClusterBrowser.Hb.StartResource"),
                        ServiceInfo.START_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (serviceInfo.getBrowser().crmStatusFailed()) {
                                    return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                                } else if (serviceInfo.isStarted(runMode)) {
                                    return Tools.getString("ServiceInfo.AlreadyStarted");
                                } else {
                                    return serviceInfo.getService().isAvailableWithText();
                                }
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                serviceInfo.hidePopup();
                                serviceInfo.startResource(serviceInfo.getBrowser().getDCHost(), runMode);
                            }
                        });
        final ButtonCallback startItemCallback = serviceInfo.getBrowser().new ClMenuItemCallback(null)
                        .addAction(new CallbackAction() {
                            @Override
                            public void run(final Host dcHost) {
                                serviceInfo.startResource(dcHost, Application.RunMode.TEST);
                            }
                        });
        serviceInfo.addMouseOverListener(startMenuItem, startItemCallback);
        items.add((UpdatableItem) startMenuItem);

        /* stop resource */
        final ComponentWithTest stopMenuItem =
                menuFactory.createMenuItem(Tools.getString("ClusterBrowser.Hb.StopResource"),
                        ServiceInfo.STOP_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (serviceInfo.getBrowser().crmStatusFailed()) {
                                    return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                                } else if (serviceInfo.isStopped(runMode)) {
                                    return Tools.getString("ServiceInfo.AlreadyStopped");
                                } else {
                                    return serviceInfo.getService().isAvailableWithText();
                                }
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                serviceInfo.hidePopup();
                                serviceInfo.stopResource(serviceInfo.getBrowser().getDCHost(), runMode);
                            }
                        });
        final ButtonCallback stopItemCallback = serviceInfo.getBrowser().new ClMenuItemCallback(null)
                        .addAction(new CallbackAction() {
                            @Override
                            public void run(final Host dcHost) {
                                serviceInfo.stopResource(dcHost, Application.RunMode.TEST);
                            }
                        });
        serviceInfo.addMouseOverListener(stopMenuItem, stopItemCallback);
        items.add((UpdatableItem) stopMenuItem);

        /* up group resource */
        final ComponentWithTest upMenuItem =
                menuFactory.createMenuItem(Tools.getString("ClusterBrowser.Hb.UpResource"),
                        ServiceInfo.GROUP_UP_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .visiblePredicate(new VisiblePredicate() {
                            @Override
                            public boolean check() {
                                return serviceInfo.getGroupInfo() != null;
                            }
                        })
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (serviceInfo.getResource().isNew()) {
                                    return ServiceInfo.IS_NEW_STRING;
                                }
                                final GroupInfo gi = serviceInfo.getGroupInfo();
                                if (gi == null) {
                                    return "no";
                                }
                                if (serviceInfo.getBrowser().crmStatusFailed()) {
                                    return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                                }
                                final DefaultMutableTreeNode giNode = gi.getNode();
                                if (giNode == null) {
                                    return "no";
                                }
                                final DefaultMutableTreeNode node = serviceInfo.getNode();
                                if (node == null) {
                                    return "no";
                                }
                                final int index = treeMenuController.getIndex(giNode, node);
                                if (index == 0) {
                                    return "already up";
                                }
                                return null;
                            }
                        })

                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                serviceInfo.hidePopup();
                                serviceInfo.upResource(serviceInfo.getBrowser().getDCHost(), runMode);
                            }
                        });
        final ButtonCallback upItemCallback =
                serviceInfo.getBrowser().new ClMenuItemCallback(null)
                        .addAction(new CallbackAction() {
                            @Override
                            public void run(final Host dcHost) {
                                serviceInfo.upResource(dcHost, Application.RunMode.TEST);
                            }
                        });
        serviceInfo.addMouseOverListener(upMenuItem, upItemCallback);
        items.add((UpdatableItem) upMenuItem);

        /* down group resource */
        final ComponentWithTest downMenuItem =
                menuFactory.createMenuItem(Tools.getString("ClusterBrowser.Hb.DownResource"),
                        ServiceInfo.GROUP_DOWN_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .visiblePredicate(new VisiblePredicate() {
                            @Override
                            public boolean check() {
                                return serviceInfo.getGroupInfo() != null;
                            }
                        })
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (serviceInfo.getResource().isNew()) {
                                    return ServiceInfo.IS_NEW_STRING;
                                }
                                final GroupInfo gi = serviceInfo.getGroupInfo();
                                if (gi == null) {
                                    return "no";
                                }
                                if (serviceInfo.getBrowser().crmStatusFailed()) {
                                    return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                                }
                                final DefaultMutableTreeNode giNode = gi.getNode();
                                if (giNode == null) {
                                    return "no";
                                }
                                final DefaultMutableTreeNode node = serviceInfo.getNode();
                                if (node == null) {
                                    return "no";
                                }
                                final int index = treeMenuController.getIndex(giNode, node);
                                final int groupChildCount = treeMenuController.getChildCount(giNode);
                                if (index >= groupChildCount - 1) {
                                    return "already down";
                                }
                                return null;
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                serviceInfo.hidePopup();
                                serviceInfo.downResource(serviceInfo.getBrowser().getDCHost(), runMode);
                            }
                        });
        final ButtonCallback downItemCallback = serviceInfo.getBrowser().new ClMenuItemCallback(null)
                        .addAction(new CallbackAction() {
                            @Override
                            public void run(final Host dcHost) {
                                serviceInfo.downResource(dcHost, Application.RunMode.TEST);
                            }
                        });
        serviceInfo.addMouseOverListener(downMenuItem, downItemCallback);
        items.add((UpdatableItem) downMenuItem);

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

                        Tools.getString("ClusterBrowser.Hb.CleanUpResource"),
                        ServiceInfo.SERVICE_RUNNING_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))

                        .predicate(new Predicate() {
                            @Override
                            public boolean check() {
                                return serviceInfo.getService().isAvailable() && serviceInfo.isOneFailed(runMode);
                            }
                        })
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (serviceInfo.getBrowser().crmStatusFailed()) {
                                    return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                                } else if (!serviceInfo.isOneFailedCount(runMode)) {
                                    return "no fail count";
                                } else {
                                    return serviceInfo.getService().isAvailableWithText();
                                }
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                serviceInfo.hidePopup();
                                serviceInfo.cleanupResource(serviceInfo.getBrowser().getDCHost(), runMode);
                            }
                        });
        /* cleanup ignores CIB_file */
        items.add(cleanupMenuItem);

        /* manage resource */
        final ComponentWithTest manageMenuItem =
                menuFactory.createMenuItem(Tools.getString("ClusterBrowser.Hb.ManageResource"),
                        ServiceInfo.MANAGE_BY_CRM_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,

                        Tools.getString("ClusterBrowser.Hb.UnmanageResource"),
                        ServiceInfo.UNMANAGE_BY_CRM_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,

                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .predicate(new Predicate() {
                            @Override
                            public boolean check() {
                                return !serviceInfo.isManaged(runMode);
                            }
                        })
                        .enablePredicate(new EnablePredicate() {
                            @Override
                            public String check() {
                                if (serviceInfo.getBrowser().crmStatusFailed()) {
                                    return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                                } else {
                                    return serviceInfo.getService().isAvailableWithText();
                                }
                            }
                        })
                        .addAction(new MenuAction() {
                            @Override
                            public void run(final String text) {
                                serviceInfo.hidePopup();
                                if (text.equals(Tools.getString("ClusterBrowser.Hb.ManageResource"))) {
                                    serviceInfo.setManaged(true, serviceInfo.getBrowser().getDCHost(), runMode);
                                } else {
                                    serviceInfo.setManaged(false, serviceInfo.getBrowser().getDCHost(), runMode);
                                }
                            }
                        });
        final ButtonCallback manageItemCallback =
                serviceInfo.getBrowser().new ClMenuItemCallback(null)
                        .addAction(new CallbackAction() {
                            @Override
                            public void run(final Host dcHost) {
                                serviceInfo.setManaged(!serviceInfo.isManaged(Application.RunMode.TEST),
                                                       dcHost,
                                                       Application.RunMode.TEST);
                            }
                        });
        serviceInfo.addMouseOverListener(manageMenuItem, manageItemCallback);
        items.add((UpdatableItem) manageMenuItem);
        addMigrateMenuItems(serviceInfo, items);
        if (ci == null) {
            /* remove service */
            final ComponentWithTest removeMenuItem = menuFactory.createMenuItem(
                    Tools.getString("ClusterBrowser.Hb.RemoveService"),
                    ClusterBrowser.REMOVE_ICON,
                    ClusterBrowser.STARTING_PTEST_TOOLTIP,
                    new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                    new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                    .enablePredicate(new EnablePredicate() {
                        @Override
                        public String check() {
                            if (serviceInfo.getService().isNew()) {
                                return null;
                            }
                            if (serviceInfo.getBrowser().crmStatusFailed()) {
                                return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                            } else if (serviceInfo.getService().isRemoved()) {
                                return ServiceInfo.IS_BEING_REMOVED_STRING;
                            } else if (serviceInfo.isRunning(runMode) && !application.isAdvancedMode()) {
                                return "cannot remove running resource<br>(advanced mode only)";
                            }
                            if (serviceInfo.getGroupInfo() == null) {
                                return null;
                            }
                            final ClusterStatus cs = serviceInfo.getBrowser().getClusterStatus();
                            final List<String> gr = cs.getGroupResources(
                                                          serviceInfo.getGroupInfo().getHeartbeatId(runMode),
                                                          runMode);


                            if (gr != null && gr.size() > 1) {
                                return null;
                            } else {
                                return "you can remove the group";
                            }
                        }
                    })
                    .addAction(new MenuAction() {
                        @Override
                        public void run(final String text) {
                            serviceInfo.hidePopup();
                            if (serviceInfo.getService().isOrphaned()) {
                                serviceInfo.cleanupResource(serviceInfo.getBrowser().getDCHost(), runMode);
                            } else {
                                serviceInfo.removeMyself(Application.RunMode.LIVE);
                            }
                            serviceInfo.getBrowser().getCrmGraph().repaint();
                        }
                    });
            final ButtonCallback removeItemCallback =
                    serviceInfo.getBrowser().new ClMenuItemCallback(null) {
                        @Override
                        public boolean isEnabled() {
                            return super.isEnabled() && !serviceInfo.getService().isNew();
                        }
                    }
                    .addAction(new CallbackAction() {
                        @Override
                        public void run(final Host dcHost) {
                            serviceInfo.removeMyselfNoConfirm(dcHost, Application.RunMode.TEST);
                        }
                    });
            serviceInfo.addMouseOverListener(removeMenuItem, removeItemCallback);
            items.add((UpdatableItem) removeMenuItem);
        }

        /* view log */
        final UpdatableItem viewLogMenu = menuFactory.createMenuItem(
                Tools.getString("ClusterBrowser.Hb.ViewServiceLog"),
                ServiceInfo.LOGFILE_ICON,
                null,
                new AccessMode(AccessMode.RO, AccessMode.NORMAL),
                new AccessMode(AccessMode.RO, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        if (serviceInfo.getService().isNew()) {
                            return ServiceInfo.IS_NEW_STRING;
                        } else {
                            return null;
                        }
                    }
                })
                .addAction(new MenuAction() {
                    @Override
                    public void run(final String text) {
                        serviceInfo.hidePopup();
                        final ServiceLogs serviceLogs = serviceLogsProvider.get();
                        serviceLogs.init(serviceInfo.getBrowser().getCluster(),
                                serviceInfo.getNameForLog(),
                                serviceInfo.getService().getCrmId());
                        serviceLogs.showDialog();
                    }
                });
        items.add(viewLogMenu);
        /* more migrate options */
        final MyMenu migrateSubmenu = menuFactory.createMenu(
                Tools.getString("ClusterBrowser.MigrateSubmenu"),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    public String check() {
                        return null; //TODO: enable only if it has items
                    }
                });
        items.add(migrateSubmenu);

        addMoreMigrateMenuItems(serviceInfo, migrateSubmenu);

        /* config files */
        final MyMenu filesSubmenu = menuFactory.createMenu(
                Tools.getString("ClusterBrowser.FilesSubmenu"),
                new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        return null; //TODO: enable only if it has items
                    }
View Full Code Here

     */
    private MyMenu getAddServiceMenuItem(final ServiceInfo serviceInfo,
                                         final Application.RunMode runMode,
                                         final String name) {
        final MyMenu serviceMenu = menuFactory.createMenu(name,
                                                          new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                                                          new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        if (serviceInfo.getBrowser().crmStatusFailed()) {
                            return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
                        } else if (serviceInfo.getService().isRemoved()) {
                            return ServiceInfo.IS_BEING_REMOVED_STRING;
                        } else if (serviceInfo.getService().isOrphaned()) {
                            return ServiceInfo.IS_ORPHANED_STRING;
                        } else if (serviceInfo.getService().isNew()) {
                            return ServiceInfo.IS_NEW_STRING;
                        }
                        return null;
                    }
                });
        serviceMenu.onUpdate(new Runnable() {
            @Override
            public void run() {
                application.isSwingThread();
                serviceMenu.removeAll();
                final Point2D pos = serviceMenu.getPos();
                final CrmXml crmXML = serviceInfo.getBrowser().getCrmXml();
                final ResourceAgent fsService = crmXML.getResourceAgent("Filesystem",
                                                                        ResourceAgent.HEARTBEAT_PROVIDER,
                                                                        ResourceAgent.OCF_CLASS_NAME);
                if (crmXML.isLinbitDrbdResourceAgentPresent()) { /* just skip it, if it is not */
                    /* Linbit:DRBD */
                    addDrbdLinbitMenu(serviceInfo, serviceMenu, crmXML, pos, fsService, runMode);
                }
                if (crmXML.isDrbddiskResourceAgentPresent()) { /* just skip it,
                                                     if it is not */
                    /* drbddisk */
                    addDrbddiskMenu(serviceInfo, serviceMenu, crmXML, pos, fsService, runMode);
                }
                final ResourceAgent ipService = crmXML.getResourceAgent("IPaddr2",
                                                                        ResourceAgent.HEARTBEAT_PROVIDER,
                                                                        ResourceAgent.OCF_CLASS_NAME);
                if (ipService != null) { /* just skip it, if it is not*/
                    /* ipaddr */
                    addIpMenu(serviceInfo, serviceMenu, pos, ipService, runMode);
                }
                if (fsService != null) { /* just skip it, if it is not*/
                    /* Filesystem */
                    addFilesystemMenu(serviceInfo, serviceMenu, pos, fsService, runMode);
                }
                final Collection<JDialog> popups = new ArrayList<JDialog>();
                for (final String cl : ClusterBrowser.CRM_CLASSES) {
                    final List<ResourceAgent> services = serviceInfo.getAddServiceList(cl);
                    if (services.isEmpty()) {
                        /* no services, don't show */
                        continue;
                    }
                    final JCheckBox colocationWi = new JCheckBox("Colo", true);
                    final JCheckBox orderWi = new JCheckBox("Order", true);
                    colocationWi.setBackground(ClusterBrowser.STATUS_BACKGROUND);
                    colocationWi.setPreferredSize(colocationWi.getMinimumSize());
                    orderWi.setBackground(ClusterBrowser.STATUS_BACKGROUND);
                    orderWi.setPreferredSize(orderWi.getMinimumSize());
                    final JPanel colOrdPanel = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, 0));
                    colOrdPanel.setBackground(ClusterBrowser.STATUS_BACKGROUND);
                    colOrdPanel.add(colocationWi);
                    colOrdPanel.add(orderWi);
                    AccessMode.Mode mode = AccessMode.NORMAL;
                    if (ResourceAgent.UPSTART_CLASS_NAME.equals(cl) || ResourceAgent.SYSTEMD_CLASS_NAME.equals(cl)) {
                        mode = AccessMode.ADVANCED;
                    }
                    if (ResourceAgent.LSB_CLASS_NAME.equals(cl) && !serviceInfo.getAddServiceList(
                                                                        ResourceAgent.SERVICE_CLASS_NAME).isEmpty()) {
                        mode = AccessMode.ADVANCED;
                    }
                    final MyMenu classItem = menuFactory.createMenu(
                            ClusterBrowser.getClassMenuName(cl),
                            new AccessMode(AccessMode.ADMIN, mode),
                            new AccessMode(AccessMode.OP, mode));
                    final MyListModel<MyMenuItem> dlm = new MyListModel<MyMenuItem>();
                    for (final ResourceAgent ra : services) {
                        addResourceAgentMenu(serviceInfo, ra, dlm, pos, popups, colocationWi, orderWi, runMode);
                    }
                    final boolean ret = drbdGui.getScrollingMenu(
View Full Code Here

                            ClusterBrowser.STARTING_PTEST_TOOLTIP,

                            Tools.getString("ClusterBrowser.Hb.MigrateFromResource") + ' ' + hostName + " (offline)",
                            ServiceInfo.MIGRATE_ICON,
                            ClusterBrowser.STARTING_PTEST_TOOLTIP,
                            new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                            new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                            .predicate(new Predicate() {
                                @Override
                                public boolean check() {
                                    return host.isCrmStatusOk();
                                }
                            })
                            .visiblePredicate(new VisiblePredicate() {
                                public boolean check() {
                                    if (!host.isCrmStatusOk()) {
                                        return false;
                                    }
                                    final List<String> runningOnNodes = serviceInfo.getRunningOnNodes(runMode);
                                    if (runningOnNodes == null || runningOnNodes.size() < 1) {
                                        return false;
                                    }
                                    boolean runningOnNode = false;
                                    for (final String ron : runningOnNodes) {
                                        if (hostName.toLowerCase(Locale.US).equals(ron.toLowerCase(Locale.US))) {
                                            runningOnNode = true;
                                            break;
                                        }
                                    }
                                    if (!serviceInfo.getBrowser().crmStatusFailed()
                                        && serviceInfo.getService().isAvailable()
                                        && runningOnNode
                                        && host.isCrmStatusOk()) {
                                        return true;
                                    } else {
                                        return false;
                                    }
                                }
                            })
                            .addAction(new MenuAction() {
                                @Override
                                public void run(final String text) {
                                    serviceInfo.hidePopup();
                                    serviceInfo.migrateFromResource(serviceInfo.getBrowser().getDCHost(),
                                                                    hostName,
                                                                    runMode);
                                }
                            });
            final ButtonCallback migrateItemCallback =
                    serviceInfo.getBrowser().new ClMenuItemCallback(null)
                            .addAction(new CallbackAction() {
                                @Override
                                public void run(final Host dcHost) {
                                    serviceInfo.migrateFromResource(dcHost, hostName, Application.RunMode.TEST);
                                }
                            });
            serviceInfo.addMouseOverListener(migrateFromMenuItem, migrateItemCallback);
            items.add(migrateFromMenuItem);
        }

        /* unmigrate resource */
        final ComponentWithTest unmigrateMenuItem =
                menuFactory.createMenuItem(
                        Tools.getString("ClusterBrowser.Hb.UnmigrateResource"),
                        ServiceInfo.UNMIGRATE_ICON,
                        ClusterBrowser.STARTING_PTEST_TOOLTIP,
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                        new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                        .visiblePredicate(new VisiblePredicate() {
                            public boolean check() {
                                if (!serviceInfo.getBrowser().crmStatusFailed()
                                    && serviceInfo.getService().isAvailable()
                                    && (serviceInfo.getMigratedTo(runMode) != null
View Full Code Here

                            Tools.getString("ClusterBrowser.Hb.MigrateResource") + ' ' + hostName + " (offline)",
                            ServiceInfo.MIGRATE_ICON,
                            ClusterBrowser.STARTING_PTEST_TOOLTIP,

                            new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                            new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                            .predicate(new Predicate() {
                                @Override
                                public boolean check() {
                                    return host.isCrmStatusOk();
                                }
                            })
                            .visiblePredicate(new VisiblePredicate() {
                                @Override
                                public boolean check() {
                                    if (!host.isCrmStatusOk()) {
                                        return false;
                                    }
                                    final List<String> runningOnNodes = serviceInfo.getRunningOnNodes(runMode);
                                    if (runningOnNodes == null || runningOnNodes.isEmpty()) {
                                        return false;
                                    }
                                    final String runningOnNode = runningOnNodes.get(0).toLowerCase(Locale.US);
                                    if (serviceInfo.getBrowser().crmStatusFailed() || !host.isCrmStatusOk()) {
                                        return false;
                                    } else {
                                        final String tp = serviceInfo.getService().isAvailableWithText();
                                        if (tp != null) {
                                            return false;
                                        }
                                    }
                                    if (hostName.toLowerCase(Locale.US).equals(runningOnNode)) {
                                        return false;
                                    } else {
                                        return true;
                                    }
                                }
                            })
                            .addAction(new MenuAction() {
                                @Override
                                public void run(final String text) {
                                    serviceInfo.hidePopup();
                                    serviceInfo.migrateResource(hostName,
                                                                serviceInfo.getBrowser().getDCHost(),
                                                                runMode);
                                }
                            });
            final ButtonCallback migrateItemCallback =
                    serviceInfo.getBrowser().new ClMenuItemCallback(null)
                            .addAction(new CallbackAction() {
                                @Override
                                public void run(final Host dcHost) {
                                    serviceInfo.migrateResource(hostName, dcHost, Application.RunMode.TEST);
                                }
                            });
            serviceInfo.addMouseOverListener(migrateMenuItem, migrateItemCallback);
            submenu.add(migrateMenuItem);
        }
        for (final Host host : serviceInfo.getBrowser().getClusterHosts()) {
            final String hostName = host.getName();

            final MyMenuItem forceMigrateMenuItem =
                    menuFactory.createMenuItem(
                            Tools.getString("ClusterBrowser.Hb.ForceMigrateResource") + ' ' + hostName,
                            ServiceInfo.MIGRATE_ICON,
                            ClusterBrowser.STARTING_PTEST_TOOLTIP,

                            Tools.getString("ClusterBrowser.Hb.ForceMigrateResource") + ' ' + hostName + " (offline)",
                            ServiceInfo.MIGRATE_ICON,
                            ClusterBrowser.STARTING_PTEST_TOOLTIP,

                            new AccessMode(AccessMode.OP, AccessMode.NORMAL),
                            new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                            .predicate(new Predicate() {
                                @Override
                                public boolean check() {
                                    return host.isCrmStatusOk();
                                }
View Full Code Here

            final MyMenuItem fileItem =
                    menuFactory.createMenuItem(
                            configFile,
                            null,
                            null,
                            new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                            new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL))
                            .addAction(new MenuAction() {
                                @Override
                                public void run(final String text) {
                                    editDialog.init(configFile, serviceInfo.getBrowser().getCluster().getHosts());
                                    editDialog.showDialog();
View Full Code Here

                                              final Application.RunMode runMode) {
        final MyMenuItem existingServiceMenu = menuFactory.createMenuItem(
                                                    name,
                                                    null,
                                                    null,
                                                    new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                                                    new AccessMode(AccessMode.OP, AccessMode.NORMAL));
        existingServiceMenu.addAction(new MenuAction() {
            @Override
            public void run(final String text) {
                final Thread thread = new Thread(new Runnable() {
                    @Override
View Full Code Here

    private MyMenu getExistingServiceMenuItem(final ServiceInfo serviceInfo,
                                              final String name,
                                              final boolean enableForNew,
                                              final Application.RunMode runMode) {
        final MyMenu serviceMenu = menuFactory.createMenu(name,
                new AccessMode(AccessMode.ADMIN, AccessMode.NORMAL),
                new AccessMode(AccessMode.OP, AccessMode.NORMAL))
                .enablePredicate(new EnablePredicate() {
                    @Override
                    public String check() {
                        if (serviceInfo.getBrowser().crmStatusFailed()) {
                            return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
View Full Code Here

TOP

Related Classes of lcmc.common.domain.AccessMode

Copyright © 2018 www.massapicom. 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.