Vashikaran Specialist in London Black Magic Removal No 1 Astrologer in UK
Python and FME REST
1. Python and FME REST
Rob Gaston
Web Developer; FarallonGeographics, Inc.
April 9, 2013
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. 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. Checking for an FME
Workspace with Python
Without FmeServerHelper With FmeServerHelper
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 job
Get the code: https://code.google.com/p/eas/source/browse/trunk/automation/src/fme_server_helper.py
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. 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. 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/