ansible-collections / vmware.vmware_rest

Ansible Collection for VMWare (REST modules)
https://ansible-collections.github.io/vmware.vmware_rest/
GNU General Public License v3.0
132 stars 65 forks source link

vmon api service deprecated #501

Open MallocArray opened 4 months ago

MallocArray commented 4 months ago
SUMMARY

vCenter 8.0 U3 appears to have fully depreciated the API at /rest/appliance/vmon/service https://knowledge.broadcom.com/external/article?articleNumber=321044

Was working as expected in 8.0 U2. Needing to move to vmware.vmware_rest.appliance_services, but the depreciation should be specifically called out on the appliance_vmon_service component

ISSUE TYPE
COMPONENT NAME

vmware.vmware_rest.appliance_vmon_service

ANSIBLE VERSION
ansible [core 2.16.6]
  config file = /root/repos/Ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /root/repos/Ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.1.3
  libyaml = True
COLLECTION VERSION
Collection         Version
------------------ -------
vmware.vmware_rest 2.3.1  
CONFIGURATION
COLLECTIONS_PATHS(/root/repos/Ansible/ansible.cfg) = ['/root/repos/Ansible/collections']
CONFIG_FILE() = /root/repos/Ansible/ansible.cfg
DEFAULT_FILTER_PLUGIN_PATH(/root/repos/Ansible/ansible.cfg) = ['/root/repos/Ansible/custom_filters']
DEFAULT_ROLES_PATH(/root/repos/Ansible/ansible.cfg) = ['/root/repos/Ansible/roles']
DEFAULT_STRATEGY_PLUGIN_PATH(/root/repos/Ansible/ansible.cfg) = ['/root/repos/Ansible/custom_plugins/mitogen-0.3.4/ansible_mitogen/plugins/strategy']
DEFAULT_TIMEOUT(/root/repos/Ansible/ansible.cfg) = 40
HOST_KEY_CHECKING(/root/repos/Ansible/ansible.cfg) = False
PARAMIKO_LOOK_FOR_KEYS(/root/repos/Ansible/ansible.cfg) = False
OS / ENVIRONMENT
STEPS TO REPRODUCE
    - name: Netdumper Service automatic startup
      vmware.vmware_rest.appliance_vmon_service:
        vcenter_hostname: "{{ inventory_hostname }}"
        vcenter_username: "{{ vcenter_user }}"
        vcenter_password: "{{ vcenter_password }}"
        vcenter_validate_certs: "{{ vmware_validate_certs }}"
        service: netdumper
        startup_type: AUTOMATIC
      delegate_to: localhost
      register: result
      until: result is not failed
      retries: 2
      delay: 60
EXPECTED RESULTS

Service is set to startup_type of automatic

ACTUAL RESULTS
    "type": "com.vmware.vapi.std.errors.service_unavailable",
    "value": {
        "error_type": "SERVICE_UNAVAILABLE",
        "messages": [
            {
                "args": [],
                "default_message": "Service unavailable.",
                "id": "com.vmware.vapi.endpoint.cis.ServiceUnavailable"
            }
        ]
    }
}
mariolenz commented 4 months ago

Looks like appliance_vmon_service_info is also affected.

I wonder what's the best way to handle this. Maybe deprecate those two modules and create two new ones vmware.vmware_rest.vcenter_services and vmware.vmware_rest.vcenter_service_infos? :thinking:

MallocArray commented 3 months ago

@mariolenz While vmon_service is depreciated, there are existing modules that interact with the appliance services https://github.com/ansible-collections/vmware.vmware_rest/blob/main/plugins/modules/appliance_services.py https://github.com/ansible-collections/vmware.vmware_rest/blob/main/plugins/modules/appliance_services_info.py

But I do agree that we also need new ones for vcenter_services that interacts with /api/vcenter/services. For my specific use case with netdumper it isn't managed by appliance services anymore, it is only available under vcenter services

noesberger commented 2 months ago

Looks like appliance_vmon_service_info is also affected.

I wonder what's the best way to handle this. Maybe deprecate those two modules and create two new ones vmware.vmware_rest.vcenter_services and vmware.vmware_rest.vcenter_service_infos? 🤔

I tried to change to the new api endpoint, for my 8.0.3 and other 8.0.0 vcenter it worked. Can you test if it's working for you as well. And maybe you have the chance to test older versions as well. https://github.com/noesberger/vmware.vmware_rest/tree/main

based on the informations from: https://knowledge.broadcom.com/external/article/321044/deprecation-of-vmon-api-service.html