netscaler/ansible-collection-netscaleradc

[Bug]: unable to create servicegroup

pkodzis opened this issue · 2 comments

Summary

Ansible claims that I'm missing "CustomServerID" which is not expected in my case to use, and missing "serverName" that's defined in my playbook:

Reason:{'errorcode': 1093, 'message': 'Argument pre-requisite missing [CustomServerID, serverName]', 'severity': 'ERROR'}"

Issue Type

Bug Report

Component Name

netscaler.adc.servicegroup

Python Version

$ python --version # or python3 --version
3.9

Ansible Version

$ ansible --version

ansible [core 2.12.10]
  config file = None
  configured module search path = ['/home/pkodzis/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.9/dist-packages/ansible
  ansible collection location = /home/pkodzis/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.9.5 (default, Nov 18 2021, 16:00:48) [GCC 10.3.0]
  jinja version = 2.11.2
  libyaml = True
 
And:
ansible [core 2.15.6]
 config file = None
  configured module search path = ['/home/pkodzis/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/pkodzis/.local/lib/python3.9/site-packages/ansible
  ansible collection location = /home/pkodzis/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/pkodzis/.local/bin/ansible
  python version = 3.9.5 (default, Nov 18 2021, 16:00:48) [GCC 10.3.0] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True
 

Ansible Configuration

$ ansible-config dump --only-changed

netscaler.adc Collection Version

$ ansible-galaxy collection list netscaler.adc

# /home/pkodzis/.ansible/collections/ansible_collections
Collection    Version
------------- -------
netscaler.adc 2.0.3

Target NetScaler Version

> show ns version
13.1

Equivalent NetScaler CLI Command

bind sg1 server1 port
bind sg1 -monitorName monitor1

Steps to Reproduce

- hosts: "{{ 'ALL' }}"
  gather_facts: no
  vars:
    provider_defaults:
      nitro_protocol: https
      validate_certs: no
      partitionname: "{{ partitionname | default('DEV') }}"
  tasks:
    - name: login to NetScaler
      delegate_to: localhost
      netscaler.adc.login:
        nsip: "10.10.10.10"
        username: "{{ username }}"
        password: "{{ password }}"
        nitro_protocol: https
        validate_certs: no
      check_mode: false
      register: result

    - name: setup provider
      set_fact:
        provider:
          nitro_auth_token: "{{ result.sessionid }}"
          nsip: "{{ nsip }}"
          validate_certs: "{{ provider_defaults.validate_certs }}"
          partitionname: "{{ provider_defaults.partitionname }}"

    - name: switch to partition
      delegate_to: localhost
      my_citrix_adc_switch_partition:
        nsip: "{{ provider.nsip }}"
        nitro_auth_token: "{{ provider.nitro_auth_token | default(omit) }}"
        nitro_protocol: "{{ provider.nitro_protocol | default(omit) }}"
        validate_certs: "{{ provider.validate_certs | default(omit) }}"
        partitionname: "{{ provider.partitionname }}"
      check_mode: false

    - name: setup servers
      delegate_to: localhost
      netscaler.adc.server:
        nsip: "{{ provider.nsip }}"
        nitro_auth_token: "{{ provider.nitro_auth_token | default(omit) }}"
        nitro_protocol: "{{ provider.nitro_protocol | default(omit) }}"
        validate_certs: "{{ provider.validate_certs | default(omit) }}"
        state: present
        name: foo.example.com
        domain: foo.example.com


    - name: setup servicegroups
      delegate_to: localhost
      netscaler.adc.servicegroup:
        nsip: "{{ provider.nsip }}"
        nitro_auth_token: "{{ provider.nitro_auth_token | default(omit) }}"
        nitro_protocol: "{{ provider.nitro_protocol | default(omit) }}"
        validate_certs: "{{ provider.validate_certs | default(omit) }}"

        state: present

        servicegroupname: test1-1
        servicetype: TCP
        autoscale: DNS
        healthmonitor: "YES"
        servicegroup_servicegroupmember_binding:
          binding_members:
            - servername: foo.example.com
              port: 443
              ip: ""
              servicegroupname: test1-1

        servicegroup_lbmonitor_binding:
          binding_members:
            - monitor_name: monitor1
              servicegroupname: test1-1

Expected Results

created service group with bindings: member & monitor

Actual Results

    "msg": "ERROR: update_resource FAILED; status_code: 400; Reason:{'errorcode': 1093, 'message': 'Argument pre-requisite missing [CustomServerID, serverName]', 'severity': 'ERROR'}"

Additioinal Notes

No response

This issue is fixed in the latest release 2.1.0. Please check and update the issue accordingly.

ack - solved in 2.1.0 - thank you so much! :)