Skip to content

Commit

Permalink
Merge pull request #9 from vlobzakov/master
Browse files Browse the repository at this point in the history
pull updated made by sk@
  • Loading branch information
sych74 committed Oct 22, 2020
2 parents 4a5a1df + adf241d commit 3ca6088
Showing 1 changed file with 151 additions and 158 deletions.
309 changes: 151 additions & 158 deletions manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ onBeforeInit: |
import java.util.TimeZone;
var zones = toNative(TimeZone.getAvailableIDs());
var values = {};
for (var i = 0, n = zones.length; i < n; i++) {
var offset = TimeZone.getTimeZone(zones[i]).getRawOffset()/3600000;
var m = offset % 1;
Expand All @@ -34,175 +34,176 @@ onBeforeInit: |
default: TimeZone.getDefault().getID()
})
return jps;
globals:
success: success.md

settings:
fields:
- caption: Stop
type: toggle
name: stopCron
default: false
required: true
showIf:
true:
- type: string
name: stopTime
caption: Time
inputType: time
default: "19:00"
cls: x-form-text
width: 120
- caption: Days
type: compositefield
name: cf1
defaultMargins: 0 8 0 0
items:
- name: sun1
value: true
type: checkbox
caption: Sun
- name: mon1
value: true
type: checkbox
caption: Mon
- name: tue1
value: true
type: checkbox
caption: Tue
- name: wed1
value: true
type: checkbox
caption: Wed
- name: thu1
value: true
type: checkbox
caption: Thu
- name: fri1
value: true
type: checkbox
caption: Fri
- name: sat1
value: true
type: checkbox
caption: Sat

- type: displayfield

- caption: Start
type: toggle
name: startCron
default: false
required: true
showIf:
true:
- type: string
name: startTime
caption: Time
inputType: time
default: "09:00"
cls: x-form-text
width: 120

- caption: Days
type: compositefield
name: cf3
defaultMargins: 0 8 0 0
items:
- name: sun2
value: true
type: checkbox
caption: Sun
- name: mon2
value: true
type: checkbox
caption: Mon
- name: tue2
value: true
type: checkbox
caption: Tue
- name: wed2
value: true
type: checkbox
caption: Wed
- name: thu2
value: true
type: checkbox
caption: Thu
- name: fri2
value: true
type: checkbox
caption: Fri
- name: sat2
value: true
type: checkbox
caption: Sat

- caption:
type: displayfield

onInstall:
- if (${settings.stopCron} || !${settings.sun1} && !${settings.mon1} && !${settings.wed1} && !${settings.thu1} && !${settings.fri1} && !${settings.sat1} ) && (${settings.startCron} || !${settings.sun2} && !${settings.mon2} && !${settings.tue2} && !${settings.wed2} && !${settings.thu2} && !${settings.fri2} && !${settings.sat2}) :
stopEvent:
type: error
message: You haven't specified any parameters to start or stop your environment
- if (${settings.stopCron} || ${settings.startCron}):
- create
- else:
- setGlobals:
success: success-start-stop-disabled.md
fields:
- caption: Stop
type: toggle
name: stopCron
default: false
required: true
showIf:
true:
- type: string
name: stopTime
caption: Time
inputType: time
default: "19:00"
cls: x-form-text
width: 120
- caption: Days
type: compositefield
name: cf1
defaultMargins: 0 8 0 0
items:
- name: sun1
value: true
type: checkbox
caption: Sun
- name: mon1
value: true
type: checkbox
caption: Mon
- name: tue1
value: true
type: checkbox
caption: Tue
- name: wed1
value: true
type: checkbox
caption: Wed
- name: thu1
value: true
type: checkbox
caption: Thu
- name: fri1
value: true
type: checkbox
caption: Fri
- name: sat1
value: true
type: checkbox
caption: Sat

- type: displayfield

- caption: Start
type: toggle
name: startCron
default: false
required: true
showIf:
true:
- type: string
name: startTime
caption: Time
inputType: time
default: "09:00"
cls: x-form-text
width: 120

- caption: Days
type: compositefield
name: cf3
defaultMargins: 0 8 0 0
items:
- name: sun2
value: true
type: checkbox
caption: Sun
- name: mon2
value: true
type: checkbox
caption: Mon
- name: tue2
value: true
type: checkbox
caption: Tue
- name: wed2
value: true
type: checkbox
caption: Wed
- name: thu2
value: true
type: checkbox
caption: Thu
- name: fri2
value: true
type: checkbox
caption: Fri
- name: sat2
value: true
type: checkbox
caption: Sat

- caption:
type: displayfield

onInstall:
- create

