productionHandler.py (CLI)

Syntax

The productionHandler.py script has the following usage:

productionHandler.py
  Version: 1.0b Build: 2011042001
  Framework Version: 1.0b Build: 2011042001

Copyright (C) 2009-2011 Beau Hunter, 318 Inc.


Usage:

  productionHandler --importFile=/file.xml --productionID=10
  productionHandler --exportFile=/production_10.xml --productionID=10
  productionHandler --importFile=/file.xml --createProduction
  productionHandler --configFile=/etc/my.conf --importFile=file.xml
  productionHandler [option]

Options:
  -h, --help                  Displays this help message
  -v, --version               Display version number
  -c pathtofile,              Utilize pathtofile for configuration parameters.
    --configFile=pathtofile

Configuration

By default, the productionHandler.py script utilizes the main transmogrifier.conf file found at /usr/local/etc. In this file, productionBuilder will queue off of a number of parameters configured under the [ProductionHandler] Section.

The following shows an example productionBuilder configuration:

[ProductionHandler]
membersField=Members
membershipKey=Title
missingMembersKey=Missing Members
exportFields=Title,Description
newProductionMDset=pa_production_show
tempProductionMDset=pa_production_show
containerProductionTitle=New Projects
containerProductionMDSet=pa_production_organizer
debug=False

As shown above, there are four specific settings, all read in from the [ProductionHandler] section, which we will read in from this file.

membersField
Specify the field which contains our membership value, this should be a comma- separated value string
membershipKey
Specifies the field key used for membership. This can be any Final Cut Server field name that has an asset-unique value. I.E.: Title or Asset ID
missingMembersKey
Specifies the field name used for any missing members, if desired.
exportFields
Specify the fields to include in our XML output when using the --exportFile option. This should be a comma separated list of field names.
newProductionMDset
Specify the metadata set to use if we are creating a production.
tempProductionMDset
Specify the metadata set to use if we are modifying production membership. This exists primarily due to limitations with fcsvr_client‘s inability to remove an asset from a production directly. If a temporary production is created to remove an asset from a production, it will use the metadata set defined here. The new production will be deleted after the operation finishes.
containerProductionTitle
If specified, any new productions will be nested under a production matching this name. If this setting is defined and no such production exists, a new production will be created based on the containerProductionMDSet value
containerProductionMDSet
This option designates the metadata set that a container production will be created with, if none exists
debug
Specify whether productionHandler.py will output debug information. Leave this option out if you want [GLOBAL] debug to apply.

Example Usage

The productionHandler.py script has fairly limited scope in regards to command line options, we will simply use it to export or import a production.

>>> productionHandler.py --exportFile='/tmp/project_10.xml' --productionID=10

In the above usage, our script will first lookup information for the provided production (production with ID 10). Provided that the production exists, it will export an XML file to the location /tmp/project_10.xml This export file will contain an additional field, designated by the setting membersField. This field will contain a string of comma separated values, one for each asset member, extracted from the field designated by our membershipKey field.

Using the above example, this XML file will contain output for fields Title and Description, and will have an additional field Members which contains the string: my asset 1,my asset 2; where my asset 1 and my asset 2 are the Title`s of the 2 asset members of our production. If we change the value of our setting membershipKey to Asset ID, the Members string would have the value: 49,50, representing the unique asset ID’s of the production’s members.

>>> productionHandler.py --importFile='/tmp/project_10.xml' --productionID=10 --createProduction

In the above usage, our script will first lookup information for the provided production (production with ID 10). Provided that the production exists, it will import all values specified in the provided XML file. This will include all fields designated in the file. In addition to this, we will lookup an additional field, designated by the setting membersField. Just like in our export scenario, this field will contain a string of comma separated values, one for each asset member, extracted from the field designated by our membershipKey field. Any assets not included in this string will be removed from the production. In the event that an entry references a non-existant asset, the asset’s entry will be recorded in the missingMembersKey field. Values specified in this field will be appended to our membership values on export, this enables us to do non-destructive pass-through between two systems, preventing assets not yet ingested into FCS from being removed from the production. The --createProduction flag designates that if the production specified in the provided XML file cannot be found, one will be created and metadata and membership will be imported.

Table Of Contents

Previous topic

productionBuilder.py (CLI)

This Page