Code Duplication    Length = 19-21 lines in 2 locations

main.py 2 locations

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