ossobv / proxmove

Migrate virtual machines between different Proxmox VE clusters with minimal downtime

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

500-error when PUTing new disk config

wdoekes opened this issue · comments

2017-01-17 17:18:33,876: INFO: Volume transferring/conversion 100% complete!
ERROR PUT https://HOSTNAME:443/api2/json/nodes/mc11-6/qemu/159/config {'virtio0': 'mc11-6-local-ssd:vm-159-virtio0,iops_rd=5000,iops_wr=600,mbps_rd=50,mbps_wr=50,size=50G'} None '{"data":null}'
Traceback (most recent call last):
  File "./proxmove", line 1499, in <module>
    main()
  File "./proxmove", line 1495, in main
    vmmover.run(options.dry_run)
  File "./proxmove", line 1245, in run
    self.move_vm(vm, translator, dry_run)
  File "./proxmove", line 1305, in move_vm
    dst_vm.create_volume(key, volume, storage=storage)
  File "./proxmove", line 916, in create_volume
    self.api_vm.config.put(**{key: new_volume.as_properties()})
  File "/home/walter/.virtualenvs/proxmove/lib/python3.5/site-packages/proxmoxer/core.py", line 91, in put
    return self(args)._request("PUT", data=data)
  File "/home/walter/.virtualenvs/proxmove/lib/python3.5/site-packages/proxmoxer/core.py", line 80, in _request
    raise ResourceException("{0} {1}".format(resp.status_code, httplib.responses[resp.status_code]))
proxmoxer.core.ResourceException: 500 Internal Server Error

Was because the destination images were to be found in a specific subdirectory only:

--- a/proxmove
+++ b/proxmove
@@ -823,7 +823,8 @@ class ProxmoxStorageZfs(ProxmoxStorage):
     def set_path(self, value):
         assert value.startswith('zfs:'), value
         pool_name = value[4:]
-        valid_characters = string.ascii_letters + string.digits + '_-'
+        # FIXME: check that entire path exists?
+        valid_characters = string.ascii_letters + string.digits + '_-/'
         if not all(i in valid_characters for i in pool_name):
             raise PrepareError(
                 'invalid characters in zfs pool name found {!r} storage '