code: def diff_config(self, second_host, mode='stanza'):
          
          second_conn = manager.connect(
              host=second_host,
              port=self.port,
              username=self.username,
              password=self.password,
              timeout=self.connect_timeout,
              device_params={'name': 'junos'},
              hostkey_verify=False
          )
  
          command = 'show configuration'
          if mode == 'set':
              command += ' | display set'
  
          # get the raw xml config
          config1 = self._session.command(command, format='text')
          # for each /configuration-output snippet, turn it to text and join them
          config1 = ''.join([snippet.text.lstrip('\n') for snippet in
                            config1.xpath('//configuration-output')])
  
          config2 = second_conn.command(command, format='text')
          config2 = ''.join([snippet.text.lstrip('\n') for snippet in
                            config2.xpath('//configuration-output')])
  
          return difflib.unified_diff(config1.splitlines(), config2.splitlines(),
                                      self.host, second_host)
docs: Generate configuration differences with a second device.
  
          Purpose: Open a second ncclient.manager.Manager with second_host, and
                 | and pull the configuration from it. We then use difflib to
                 | get the delta between the two, and yield the results.
  
          @param second_host: the IP or hostname of the second device to
                            | compare against.
          @type second_host: str
          @param mode: string to signify 'set' mode or 'stanza' mode.
          @type mode: str
  
          @returns: iterable of strings
          @rtype: str