+ @rift.test.dts.async_test
+ def test_vnfr_add_delete(self):
+ yield from self._test_publish("SUM", 3)
+
+ self.msg_gen = MonParamMsgGenerator(5)
+ store = self.setup_mock_store(aggregation_type="SUM",
+ monps=self.msg_gen.mon_param_msgs)
+ new_vnf_handler = vnf_mon_params.VnfMonitorDtsHandler(
+ self.log, self.dts, self.loop, 2, "2.2.2.1",
+ self.msg_gen.mon_param_msgs, self.msg_gen.endpoint_msgs
+ )
+ yield from new_vnf_handler.register()
+
+ # add a new vnfr
+ new_vnfr = store.get_vnfr()
+ new_vnfr.id = '2'
+ yield from self.nsr_handler.update([new_vnfr])
+
+ # check if the newly created one has been added in the model
+ poller = self.nsr_handler.mon_params_pollers[0]
+ assert len(poller.monp.nsr_mon_param_msg.vnfr_mon_param_ref) == 4
+ assert len(poller.subscribers) == 4
+ assert len(poller.monp.vnfr_monparams) == 4
+
+ # publish new values
+ yield from asyncio.sleep(2, loop=self.loop)
+ self.add_param_to_publisher(new_vnf_handler)
+ self.add_param_to_publisher(new_vnf_handler)
+ yield from asyncio.sleep(3, loop=self.loop)
+
+ itr = yield from self.dts.query_read(self.nsr_handler.xpath(),
+ rwdts.XactFlag.MERGE)
+
+ values = []
+ for res in itr:
+ result = yield from res
+ nsr_monp = result.result
+ values.append(nsr_monp.value_integer)
+
+ assert values[0] == 6
+
+ # delete the VNFR
+ yield from self.nsr_handler.delete([new_vnfr])
+
+ # check if the newly created one has been added in the model
+ poller = self.nsr_handler.mon_params_pollers[0]
+ assert len(poller.monp.vnfr_monparams) == 2
+ assert len(poller.monp.nsr_mon_param_msg.vnfr_mon_param_ref) == 2
+ assert len(poller.subscribers) == 2
+
+ self.msg_gen = MonParamMsgGenerator(5)
+ self.add_param_to_publisher(self.vnf_handler)
+ self.add_param_to_publisher(self.vnf_handler)
+ yield from asyncio.sleep(2, loop=self.loop)
+
+ itr = yield from self.dts.query_read(self.nsr_handler.xpath(),
+ rwdts.XactFlag.MERGE)
+ values = []
+ for res in itr:
+ result = yield from res
+ nsr_monp = result.result
+ values.append(nsr_monp.value_integer)
+
+ assert values[0] == 3
+