Code Duplication    Length = 19-21 lines in 2 locations

main.py 2 locations

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