We may have some scripts which code differs from one environment to another. Maintaining different code for same script is a risky task.
What about having one single script which you can migrate into the other environments with no risks?
How can I make my code dynamic based on the EPM environment I'm working with?
Let's have a look!
What about having one single script which you can migrate into the other environments with no risks?
How can I make my code dynamic based on the EPM environment I'm working with?
Let's have a look!
Getting EPM environment based on FDMEE Server hostname
''' Snippet: Get environment running the script based on the FDMEE Server hostname Author: Francisco Amores Date: 11/11/2016 Blog: http://fishingwithfdmee.blogspot.com Notes: This snippet can be pasted in any event/custom/import script. Output will be logged in the FDMEE process log (...\outbox\logs\) This script uses socket python module Instructions: Set log level (global or application settings) to 5 To add new servers, include an entry in the dictionary. You can get hostnames by executing command "hostname" from the command line in the FDMEE server(s). Hints: Use this snippet to avoid having different script codes across environments. The right code will be executed at runtime based on the FDMEE server running the process FDMEE Version: 11.1.2.3 and later ---------------------------------------------------------------------- Change: Author: Date: ''' # import socket module import socket # Dictionaty for FDMEE Servers # These are sample servers and should be replaced by existing ones dictFDMEEServers = { "FDMEE_SERVER_DEV" : "DEV", "FDMEE_SERVER_PROD1": "PROD", "FDMEE_SERVER_PROD2": "PROD" } # get hostname hostName = socket.gethostname() # Assign envFDMEE based on FDMEE Server try: envFDMEE = dictFDMEEServers[hostName] except KeyError, err: errMsg = "FDMEE Server does %s not exist in the dictionary dictFDMEEServers" % hostName fdmAPI.showCustomMessage(errMsg) raise RuntimeError(errMsg) # Debug fdmAPI.logDebug("FDMEE Server: %s (%s)" % (hostName, envFDMEE)) # **************************************************************** # Specific Code for Development # **************************************************************** if envFDMEE == "DEV": # Debug fdmAPI.logDebug("Code for %s" % envFDMEE) # your code here # **************************************************************** # Specific Code for Production # **************************************************************** if envFDMEE == "PROD": # Debug fdmAPI.logDebug("Code for %s" % envFDMEE) # your code here # **************************************************************** # Specific Code for Environment XXX # **************************************************************** if envFDMEE == "XXX": # Debug fdmAPI.logDebug("Code for %s" % envFDMEE) # your code here # **************************************************************** # Code for all environments # **************************************************************** # your code here
Code snippets for FDMEE can be downloaded from GitHub.
No comments:
Post a Comment
Thanks for feedback!