Code Duplication    Length = 19-21 lines in 2 locations

main.py 2 locations

@@ 428-448 (lines=21) @@
425
        self.notify_metadata_changes(interface, 'added')
426
        return jsonify("Operation successful"), 201
427
428
    @rest('v3/interfaces/<interface_id>/metadata/<key>', methods=['DELETE'])
429
    def delete_interface_metadata(self, interface_id, key):
430
        """Delete metadata from an interface."""
431
        switch_id = ":".join(interface_id.split(":")[:-1])
432
        interface_number = int(interface_id.split(":")[-1])
433
434
        try:
435
            switch = self.controller.switches[switch_id]
436
        except KeyError:
437
            return jsonify("Switch not found"), 404
438
439
        try:
440
            interface = switch.interfaces[interface_number]
441
        except KeyError:
442
            return jsonify("Interface not found"), 404
443
444
        if interface.remove_metadata(key) is False:
445
            return jsonify("Metadata not found"), 404
446
447
        self.notify_metadata_changes(interface, 'removed')
448
        return jsonify("Operation successful"), 200
449
450
    # Link related methods
451
    @rest('v3/links')
@@ 408-426 (lines=19) @@
405
406
        return jsonify({"metadata": interface.metadata}), 200
407
408
    @rest('v3/interfaces/<interface_id>/metadata', methods=['POST'])
409
    def add_interface_metadata(self, interface_id):
410
        """Add metadata to an interface."""
411
        metadata = self._get_metadata()
412
        switch_id = ":".join(interface_id.split(":")[:-1])
413
        interface_number = int(interface_id.split(":")[-1])
414
        try:
415
            switch = self.controller.switches[switch_id]
416
        except KeyError:
417
            return jsonify("Switch not found"), 404
418
419
        try:
420
            interface = switch.interfaces[interface_number]
421
        except KeyError:
422
            return jsonify("Interface not found"), 404
423
424
        interface.extend_metadata(metadata)
425
        self.notify_metadata_changes(interface, 'added')
426
        return jsonify("Operation successful"), 201
427
428
    @rest('v3/interfaces/<interface_id>/metadata/<key>', methods=['DELETE'])
429
    def delete_interface_metadata(self, interface_id, key):