_node_add_with_peer_leaflist

        Low-level api: Apply delta child_other to child_self when child_self is
        the peer of child_other. Element child_self and child_other are
        leaf-list nodes. Element child_self will be modified during the process.
        RFC6020 section 7.7.7 is a reference of this method.

        Parameters
        ----------

        child_self : `Element`
            A child of a config node in a config tree.

        child_other : `Element`
            A child of a config node in another config tree. child_self is
            the peer of child_other.

        Returns
        -------

        None
            There is no return of this method.

def _node_add_with_peer_leaflist(self, child_self, child_other):
        '''_node_add_with_peer_leaflist

        Low-level api: Apply delta child_other to child_self when child_self is
        the peer of child_other. Element child_self and child_other are
        leaf-list nodes. Element child_self will be modified during the process.
        RFC6020 section 7.7.7 is a reference of this method.

        Parameters
        ----------

        child_self : `Element`
            A child of a config node in a config tree.

        child_other : `Element`
            A child of a config node in another config tree. child_self is
            the peer of child_other.

        Returns
        -------

        None
            There is no return of this method.
        '''

        parent_self = child_self.getparent()
        s_node = self.device.get_schema_node(child_self)
        if child_other.get(operation_tag) is None or \
           child_other.get(operation_tag) == 'merge' or \
           child_other.get(operation_tag) == 'replace':
            if s_node.get('ordered-by') == 'user' and \
               child_other.get(insert_tag) is not None:
                if child_other.get(insert_tag) == 'first':
                    scope = parent_self.getchildren()
                    siblings = self._get_sequence(scope, child_other.tag,
                                                  parent_self)
                    if siblings[0] != child_self:
                        siblings[0].addprevious(child_self)
                elif child_other.get(insert_tag) == 'last':
                    scope = parent_self.getchildren()
                    siblings = self._get_sequence(scope, child_other.tag,
                                                  parent_self)
                    if siblings[-1] != child_self:
                        siblings[-1].addnext(child_self)
                elif child_other.get(insert_tag) == 'before':
                    if child_other.get(value_tag) is None:
                        _inserterror('before',
                                     self.device.get_xpath(child_other),
                                     'value')
                    siblings = parent_self.findall(child_other.tag)
                    sibling = [s for s in siblings
                               if s.text == child_other.get(value_tag)]
                    if not sibling:
                        path = self.device.get_xpath(child_other)
                        value = child_other.get(value_tag)
                        _inserterror('before', path, 'value', value)
                    if sibling[0] != child_self:
                        sibling[0].addprevious(child_self)
                elif child_other.get(insert_tag) == 'after':
                    if child_other.get(value_tag) is None:
                        _inserterror('after',
                                     self.device.get_xpath(child_other),
                                     'value')
                    siblings = parent_self.findall(child_other.tag)
                    sibling = [s for s in siblings
                               if s.text == child_other.get(value_tag)]
                    if not sibling:
                        path = self.device.get_xpath(child_other)
                        value = child_other.get(value_tag)
                        _inserterror('after', path, 'value', value)
                    if sibling[0] != child_self:
                        sibling[0].addnext(child_self)
        elif child_other.get(operation_tag) == 'create':
            raise ConfigDeltaError('data-exists: try to create node {} but ' \
                                   'it already exists' \
                                   .format(self.device.get_xpath(child_other)))
        elif child_other.get(operation_tag) == 'delete' or \
             child_other.get(operation_tag) == 'remove':
            parent_self.remove(child_self)
        else:
            raise ConfigDeltaError("unknown operation: node {} contains " \
                                   "operation '{}'" \
                                   .format(self.device.get_xpath(child_other),
                                           child_other.get(operation_tag)))