24 lines
950 B
Python
24 lines
950 B
Python
def handleMessage(payload):
|
|
import time
|
|
|
|
script_path = '/usr/local/bin/ignition/data/factorystack/scripts/ignition-save.sh'
|
|
|
|
project = payload['project']
|
|
|
|
logger = system.util.getLogger("FactoryStack")
|
|
logger.info("'Commit and Push' request received from project '{}'.".format(project))
|
|
|
|
try:
|
|
actor = payload['actor']
|
|
resources = payload['resources']
|
|
|
|
added = ['/'.join([project, resource['path']]) for resource in resources['added']]
|
|
modified = ['/'.join([project, resource['path']]) for resource in resources['modified']]
|
|
removed = ['/'.join([project, resource['path']]) for resource in resources['removed']]
|
|
|
|
time.sleep(5) # following best practices guide from Inductive Automation
|
|
system.util.execute([script_path] + [actor] + added + modified + removed)
|
|
|
|
logger.info("'Commit and Push' operation completed.")
|
|
except:
|
|
logger.error("Error occurred during 'Commit and Push' operation. Please contact 4IR Support.") |