Code Duplication    Length = 24-27 lines in 2 locations

main.py 2 locations

@@ 406-432 (lines=27) @@
403
                    f"Analyze the error and you'll need to redeploy EVC {evc_id} later"
404
                )
405
406
    @alisten_to("kytos/mef_eline.error_redeploy_link_down")
407
    async def on_evc_error_redeployed_link_down(self, event: KytosEvent) -> None:
408
        """On EVC error_redeploy_link_down, this is supposed to happen when
409
        a path isn't when mef_eline handles a link down."""
410
        content = event.content
411
        if (
412
            content["enabled"]
413
            and "metadata" in content
414
            and "telemetry" in content["metadata"]
415
            and content["metadata"]["telemetry"]["enabled"]
416
        ):
417
            metadata = {
418
                "telemetry": {
419
                    "enabled": True,
420
                    "status": "DOWN",
421
                    "status_reason": ["redeployed_link_down_no_path"],
422
                    "status_updated_at": datetime.utcnow().strftime(
423
                        "%Y-%m-%dT%H:%M:%S"
424
                    ),
425
                }
426
            }
427
            evc_id = content["evc_id"]
428
            evcs = {evc_id: content}
429
            log.info(
430
                f"Handling mef_eline.redeployed_link_down_no_path on EVC id: {evc_id}"
431
            )
432
            await self.int_manager.remove_int_flows(evcs, metadata, force=True)
433
434
    @alisten_to("kytos/topology.link_down")
435
    async def on_link_down(self, event):
@@ 359-382 (lines=24) @@
356
                f"and you'll need to enable or redeploy EVC {evc_id} later"
357
            )
358
359
    @alisten_to("kytos/mef_eline.undeployed")
360
    async def on_evc_undeployed(self, event: KytosEvent) -> None:
361
        """On EVC undeployed."""
362
        content = event.content
363
        if (
364
            not content["enabled"]
365
            and "metadata" in content
366
            and "telemetry" in content["metadata"]
367
            and content["metadata"]["telemetry"]["enabled"]
368
        ):
369
            metadata = {
370
                "telemetry": {
371
                    "enabled": True,
372
                    "status": "DOWN",
373
                    "status_reason": ["undeployed"],
374
                    "status_updated_at": datetime.utcnow().strftime(
375
                        "%Y-%m-%dT%H:%M:%S"
376
                    ),
377
                }
378
            }
379
            evc_id = content["evc_id"]
380
            evcs = {evc_id: content}
381
            log.info(f"Handling mef_eline.undeployed on EVC id: {evc_id}")
382
            await self.int_manager.remove_int_flows(evcs, metadata, force=True)
383
384
    @alisten_to("kytos/mef_eline.(redeployed_link_down|redeployed_link_up)")
385
    async def on_evc_redeployed_link(self, event: KytosEvent) -> None: