diff --git a/app/models/foreman_fog_proxmox/proxmox_vm_commands.rb b/app/models/foreman_fog_proxmox/proxmox_vm_commands.rb index 8287cb81f..c72320d76 100644 --- a/app/models/foreman_fog_proxmox/proxmox_vm_commands.rb +++ b/app/models/foreman_fog_proxmox/proxmox_vm_commands.rb @@ -32,10 +32,9 @@ def start_on_boot(vm, args) end def create_vm(args = {}) - vmid = args[:vmid].to_i + vmid = args[:vmid] = assign_vmid(args[:vmid].to_i) type = args[:type] node = client.nodes.get(args[:node_id]) - vmid = node.servers.next_id.to_i if vmid < 1 raise ::Foreman::Exception, format(N_('invalid vmid=%s'), vmid: vmid) unless node.servers.id_valid?(vmid) image_id = args[:image_id] @@ -55,6 +54,10 @@ def create_vm(args = {}) raise e end + def assign_vmid(vmid) + vmid < 1 ? node.servers.next_id : vmid + end + def compute_clone_attributes(args, container, type) args = parse_cloudinit_config(args) if args[:user_data] parsed_args = parse_typed_vm(args, type)