def _purge_attribs(self, intf):
        """ The command generator for purging attributes
        :rtype: A list
        :returns: the commands necessary to purge attributes
        """
        commands = []
        have_copy = deepcopy(intf)
        members = have_copy.pop('members', [])

        to_delete = dict_delete(have_copy,
                                remove_empties({'name': have_copy['name']}))
        if to_delete:
            for key, value in iteritems(flatten_dict(
                    remove_empties(to_delete))):
                commands.append(
                    self._compute_commands(key=key, value=value, remove=True))

        if commands:
            pad_commands(commands, intf['name'])

        if members:
            members = param_list_to_dict(deepcopy(members),
                                         unique_key='member')
            for key in members:
                member_cmd = ['no bundle id']
                pad_commands(member_cmd, key)
                commands.extend(member_cmd)

        return commands
Beispiel #2
0
    def _state_deleted(self, want, have):
        """ The command generator when state is deleted

        :rtype: A list
        :returns: the commands necessary to remove the current configuration
                  of the provided objects
        """
        commands = []
        for key, value in iteritems(flatten_dict(dict_delete(have, remove_empties(want)))):
            cmd = self._compute_commands(key, value, remove=True)
            if cmd:
                commands.append(cmd)

        return commands
Beispiel #3
0
    def _state_deleted(want, have):
        """ The command generator when state is deleted

        :rtype: A list
        :returns: the commands necessary to remove the current configuration
                  of the provided objects
        """
        commands = []

        for key, value in iteritems(
                flatten_dict(dict_delete(have, remove_empties(want)))):
            commands.append(
                Lacp_interfaces._compute_commands(key, value, remove=True))

        if commands:
            pad_commands(commands, have['name'])

        return commands
    def _render_bundle_del_commands(self, want, have):
        """ The command generator for delete commands
            w.r.t bundles
        :rtype: A list
        :returns: the commands necessary to update member
                  interfaces
        """
        commands = []
        if not want:
            want = {'name': have['name']}

        want_copy = deepcopy(want)
        have_copy = deepcopy(have)
        want_copy.pop('members', [])
        have_copy.pop('members', [])

        to_delete = dict_delete(have_copy, remove_empties(want_copy))
        if to_delete:
            for key, value in iteritems(flatten_dict(
                    remove_empties(to_delete))):
                commands.append(
                    self._compute_commands(key=key, value=value, remove=True))

        return commands