artefactual / automation-tools

Tools to aid automation of Archivematica and AtoM.
GNU Affero General Public License v3.0
46 stars 33 forks source link

Restructure create_dip with additional Avalon option #113

Closed ablwr closed 5 years ago

ablwr commented 5 years ago

This is connected to https://github.com/archivematica/Issues/issues/643.

Former PR: https://github.com/artefactual/automation-tools/pull/107

This incorporates an "avalon" METS type, to fulfill the obligations of the connected issue above. In order to do this in a logical way, I also moved some of the logic out of the create_dip function and into smaller, easier-to-digest functions.

I tested the Avalon workflow as well as the Atom workflow, but testing should ensure that the new storage-service method is working fine as well.

@jraddaoui reviewed my previous PR. Radda, you had a bunch of questions that I may or may not have answered in direct message about the structure of the AIP. I'll recap briefly... Files are expected to come into Archivematica structured in a specific way, and the DIP creation should also be formatted in a specific way.

Incoming: Only one CSV at the top level of the set of files (the "manifest file"; can be named anything but must be structured in a specific way.) Outgoing: Transfer name represents the folder files must end up in. Subfolder as UUID was not required by the spec but I added it to ensure uniqueness when moving lots of files.

ablwr commented 5 years ago

Thanks! I'll make a new --dip-type, I just felt like there were already so many potential arguments.

The only dip-type would be Avalon, otherwise it'd just be ... default? storage-service? What do you think the best name for the default setting should be?

jraddaoui commented 5 years ago

Maybe just --type, with zipped-objects and manifest-csv as options, or ccarch and avalon. I'm open to better suggestions though, but I think the most important part is to document the differences in the README.

ablwr commented 5 years ago

Hi @jraddaoui, thanks so much for these suggestions! I took them. I kept --dip-type over --type, used zipped-objects and avalon-manifest, cleaned up the code & test code, and tested myself, too. Oh, and updated the README with more info. :)