'Adds or removes things (users, hosts, etc.) from a topic, e.g.:
Add hosts to labels:
self.topic = \'label\'
self.op_action = \'add\'
self.add_remove_things = {\'users\': \'user\', \'hosts\': \'host\'}
self.get_items() = The labels/ACLs that the hosts
should be added to.
Returns:
A dictionary of lists of things added successfully using the same
keys as self.add_remove_things.'

def execute(self):

    oks = {}
    for item in self.get_items():
        plurals = reversed(sorted(self.add_remove_things.keys()))
        for what in plurals:
            try:
                self._add_remove_uh_to_topic(item, what)
            except AttributeError:
                pass
            except topic_common.CliError as err:
                pass
            else:
                oks.setdefault(item, []).append(what)
    results = {}
    for thing in self.add_remove_things:
        things_ok = [item for (item, what) in oks.items() if (thing in what)]
        results[thing] = things_ok
    return results
