def servicemembers_identical(client, module): log('servicemembers_identical') try: # count() raises nitro exception instead of returning 0 count = servicegroup_servicegroupmember_binding.count( client, module.params['servicegroupname']) if count > 0: servicegroup_members = servicegroup_servicegroupmember_binding.get( client, module.params['servicegroupname']) else: servicegroup_members = [] except nitro_exception as e: if e.errorcode == 258: servicegroup_members = [] else: raise log('servicemembers %s' % servicegroup_members) module_servicegroups = get_configured_service_members(client, module) log('Number of service group members %s' % len(servicegroup_members)) if len(servicegroup_members) != len(module_servicegroups): return False # Fallthrough to member evaluation identical_count = 0 for actual_member in servicegroup_members: for member in module_servicegroups: if member.has_equal_attributes(actual_member): identical_count += 1 break if identical_count != len(servicegroup_members): return False # Fallthrough to success return True
def get_actual_service_members(client, module): try: # count() raises nitro exception instead of returning 0 count = servicegroup_servicegroupmember_binding.count(client, module.params['servicegroupname']) if count > 0: servicegroup_members = servicegroup_servicegroupmember_binding.get(client, module.params['servicegroupname']) else: servicegroup_members = [] except nitro_exception as e: if e.errorcode == 258: servicegroup_members = [] else: raise return servicegroup_members
def delete_all_servicegroup_members(): log('delete_all_servicegroup_members') if servicegroup_servicegroupmember_binding.count( client, module.params['servicegroupname']) == 0: return service_group_members = servicegroup_servicegroupmember_binding.get( client, module.params['servicegroupname']) log('len %s' % len(service_group_members)) log('count %s' % servicegroup_servicegroupmember_binding.count( client, module.params['servicegroupname'])) for member in service_group_members: log('%s' % dir(member)) log('ip %s' % member.ip) log('servername %s' % member.servername) if all([ hasattr(member, 'ip'), member.ip is not None, hasattr(member, 'servername'), member.servername is not None, ]): member.ip = None member.servicegroupname = module.params['servicegroupname'] servicegroup_servicegroupmember_binding.delete(client, member)