+ 800 || 0.38 | 50
+ 1600 || 0.95 | 100
+ 3200 || 2.71 | 150
+ 6400 || 8.08 | 200
+ }
+
+ def 'Writing openroadm list data using saveListElements.'() {
+ given: 'an anchor and empty container node for openroadm'
+ cpsAnchorService.createAnchor(CPS_PERFORMANCE_TEST_DATASPACE, LARGE_SCHEMA_SET, WRITE_TEST_ANCHOR)
+ cpsDataService.saveData(CPS_PERFORMANCE_TEST_DATASPACE, WRITE_TEST_ANCHOR,
+ '{ "openroadm-devices": { "openroadm-device": []}}', now)
+ and: 'a list of device nodes to add'
+ def innerNode = readResourceDataFile('openroadm/innerNode.json')
+ def jsonListData = '{ "openroadm-device": [' +
+ (1..totalNodes).collect { innerNode.replace('NODE_ID_HERE', it.toString()) }.join(',') +
+ ']}'
+ when: 'device nodes are added'
+ resourceMeter.start()
+ cpsDataService.saveListElements(CPS_PERFORMANCE_TEST_DATASPACE, WRITE_TEST_ANCHOR, '/openroadm-devices', jsonListData, OffsetDateTime.now())
+ resourceMeter.stop()
+ then: 'the operation takes less than #expectedDuration and memory used is within limit'
+ recordAndAssertResourceUsage("Saving list of ${totalNodes} devices",
+ expectedDuration, resourceMeter.totalTimeInSeconds,
+ memoryLimit, resourceMeter.totalMemoryUsageInMB)
+ cleanup:
+ cpsAnchorService.deleteAnchor(CPS_PERFORMANCE_TEST_DATASPACE, WRITE_TEST_ANCHOR)
+ where:
+ totalNodes || expectedDuration | memoryLimit
+ 50 || 1.8 | 100
+ 100 || 3.93 | 200
+ 200 || 7.77 | 400
+ 400 || 16.59 | 500