def default_lb_vserver_identical(client, module):
    d = get_default_lb_vserver(client, module)
    configured = ConfigProxy(actual=csvserver_lbvserver_binding(),
                             client=client,
                             readwrite_attrs=[
                                 'name',
                                 'lbvserver',
                             ],
                             attribute_values_dict={
                                 'name': module.params['name'],
                                 'lbvserver': module.params['lbvserver'],
                             })
    log('default lb vserver %s' % ((d.name, d.lbvserver), ))
    if d.name is None and module.params['lbvserver'] is None:
        log('Default lb vserver identical missing')
        return True
    elif d.name is not None and module.params['lbvserver'] is None:
        log('Default lb vserver needs removing')
        return False
    elif configured.has_equal_attributes(d):
        log('Default lb vserver identical')
        return True
    else:
        log('Default lb vserver not identical')
        return False
def sync_default_lb_vserver(client, module):
    d = get_default_lb_vserver(client, module)

    if module.params['lbvserver'] is not None:
        configured = ConfigProxy(actual=csvserver_lbvserver_binding(),
                                 client=client,
                                 readwrite_attrs=[
                                     'name',
                                     'lbvserver',
                                 ],
                                 attribute_values_dict={
                                     'name': module.params['name'],
                                     'lbvserver': module.params['lbvserver'],
                                 })

        if not configured.has_equal_attributes(d):
            if d.name is not None:
                log('Deleting default lb vserver %s' % d.lbvserver)
                csvserver_lbvserver_binding.delete(client, d)
            log('Adding default lb vserver %s' % configured.lbvserver)
            configured.add()
    else:
        if d.name is not None:
            log('Deleting default lb vserver %s' % d.lbvserver)
            csvserver_lbvserver_binding.delete(client, d)
def sync_default_lb_vserver(client, module):
    d = get_default_lb_vserver(client, module)

    if module.params['lbvserver'] is not None:
        configured = ConfigProxy(
            actual=csvserver_lbvserver_binding(),
            client=client,
            readwrite_attrs=[
                'name',
                'lbvserver',
            ],
            attribute_values_dict={
                'name': module.params['name'],
                'lbvserver': module.params['lbvserver'],
            }
        )

        if not configured.has_equal_attributes(d):
            if d.name is not None:
                log('Deleting default lb vserver %s' % d.lbvserver)
                csvserver_lbvserver_binding.delete(client, d)
            log('Adding default lb vserver %s' % configured.lbvserver)
            configured.add()
    else:
        if d.name is not None:
            log('Deleting default lb vserver %s' % d.lbvserver)
            csvserver_lbvserver_binding.delete(client, d)
def default_lb_vserver_identical(client, module):
    d = get_default_lb_vserver(client, module)
    configured = ConfigProxy(
        actual=csvserver_lbvserver_binding(),
        client=client,
        readwrite_attrs=[
            'name',
            'lbvserver',
        ],
        attribute_values_dict={
            'name': module.params['name'],
            'lbvserver': module.params['lbvserver'],
        }
    )
    log('default lb vserver %s' % ((d.name, d.lbvserver),))
    if d.name is None and module.params['lbvserver'] is None:
        log('Default lb vserver identical missing')
        return True
    elif d.name is not None and module.params['lbvserver'] is None:
        log('Default lb vserver needs removing')
        return False
    elif configured.has_equal_attributes(d):
        log('Default lb vserver identical')
        return True
    else:
        log('Default lb vserver not identical')
        return False
def get_default_lb_vserver(client, module):
    try:
        default_lb_vserver = csvserver_lbvserver_binding.get(client, module.params['name'])
        return default_lb_vserver[0]
    except nitro_exception as e:
        if e.errorcode == 258:
            return csvserver_lbvserver_binding()
        else:
            raise
def get_default_lb_vserver(client, module):
    try:
        default_lb_vserver = csvserver_lbvserver_binding.get(client, module.params['name'])
        return default_lb_vserver[0]
    except nitro_exception as e:
        if e.errorcode == 258:
            return csvserver_lbvserver_binding()
        else:
            raise
def get_default_lb_vserver(client, module):
    try:
        default_lb_vserver = csvserver_lbvserver_binding.get(client, module.params['name'])
        if default_lb_vserver[0].name is None or default_lb_vserver[0].name == '':
            log('Got invalid default lb vserver')
            return None
        else:
            log('Got default lb vserver with name %s' % default_lb_vserver[0].name)
            return default_lb_vserver[0]
    except nitro_exception as e:
        if e.errorcode == 258:
            log('Returning on nitro_exception 258')
            return csvserver_lbvserver_binding()
        else:
            raise