Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

azure.azcollection.azure_rm_virtualmachinescalesetinstance_info and related modules incompatible with Flexible VM Scale Sets #1526

Closed
nscriptdotgo opened this issue Apr 3, 2024 · 4 comments · Fixed by #1529
Labels
bug Something isn't working has_pr PR fixes have been made medium_priority Medium priority

Comments

@nscriptdotgo
Copy link

SUMMARY

When trying to get ScaleSet Instance information for a Flexible Scaleset using the azure.azcollection.azure_rm_virtualmachinescalesetinstance_info module, I get this error:

Virtual Machine Scale Set VM instanceId must be a number.

However, per the Azure documentation here: https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-instance-ids#scale-set-instance-id-for-flexible-orchestration-mode

The scaleset instanceId of a Flexible scaleset is just name of the virtual machine. The module should be able to handle both a Uniform and Flexible scalesets.

ISSUE TYPE
  • Bug Report
COMPONENT NAME

azure_rm_virtualmachinescalesetinstance_info and possibly the others.

ANSIBLE VERSION
ansible [core 2.13.13]
  config file = /root/workspace/xxx/Devops/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /root/.local/lib/python3.8/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]
  jinja version = 3.1.3
  libyaml = True
COLLECTION VERSION
# /root/.local/lib/python3.8/site-packages/ansible_collections
Collection         Version
------------------ -------
azure.azcollection 1.14.0 

# /usr/local/lib/python3.8/dist-packages/ansible_collections
Collection         Version
------------------ -------
azure.azcollection 1.4.0  

# /root/.ansible/collections/ansible_collections
Collection         Version
------------------ -------
azure.azcollection 2.3.0
CONFIGURATION
DEFAULT_HOST_LIST(/root/workspace/xxx/Devops/ansible/ansible.cfg) = ['/root/workspace/xxx/Devops/ansible/inventories']
DEFAULT_ROLES_PATH(/root/workspace/xxx/Devops/ansible/ansible.cfg) = ['/root/workspace/xxx/Devops/ansible/roles']
HOST_KEY_CHECKING(/root/workspace/xxx/Devops/ansible/ansible.cfg) = False
INTERPRETER_PYTHON(/root/workspace/xxx/Devops/ansible/ansible.cfg) = auto
INVENTORY_ENABLED(/root/workspace/xxx/Devops/ansible/ansible.cfg) = ['host_list', 'script', 'auto', 'yaml', 'azure_rm', 'vmware_vm_inventory']
OS / ENVIRONMENT

Target OS is Windows 11 in a flexible scaleset

STEPS TO REPRODUCE

az login and run a playbook similar to the following below:

- hosts: localhost
  gather_facts: true
  connection: ssh
  remote_user: ansible
  tasks:
    - name: Get Info
      azure.azcollection.azure_rm_virtualmachinescalesetinstance_info:
        resource_group: myRG
        vmss_name: myVMSS
EXPECTED RESULTS

I expected to recieve back some information about the VMSS

ACTUAL RESULTS

The module errors out because of the returned instanceIds not being a number.

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: Target: instanceId
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1712178755.2826643-1193-218068186799992/AnsiballZ_azure_rm_virtualmachinescalesetinstance_info.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1712178755.2826643-1193-218068186799992/AnsiballZ_azure_rm_virtualmachinescalesetinstance_info.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1712178755.2826643-1193-218068186799992/AnsiballZ_azure_rm_virtualmachinescalesetinstance_info.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.azure.azcollection.plugins.modules.azure_rm_virtualmachinescalesetinstance_info', init_globals=dict(_module_fqn='ansible_collections.azure.azcollection.plugins.modules.azure_rm_virtualmachinescalesetinstance_info', _modlib_path=modlib_path),\n  File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py\", line 244, in <module>\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py\", line 240, in main\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py\", line 159, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py\", line 475, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py\", line 175, in exec_module\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py\", line 208, in list\n  File \"/tmp/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload__vw60kqi/ansible_azure.azcollection.azure_rm_virtualmachinescalesetinstance_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py\", line 214, in format_response\n  File \"/usr/local/lib/python3.8/dist-packages/azure/core/tracing/decorator.py\", line 76, in wrapper_use_tracer\n    return func(*args, **kwargs)\n  File \"/usr/local/lib/python3.8/dist-packages/azure/mgmt/compute/v2021_04_01/operations/_virtual_machine_scale_set_vms_operations.py\", line 1306, in get_instance_view\n    raise HttpResponseError(response=response, error_format=ARMErrorFormat)\nazure.core.exceptions.HttpResponseError: (InvalidParameter) Virtual Machine Scale Set VM instanceId must be a number.\nCode: InvalidParameter\nMessage: Virtual Machine Scale Set VM instanceId must be a number.\nTarget: instanceId\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}


@nscriptdotgo nscriptdotgo changed the title azure.azcollection.azure_rm_virtualmachinescalesetinstance_info and related modules cannot handle a Flexible VM InstanceID because the Id must be a number. azure.azcollection.azure_rm_virtualmachinescalesetinstance_info and related modules incompatible with Flexible VM Scale Sets Apr 4, 2024
@Fred-sun Fred-sun added bug Something isn't working medium_priority Medium priority work in In trying to solve, or in working with contributors labels Apr 7, 2024
@Fred-sun Fred-sun added has_pr PR fixes have been made and removed work in In trying to solve, or in working with contributors labels Apr 8, 2024
@Fred-sun
Copy link
Collaborator

Fred-sun commented Apr 8, 2024

#1529 has fixed this bug!

@nscriptdotgo
Copy link
Author

#1529 has fixed this bug!

When will this get released?

@nscriptdotgo
Copy link
Author

Also @Fred-sun it seems this change was only completed on the azure_rm_virtualmachinescalesetinstance_info module, do further changes need to be made on the other modules such azure_rm_virtualmachinescaleset and azure_rm_virtualmachinescalesetinstance ? Thanks

@Fred-sun
Copy link
Collaborator

Fred-sun commented Apr 9, 2024

@nscriptdotgo It should be released early next month. azure_rm_virtualmachinescaleset doesn't need to change, only need to synchronize changes azure_rm_virtualmachinescaleinstance. py, has been submitted. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working has_pr PR fixes have been made medium_priority Medium priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants