Exemplo n.º 1
0
        public void ParseMultipleChangesetSpecs()
        {
            string plasticChangesetEnvironVar =
                "cs:19@br:/main/test2/@rep:codice@repserver:skull.mydomain.com:9095; " +
                "cs:21@br:/main/test2@rep:codice/osc@repserver:skull.mydomain.com:9095;" +
                "cs:32@br:/main@rep:xlinked_repo@repserver:myrepo.local:8086";

            Changeset firstExpectedChangeset = new Changeset(
                19,
                "/main/test2/",
                "codice",
                "skull.mydomain.com:9095");

            Changeset secondExpectedChangeset = new Changeset(
                21,
                "/main/test2",
                "codice/osc",
                "skull.mydomain.com:9095");

            Changeset thirdExpectedChangeset = new Changeset(
                32,
                "/main",
                "xlinked_repo",
                "myrepo.local:8086");

            List <Changeset> changesets =
                Changeset.ParsePlasticChangesetEnvironVar(plasticChangesetEnvironVar);

            Assert.AreEqual(3, changesets.Count);

            AssertChangesetEquals(firstExpectedChangeset, changesets[0]);
            AssertChangesetEquals(secondExpectedChangeset, changesets[1]);
            AssertChangesetEquals(thirdExpectedChangeset, changesets[2]);
        }
Exemplo n.º 2
0
        public void ParseSingleChangesetSpec()
        {
            string plasticChangesetEnvironVar =
                "cs:19@br:/main/test2/@rep:codice@repserver:skull.mydomain.com:9095";

            Changeset expectedChangeset = new Changeset(
                19,
                "/main/test2/",
                "codice",
                "skull.mydomain.com:9095");

            List <Changeset> changesets =
                Changeset.ParsePlasticChangesetEnvironVar(plasticChangesetEnvironVar);

            Assert.AreEqual(1, changesets.Count);

            AssertChangesetEquals(expectedChangeset, changesets[0]);
        }
Exemplo n.º 3
0
        static void RunAfterCheckin(
            List <string> filteredRepos,
            List <string> dstServers,
            List <RepoMapping> mappings,
            string csetSpecs,
            ErrorEmailSender emailSender)
        {
            Logger.LogInfo("Running as after-checkin trigger...");

            List <Changeset> csets =
                Changeset.ParsePlasticChangesetEnvironVar(csetSpecs);

            List <Replica> pendingReplicas = new List <Replica>();

            foreach (Changeset cset in csets)
            {
                pendingReplicas.AddRange(
                    Replica.BuildPendingReplicas(
                        cset.BranchName,
                        cset.RepositoryName,
                        cset.ServerName,
                        filteredRepos,
                        dstServers,
                        mappings));
            }

            Logger.LogInfo(
                $"Found {pendingReplicas.Count} destinations to replicate to.");

            List <Replica> failedReplicas = new List <Replica>();

            foreach (Replica pendingReplica in pendingReplicas)
            {
                if (!Replicate(pendingReplica))
                {
                    failedReplicas.Add(pendingReplica);
                }
            }

            NotifyFailedReplicas(
                "after-checkin",
                failedReplicas,
                emailSender);
        }