static ScaleDownConfiguration addScaleDownConfiguration(OperationContext context, ModelNode model) throws OperationFailedException { if (!model.hasDefined(SCALE_DOWN.getName())) { return null; } ScaleDownConfiguration scaleDownConfiguration = new ScaleDownConfiguration(); scaleDownConfiguration.setEnabled(SCALE_DOWN.resolveModelAttribute(context, model).asBoolean()); ModelNode clusterName = SCALE_DOWN_CLUSTER_NAME.resolveModelAttribute(context, model); if (clusterName.isDefined()) { scaleDownConfiguration.setClusterName(clusterName.asString()); } ModelNode groupName = SCALE_DOWN_GROUP_NAME.resolveModelAttribute(context, model); if (groupName.isDefined()) { scaleDownConfiguration.setGroupName(groupName.asString()); } ModelNode discoveryGroupName = SCALE_DOWN_DISCOVERY_GROUP.resolveModelAttribute(context, model); if (discoveryGroupName.isDefined()) { scaleDownConfiguration.setDiscoveryGroup(discoveryGroupName.asString()); } ModelNode connectors = SCALE_DOWN_CONNECTORS.resolveModelAttribute(context, model); if (connectors.isDefined()) { List<String> connectorNames = new ArrayList<>(connectors.keys()); scaleDownConfiguration.setConnectors(connectorNames); } return scaleDownConfiguration; } }
private ScaleDownConfiguration parseScaleDownConfig(Element policyNode) { NodeList scaleDownNode = policyNode.getElementsByTagName("scale-down"); if (scaleDownNode.getLength() > 0) { ScaleDownConfiguration scaleDownConfiguration = new ScaleDownConfiguration(); Element scaleDownElement = (Element) scaleDownNode.item(0); scaleDownConfiguration.setEnabled(getBoolean(scaleDownElement, "enabled", scaleDownConfiguration.isEnabled())); NodeList discoveryGroupRef = scaleDownElement.getElementsByTagName("discovery-group-ref"); if (discoveryGroupRef.item(0) != null) { scaleDownConfiguration.setDiscoveryGroup(discoveryGroupRef.item(0).getAttributes().getNamedItem("discovery-group-name").getNodeValue()); } String scaleDownGroupName = getString(scaleDownElement, "group-name", scaleDownConfiguration.getGroupName(), Validators.NO_CHECK); scaleDownConfiguration.setGroupName(scaleDownGroupName); NodeList scaleDownConnectorNode = scaleDownElement.getElementsByTagName("connectors"); if (scaleDownConnectorNode != null && scaleDownConnectorNode.getLength() > 0) { NodeList scaleDownConnectors = scaleDownConnectorNode.item(0).getChildNodes(); for (int i = 0; i < scaleDownConnectors.getLength(); i++) { Node child = scaleDownConnectors.item(i); if (child.getNodeName().equals("connector-ref")) { String connectorName = getTrimmedTextContent(child); scaleDownConfiguration.getConnectors().add(connectorName); } } } return scaleDownConfiguration; } return null; }
public static ScaleDownPolicy getScaleDownPolicy(ScaleDownConfiguration scaleDownConfiguration) { if (scaleDownConfiguration != null) { if (scaleDownConfiguration.getDiscoveryGroup() != null) { return new ScaleDownPolicy(scaleDownConfiguration.getDiscoveryGroup(), scaleDownConfiguration.getGroupName(), scaleDownConfiguration.getClusterName(), scaleDownConfiguration.isEnabled()); } else { return new ScaleDownPolicy(scaleDownConfiguration.getConnectors(), scaleDownConfiguration.getGroupName(), scaleDownConfiguration.getClusterName(), scaleDownConfiguration.isEnabled()); } } return null; }
servers[2].getConfiguration().setSecurityEnabled(true); LiveOnlyPolicyConfiguration haPolicyConfiguration0 = (LiveOnlyPolicyConfiguration) servers[0].getConfiguration().getHAPolicyConfiguration(); ScaleDownConfiguration scaleDownConfiguration0 = new ScaleDownConfiguration(); haPolicyConfiguration0.setScaleDownConfiguration(scaleDownConfiguration0); LiveOnlyPolicyConfiguration haPolicyConfiguration1 = (LiveOnlyPolicyConfiguration) servers[1].getConfiguration().getHAPolicyConfiguration(); ScaleDownConfiguration scaleDownConfiguration1 = new ScaleDownConfiguration(); haPolicyConfiguration1.setScaleDownConfiguration(scaleDownConfiguration1); scaleDownConfiguration0.setGroupName("bill"); scaleDownConfiguration1.setGroupName("bill"); scaleDownConfiguration1.setEnabled(false); String scaleDownConnector = servers[0].getConfiguration().getClusterConfigurations().get(0).getStaticConnectors().get(0); Assert.assertEquals(61617, servers[0].getConfiguration().getConnectorConfigurations().get(scaleDownConnector).getParams().get(TransportConstants.PORT_PROP_NAME)); scaleDownConfiguration0.getConnectors().add(scaleDownConnector); startServers(0, 1, 2); setupSessionFactory(0, isNetty(), false, servers[0].getConfiguration().getClusterUser(), servers[0].getConfiguration().getClusterPassword());
@Override @Before public void setUp() throws Exception { super.setUp(); setupLiveServer(0, isFileStorage(), isNetty(), true); setupLiveServer(1, isFileStorage(), isNetty(), true); LiveOnlyPolicyConfiguration haPolicyConfiguration0 = (LiveOnlyPolicyConfiguration) servers[0].getConfiguration().getHAPolicyConfiguration(); haPolicyConfiguration0.setScaleDownConfiguration(new ScaleDownConfiguration()); LiveOnlyPolicyConfiguration haPolicyConfiguration1 = (LiveOnlyPolicyConfiguration) servers[1].getConfiguration().getHAPolicyConfiguration(); haPolicyConfiguration1.setScaleDownConfiguration(new ScaleDownConfiguration()); if (useScaleDownGroupName) { haPolicyConfiguration0.getScaleDownConfiguration().setGroupName("bill"); haPolicyConfiguration1.getScaleDownConfiguration().setGroupName("bill"); } setupClusterConnection("cluster0", "testAddress", MessageLoadBalancingType.ON_DEMAND, 1, isNetty(), 0, 1); setupClusterConnection("cluster0", "testAddress", MessageLoadBalancingType.ON_DEMAND, 1, isNetty(), 1, 0); haPolicyConfiguration0.getScaleDownConfiguration().getConnectors().addAll(servers[0].getConfiguration().getClusterConfigurations().iterator().next().getStaticConnectors()); haPolicyConfiguration1.getScaleDownConfiguration().getConnectors().addAll(servers[1].getConfiguration().getClusterConfigurations().iterator().next().getStaticConnectors()); servers[0].getConfiguration().getAddressesSettings().put("#", new AddressSettings().setRedistributionDelay(0)); servers[1].getConfiguration().getAddressesSettings().put("#", new AddressSettings().setRedistributionDelay(0)); startServers(0, 1); setupSessionFactory(0, isNetty()); setupSessionFactory(1, isNetty()); }
@Override protected void createConfigs() throws Exception { nodeManager = new InVMNodeManager(false); TransportConfiguration liveConnector = getConnectorTransportConfiguration(true); TransportConfiguration backupConnector = getConnectorTransportConfiguration(false); System.out.println("backup config created - mnovak"); backupConfig = super.createDefaultConfig(false).clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(false)).setHAPolicyConfiguration(new SharedStoreSlavePolicyConfiguration().setScaleDownConfiguration(new ScaleDownConfiguration().setEnabled(false)).setRestartBackup(false)).addConnectorConfiguration(liveConnector.getName(), liveConnector).addConnectorConfiguration(backupConnector.getName(), backupConnector).addClusterConfiguration(basicClusterConnectionConfig(backupConnector.getName(), liveConnector.getName())); backupServer = createTestableServer(backupConfig); liveConfig = super.createDefaultConfig(false).clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(true)).setHAPolicyConfiguration(new SharedStoreMasterPolicyConfiguration().setFailoverOnServerShutdown(true)).addClusterConfiguration(basicClusterConnectionConfig(liveConnector.getName())).addConnectorConfiguration(liveConnector.getName(), liveConnector); liveServer = createTestableServer(liveConfig); }
@Override protected void createConfigs() throws Exception { nodeManager0 = new InVMNodeManager(false); nodeManager1 = new InVMNodeManager(false); TransportConfiguration liveConnector0 = getConnectorTransportConfiguration(true, 0); TransportConfiguration liveConnector1 = getConnectorTransportConfiguration(true, 1); backupConfig = super.createDefaultInVMConfig(1).clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(true, 1)).setHAPolicyConfiguration(new ColocatedPolicyConfiguration().setRequestBackup(true).setLiveConfig(new SharedStoreMasterPolicyConfiguration()).setBackupConfig(new SharedStoreSlavePolicyConfiguration().setScaleDownConfiguration(new ScaleDownConfiguration().addConnector(liveConnector1.getName())))).addConnectorConfiguration(liveConnector0.getName(), liveConnector0).addConnectorConfiguration(liveConnector1.getName(), liveConnector1).addClusterConfiguration(basicClusterConnectionConfig(liveConnector1.getName(), liveConnector0.getName())); backupServer = createColocatedTestableServer(backupConfig, nodeManager1, nodeManager0, 1); liveConfig = super.createDefaultInVMConfig(0).clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(true, 0)).setHAPolicyConfiguration(new ColocatedPolicyConfiguration().setRequestBackup(true).setBackupRequestRetryInterval(1000).setLiveConfig(new SharedStoreMasterPolicyConfiguration()).setBackupConfig(new SharedStoreSlavePolicyConfiguration().setScaleDownConfiguration(new ScaleDownConfiguration()))).addConnectorConfiguration(liveConnector0.getName(), liveConnector0).addConnectorConfiguration(liveConnector1.getName(), liveConnector1).addClusterConfiguration(basicClusterConnectionConfig(liveConnector0.getName(), liveConnector1.getName())); liveServer = createColocatedTestableServer(liveConfig, nodeManager0, nodeManager1, 0); }
haPolicy.setBackupConfig(sssc); if (scaleDown) { sssc.setScaleDownConfiguration(new ScaleDownConfiguration()); haPolicy.setBackupConfig(rpc2); if (scaleDown) { rpc2.setScaleDownConfiguration(new ScaleDownConfiguration());
LiveOnlyPolicyConfiguration lopc = (LiveOnlyPolicyConfiguration) pc; assertNotNull(lopc.getScaleDownConfiguration()); assertEquals(lopc.getScaleDownConfiguration().getGroupName(), "boo!"); assertEquals(lopc.getScaleDownConfiguration().getDiscoveryGroup(), "dg1");
static ScaleDownConfiguration addScaleDownConfiguration(OperationContext context, ModelNode model) throws OperationFailedException { if (!model.hasDefined(SCALE_DOWN.getName())) { return null; } ScaleDownConfiguration scaleDownConfiguration = new ScaleDownConfiguration(); scaleDownConfiguration.setEnabled(SCALE_DOWN.resolveModelAttribute(context, model).asBoolean()); ModelNode clusterName = SCALE_DOWN_CLUSTER_NAME.resolveModelAttribute(context, model); if (clusterName.isDefined()) { scaleDownConfiguration.setClusterName(clusterName.asString()); } ModelNode groupName = SCALE_DOWN_GROUP_NAME.resolveModelAttribute(context, model); if (groupName.isDefined()) { scaleDownConfiguration.setGroupName(groupName.asString()); } ModelNode discoveryGroupName = SCALE_DOWN_DISCOVERY_GROUP.resolveModelAttribute(context, model); if (discoveryGroupName.isDefined()) { scaleDownConfiguration.setDiscoveryGroup(discoveryGroupName.asString()); } ModelNode connectors = SCALE_DOWN_CONNECTORS.resolveModelAttribute(context, model); if (connectors.isDefined()) { List<String> connectorNames = new ArrayList<>(connectors.keys()); scaleDownConfiguration.setConnectors(connectorNames); } return scaleDownConfiguration; } }