internal void InternalRemoveCertTest(string baselineJsonFile, string targetJsonFile) { MockupCluster cluster = Utility.DoBaselineUpgrade(baselineJsonFile); Assert.AreEqual(ClusterCertificateUpgradeTest.BaselineConfigVersion, cluster.Current.CSMConfig.Version.Version); Utility.UpdateCluster(targetJsonFile, cluster); string originalPrimaryThumbprint = cluster.Current.CSMConfig.Security.CertificateInformation.ClusterCertificate.Thumbprint; string originalSecondaryThumbprint = cluster.Current.CSMConfig.Security.CertificateInformation.ClusterCertificate.ThumbprintSecondary; string newPrimaryThumbprint = cluster.TargetCsmConfig.Security.CertificateInformation.ClusterCertificate.Thumbprint; bool removePrimarythumbprint = originalPrimaryThumbprint != newPrimaryThumbprint; // 1st iteration Assert.IsTrue(cluster.RunStateMachine()); MockupCertificateClusterUpgradeState upgradeState = (MockupCertificateClusterUpgradeState)cluster.Pending; this.VerifyManifestRemoveCertLists( cluster.Pending.ExternalState.ClusterManifest, originalPrimaryThumbprint, originalSecondaryThumbprint, removePrimarythumbprint, upgradeState.CurrentListIndex); Assert.AreEqual(ClusterCertificateUpgradeTest.BaselineDataDeletionAgeInDays, cluster.Current.CSMConfig.DiagnosticsStoreInformation.DataDeletionAgeInDays); Assert.AreNotEqual(upgradeState.TargetCsmConfig, cluster.Current.CSMConfig); Assert.IsNotNull(cluster.Current); Utility.RollForwardOneIteration(cluster); // 2nd iteration Assert.IsFalse(cluster.RunStateMachine()); upgradeState = (MockupCertificateClusterUpgradeState)cluster.Pending; this.VerifyManifestRemoveCertLists( cluster.Pending.ExternalState.ClusterManifest, originalPrimaryThumbprint, originalSecondaryThumbprint, removePrimarythumbprint, upgradeState.CurrentListIndex); Assert.AreNotEqual(upgradeState.TargetCsmConfig, cluster.Current.CSMConfig); Assert.IsNotNull(cluster.Current); Utility.RollForwardOneIteration(cluster); // final check Assert.IsFalse(cluster.RunStateMachine()); this.VerifyJsonRemoveCertLists( cluster.Current.CSMConfig, originalPrimaryThumbprint, originalSecondaryThumbprint, removePrimarythumbprint); Assert.AreEqual(ClusterCertificateUpgradeTest.TargetDataDeletionAgeInDays, cluster.Current.CSMConfig.DiagnosticsStoreInformation.DataDeletionAgeInDays); Assert.AreEqual(ClusterCertificateUpgradeTest.TargetConfigVersion, cluster.Current.CSMConfig.Version.Version); }
public void InterruptWithSimpleClusterUpgradeAtSecondIteration() { MockupCluster cluster = Utility.DoBaselineUpgrade("ClusterConfig.X509.DevCluster.Replace.V1.json"); Assert.AreEqual(ClusterCertificateUpgradeTest.BaselineConfigVersion, cluster.Current.CSMConfig.Version.Version); Utility.UpdateCluster("ClusterConfig.X509.DevCluster.Replace.V2.json", cluster); string originalThumbprint = cluster.Current.CSMConfig.Security.CertificateInformation.ClusterCertificate.Thumbprint; string newThumbprint = cluster.TargetCsmConfig.Security.CertificateInformation.ClusterCertificate.Thumbprint; // 1st iteration Assert.IsTrue(cluster.RunStateMachine()); MockupCertificateClusterUpgradeState upgradeState = (MockupCertificateClusterUpgradeState)cluster.Pending; this.VerifyManifestReplaceCertLists( cluster.Pending.ExternalState.ClusterManifest, originalThumbprint, newThumbprint, upgradeState.CurrentListIndex); Utility.RollForwardOneIteration(cluster); // 2nd iteration Assert.IsFalse(cluster.RunStateMachine()); upgradeState = (MockupCertificateClusterUpgradeState)cluster.Pending; this.VerifyManifestReplaceCertLists( cluster.Pending.ExternalState.ClusterManifest, originalThumbprint, newThumbprint, upgradeState.CurrentListIndex); Utility.UpdateCluster("ClusterConfig.X509.DevCluster.Replace.V2.Interrupt.json", cluster); Assert.IsFalse(cluster.RunStateMachine()); Utility.RollForwardOneIteration(cluster); //3rd iteration Assert.IsFalse(cluster.RunStateMachine()); upgradeState = (MockupCertificateClusterUpgradeState)cluster.Pending; this.VerifyManifestReplaceCertLists( cluster.Pending.ExternalState.ClusterManifest, originalThumbprint, newThumbprint, upgradeState.CurrentListIndex); Utility.RollForwardOneIteration(cluster); // final check Assert.IsFalse(cluster.RunStateMachine()); this.VerifyJsonReplaceCertLists(cluster.Current.CSMConfig, originalThumbprint, newThumbprint); Assert.AreEqual(ClusterCertificateUpgradeTest.TargetDataDeletionAgeInDays, cluster.Current.CSMConfig.DiagnosticsStoreInformation.DataDeletionAgeInDays); Assert.AreEqual(ClusterCertificateUpgradeTest.TargetConfigVersion, cluster.Current.CSMConfig.Version.Version); }
public void InterruptWithSimpleClusterUpgradeAtFirstIteration() { MockupCluster cluster = Utility.DoBaselineUpgrade("ClusterConfig.X509.DevCluster.Replace.V1.json"); Utility.UpdateCluster("ClusterConfig.X509.DevCluster.Replace.V2.json", cluster); // 1st iteration Assert.IsTrue(cluster.RunStateMachine()); MockupCertificateClusterUpgradeState upgradeState = (MockupCertificateClusterUpgradeState)cluster.Pending; //Interrupt with a simple cluster upgrade Utility.UpdateCluster("ClusterConfig.X509.DevCluster.Replace.V2.Interrupt.json", cluster); Assert.IsTrue(cluster.RunStateMachine()); Utility.RollForwardOneIteration(cluster); Assert.IsFalse(cluster.RunStateMachine()); Assert.AreEqual(ClusterCertificateUpgradeTest.InterruptedTargetConfigVersion, cluster.Current.CSMConfig.Version.Version); }