Skip to content

Commit 01a0026

Browse files
author
Chris Davis
committed
[api][dr] OPSAPS-46448 add missing fields in DR structures
add raiseSnapshotDiffFailures, remainingTime, throughput, estimatedCompletionTime runInvalidateMetadata, displayName, and description to both api and unit test case Testing done: Used steps described in OPSAPS-46440 to verify against 5.14.4 and 5.10.1 clusters ran "make test" (cherry picked from commit 235437b151eaab77d89c5d0e160e2286284f5138)
1 parent af90797 commit 01a0026

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

python/src/cm_api/endpoints/types.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,7 @@ class ApiHdfsReplicationArguments(BaseApiObject):
718718
'replicationStrategy' : None,
719719
'preserveXAttrs' : None,
720720
'exclusionFilters' : None,
721+
'raiseSnapshotDiffFailures' : None,
721722
}
722723

723724
class ApiHdfsCloudReplicationArguments(ApiHdfsReplicationArguments):
@@ -755,6 +756,9 @@ class ApiHdfsReplicationResult(BaseApiObject):
755756
'failedFiles' : ROAttr(),
756757
'runAsUser' : ROAttr(),
757758
'runOnSourceAsUser' : ROAttr(),
759+
'remainingTime' : ROAttr(),
760+
'throughput' : ROAttr(),
761+
'estimatedCompletionTime' : ROAttr(),
758762
}
759763

760764
class ApiHiveTable(BaseApiObject):
@@ -794,7 +798,8 @@ class ApiHiveReplicationArguments(BaseApiObject):
794798
'hdfsArguments' : Attr(ApiHdfsReplicationArguments),
795799
'dryRun' : None,
796800
'replicateImpalaMetadata' : None,
797-
'numThreads': None,
801+
'runInvalidateMetadata' : None,
802+
'numThreads' : None,
798803
}
799804

800805
class ApiHiveCloudReplicationArguments(ApiHiveReplicationArguments):
@@ -869,6 +874,8 @@ class ApiReplicationSchedule(BaseApiObject):
869874
'alertOnFail' : None,
870875
'alertOnAbort' : None,
871876
'id' : ROAttr(),
877+
'displayName' : ROAttr(),
878+
'description' : ROAttr(),
872879
'nextRun' : ROAttr(datetime.datetime),
873880
'history' : ROAttr(ApiReplicationCommand),
874881
'active' : None,

python/src/cm_api_tests/test_replication.py

+19-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ def test_hdfs_arguments(self):
5252
"logPath" : "/tmp",
5353
"bandwidthPerMap" : "20",
5454
"preserveXAttrs" : false,
55-
"exclusionFilters" : ["ac"]
55+
"exclusionFilters" : ["ac"],
56+
"raiseSnapshotDiffFailures" : false
5657
}'''
5758
args = utils.deserialize(RAW, ApiHdfsReplicationArguments)
5859
self.assertEquals('vst2', args.sourceService.peerName)
@@ -73,6 +74,7 @@ def test_hdfs_arguments(self):
7374
self.assertFalse(args.skipTrash)
7475
self.assertEquals('DYNAMIC', args.replicationStrategy)
7576
self.assertFalse(args.preserveXAttrs)
77+
self.assertFalse(args.raiseSnapshotDiffFailures)
7678

7779
def test_hdfs_cloud_arguments(self):
7880
RAW = '''{
@@ -298,6 +300,8 @@ def test_hive_results(self):
298300
def test_schedule(self):
299301
RAW = '''{
300302
"id" : 39,
303+
"displayName" : "testrun",
304+
"description" : "a sample description",
301305
"startTime" : "2012-12-10T23:11:31.041Z",
302306
"interval" : 1,
303307
"intervalUnit" : "DAY",
@@ -342,6 +346,9 @@ def test_schedule(self):
342346
"numFilesCopyFailed" : 0,
343347
"numBytesCopyFailed" : 0,
344348
"dryRun" : false,
349+
"remainingTime" : 10000,
350+
"throughput" : 5.10,
351+
"estimatedCompletionTime" : "2018-06-11T18:22:25.123Z",
345352
"failedFiles": [ ]
346353
},
347354
"dryRun" : false,
@@ -371,23 +378,34 @@ def test_schedule(self):
371378
"skipTrash" : false,
372379
"preserveXAttrs" : false
373380
},
381+
"runInvalidateMetadata" : true,
382+
"numThreads" : 4,
374383
"dryRun" : false
375384
}
376385
}'''
377386
sched = utils.deserialize(RAW, ApiReplicationSchedule)
378387
self.assertEqual(39, sched.id)
388+
self.assertEqual("testrun", sched.displayName)
389+
self.assertEqual("a sample description", sched.description)
379390
self.assertEqual(self._parse_time("2012-12-10T23:11:31.041Z"), sched.startTime)
380391
self.assertEqual('DAY', sched.intervalUnit)
381392
self.assertEqual(1, sched.interval)
382393
self.assertFalse(sched.paused)
383394
self.assertEqual(self._parse_time("2013-01-15T23:11:31.041Z"), sched.nextRun)
384395
self.assertFalse(sched.alertOnStart)
385396
self.assertIsNotNone(sched.hiveArguments)
397+
self.assertTrue(sched.hiveArguments.runInvalidateMetadata)
398+
self.assertEqual(4, sched.hiveArguments.numThreads)
386399

387400
self.assertEqual(1, len(sched.history))
388401
self.assertIsInstance(sched.history[0], ApiReplicationCommand)
389402
self.assertEqual('default', sched.history[0].hiveResult.tables[0].database)
390403
self.assertEqual(92158, sched.history[0].hiveResult.dataReplicationResult.numBytesSkipped)
404+
self.assertEqual(10000, sched.history[0].hiveResult.dataReplicationResult.remainingTime)
405+
self.assertEqual(5.10, sched.history[0].hiveResult.dataReplicationResult.throughput)
406+
self.assertEqual("2018-06-11T18:22:25.123Z",
407+
sched.history[0].hiveResult.dataReplicationResult.estimatedCompletionTime
408+
)
391409
self.assertEqual(3, sched.history[0].hiveResult.tableCount)
392410
self.assertEqual(0, sched.history[0].hiveResult.errorCount)
393411

0 commit comments

Comments
 (0)