freenas-proxmox/perl5
Kevin Adams 7a9d0072a2 Fix global state bugs: per-host product_name, dev_prefix, api_version, runaway counter
All of these were module-level scalars that the last freenas_api_check call
would overwrite. With two TrueNAS hosts in a Proxmox config (e.g., one CORE
and one SCALE), the second host's API check would clobber the first host's
product_name, dev_prefix, and api_version, causing wrong API paths and wrong
pool-name slash-vs-dash conversion on subsequent calls to the first host.

Changes:
- $freenas_server_list->{$host} now stores a hashref {client, product_name,
  api_version, dev_prefix, runaway_count} instead of a bare REST::Client
- freenas_api_connect: recursion counter is now per-host (runaway_count);
  $apiping made local so v1->v2 detection for one host does not affect others
- freenas_api_check: fixed broken init-guard (was testing $freenas_rest_connection->{$host}
  which always evaluates undef on a REST::Client object); saves detected
  product_name/api_version/dev_prefix back into the per-host hash after detection
- freenas_api_call: restores all module-level pointers (product_name, dev_prefix,
  api_methods, api_variables) from per-host storage on every call, so the
  correct host context is active regardless of which host was accessed last

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 23:23:11 -04:00
..
PVE/Storage Fix global state bugs: per-host product_name, dev_prefix, api_version, runaway counter 2026-05-15 23:23:11 -04:00
REST Update comments/doc of the methods changes 2020-07-14 17:32:53 -04:00