[pve-devel] API Return Values

Dietmar Maurer dietmar at proxmox.com
Mon Oct 23 06:10:11 CEST 2017


> > But if a user delete and recreates a resource the ID may get re-used.
> > So we would have to make sure that this would not happen.
> > But maybe this is not really a issue?
> 
> Yeah, I'm not too concerned about that. Terraform doesn't make any
> guarantees that your saved state is up to date, but it does allow you to
> "refresh" from the API, which will display a diff that you can use to
> update your config files. I think that's really more of a policy that users
> of a tool like Terraform would have to follow, and not something the API
> needs to be concerned about.

Just viewed the code, and detected that we directly read/write the crontab
file:

https://git.proxmox.com/?p=pve-manager.git;a=blob;f=PVE/API2/Backup.pm;h=3dfe8a0d5f8590f375757030d53bea288681d4bc;hb=HEAD#l86

This is great, because user can also directly edit/view the crontab file, 
but bad, because there is no way to address specific crontab entries 
inside that file.

To circumvent that, we compute a digest over each line, combined with a line
count:

		$opts->{id} = "$digest:$jid";

This work very well with the GUI, because it detect/throws errors as soon as 
someone modified the file (digest changed).

But this kind of ID is not suitable to store in an external database.



More information about the pve-devel mailing list