Пример #1
0
 def test_not_started(self):
     migration = self.mox.CreateMock(v5.orm.Migration)
     migration.migration_id = "MID"
     migration.type = "TYPE"
     migration.source_shard = "src"
     migration.destination_shard = "dst"
     migration.namespace = "ns"
     migration.status = "not_started"
     migration.partition_val = "TID"
     migration.verification_status = ""
     migration.start_time = 1234
     migration.end_time = None
     v5.orm.Migration.get(self.redis, migration_id="MID").AndReturn(migration)
     v5.shinkansen.status.get_migration_status(migration_id="MID").AndReturn(
         v5.shinkansen.status.MigrationStatus(
             "not_started", "", {"ok": 1, "not_ok": 2}, {"ok": 2, "not_ok": 1}, {"ok": 1, "not_ok": 3}
         )
     )
     self.mox.ReplayAll()
     self.assertEqual(
         v5.get_migration_status("MID"),
         {
             "migration_id": "MID",
             "type": "TYPE",
             "source": "src",
             "destination": "dst",
             "namespace": "ns",
             "status": "not_started",
             "status_code": 0,
             "partition_val": "TID",
             "verification_status": "",
             "computed_status": "not_started",
             "computed_status_code": 0,
             "computed_verification_status": "",
             "start_time": 1234,
             "end_time": None,
             "chunks_not_ok": 2,
             "chunks_ok": 1,
             "table_verifications_not_ok": 3,
             "table_verifications_ok": 1,
             "tables_not_ok": 1,
             "tables_ok": 2,
         },
     )
Пример #2
0
    def test_container(self):
        migration = self.mox.CreateMock(v5.orm.Migration)
        migration.migration_id = "MID"
        migration.type = v5.orm.MigrationType.COMPLETE
        migration.source_shard = "src"
        migration.destination_shard = "dst"
        migration.namespace = "ns"
        migration.status = "in_progress"
        migration.partition_val = "TID"
        migration.verification_status = ""
        migration.start_time = 1234
        migration.end_time = None

        sub1 = self.mox.CreateMock(v5.orm.Migration)
        sub1.migration_id = "MID1"
        sub1.type = v5.orm.MigrationType.FULL
        sub1.source_shard = "src"
        sub1.destination_shard = "dst"
        sub1.namespace = "ns"
        sub1.status = "in_progress"
        sub1.partition_val = "TID"
        sub1.verification_status = ""
        sub1.start_time = 1234
        sub1.end_time = None

        sub2 = self.mox.CreateMock(v5.orm.Migration)
        sub2.migration_id = "MID2"
        sub2.type = v5.orm.MigrationType.AUTODELTA
        sub2.source_shard = "src"
        sub2.destination_shard = "dst"
        sub2.namespace = "ns"
        sub2.status = "in_progress"
        sub2.partition_val = "TID"
        sub2.verification_status = ""
        sub2.start_time = 1234
        sub2.end_time = None
        v5.orm.Migration.get(self.redis, migration_id="MID").AndReturn(migration)
        v5.shinkansen.status.get_migration_status(migration_id="MID").AndReturn(
            v5.shinkansen.status.MigrationStatus("in_progress", "", {}, {}, {})
        )
        migration.get_submigrations().AndReturn([sub1, sub2])
        v5.shinkansen.status.get_migration_status(migration_id="MID1").AndReturn(
            v5.shinkansen.status.MigrationStatus("in_progress", "", {}, {}, {})
        )
        v5.shinkansen.status.get_migration_status(migration_id="MID2").AndReturn(
            v5.shinkansen.status.MigrationStatus("in_progress", "", {}, {}, {})
        )
        self.maxDiff = None
        sub2.get_submigrations().AndReturn([])
        self.mox.ReplayAll()
        self.assertEqual(
            v5.get_migration_status("MID"),
            {
                "migration_id": "MID",
                "type": "complete",
                "source": "src",
                "destination": "dst",
                "namespace": "ns",
                "status": "in_progress",
                "status_code": 2,
                "partition_val": "TID",
                "verification_status": "",
                "computed_status": "in_progress",
                "computed_status_code": 2,
                "computed_verification_status": "",
                "start_time": 1234,
                "end_time": None,
                "links": [{"href": "/v5/migration/MID/tables", "method": "GET", "rel": "tables"}],
                "submigrations": [
                    {
                        "computed_status": "in_progress",
                        "computed_status_code": 2,
                        "computed_verification_status": "",
                        "destination": "dst",
                        "end_time": None,
                        "links": [{"href": "/v5/migration/MID1/tables", "method": "GET", "rel": "tables"}],
                        "migration_id": "MID1",
                        "namespace": "ns",
                        "source": "src",
                        "start_time": 1234,
                        "status": "in_progress",
                        "status_code": 2,
                        "partition_val": "TID",
                        "type": "full",
                        "verification_status": "",
                    },
                    {
                        "computed_status": "in_progress",
                        "computed_status_code": 2,
                        "computed_verification_status": "",
                        "destination": "dst",
                        "end_time": None,
                        "links": [{"href": "/v5/migration/MID2/tables", "method": "GET", "rel": "tables"}],
                        "migration_id": "MID2",
                        "namespace": "ns",
                        "source": "src",
                        "start_time": 1234,
                        "status": "in_progress",
                        "status_code": 2,
                        "submigrations": [],
                        "partition_val": "TID",
                        "type": "autodelta",
                        "verification_status": "",
                    },
                ],
            },
        )
Пример #3
0
 def test_None(self):
     v5.orm.Migration.get(self.redis, migration_id="MID").AndReturn(None)
     self.mox.ReplayAll()
     self.assertIsNone(v5.get_migration_status("MID"))