Exemplo n.º 1
0
        public void InterruptWithCertificateClusterUpgrade()
        {
            MockupCluster cluster = Utility.DoBaselineUpgrade("ClusterConfig.Unsecured.DevCluster.json");

            Assert.AreEqual(AutoScaleClusterUpgradeTest.BaselineVMInstanceCount, cluster.Current.CSMConfig.NodeTypes[0].VMInstanceCount);

            Utility.UpdateCluster("ClusterConfig.Unsecured.DevCluster.AutoScale.V2.json", cluster);

            Assert.IsTrue(cluster.RunStateMachine());

            ClusterUpgradeStateBase upgradeState = cluster.Pending;

            Assert.IsInstanceOfType(upgradeState, typeof(MockupAutoScaleClusterUpgradeState));
            Assert.AreNotEqual(upgradeState.TargetCsmConfig, cluster.Current.CSMConfig);

            //Need to set targetReplicaSetSize to an empty dictionary, in order to get the system think the replica set size is updated.
            //Otherwise VerifyTargetSystemServicesReplicaSetSize() will fail.

            var targetReplicaSetSize = new Dictionary <string, ReplicaSetSize>()
            {
                { "", new ReplicaSetSize() }
            };

            MockupAutoScaleClusterUpgradeState scaleUpUpgradeState = (MockupAutoScaleClusterUpgradeState)upgradeState;

            scaleUpUpgradeState.TargetSystemServicesSize = new Dictionary <string, ReplicaSetSize>();

            scaleUpUpgradeState.GetSystemServiceReplicaSetSize(targetReplicaSetSize);

            //Interrupt with a certificate cluster upgrade
            Utility.UpdateCluster("ClusterConfig.X509.DevCluster.AddPrimary.V1.json", cluster);

            //AutoScaleClusterUpgrade can't be interrupted.
            Assert.IsFalse(cluster.RunStateMachine());
        }
Exemplo n.º 2
0
        public void RollbackTest()
        {
            MockupCluster cluster = Utility.DoBaselineUpgrade("ClusterConfig.Unsecured.DevCluster.json");

            Utility.UpdateCluster("ClusterConfig.Unsecured.DevCluster.AutoScale.V2.json", cluster);

            Assert.IsTrue(cluster.RunStateMachine());

            ClusterUpgradeStateBase upgradeState = cluster.Pending;

            Utility.RollBackOneIteration(cluster);
            Assert.IsFalse(cluster.RunStateMachine());
            Assert.IsNull(cluster.Pending);
            Assert.IsNotNull(cluster.Current);

            cluster.TargetCsmConfigUpgradeFailed = false;
            cluster.TargetCsmConfig  = null;
            cluster.TargetNodeConfig = null;
            Utility.UpdateCluster("ClusterConfig.Unsecured.DevCluster.AutoScale.V2.json", cluster);
            Assert.IsTrue(cluster.RunStateMachine());
            upgradeState = cluster.Pending;
            Utility.RollForwardOneIteration(cluster);

            upgradeState = cluster.Pending;
            var targetReplicaSetSize = new Dictionary <string, ReplicaSetSize>()
            {
                { "", new ReplicaSetSize() }
            };
            MockupAutoScaleClusterUpgradeState scaleUpUpgradeState = (MockupAutoScaleClusterUpgradeState)upgradeState;

            scaleUpUpgradeState.TargetSystemServicesSize = new Dictionary <string, ReplicaSetSize>();
            scaleUpUpgradeState.GetSystemServiceReplicaSetSize(targetReplicaSetSize);

            Utility.RollForwardOneIteration(cluster);

            Assert.IsFalse(cluster.RunStateMachine());
            Assert.IsNull(cluster.Pending);
            Assert.IsNotNull(cluster.Current);
            Assert.AreEqual(AutoScaleClusterUpgradeTest.TargetVMInstanceCount, cluster.Current.CSMConfig.NodeTypes[0].VMInstanceCount);
            Assert.AreEqual(AutoScaleClusterUpgradeTest.BaselineConfigVersion, cluster.Current.CSMConfig.Version.Version);
        }
Exemplo n.º 3
0
        public void RollForwardTest()
        {
            MockupCluster cluster = Utility.DoBaselineUpgrade("ClusterConfig.Unsecured.DevCluster.json");

            Assert.AreEqual(AutoScaleClusterUpgradeTest.BaselineVMInstanceCount, cluster.Current.CSMConfig.NodeTypes[0].VMInstanceCount);

            Utility.UpdateCluster("ClusterConfig.Unsecured.DevCluster.AutoScale.V2.json", cluster);

            Assert.IsTrue(cluster.RunStateMachine());

            ClusterUpgradeStateBase upgradeState = cluster.Pending;

            Assert.IsInstanceOfType(upgradeState, typeof(MockupAutoScaleClusterUpgradeState));
            Assert.AreNotEqual(upgradeState.TargetCsmConfig, cluster.Current.CSMConfig);

            //Need to set targetReplicaSetSize to an empty dictionary, in order to get the system think the replica set size is updated.
            //Otherwise VerifyTargetSystemServicesReplicaSetSize() will fail.

            var targetReplicaSetSize = new Dictionary <string, ReplicaSetSize>()
            {
                { "", new ReplicaSetSize() }
            };

            MockupAutoScaleClusterUpgradeState scaleUpUpgradeState = (MockupAutoScaleClusterUpgradeState)upgradeState;

            scaleUpUpgradeState.TargetSystemServicesSize = new Dictionary <string, ReplicaSetSize>();

            scaleUpUpgradeState.GetSystemServiceReplicaSetSize(targetReplicaSetSize);

            Utility.RollForwardOneIteration(cluster);

            upgradeState = (MockupAutoScaleClusterUpgradeState)cluster.Pending;

            Utility.RollForwardOneIteration(cluster);

            Assert.IsNull(cluster.Pending);
            Assert.IsNotNull(cluster.Current);
            Assert.AreEqual(AutoScaleClusterUpgradeTest.TargetVMInstanceCount, cluster.Current.CSMConfig.NodeTypes[0].VMInstanceCount);
            Assert.AreEqual(AutoScaleClusterUpgradeTest.BaselineConfigVersion, cluster.Current.CSMConfig.Version.Version);
        }