onUninstall: uninstall
onBeforeDelete: uninstall
actions:
convert:
convert:
- script: |
var resp = {result:0, onAfterReturn: {setGlobals:{}}}, offset = java.util.TimeZone.getTimeZone("${settings.tz}").getRawOffset(),
dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var resp = {result:0, onAfterReturn: {setGlobals:{start: "", stop: "", daysStart: "", daysStop: ""}}}, offset = java.util.TimeZone.getTimeZone("${settings.tz}").getRawOffset(),
setGlobals = resp.onAfterReturn.setGlobals,
dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
stopCron = ${settings.stopCron:false}, startCron = ${settings.startCron:false},
daysStart = [], daysStop = [], success;
if (${settings.stopCron}) {
var time = "${settings.stopTime}".split(":"),
if (stopCron) {
var time = "${settings.stopTime}".split(":"),
d1 = new Date(2020, 1, 10, parseInt(time[0],10), parseInt(time[1],10)),
d2 = new Date(d1.getTime() - offset),
dd = d2.getDate() - d1.getDate(),
days = getDays([${settings.sun1}, ${settings.mon1}, ${settings.tue1}, ${settings.wed1}, ${settings.thu1}, ${settings.fri1}, ${settings.sat1}], dd);
resp.onAfterReturn.setGlobals.stop = d2.getMinutes() + " " + d2.getHours() + " * * " + days.join(",");
var daysStop = [];
days = getDays([${settings.sun1:0}, ${settings.mon1:0}, ${settings.tue1:0}, ${settings.wed1:0}, ${settings.thu1:0}, ${settings.fri1:0}, ${settings.sat1:0}], dd);
for (var i = 0; i < days.length; i++) daysStop.push(dayNames[days[i]]);
resp.onAfterReturn.setGlobals.daysStop = daysStop.join(", ");
stopCron = (daysStop.length != 0);
if (stopCron) {
setGlobals.stop = d2.getMinutes() + " " + d2.getHours() + " * * " + days.join(",");
setGlobals.daysStop = daysStop.join(", ");
}
}
if (${settings.startCron}) {
var time = "${settings.startTime}".split(":"),
if (startCron) {
var time = "${settings.startTime}".split(":"),
d1 = new Date(2020, 1, 10, parseInt(time[0],10), parseInt(time[1],10)),
d2 = new Date(d1.getTime() - offset),
dd = d2.getDate() - d1.getDate(),
days = getDays([${settings.sun2}, ${settings.mon2}, ${settings.tue2}, ${settings.wed2}, ${settings.thu2}, ${settings.fri2}, ${settings.sat2}], dd);
resp.onAfterReturn.setGlobals.start = d2.getMinutes() + " " + d2.getHours() + " * * " + days.join(",");
var daysStart = [];
days = getDays([${settings.sun2:0}, ${settings.mon2:0}, ${settings.tue2:0}, ${settings.wed2:0}, ${settings.thu2:0}, ${settings.fri2:0}, ${settings.sat2:0}], dd);
for (var i = 0; i < days.length; i++) daysStart.push(dayNames[days[i]]);
resp.onAfterReturn.setGlobals.daysStart = daysStart.join(", ");
}
if (${settings.stopCron} && (!${settings.startCron} || !daysStart)) {
resp.onAfterReturn.setGlobals.success = "success-nostart.md";
startCron = (daysStart.length != 0);
if (startCron) {
setGlobals.start = d2.getMinutes() + " " + d2.getHours() + " * * " + days.join(",");
setGlobals.daysStart = daysStart.join(", ");
}
}
if ((!${settings.stopCron} || !daysStop) && ${settings.startCron}) {
resp.onAfterReturn.setGlobals.success = "success-nostop.md";
if (stopCron && !startCron) {
success = "success-nostart.md";
} else if (startCron && !stopCron) {
success = "success-nostop.md";
} else if (!stopCron && !startCron) {
success = "success-start-stop-disabled.md"
}
function getDays(settings, dd){
setGlobals.success = success || "success.md";
function getDays(settings, dd) {
var days = [];
for (var i = 0; i < settings.length; i++) {
for (var i = 0, n = settings.length; i < n; i++) {
if (settings[i]) {
var day = i + dd;
if (day < 0) day +=7; else if (day > 6) day -=7;
days.push(day);
days.push(day);
}
}
days.sort();
return days;
}
}
return resp;
create:
- convert
- execScript: "${baseUrl}/scripts/start-stop.js?r_${fn.random}"
Expand All @@ -212,42 +213,34 @@ actions:
var body = new Transport().get(url);
return jelastic.dev.scripting.CreateScript({appid: appid, session: session, name: 'uninstall-${env.envName}-${targetNodes.nodeGroup}-start-stop', type: 'js', code: body});
update:
- if (!${settings.stopCron} || !${settings.sun1} && !${settings.mon1} && !${settings.wed1} && !${settings.thu1} && !${settings.fri1} && !${settings.sat1} ) && (!${settings.startCron} || !${settings.sun2} && !${settings.mon2} && !${settings.tue2} && !${settings.wed2} && !${settings.thu2} && !${settings.fri2} && !${settings.sat2}) :
stopEvent:
type: error
message: You haven't specified any parameters to start or stop your environment
- if (${settings.stopCron} || ${settings.startCron}):
- convert
- execScript
- else:
- setGlobals:
success: success-start-stop-disabled.md
- convert
- execScript

execScript:
- script: "/scripts/create-service.js?r_${fn.random}"
params:
url: ${this:}
name: "${env.envName}-${targetNodes.nodeGroup}-start-stop"
start: "${globals.start:}"
stop: "${globals.stop:}"

uninstall:
script: |
return jelastic.utils.scheduler.CreateEnvTask({
appid: appid,
session: session,
envName: "${env.envName}",
envName: "${env.envName}",
script: "uninstall-${env.envName}-${targetNodes.nodeGroup}-start-stop",
trigger: "once_delay:1000",
description: "uninstall start-stop addon tasks for ${env.envName}",
params: {name: "${env.envName}-${targetNodes.nodeGroup}-start-stop"}
})
buttons:
settings: main
caption: Configure
loadingText: Updating...
action: update
successText: The scheduler has been successfully updated.



success: /text/${globals.success}

0 comments on commit 3ca6088

Please sign in to comment.