diff --git a/plugins/inventory/float.py b/plugins/inventory/float.py index 1e29228a735528e5aa5b1cd6b77d30af2c01a92d..a68e19f3ee156da0fa1932e1952cae3c7d65f382 100644 --- a/plugins/inventory/float.py +++ b/plugins/inventory/float.py @@ -522,7 +522,9 @@ class Assignments(object): service = services[service_name] available_hosts = cls._available_hosts(service, group_map) num_instances = service.get('num_instances', 'all') - if num_instances == 'all': + if service.get('disabled'): + service_hosts = [] + elif num_instances == 'all': service_hosts = sorted(available_hosts) else: service_hosts = sorted(_binpack( @@ -530,7 +532,7 @@ class Assignments(object): service_hosts_map[service_name] = service_hosts for h in service_hosts: host_occupation[h] += 1 - if service.get('master_election'): + if service.get('master_election') and not service.get('disabled'): if 'master_scheduling_group' in service: available_hosts = set(available_hosts).intersection( set(group_map[service['master_scheduling_group']]))