HalcyonGrid / halcyon

Halcyon 3d virtual reality world simulator
BSD 3-Clause "New" or "Revised" License
20 stars 20 forks source link

Save Oar Command Variants Merge #11

Open Vinhold opened 6 years ago

Vinhold commented 6 years ago

This is a carry over issue from https://github.com/InWorldz/halcyon/issues/344. Scoped to deal only with the "save oar " command in the region console. Where < store_assets > - flag 1=store assets, 0=not store assets. Combine with command: saveportable oar < oar filename > [allowed_uuid allowed_uuid ...] - Save a region's data to an OAR archive with assets suitable for export These two commands do almost exactly the same thing, and it does not need two commands to do it. both can be accomplished with one command "save oar [allowed_uuid allowed_uuid ...] " where the optional [allowed_uuid allowed_uuid ...] list is a filter of the contents being saved where the creator UUID matches one in the list.

I have since learned there are different versions of the OAR specification since this issue was first posted. It would be good to know what oar version this command writes out and what grid versions can read the files. There has been a bit of a headache with the filtered OARs being provided by InWorldz to those who wanted them and not being able to load them into the destination grid.

kf6kjg commented 6 years ago

Halcyon currently exports and expects to read OAR version 0.2.

That said, the differences between OAR 0.2, 0.6, 0.7, and 0.8 are fairly small, at least from the standpoint of reading from a newer OAR format. If a newer reader is expecting fields that the older generator doesn't have, say current OpenSim trying to read the OAR 0.2 format, then there might be trouble, but since the files internally document what version they are in the archive.xml even that should be OK, assuming the reader code for the older format was retained.

OAR 1.0 is an exception, as it is highly different and I believe is not readable by Halcyon currently.

As to the topic at hand, I'm of the opinion that having different commands for different tasks is OK: save oar is for a backups, whether with or without assets, to be used by the grid maintainer in case of server failure; saveportable oar is for exporting a user's region so that the user can take it to a different grid with only the assets they have permissions to take with them.

It'd probably be good to start some documentation of the various commands and their intended uses.