importPackage(Packages.de.elo.ix.client); //@include lib_Class.js //@include lib_handlebars.js //@include lib_sol.common.Config.js //@include lib_sol.common.Template.js //@include lib_sol.common.DateUtils.js //@include lib_sol.common.ExecUtils.js //@include lib_sol.common.SordUtils.js //@include lib_sol.common.RepoUtils.js //@include lib_sol.common.ExceptionUtils.js //@include lib_sol.common.ix.FunctionBase.js //@include lib_sol.dev.install.Installer.js var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.functions.Deploy" }); /** * Deploys or an unploys an install package * * # As workflow node * * ObjId is set based on the element that the workflow is attached to. * Following configuration should be applied to the comments field. * * * # As IX function call * * In addition to the workflow node configuration the objId must be passed. * * sol.common.IxUtils.execute("RF_sol_dev_function_Deploy", { * objId: "4711" * }); * * @author MW, ELO Digital Office GmbH * @version 1.0 * * @eloix * * @requires moment * @requires handlebars * @requires sol.common.Config * @requires sol.common.Template * @requires sol.common.ObjectUtils * @requires sol.common.StringUtils * @requires sol.common.DateUtils * @requires sol.common.AsyncUtils * @requires sol.common.FileUtils * @requires sol.common.SordUtils * @requires sol.common.RepoUtils * @requires sol.common.AclUtils * @requires sol.common.WfUtils * @requires sol.common.AsUtils * @requires sol.common.HttpUtils * @requires sol.common.UserUtils * @requires sol.common.SordTypeUtils * @requires sol.common.UserProfile * @requires sol.common.FunctionBase * @requires sol.dev.install.Installer */ sol.define("sol.dev.ix.functions.Deploy", { extend: "sol.common.ix.FunctionBase", requiredConfig: ["objId"], /** * @cfg {String} objId (required) */ initialize: function (config) { var me = this; me.$super("sol.common.ix.FunctionBase", "initialize", [config]); }, /** * Deploys or undeploys a package */ process: function () { var me = this, installConfig; me.mode = me.mode || "undeploy"; installConfig = me.getInstallConfig(); if (!installConfig) { me.logger.debug("Install config is empty"); return; } installConfig[me.mode] = true; installConfig.packageFolderId = me.objId; installConfig.interactive = false; installConfig.undeployRemove = false; sol.dev.install.Installer.execute(me.mode, installConfig); }, getInstallConfig: function () { var me = this, installConfigRepoPath, installConfigObjId, configLoader; installConfigRepoPath = "ARCPATH[" + me.objId + "]:/.eloinst/install"; installConfigObjId = sol.common.RepoUtils.getObjId(installConfigRepoPath); if (!installConfigObjId) { return; } configLoader = sol.create("sol.common.Config", { load: installConfigObjId }); return configLoader.config; } }); /** * @member sol.dev.ix.functions.Deploy * @static * @inheritdoc sol.common.ix.FunctionBase#onEnterNode */ function onEnterNode(clInfo, userId, wFDiagram, nodeId) { var params, deploy; logger.enter("onEnterNode_Deploy", { flowId: wFDiagram.id, nodeId: nodeId }); params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId); params.objId = wFDiagram.objId; deploy = sol.create("sol.dev.ix.functions.Deploy", params); deploy.process(); logger.exit("onEnterNode_Deploy"); } /** * @member sol.dev.ix.functions.Deploy * @static * @inheritdoc sol.common.ix.FunctionBase#onExitNode */ function onExitNode(clInfo, userId, wFDiagram, nodeId) { var params, deploy; logger.enter("onExitNode_Deploy", { flowId: wFDiagram.id, nodeId: nodeId }); params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId); params.objId = wFDiagram.objId; deploy = sol.create("sol.dev.ix.functions.Deploy", params); deploy.process(); logger.exit("onExitNode_Deploy"); } /** * @member sol.dev.ix.functions.Deploy * @method RF_sol_dev_function_Deploy * @static * @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName */ function RF_sol_dev_function_Deploy(iXSEContext, args) { var params, deploy; logger.enter("RF_sol_dev_function_Deploy", args); params = sol.common.ix.RfUtils.parseAndCheckParams(iXSEContext, arguments.callee.name, args, "objId"), deploy = sol.create("sol.dev.ix.functions.Deploy", params); deploy.process(); logger.exit("RF_sol_dev_function_Deploy"); }