Beispiel #1
0
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
Beispiel #2
0
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)