id: timetz type: update version: 0.3 name: TimeZone Change logo: https://raw.githubusercontent.com/jelastic-jps/time-zone-change/master/images/timezone-logo.png description: text: "Choose Time Zone from dropdown list. \n\nExample: America/Fortaleza" short: TimeZone Change Tool targetEditions: any targetNodes: guestOSType: LINUX categories: - apps/dev-tools onBeforeInit: | var zones = toNative(java.time.ZoneId.getAvailableZoneIds()).sort(); var serverTimeZone = toNative(java.time.ZoneId.systemDefault()); var values = {}; for (var i = 0, n = zones.length; i < n; i++) { values[zones[i]] = zones[i]; } return { result: 0, settings: { fields: [{ name: "timeZone", caption: "TimeZone Name", type: "list", required: true, editable: true, "default": serverTimeZone, values: values }] } } onAfterRedeployContainer [${targetNodes.nodeGroup}]: - if (event.params.nodeId): - installAgent: targetNodes: ${event.params.nodeId} - else: - installAgent: targetNodes: ${event.params.nodeGroup} onInstall: installAgent actions: installAgent: - cmd[${this.targetNodes:*}]: |- echo "=== OLD TimeZone settings ===" >> /var/log/jpsaddon.log date >> /var/log/jpsaddon.log ln -sf /usr/share/zoneinfo/${settings.timeZone} /etc/localtime echo "=== NEW TimeZone ${settings.timeZone} has been set ===" >> /var/log/jpsaddon.log date >> /var/log/jpsaddon.log user: root - forEach (env.nodes): - if ("${this.targetNodes:}" == "" || "${this.targetNodes:}" === "${@i.nodeGroup}" || "${this.targetNodes:}" === "${@i.id}"): - if ("${@i.nodeType}" === "docker"): api: jelastic.environment.control.RestartContainerById envName: ${env.name} nodeid: ${@i.id} - else: api: jelastic.env.control.RestartNodeById envName: ${env.name} nodeid: ${@i.id} success: Your TimeZone was changed to ${settings.timeZone}