public boolean resourceExists(String jndiName, String target) { boolean exists = false; if(target.equals(DOMAIN)){ //if target is "domain", as long as the resource is present in "resources" section, //it is valid. exists = true; }else if(ConfigBeansUtilities.getServerNamed(target) != null){ Server server = configBeanUtilities.getServerNamed(target); exists = server.isResourceRefExists(jndiName); }else if (domain.getClusterNamed(target) != null){ Cluster cluster = domain.getClusterNamed(target); exists = cluster.isResourceRefExists(jndiName); }else{ //if target is "CONFIG", as long as the resource is present in "resources" section, //it is valid. for(Config config : domain.getConfigs().getConfig()){ if(config.getName().equals(target)){ exists = true; break; } } } return exists; }
private NetworkConfig getNetworkConfig() throws TransactionFailure { NetworkConfig config = currentConfig.getNetworkConfig(); if (config == null) { config = (NetworkConfig) ConfigSupport.apply(new SingleConfigCode<Config>() { public Object run(Config param) throws PropertyVetoException, TransactionFailure { final NetworkConfig netConfig = param.createChild(NetworkConfig.class); netConfig.setProtocols(netConfig.createChild(Protocols.class)); netConfig.setNetworkListeners(netConfig.createChild(NetworkListeners.class)); netConfig.setTransports(netConfig.createChild(Transports.class)); param.setNetworkConfig(netConfig); return netConfig; } }, currentConfig); } return config; }
public static void addIndex(Config c, ServiceLocator habitat, String name) { ServiceLocatorUtilities.addOneDescriptor(habitat, BuilderHelper.createConstantDescriptor(c, name, Config.class)); // directly referenced objects ConfigBeanProxy dirref[] = { c.getAdminService(), c.getAvailabilityService(), c.getDiagnosticService(), c.getHttpService(), c.getJavaConfig(), c.getLogService(), c.getNetworkConfig(), c.getSecurityService(), c.getThreadPools(), c.getMonitoringService(), }; for (ConfigBeanProxy cbp : dirref) { if (cbp != null) { ServiceLocatorUtilities.addOneDescriptor(habitat, BuilderHelper.createConstantDescriptor(cbp, name, ConfigSupport.getImpl(cbp).getProxyType())); } } // containers for (Container extension : c.getContainers()) { ServiceLocatorUtilities.addOneDescriptor(habitat, BuilderHelper.createConstantDescriptor(extension, name, ConfigSupport.getImpl(extension).getProxyType())); } }
private List<SystemProperty> getConfigSystemProperties() { try { String configName = server.getConfigRef(); Configs configs = domain.getConfigs(); List<Config> configsList = configs.getConfig(); Config config = null; for (Config c : configsList) { if (c.getName().equals(configName)) { config = c; break; } } return (List<SystemProperty>) (config != null ? config.getSystemProperty() : Collections.emptyList()); } catch (Exception e) { //possible NPE if domain.xml has issues! return Collections.emptyList(); } }
private void configure(StringBuilder sb) throws TransactionFailure, PropertyVetoException { Server s = ConfigBeansUtilities.getServerNamed(ADMIN_SERVER); String ac = s.getConfigRef(); Config asc = null; //admin server config, that needs the configuration for (Config cfg : allConfigs.getConfig()) { if (cfg.getName().equals(ac)) { asc = cfg; break; } } //following things should happen transactionally - TODO replace SingleConfigCode by ConfigCode ... //createBackupRealm(sb, getAdminRealm(asc.getSecurityService()), getNewRealmName(asc.getSecurityService())); deleteRealm(asc.getSecurityService(), sb); createRealm(asc.getSecurityService(), sb); configureAdminService(asc.getAdminService()); //configure(asc.getSecurityService(), asc.getAdminService(), sb); }
@Override public void postConstruct() { // Listen to monitoring level changes Config c = habitat.getService(Config.class, ServerEnvironment.DEFAULT_INSTANCE_NAME); ts = c.getExtensionByType(TransactionService.class); ModuleMonitoringLevels mml = c.getMonitoringService().getModuleMonitoringLevels(); ((ObservableBean)ConfigSupport.getImpl(mml)).addListener(this); }
tmp = configs.getConfigByName(target); } catch (Exception ex) { Server targetServer = domain.getServerNamed(target); if (targetServer != null) { config = domain.getConfigNamed(targetServer.getConfigRef()); com.sun.enterprise.config.serverbeans.Cluster cluster = domain.getClusterNamed(target); if (cluster != null) { config = domain.getConfigNamed(cluster.getConfigRef()); SecurityService securityService = config.getSecurityService(); ActionReport report = context.getActionReport(); report.setMessage(localStrings.getLocalString( "delete.audit.module.notfound", "Specified Audit Module {0} not found", auditModuleName)); report.setActionExitCode(ActionReport.ExitCode.FAILURE); return; ConfigSupport.apply(new SingleConfigCode<SecurityService>() { public Object run(SecurityService param) throws PropertyVetoException, TransactionFailure { report.setMessage(localStrings.getLocalString( "delete.audit.module.fail", "Deletion of Audit Module {0} failed", auditModuleName));
@Override public boolean preAuthorization(AdminCommandContext context) { config = CLIUtil.chooseConfig(domain, target, context.getActionReport()); if (config == null) { return false; } securityService = config.getSecurityService(); authRealm = findRealm(); if (authRealm == null) { final ActionReport report = context.getActionReport(); report.setMessage(localStrings.getLocalString( "delete.auth.realm.notfound", "Authrealm named {0} not found", authRealmName)); report.setActionExitCode(ActionReport.ExitCode.FAILURE); } return (authRealm != null); }
final ActionReport report = context.getActionReport(); Config targetConfig = domain.getConfigNamed(target); if (targetConfig != null) config = targetConfig; Server targetServer = domain.getServerNamed(target); config = domain.getConfigNamed(targetServer.getConfigRef()); com.sun.enterprise.config.serverbeans.Cluster cluster =domain.getClusterNamed(target); if (cluster!=null) { config = domain.getConfigNamed(cluster.getConfigRef()); JmsService jmsService = config.getExtensionByType(JmsService.class); report.setMessage(localStrings.getLocalString("list.jms.host.invalidTarget", "Invalid Target specified.")); report.setActionExitCode(ActionReport.ExitCode.FAILURE); return; final ActionReport.MessagePart part = report.getTopMessagePart().addChild(); part.setMessage(jmsName); report.setMessage(localStrings.getLocalString("list.jms.host.fail", "Unable to list JMS Hosts") + " " + e.getLocalizedMessage()); report.setActionExitCode(ActionReport.ExitCode.FAILURE);
@Override public void execute(AdminCommandContext context) { final ActionReport report = context.getActionReport(); Config tmp = null; try { tmp = configs.getConfigByName(target); } catch (Exception ex) { } if (tmp != null) { config = tmp; } if (tmp == null) { Server targetServer = domain.getServerNamed(target); if (targetServer != null) { config = domain.getConfigNamed(targetServer.getConfigRef()); } com.sun.enterprise.config.serverbeans.Cluster cluster = domain.getClusterNamed(target); if (cluster != null) { config = domain.getConfigNamed(cluster.getConfigRef()); } } final SecurityService securityService = config.getSecurityService(); List<JaccProvider> jaccProviders = securityService.getJaccProvider(); JaccProvider jprov = null; for (JaccProvider jaccProv : jaccProviders) { ActionReport.MessagePart part = report.getTopMessagePart().addChild(); part.setMessage(jaccProv.getName()); } report.setActionExitCode(ActionReport.ExitCode.SUCCESS); }
String dynRecfg = targetService.getClusterConfig(targetName).getDynamicReconfigurationEnabled(); if(Boolean.FALSE.equals(Boolean.valueOf(dynRecfg))) { ActionReport aReport = context.getActionReport().addSubActionsReport(); aReport.setActionExitCode(ActionReport.ExitCode.WARNING); aReport.setMessage(strings.getLocalString("glassfish.clusterexecutor.dynrecfgdisabled", "WARNING: The command was not replicated to all cluster instances because the" + " dynamic-reconfig-enabled flag is set to false for cluster {0}", targetName)); for(Server s : targetService.getInstances(targetName)) { instanceState.setState(s.getName(), InstanceState.StateType.RESTART_REQUIRED, false); instanceState.addFailedCommandToInstance(s.getName(), commandName, parameters); Set<String> clusterNoReplication = new HashSet<String>(); for (Server s : allInstances) { String dynRecfg = s.getConfig().getDynamicReconfigurationEnabled(); if (Boolean.TRUE.equals(Boolean.valueOf(dynRecfg))) { instancesForReplication.add(s); } else { clusterNoReplication.add(s.getCluster().getName()); instanceState.setState(s.getName(), InstanceState.StateType.RESTART_REQUIRED, false); instanceState.addFailedCommandToInstance(s.getName(), commandName, parameters); ActionReport aReport = context.getActionReport().addSubActionsReport(); aReport.setActionExitCode(ActionReport.ExitCode.WARNING); aReport.setMessage(strings.getLocalString("glassfish.clusterexecutor.dynrecfgdisabled", "WARNING: The command was not replicated to all cluster instances because the" + " dynamic-reconfiguration-enabled flag is set to false for cluster(s) {0}", clusterNoReplication));
List<ServerRef> serverRefs = child.getServerRef(); StringBuffer namesOfServers = new StringBuffer(); if (serverRefs.size() > 0) { final String msg = localStrings.getLocalString( "Cluster.hasInstances", "Cluster {0} contains server instances {1} and must not contain any instances" ,child.getName() ,namesOfServers.toString() ); if(config == null || domain.getReferenceContainersOf(config).size() > 1 || !instanceConfig.equals(child.getName() + "-config")) return; File configConfigDir = new File(env.getConfigDirPath(), config.getName()); FileUtils.whack(configConfigDir); if (t != null) { Configs c = t.enroll(configs); List<Config> configList = c.getConfig(); configList.remove(config); localStrings.getLocalString("deleteConfigFailed", "Unable to remove config {0}", instanceConfig), ex); report.setMessage(msg); report.setActionExitCode(ActionReport.ExitCode.FAILURE); report.setFailureCause(ex); throw ex;
final ActionReport report = context.getActionReport(); List <Config> configList = configs.getConfig(); Config config = configList.get(0); SecurityService securityService = config.getSecurityService(); for (AuthRealm authrealm : authrealms) { if (authrealm.getName().equals(authRealmName)) { report.setMessage(localStrings.getLocalString( "create.auth.realm.duplicatefound", "Authrealm named {0} exists. Cannot add duplicate AuthRealm.", authRealmName)); report.setActionExitCode(ActionReport.ExitCode.FAILURE); return; ConfigSupport.apply(new SingleConfigCode<SecurityService>() { report.setMessage(localStrings.getLocalString("create.auth.realm.fail", "Creation of Authrealm {0} failed", authRealmName) + " " + e.getLocalizedMessage() );
new LocalStringManagerImpl(ClusterOperationUtil.class); try { for(Server svr : instancesForReplication) { if (instanceState.getState(svr.getName()) == InstanceState.StateType.NEVER_STARTED) { FailurePolicy.applyFailurePolicy(neverStartedPolicy, ActionReport.ExitCode.FAILURE); if (!finalResult.equals(ActionReport.ExitCode.SUCCESS)) { ActionReport aReport = context.getActionReport().addSubActionsReport(); if (finalResult.equals(ActionReport.ExitCode.FAILURE)) { aReport.setMessage(strings.getLocalString("clusterutil.failneverstarted", "FAILURE: Instance {0} has never been started; command {1} was not replicated to that instance", svr.getName(), commandName)); } else { aReport.setMessage(strings.getLocalString("clusterutil.warnneverstarted", Config scfg = svr.getConfig(); if (!Boolean.valueOf(scfg.getDynamicReconfigurationEnabled())) { ActionReport aReport = context.getActionReport().addSubActionsReport(); aReport.setActionExitCode(ActionReport.ExitCode.WARNING); aReport.setMessage(strings.getLocalString("clusterutil.dynrecfgdisabled", "WARNING: The command {0} was not replicated to instance {1} because the " + "dynamic-reconfiguration-enabled flag is set to false for config {2}", new Object[] {commandName, svr.getName(), scfg.getName()})); instanceState.setState(svr.getName(), InstanceState.StateType.RESTART_REQUIRED, false); instanceState.addFailedCommandToInstance(svr.getName(), commandName, parameters);
LogDomains.ADMIN_LOGGER); private static final LocalStringManagerImpl strings = new LocalStringManagerImpl(ClusterOperationUtil.class); try { for(Server svr : instancesForReplication) { if (instanceState.getState(svr.getName()) == InstanceState.StateType.NEVER_STARTED) { String host = svr.getAdminHost(); int port = rich.getAdminPort(svr); ActionReport aReport = context.getActionReport().addSubActionsReport(); InstanceCommandResult aResult = new InstanceCommandResult(); InstanceCommandExecutor ice = logger.severe(strings.getLocalString("clusterutil.instancehasnostate", "Could not find state of instance registered in the state service")); continue; ActionReport aReport = context.getActionReport().addSubActionsReport(); ActionReport.ExitCode finalResult = FailurePolicy.applyFailurePolicy(failPolicy, ActionReport.ExitCode.FAILURE); String dynRecfg = targetService.getClusterConfig(t).getDynamicReconfigurationEnabled(); if(Boolean.FALSE.equals(Boolean.valueOf(dynRecfg))) { ActionReport aReport = context.getActionReport().addSubActionsReport();
private void addSslToJMXConnector(Config config, ActionReport report) { AdminService adminService = config.getAdminService(); report.setMessage( localStrings.getLocalString("create.ssl.jmx.notfound", "JMX Connector named {0} to which this ssl element is " + "being added does not exist.", listenerId)); report.setActionExitCode(ActionReport.ExitCode.FAILURE); return; report.setMessage( localStrings.getLocalString("create.ssl.jmx.alreadyExists", "IIOP Listener named {0} to which this ssl element is " + "being added already has an ssl element.", listenerId)); ConfigSupport.apply(new SingleConfigCode<JmxConnector>() { @Override public Object run(JmxConnector param)
public void execute(AdminCommandContext context) { final ActionReport report = context.getActionReport(); ActionReport.MessagePart part = report.getTopMessagePart(); Server server = domain.getServerNamed(target); if (server != null) { configName = server.getConfigRef(); } else { Cluster cluster = domain.getClusterNamed(target); if (cluster == null) { throw new Exception("No such target:" + target); configName = cluster.getConfigRef(); Config config = configs.getConfigByName(configName); httpService = config.getHttpService(); report.setMessage(e.getMessage()); report.setActionExitCode(ActionReport.ExitCode.FAILURE); return;
@Override public boolean preAuthorization(AdminCommandContext context) { final ActionReport report = context.getActionReport(); secureAdmin = domain.getSecureAdmin(); if (SecureAdmin.Util.isEnabled(secureAdmin)) { if ((newpassword == null) || (newpassword.isEmpty())) { report.setMessage(localStrings.getLocalString( "null_empty_password","The new password is null or empty")); report.setActionExitCode(ActionReport.ExitCode.FAILURE); return false; final List <Config> configList = configs.getConfig(); config = configList.get(0); SecurityService securityService = config.getSecurityService(); report.setMessage(localStrings.getLocalString( "change.admin.password.adminrealmnotfound", "Server " + "Error: There is no admin realm to perform this operation"));
public void execute(AdminCommandContext context) { ActionReport report = context.getActionReport(); report.setActionExitCode(ActionReport.ExitCode.SUCCESS); List<Config> configList = null; //Fix for issue 13356 list-configs doesn't take an operand //defaults to domain if (target.equals("domain" )) { Configs configs = domain.getConfigs(); configList = configs.getConfig(); } else { configList = createConfigList(); if (configList == null) { fail(Strings.get("list.instances.badTarget", target)); return; } } StringBuffer sb = new StringBuffer(); for (Config config : configList) { sb.append(config.getName()).append('\n'); } String output = sb.toString(); //Fix for isue 12885 report.addSubActionsReport().setMessage(output.substring(0,output.length()-1 )); report.setActionExitCode(ActionReport.ExitCode.SUCCESS); }
/** * Executes the command with the command parameters passed as Properties * where the keys are the paramter names and the values the parameter values * * @param context information */ public void execute(AdminCommandContext context) { final ActionReport report = context.getActionReport(); List <Config> configList = configs.getConfig(); Config config = configList.get(0); SecurityService securityService = config.getSecurityService(); for (AuthRealm realm : securityService.getAuthRealm()) { ActionReport.MessagePart part = report.getTopMessagePart().addChild(); part.setMessage(realm.getName()); } } }