'Parses the arguments to generate a list of hosts and meta_hosts
A host is a regular name, a meta_host is n*label or *label.
These can be mixed on the CLI, and separated by either commas or
spaces, e.g.: 5*Machine_Label host0 5*Machine_Label2,host2'

def _parse_hosts(self, args):

    hosts = []
    meta_hosts = []
    for arg in args:
        for host in arg.split(','):
            if re.match('^[0-9]+[*]', host):
                (num, host) = host.split('*', 1)
                meta_hosts += (int(num) * self._parse_meta_host_labels(host))
            elif re.match('^[*](\\w*)', host):
                meta_hosts += self._parse_meta_host_labels(re.match('^[*](\\w*)', host).group(1))
            elif ((host != '') and (host not in hosts)):
                hosts.append(host)
    return (hosts, meta_hosts)
