text: import json
  from synchronizers.metronetwork.invokers.invoker import Invoker
  from services.metronetwork.models import NetworkEdgePort
  
  
  class NetworkEdgeToEdgePointInvoker(Invoker):
      def __init__(self, **args):
          pass
  
      # Method for handline pre save semantics
      #      content here would be model specific but could include handling Many-to-Many relationship
      #      creation - which must occur post save
      #
      # obj     - Whatever obj was just saved
      # returns - None - this is a pure invoke() call, return type is None
      #
      def presave(self, obj):
          # Now that the Ports are created - get a proper reference to them and update the
          # src and dst fields
          if hasattr(obj, 'uni1_createbuffer'):
              uni1port = NetworkEdgePort.objects.get(pid=obj.uni1_createbuffer)
              uni2port = NetworkEdgePort.objects.get(pid=obj.uni2_createbuffer)
              obj.uni1 = uni1port
              obj.uni2 = uni2port
  
      # Method for handline post save semantics
      #      content here would be model specific but could include handling Many-to-Many relationship
      #      creation - which must occur post save
      #
      # obj     - Whatever obj was just saved
      # returns - N/A - this is a pure invoke() call
      #
      def postsave(self, obj):
          pass
  