Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python and FME REST

3,131 views

Published on

Published in: Spiritual, Technology
  • Be the first to comment

  • Be the first to like this

Python and FME REST

  1. 1. Python and FME RESTRob GastonWeb Developer; FarallonGeographics, Inc. April 9, 2013
  2. 2. San Francisco EAS EAS is an open source system for maintaining address data At the City and County of San Francisco, FME is being used to ETL parcel and street data used by EAS EAS uses FME Server REST API to check the status of ETL jobs before staging new data
  3. 3. EAS, Python and FME EAS makes calls to FME Server REST API via automation scripts written in Python Python is used in EAS both on the backend of the web application and for automation To support automation of calls to FME Server REST services, we built a Python class (FmeServerHelper)
  4. 4. Checking for an FMEWorkspace with Python Without FmeServerHelper  With FmeServerHelper
  5. 5. fme_server_helper.py
  6. 6. FmeServerHelper API doesJobExist - Checks to see if FME workspace exists on this host isJobRunning- Checks to see if FME workspace is currently running on this host isJobQueued - Checks to see if FME workspace is currently queued to run on this host getLatestCompletedJob - Gets the data from FME Server for the last job from a given workspace getJobId- Gets the string id from a FME Server job getJobStatus- Gets the string job status from a FME Server jobGet the code: https://code.google.com/p/eas/source/browse/trunk/automation/src/fme_server_helper.py
  7. 7. FmeServerHelper API Documentation doesJobExist(jobDict) : Boolean  getLatestCompletedJob(jobDict) : Dict Checks to see if FME workspace exists on this host Gets the data from FME Server for the last job from a given PARAMETERS: workspace jobDict: Dict - a dictionary containing the workspace and repository PARAMETERS: names jobDict: Dict - a dictionary containing the workspace and repository RETURNS: names Boolean - the existence state of this workspace on this host RETURNS: Dict - a dictionary containing job data from FME Server isJobRunning(jobDict) : Boolean Checks to see if FME workspace is currently running on this host  getJobId(job) : String PARAMETERS: Gets the string id from a FME Server job jobDict: Dict - a dictionary containing the workspace and repository PARAMETERS: names job: Dict - a dictionary containing job data from FME Server RETURNS: RETURNS: Boolean - the running state of this workspace on this host String - the job id isJobQueued(jobDict) : Boolean  getJobStatus(job) : String Checks to see if FME workspace is currently queued to run on this Gets the string job status from a FME Server job host PARAMETERS: PARAMETERS: job: Dict - a dictionary containing job data from FME server jobDict: Dict - a dictionary containing the workspace and repository RETURNS: names String - the job status RETURNS: Boolean - the queued state of this workspace on this host Get the code: https://code.google.com/p/eas/source/browse/trunk/automation/src/fme_server_helper.py
  8. 8. What’s Next…? Following the principle of DTSTTCPW (do the simplest thing that could possibly work), FmeServerHelper only currently supports the use cases required by EAS Since EAS is open source, anyone with the time and inclination to create a more complete API for working with FME Server can use fme_server_helper.py as a jumping off point So… get to work and have fun!
  9. 9. Thank You! Questions? For more information:  Rob Gaston, rgaston(at)fargeo(dot)com  FarallonGeographics, Inc.  http://www.fargeo.com/  https://code.google.com/p/eas/

×