-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGenericScript.js
More file actions
83 lines (68 loc) · 2.46 KB
/
GenericScript.js
File metadata and controls
83 lines (68 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Script level global variables.
Resource.LogInformation('Script-wide code begins execution.');
var _fso = new ActiveXObject('Scripting.FileSystemObject'),
_sh = new ActiveXObject('WScript.Shell');
// Perform when the script opened.
function Open()
{
Resource.LogInformation('Entering Open function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
// Private property settings.
if (!Resource.PropertyExists('OnlineSleepSeconds'))
{
Resource.AddProperty('OnlineSleepSeconds');
Resource.OnlineSleepSeconds = 1;
Resource.LogInformation('Added OnlineSleep property. The Value is ' + Resource.OnlineSleepSeconds + '.');
}
return 0; // success
}
// Perform when the resource is placed online.
function Online()
{
Resource.LogInformation('Entering Online function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
// Sleep
Resource.LogInformation('Start sleep ' + Resource.OnlineSleepSeconds + ' second(s)...');
sleep(Resource.OnlineSleepSeconds);
Resource.LogInformation('Done sleep');
return 0; // success
}
// Perform one or more very fast, cursory checks of the specified instance with
// the emphasis on detecting potential problems rather than verifying operational status.
function LooksAlive()
{
Resource.LogInformation('Entering LooksAlive function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
return 0; // success
}
// Perform a complete check of the resource to see if it is functioning properly.
function IsAlive()
{
Resource.LogInformation('Entering IsAlive function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
return 0; // success
}
// Perform when the resource is placed offline.
function Offline()
{
Resource.LogInformation('Entering Offline function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
return 0; // success
}
// Perform when the script is closed.
function Close()
{
Resource.LogInformation('Entering Close function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
return 0; // success
}
// Perform when terminating the script.
function Terminate()
{
Resource.LogInformation('Entering Terminate function of [' + Resource.Name + ' (' + Resource.ScriptFilepath + ')].');
return 0; // success
}
//
function sleep(sleepSeconds)
{
execWithExitWait('timeout.exe /t ' + sleepSeconds);
}
//
function execWithExitWait(cmdline)
{
_sh.run(cmdline, 0, true);
}