~jontai/openvista-gtm-integration/bug683878

« back to all changes in this revision

Viewing changes to kids/XU_80_1503.KID

  • Committer: Jonathan Tai
  • Date: 2010-09-21 18:53:27 UTC
  • mfrom: (135.2.2 bug640891)
  • Revision ID: jon.tai@medsphere.com-20100921185327-nkle0xrkbo0l83tf
Merge bug 640891 - $$RETURN^%ZOSV should preserve $I

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
KIDS Distribution saved on Sep 16, 2010@17:16:04
 
2
artf10591 - Preserve $I
 
3
**KIDS**:XU*8.0*1503^
 
4
 
 
5
**INSTALL NAME**
 
6
XU*8.0*1503
 
7
"BLD",7301,0)
 
8
XU*8.0*1503^KERNEL^0^3100916^n
 
9
"BLD",7301,4,0)
 
10
^9.64PA^^
 
11
"BLD",7301,6.3)
 
12
2
 
13
"BLD",7301,"ABPKG")
 
14
n
 
15
"BLD",7301,"KRN",0)
 
16
^9.67PA^8989.52^19
 
17
"BLD",7301,"KRN",.4,0)
 
18
.4
 
19
"BLD",7301,"KRN",.401,0)
 
20
.401
 
21
"BLD",7301,"KRN",.402,0)
 
22
.402
 
23
"BLD",7301,"KRN",.403,0)
 
24
.403
 
25
"BLD",7301,"KRN",.5,0)
 
26
.5
 
27
"BLD",7301,"KRN",.84,0)
 
28
.84
 
29
"BLD",7301,"KRN",3.6,0)
 
30
3.6
 
31
"BLD",7301,"KRN",3.8,0)
 
32
3.8
 
33
"BLD",7301,"KRN",9.2,0)
 
34
9.2
 
35
"BLD",7301,"KRN",9.8,0)
 
36
9.8
 
37
"BLD",7301,"KRN",9.8,"NM",0)
 
38
^9.68A^1^1
 
39
"BLD",7301,"KRN",9.8,"NM",1,0)
 
40
ZOSVGUX^^0^B1197142
 
41
"BLD",7301,"KRN",9.8,"NM","B","ZOSVGUX",1)
 
42
 
 
43
"BLD",7301,"KRN",19,0)
 
44
19
 
45
"BLD",7301,"KRN",19.1,0)
 
46
19.1
 
47
"BLD",7301,"KRN",101,0)
 
48
101
 
49
"BLD",7301,"KRN",409.61,0)
 
50
409.61
 
51
"BLD",7301,"KRN",771,0)
 
52
771
 
53
"BLD",7301,"KRN",870,0)
 
54
870
 
55
"BLD",7301,"KRN",8989.51,0)
 
56
8989.51
 
57
"BLD",7301,"KRN",8989.52,0)
 
58
8989.52
 
59
"BLD",7301,"KRN",8994,0)
 
60
8994
 
61
"BLD",7301,"KRN","B",.4,.4)
 
62
 
 
63
"BLD",7301,"KRN","B",.401,.401)
 
64
 
 
65
"BLD",7301,"KRN","B",.402,.402)
 
66
 
 
67
"BLD",7301,"KRN","B",.403,.403)
 
68
 
 
69
"BLD",7301,"KRN","B",.5,.5)
 
70
 
 
71
"BLD",7301,"KRN","B",.84,.84)
 
72
 
 
73
"BLD",7301,"KRN","B",3.6,3.6)
 
74
 
 
75
"BLD",7301,"KRN","B",3.8,3.8)
 
76
 
 
77
"BLD",7301,"KRN","B",9.2,9.2)
 
78
 
 
79
"BLD",7301,"KRN","B",9.8,9.8)
 
80
 
 
81
"BLD",7301,"KRN","B",19,19)
 
82
 
 
83
"BLD",7301,"KRN","B",19.1,19.1)
 
84
 
 
85
"BLD",7301,"KRN","B",101,101)
 
86
 
 
87
"BLD",7301,"KRN","B",409.61,409.61)
 
88
 
 
89
"BLD",7301,"KRN","B",771,771)
 
90
 
 
91
"BLD",7301,"KRN","B",870,870)
 
92
 
 
93
"BLD",7301,"KRN","B",8989.51,8989.51)
 
94
 
 
95
"BLD",7301,"KRN","B",8989.52,8989.52)
 
96
 
 
97
"BLD",7301,"KRN","B",8994,8994)
 
98
 
 
99
"BLD",7301,"MSC")
 
100
/home/jon/XU_80_1503.KID
 
101
"BLD",7301,"MSCOM")
 
102
artf10591 - Preserve $I
 
103
"BLD",7301,"QUES",0)
 
104
^9.62^^
 
105
"MBREQ")
 
106
0
 
107
"PKG",3,-1)
 
108
1^1
 
109
"PKG",3,0)
 
110
KERNEL^XU^SIGN-ON, SECURITY, MENU DRIVER, DEVICES, TASKMAN^
 
111
"PKG",3,20,0)
 
112
^9.402P^^
 
113
"PKG",3,22,0)
 
114
^9.49I^1^1
 
115
"PKG",3,22,1,0)
 
116
8.0^3040115^2960606^1
 
117
"PKG",3,22,1,"PAH",1,0)
 
118
1503^3100916
 
119
"QUES","XPF1",0)
 
120
Y
 
121
"QUES","XPF1","??")
 
122
^D REP^XPDH
 
123
"QUES","XPF1","A")
 
124
Shall I write over your |FLAG| File
 
125
"QUES","XPF1","B")
 
126
YES
 
127
"QUES","XPF1","M")
 
128
D XPF1^XPDIQ
 
129
"QUES","XPF2",0)
 
130
Y
 
131
"QUES","XPF2","??")
 
132
^D DTA^XPDH
 
133
"QUES","XPF2","A")
 
134
Want my data |FLAG| yours
 
135
"QUES","XPF2","B")
 
136
YES
 
137
"QUES","XPF2","M")
 
138
D XPF2^XPDIQ
 
139
"QUES","XPI1",0)
 
140
YO
 
141
"QUES","XPI1","??")
 
142
^D INHIBIT^XPDH
 
143
"QUES","XPI1","A")
 
144
Want KIDS to INHIBIT LOGONs during the install
 
145
"QUES","XPI1","B")
 
146
NO
 
147
"QUES","XPI1","M")
 
148
D XPI1^XPDIQ
 
149
"QUES","XPM1",0)
 
150
PO^VA(200,:EM
 
151
"QUES","XPM1","??")
 
152
^D MG^XPDH
 
153
"QUES","XPM1","A")
 
154
Enter the Coordinator for Mail Group '|FLAG|'
 
155
"QUES","XPM1","B")
 
156
 
 
157
"QUES","XPM1","M")
 
158
D XPM1^XPDIQ
 
159
"QUES","XPO1",0)
 
160
Y
 
161
"QUES","XPO1","??")
 
162
^D MENU^XPDH
 
163
"QUES","XPO1","A")
 
164
Want KIDS to Rebuild Menu Trees Upon Completion of Install
 
165
"QUES","XPO1","B")
 
166
NO
 
167
"QUES","XPO1","M")
 
168
D XPO1^XPDIQ
 
169
"QUES","XPZ1",0)
 
170
Y
 
171
"QUES","XPZ1","??")
 
172
^D OPT^XPDH
 
173
"QUES","XPZ1","A")
 
174
Want to DISABLE Scheduled Options, Menu Options, and Protocols
 
175
"QUES","XPZ1","B")
 
176
NO
 
177
"QUES","XPZ1","M")
 
178
D XPZ1^XPDIQ
 
179
"QUES","XPZ2",0)
 
180
Y
 
181
"QUES","XPZ2","??")
 
182
^D RTN^XPDH
 
183
"QUES","XPZ2","A")
 
184
Want to MOVE routines to other CPUs
 
185
"QUES","XPZ2","B")
 
186
NO
 
187
"QUES","XPZ2","M")
 
188
D XPZ2^XPDIQ
 
189
"RTN")
 
190
1
 
191
"RTN","ZOSVGUX")
 
192
0^1^B1197142
 
193
"RTN","ZOSVGUX",1,0)
 
194
%ZOSV ;SFISC/AC,PUG/TOAD,HOU/DHW,MSC/JDA/JKT - View commands & special functions. ;16 SEPT 2010  1613
 
195
"RTN","ZOSVGUX",2,0)
 
196
 ;;8.0;KERNEL;**275,1503**;Jul 10, 1995
 
197
"RTN","ZOSVGUX",3,0)
 
198
 ;
 
199
"RTN","ZOSVGUX",4,0)
 
200
ACTJ() ; # active jobs
 
201
"RTN","ZOSVGUX",5,0)
 
202
 Q $G(^XUTL("XUSYS",0))
 
203
"RTN","ZOSVGUX",6,0)
 
204
 ;This would also work
 
205
"RTN","ZOSVGUX",7,0)
 
206
 N %FILE S %FILE=$$TEMP_"zosv_actj_"_$J_".tmp"
 
207
"RTN","ZOSVGUX",8,0)
 
208
 ZSYSTEM "ps cef -C mumps|wc>"_%FILE
 
209
"RTN","ZOSVGUX",9,0)
 
210
 N %I S %I=$I
 
211
"RTN","ZOSVGUX",10,0)
 
212
 O %FILE
 
213
"RTN","ZOSVGUX",11,0)
 
214
 U %FILE R Y U %I
 
215
"RTN","ZOSVGUX",12,0)
 
216
 C %FILE:DELETE
 
217
"RTN","ZOSVGUX",13,0)
 
218
 F  Q:$E(Y)'=" "  S $E(Y)=""
 
219
"RTN","ZOSVGUX",14,0)
 
220
 S Y=Y-1
 
221
"RTN","ZOSVGUX",15,0)
 
222
 Q Y
 
223
"RTN","ZOSVGUX",16,0)
 
224
 ;
 
225
"RTN","ZOSVGUX",17,0)
 
226
RTNDIR() ; primary routine source directory
 
227
"RTN","ZOSVGUX",18,0)
 
228
 ; If $ZRO is a single directory, e.g., xxx, returns that directory, e.g., xxx/
 
229
"RTN","ZOSVGUX",19,0)
 
230
 ; If $ZRO is of the form xxx yyy ... returns xxx/
 
231
"RTN","ZOSVGUX",20,0)
 
232
 ; If $ZRO is of the form www(xxx) ... or www(xxx yyy) ... returns xxx/
 
233
"RTN","ZOSVGUX",21,0)
 
234
 Q $P($S(($F($ZRO_" "," ")>$F($ZRO,"("))&$F($ZRO,"("):$P($P($ZRO,")"),"(",2),1:$ZRO)," ")_"/" ;
 
235
"RTN","ZOSVGUX",22,0)
 
236
TEMP() ; Return path to temp directory
 
237
"RTN","ZOSVGUX",23,0)
 
238
 ;N %TEMP S %TEMP=$P($$RTNDIR," "),%TEMP=$P(%TEMP,"/",1,$L(%TEMP,"/")-2)_"/t/"
 
239
"RTN","ZOSVGUX",24,0)
 
240
 Q $G(^%ZOSF("TMP"),"/tmp/")
 
241
"RTN","ZOSVGUX",25,0)
 
242
 ;
 
243
"RTN","ZOSVGUX",26,0)
 
244
AVJ() ; # available jobs
 
245
"RTN","ZOSVGUX",27,0)
 
246
 Q $G(^%ZTSCH("MAXJOBS"),1000)-$$ACTJ
 
247
"RTN","ZOSVGUX",28,0)
 
248
 ;
 
249
"RTN","ZOSVGUX",29,0)
 
250
PASSALL ;
 
251
"RTN","ZOSVGUX",30,0)
 
252
 U $I:(PASTHRU) Q  ; <=====
 
253
"RTN","ZOSVGUX",31,0)
 
254
NOPASS ;
 
255
"RTN","ZOSVGUX",32,0)
 
256
 U $I:(NOPASTHRU) Q  ; <=====
 
257
"RTN","ZOSVGUX",33,0)
 
258
 ;
 
259
"RTN","ZOSVGUX",34,0)
 
260
GETPEER() ;Get the IP address of a connection peer
 
261
"RTN","ZOSVGUX",35,0)
 
262
 Q $S($L($G(IO("GTM-IP"))):IO("GTM-IP"),1:"")
 
263
"RTN","ZOSVGUX",36,0)
 
264
 ;
 
265
"RTN","ZOSVGUX",37,0)
 
266
LOG(MSG,PRIORITY,TAG)
 
267
"RTN","ZOSVGUX",38,0)
 
268
 NEW CMD,A
 
269
"RTN","ZOSVGUX",39,0)
 
270
 S CMD="logger"
 
271
"RTN","ZOSVGUX",40,0)
 
272
 S:$G(PRIORITY)'="" CMD=CMD_" -p "_PRIORITY
 
273
"RTN","ZOSVGUX",41,0)
 
274
 S:$G(TAG)'="" CMD=CMD_" -t "_TAG
 
275
"RTN","ZOSVGUX",42,0)
 
276
 S CMD=CMD_" -- "_MSG
 
277
"RTN","ZOSVGUX",43,0)
 
278
 S A="LOGDEV" OPEN A:(COMM=CMD)::"PIPE" U A C A
 
279
"RTN","ZOSVGUX",44,0)
 
280
 Q
 
281
"RTN","ZOSVGUX",45,0)
 
282
PRGMODE ; <=====
 
283
"RTN","ZOSVGUX",46,0)
 
284
 N USER,ISOK,LOGTEXT,RDIR
 
285
"RTN","ZOSVGUX",47,0)
 
286
 S ISOK=$$AUTH(.USER)
 
287
"RTN","ZOSVGUX",48,0)
 
288
 Q:USER="^"
 
289
"RTN","ZOSVGUX",49,0)
 
290
 S RDIR=$$RTNDIR^%ZOSV
 
291
"RTN","ZOSVGUX",50,0)
 
292
 S LOGTEXT=$S(ISOK:"Granted",1:"Denied")_" programmer mode in "
 
293
"RTN","ZOSVGUX",51,0)
 
294
 S LOGTEXT=LOGTEXT_$P(RDIR,"/",$L(RDIR,"/")-2) ; instance
 
295
"RTN","ZOSVGUX",52,0)
 
296
 S LOGTEXT=LOGTEXT_" to "_USER ; Unix acct name
 
297
"RTN","ZOSVGUX",53,0)
 
298
 S LOGTEXT=LOGTEXT_" from "_$P($ZTRNLNM("SSH_CLIENT")," ",1) ; remote loc
 
299
"RTN","ZOSVGUX",54,0)
 
300
 S LOGTEXT=LOGTEXT_" logged in as "_$$GET1^DIQ(200,DUZ,.01) ; VistA user
 
301
"RTN","ZOSVGUX",55,0)
 
302
 D LOG(LOGTEXT,"authpriv.info","OpenVista")
 
303
"RTN","ZOSVGUX",56,0)
 
304
 I 'ISOK W "??",*7 Q
 
305
"RTN","ZOSVGUX",57,0)
 
306
 K XMB,XMTEXT,XMY S XMB="XUPROGMODE",XMB(1)=DUZ,XMB(2)=$I D ^XMB:$L($T(^XMB)) D BYE^XUSCLEAN K ZTPAC,X,XMB
 
307
"RTN","ZOSVGUX",58,0)
 
308
 ;D UCI S XUCI=Y,XQZ="PRGM^ZUA[MGR]",XUSLNT=1 D DO^%XUCI
 
309
"RTN","ZOSVGUX",59,0)
 
310
 F  BREAK
 
311
"RTN","ZOSVGUX",60,0)
 
312
 HALT
 
313
"RTN","ZOSVGUX",61,0)
 
314
 ;
 
315
"RTN","ZOSVGUX",62,0)
 
316
PROGMODE() ; <=====
 
317
"RTN","ZOSVGUX",63,0)
 
318
 Q 1 ; until we fix this, we're never in application mode
 
319
"RTN","ZOSVGUX",64,0)
 
320
 ;
 
321
"RTN","ZOSVGUX",65,0)
 
322
AUTH(USER) ;
 
323
"RTN","ZOSVGUX",66,0)
 
324
 N PASS
 
325
"RTN","ZOSVGUX",67,0)
 
326
 N IDDEV S IDDEV="id",OLDIO=$IO
 
327
"RTN","ZOSVGUX",68,0)
 
328
 O IDDEV:(COMMAND="id -un":READONLY)::"PIPE" U IDDEV R USER C IDDEV U OLDIO
 
329
"RTN","ZOSVGUX",69,0)
 
330
 Q:USER'="openvista" 1
 
331
"RTN","ZOSVGUX",70,0)
 
332
 D INITKB^XGF()
 
333
"RTN","ZOSVGUX",71,0)
 
334
 W !,"System user name: "
 
335
"RTN","ZOSVGUX",72,0)
 
336
 S USER=$$READ^XGF() Q:USER="^" 0
 
337
"RTN","ZOSVGUX",73,0)
 
338
 X ^%ZOSF("EOFF")
 
339
"RTN","ZOSVGUX",74,0)
 
340
 W !,"System password: "
 
341
"RTN","ZOSVGUX",75,0)
 
342
 S PASS=$$READ^XGF()
 
343
"RTN","ZOSVGUX",76,0)
 
344
 X ^%ZOSF("EON") I PASS="^" S USER="^" Q 0
 
345
"RTN","ZOSVGUX",77,0)
 
346
 W !
 
347
"RTN","ZOSVGUX",78,0)
 
348
 N DEV,OLDIO,STATUS
 
349
"RTN","ZOSVGUX",79,0)
 
350
 S DEV="ovauth",OLDIO=$IO,STATUS="Problem opening pipe"
 
351
"RTN","ZOSVGUX",80,0)
 
352
 O DEV:(COMMAND="/sbin/ovauth "_USER:PARSE:INDEPENDENT:EXCEPTION="G AUTHDONE")::"PIPE"
 
353
"RTN","ZOSVGUX",81,0)
 
354
 U DEV W PASS R STATUS
 
355
"RTN","ZOSVGUX",82,0)
 
356
AUTHDONE
 
357
"RTN","ZOSVGUX",83,0)
 
358
 U OLDIO
 
359
"RTN","ZOSVGUX",84,0)
 
360
 C DEV
 
361
"RTN","ZOSVGUX",85,0)
 
362
 ; W STATUS,! ; Comment this back in to see what went wrong
 
363
"RTN","ZOSVGUX",86,0)
 
364
 Q STATUS="OK"
 
365
"RTN","ZOSVGUX",87,0)
 
366
UCI ;
 
367
"RTN","ZOSVGUX",88,0)
 
368
 S Y=^%ZOSF("PROD") Q
 
369
"RTN","ZOSVGUX",89,0)
 
370
 ;
 
371
"RTN","ZOSVGUX",90,0)
 
372
UCICHECK(X) ;
 
373
"RTN","ZOSVGUX",91,0)
 
374
 Q X
 
375
"RTN","ZOSVGUX",92,0)
 
376
 ;
 
377
"RTN","ZOSVGUX",93,0)
 
378
JOBPAR ; <=====
 
379
"RTN","ZOSVGUX",94,0)
 
380
 ; See if X points to a valid Job. Return its UCI.
 
381
"RTN","ZOSVGUX",95,0)
 
382
 ; FIXME: currently returns "VAH,ROU" instead of the real UCI (or "" if X is not 
 
383
"RTN","ZOSVGUX",96,0)
 
384
 ;        the $J of a mumps process)
 
385
"RTN","ZOSVGUX",97,0)
 
386
 S Y=$$RETURN("ps c -p "_X_" | tail -1")
 
387
"RTN","ZOSVGUX",98,0)
 
388
 F  Q:$E(Y)'=" "  S $E(Y)=""
 
389
"RTN","ZOSVGUX",99,0)
 
390
 I +Y=X,$E(Y,$L(Y)-4,$L(Y))="mumps" S Y="VAH,ROU"
 
391
"RTN","ZOSVGUX",100,0)
 
392
 E  S Y=""
 
393
"RTN","ZOSVGUX",101,0)
 
394
 Q
 
395
"RTN","ZOSVGUX",102,0)
 
396
 ;
 
397
"RTN","ZOSVGUX",103,0)
 
398
PRIORITY ; <=====
 
399
"RTN","ZOSVGUX",104,0)
 
400
 K Y ; Wally has this disabled in general, but I'd like to bring it back
 
401
"RTN","ZOSVGUX",105,0)
 
402
 Q
 
403
"RTN","ZOSVGUX",106,0)
 
404
 ;
 
405
"RTN","ZOSVGUX",107,0)
 
406
PRIINQ() ; <=====
 
407
"RTN","ZOSVGUX",108,0)
 
408
 Q 5 ; for now, we're always middle of the road
 
409
"RTN","ZOSVGUX",109,0)
 
410
 ;
 
411
"RTN","ZOSVGUX",110,0)
 
412
BAUD S X="UNKNOWN" Q
 
413
"RTN","ZOSVGUX",111,0)
 
414
 ;
 
415
"RTN","ZOSVGUX",112,0)
 
416
LGR() ; Last global reference ($REFERENCE)
 
417
"RTN","ZOSVGUX",113,0)
 
418
 Q $R
 
419
"RTN","ZOSVGUX",114,0)
 
420
 ;
 
421
"RTN","ZOSVGUX",115,0)
 
422
EC() ; Error Code: returning $ZS in format more like $ZE from DSM
 
423
"RTN","ZOSVGUX",116,0)
 
424
 N %ZE
 
425
"RTN","ZOSVGUX",117,0)
 
426
 I $ZS="" S %ZE=""
 
427
"RTN","ZOSVGUX",118,0)
 
428
 S %ZE=$P($ZS,",",2)_","_$P($ZS,",",4)_","_$P($ZS,",")_",-"_$P($ZS,",",3)
 
429
"RTN","ZOSVGUX",119,0)
 
430
 Q %ZE
 
431
"RTN","ZOSVGUX",120,0)
 
432
 ;
 
433
"RTN","ZOSVGUX",121,0)
 
434
DOLRO ;SAVE ENTIRE SYMBOL TABLE IN LOCATION SPECIFIED BY X
 
435
"RTN","ZOSVGUX",122,0)
 
436
 S Y="%" F  S Y=$O(@Y) Q:Y=""  D  ;code from DEC
 
437
"RTN","ZOSVGUX",123,0)
 
438
 . I $D(@Y)#2 S @(X_"Y)="_Y)
 
439
"RTN","ZOSVGUX",124,0)
 
440
 . I $D(@Y)>9 S %X=Y_"(",%Y=X_"Y," D %XY^%RCR
 
441
"RTN","ZOSVGUX",125,0)
 
442
 K %X,%Y,Y Q
 
443
"RTN","ZOSVGUX",126,0)
 
444
 ;
 
445
"RTN","ZOSVGUX",127,0)
 
446
ORDER ;SAVE PART OF SYMBOL TABLE IN LOCATION SPECIFIED BY X
 
447
"RTN","ZOSVGUX",128,0)
 
448
 I Y="*" D DOLRO Q
 
449
"RTN","ZOSVGUX",129,0)
 
450
 S (Y,Y1)=$P(Y,"*",1) I $D(@Y)=0 F %=0:0 S Y=$O(@Y) Q:Y=""!(Y[Y1)
 
451
"RTN","ZOSVGUX",130,0)
 
452
 Q:Y=""  S %=$D(@Y) S:%#2 @(X_"Y)="_Y) I %>9 S %X=Y_"(",%Y=X_"Y," D %XY^%RCR
 
453
"RTN","ZOSVGUX",131,0)
 
454
 F %=0:0 S Y=$O(@Y) Q:Y=""!(Y'[Y1)  S %=$D(@Y) S:%#2 @(X_"Y)="_Y) I %>9 S %X=Y_"(",%Y=X_"Y," D %XY^%RCR
 
455
"RTN","ZOSVGUX",132,0)
 
456
 K %,X,Y,Y1
 
457
"RTN","ZOSVGUX",133,0)
 
458
 Q
 
459
"RTN","ZOSVGUX",134,0)
 
460
 ;
 
461
"RTN","ZOSVGUX",135,0)
 
462
PARSIZ ;
 
463
"RTN","ZOSVGUX",136,0)
 
464
 S X=3 Q
 
465
"RTN","ZOSVGUX",137,0)
 
466
 ;
 
467
"RTN","ZOSVGUX",138,0)
 
468
NOLOG ;
 
469
"RTN","ZOSVGUX",139,0)
 
470
 S Y=0 Q
 
471
"RTN","ZOSVGUX",140,0)
 
472
 ;
 
473
"RTN","ZOSVGUX",141,0)
 
474
GETENV ;Get environment Return Y='UCI^VOL^NODE^BOX LOOKUP'
 
475
"RTN","ZOSVGUX",142,0)
 
476
 ; see https://bugs.launchpad.net/openvista-gtm-integration/+bug/422885
 
477
"RTN","ZOSVGUX",143,0)
 
478
 N %HOST,%V S %V=^%ZOSF("PROD"),%HOST=$$RETURN("hostname -s")
 
479
"RTN","ZOSVGUX",144,0)
 
480
 N %CLUSTER S %CLUSTER=$G(^%ZOSF("CLUSTER")) I %CLUSTER="" S %CLUSTER=%HOST
 
481
"RTN","ZOSVGUX",145,0)
 
482
 S Y=$TR(%V,",","^")_"^"_%HOST_"^"_$P(%V,",",2)_":"_%CLUSTER
 
483
"RTN","ZOSVGUX",146,0)
 
484
 Q
 
485
"RTN","ZOSVGUX",147,0)
 
486
 ;
 
487
"RTN","ZOSVGUX",148,0)
 
488
VERSION(X) ;return OS version, X=1 - return OS
 
489
"RTN","ZOSVGUX",149,0)
 
490
 Q $S($G(X):$P($ZV," V"),1:+$P($ZV," V",2))
 
491
"RTN","ZOSVGUX",150,0)
 
492
 ;
 
493
"RTN","ZOSVGUX",151,0)
 
494
SETNM(X) ;Set name, Trap dup's, Fall into SETENV
 
495
"RTN","ZOSVGUX",152,0)
 
496
 N $ETRAP S $ETRAP="S $ECODE="""" Q"
 
497
"RTN","ZOSVGUX",153,0)
 
498
 ;
 
499
"RTN","ZOSVGUX",154,0)
 
500
SETENV ;Set environment X='PROCESS NAME^ '
 
501
"RTN","ZOSVGUX",155,0)
 
502
 S ^XUTL("XUSYS",$J,0)=$H,^("NM")=X ; workaround
 
503
"RTN","ZOSVGUX",156,0)
 
504
 Q
 
505
"RTN","ZOSVGUX",157,0)
 
506
 ;
 
507
"RTN","ZOSVGUX",158,0)
 
508
SID() ;System ID
 
509
"RTN","ZOSVGUX",159,0)
 
510
 N J1,T S T="~"
 
511
"RTN","ZOSVGUX",160,0)
 
512
 S J1(1)=$ZROUTINES,J1(1)=$P(J1(1)," ")
 
513
"RTN","ZOSVGUX",161,0)
 
514
 S J1(2)=$ZGBLDIR
 
515
"RTN","ZOSVGUX",162,0)
 
516
 Q "1~"_J1(1)_T_J1(2)
 
517
"RTN","ZOSVGUX",163,0)
 
518
 ;
 
519
"RTN","ZOSVGUX",164,0)
 
520
T0 ; start RT clock <=====
 
521
"RTN","ZOSVGUX",165,0)
 
522
 Q  ; we don't have $ZH on GT.M
 
523
"RTN","ZOSVGUX",166,0)
 
524
 ;
 
525
"RTN","ZOSVGUX",167,0)
 
526
T1 ; store RT datum w/ZHDIF <=====
 
527
"RTN","ZOSVGUX",168,0)
 
528
 Q  ; we don't have $ZH on GT.M
 
529
"RTN","ZOSVGUX",169,0)
 
530
 ;
 
531
"RTN","ZOSVGUX",170,0)
 
532
ZHDIF ;Display dif of two $ZH's <=====
 
533
"RTN","ZOSVGUX",171,0)
 
534
 W !," CPU=",$J($P(%ZH1,",")-$P(%ZH0,","),6,2)
 
535
"RTN","ZOSVGUX",172,0)
 
536
 W ?14," ET=",$J($P(%ZH1,",",2)-$P(%ZH0,",",2),6,1)
 
537
"RTN","ZOSVGUX",173,0)
 
538
 W ?27," DIO=",$J($P(%ZH1,",",7)-$P(%ZH0,",",7),5)
 
539
"RTN","ZOSVGUX",174,0)
 
540
 W ?40," BIO=",$J($P(%ZH1,",",8)-$P(%ZH0,",",8),5),! ; so far this won't be called
 
541
"RTN","ZOSVGUX",175,0)
 
542
 Q
 
543
"RTN","ZOSVGUX",176,0)
 
544
 ;
 
545
"RTN","ZOSVGUX",177,0)
 
546
 ;Code moved to %ZOSVKR, Comment out if needed.
 
547
"RTN","ZOSVGUX",178,0)
 
548
LOGRSRC(OPT,TYPE,STATUS) ;record resource usage in ^XTMP("KMPR"
 
549
"RTN","ZOSVGUX",179,0)
 
550
 Q:'$G(^%ZTSCH("LOGRSRC"))  ; quit if RUM not turned on.
 
551
"RTN","ZOSVGUX",180,0)
 
552
 ; call to RUM routine.
 
553
"RTN","ZOSVGUX",181,0)
 
554
 D RU^%ZOSVKR($G(OPT),$G(TYPE),$G(STATUS))
 
555
"RTN","ZOSVGUX",182,0)
 
556
 Q
 
557
"RTN","ZOSVGUX",183,0)
 
558
 ;
 
559
"RTN","ZOSVGUX",184,0)
 
560
SETTRM(X) ;Turn on specified terminators.
 
561
"RTN","ZOSVGUX",185,0)
 
562
 U $I:(TERM=X)
 
563
"RTN","ZOSVGUX",186,0)
 
564
 Q 1
 
565
"RTN","ZOSVGUX",187,0)
 
566
 ;
 
567
"RTN","ZOSVGUX",188,0)
 
568
DEVOK ;
 
569
"RTN","ZOSVGUX",189,0)
 
570
 ;use lsof (list open files)
 
571
"RTN","ZOSVGUX",190,0)
 
572
 ; given a device name in X
 
573
"RTN","ZOSVGUX",191,0)
 
574
 ;INPUT:  X=Device $I, X1=IOT -- X1 needed for resources
 
575
"RTN","ZOSVGUX",192,0)
 
576
 ;OUTPUT: Y=0 if available, Y=job # if owned
 
577
"RTN","ZOSVGUX",193,0)
 
578
 ; Y=-1 if device does not exists.
 
579
"RTN","ZOSVGUX",194,0)
 
580
 ; return Y=0 if not owned, Y=$J of owning job, Y=999 if dev cycling
 
581
"RTN","ZOSVGUX",195,0)
 
582
 ;
 
583
"RTN","ZOSVGUX",196,0)
 
584
 I $G(X1)="RES" G RESOK^%ZIS6
 
585
"RTN","ZOSVGUX",197,0)
 
586
 S Y=0
 
587
"RTN","ZOSVGUX",198,0)
 
588
 Q  ;Let ZIS deal with it.
 
589
"RTN","ZOSVGUX",199,0)
 
590
 ;
 
591
"RTN","ZOSVGUX",200,0)
 
592
 N %FILE S %FILE=$$TEMP_"zosv_devok_"_$J_".tmp"
 
593
"RTN","ZOSVGUX",201,0)
 
594
 ZSYSTEM "/usr/sbin/lsof -F Pc "_X_" >"_%FILE
 
595
"RTN","ZOSVGUX",202,0)
 
596
 N %I,%X,%Y S %I=$I
 
597
"RTN","ZOSVGUX",203,0)
 
598
 O %FILE
 
599
"RTN","ZOSVGUX",204,0)
 
600
 N %I,%X,%Y S %I=$I
 
601
"RTN","ZOSVGUX",205,0)
 
602
 U %FILE
 
603
"RTN","ZOSVGUX",206,0)
 
604
 F %Y=0:1 R %X Q:%X=""  Q:%X["lsof: status error"  D
 
605
"RTN","ZOSVGUX",207,0)
 
606
 . S %Y(%Y\2,$S($E(%X)="p":"PID",$E(%X)="c":"CMD",1:"?"))=$E(%X,2,$L(%X))
 
607
"RTN","ZOSVGUX",208,0)
 
608
 U %I
 
609
"RTN","ZOSVGUX",209,0)
 
610
 C %FILE:(DELETE)
 
611
"RTN","ZOSVGUX",210,0)
 
612
 I %X["lsof: status error" S Y=-1 Q
 
613
"RTN","ZOSVGUX",211,0)
 
614
 S %X="",Y=0
 
615
"RTN","ZOSVGUX",212,0)
 
616
 F  S %X=$O(%Y(%X)) Q:%X=""  I %Y(%X,"CMD")="mumps" S Y=%Y(%X,"PID") Q
 
617
"RTN","ZOSVGUX",213,0)
 
618
 Q
 
619
"RTN","ZOSVGUX",214,0)
 
620
 ;
 
621
"RTN","ZOSVGUX",215,0)
 
622
PIDOPN ; give a list of of all JOBS that have the current device open
 
623
"RTN","ZOSVGUX",216,0)
 
624
 ; returns comma separated in Y
 
625
"RTN","ZOSVGUX",217,0)
 
626
 N %PIPE S %PIPE="lsof"
 
627
"RTN","ZOSVGUX",218,0)
 
628
 O %PIPE:(COMMAND="lsof -F Pc "_$I:READONLY)::"PIPE"
 
629
"RTN","ZOSVGUX",219,0)
 
630
 N %I,%X,%Y S %I=$I
 
631
"RTN","ZOSVGUX",220,0)
 
632
 U %PIPE
 
633
"RTN","ZOSVGUX",221,0)
 
634
 F %Y=0:1 R %X Q:%X=""  S %Y(%Y\2,$S($E(%X)="p":"PID",$E(%X)="c":"CMD",1:"?"))=$E(%X,2,$L(%X))
 
635
"RTN","ZOSVGUX",222,0)
 
636
 U %I
 
637
"RTN","ZOSVGUX",223,0)
 
638
 C %PIPE
 
639
"RTN","ZOSVGUX",224,0)
 
640
 S (Y,%X)="" F  S %X=$O(%Y(%X)) Q:%X=""  I %Y(%X,"CMD")="mumps" S Y=Y_","_%Y(%X,"PID")
 
641
"RTN","ZOSVGUX",225,0)
 
642
 S $E(Y)=""
 
643
"RTN","ZOSVGUX",226,0)
 
644
 Q
 
645
"RTN","ZOSVGUX",227,0)
 
646
 ;
 
647
"RTN","ZOSVGUX",228,0)
 
648
DEVOPN ;List of Devices opened
 
649
"RTN","ZOSVGUX",229,0)
 
650
 ;Returns variable Y. Y=Devices owned separated by a comma
 
651
"RTN","ZOSVGUX",230,0)
 
652
 N %D,%I
 
653
"RTN","ZOSVGUX",231,0)
 
654
 S Y=""
 
655
"RTN","ZOSVGUX",232,0)
 
656
 ZSHOW "D":%D
 
657
"RTN","ZOSVGUX",233,0)
 
658
 S %I="" F  S %I=$O(%D("D",%I)) Q:%I=""  S Y=Y_","_$P(%D("D",%I)," OPEN ")
 
659
"RTN","ZOSVGUX",234,0)
 
660
 S $E(Y)=""
 
661
"RTN","ZOSVGUX",235,0)
 
662
 Q
 
663
"RTN","ZOSVGUX",236,0)
 
664
 ;
 
665
"RTN","ZOSVGUX",237,0)
 
666
RETURN(%COMMAND) ; ** Private Entry Point: execute a shell command & return the resulting value **
 
667
"RTN","ZOSVGUX",238,0)
 
668
 ;
 
669
"RTN","ZOSVGUX",239,0)
 
670
 ; %COMMAND is the string value of the Linux command
 
671
"RTN","ZOSVGUX",240,0)
 
672
 N %PIPE,%I,%VALUE S %PIPE="pipe",%I=$I
 
673
"RTN","ZOSVGUX",241,0)
 
674
 O %PIPE:(COMMAND=%COMMAND:READONLY)::"PIPE" U %PIPE R %VALUE C %PIPE
 
675
"RTN","ZOSVGUX",242,0)
 
676
 U %I
 
677
"RTN","ZOSVGUX",243,0)
 
678
 QUIT %VALUE ; return value
 
679
"RTN","ZOSVGUX",244,0)
 
680
 ;
 
681
"RTN","ZOSVGUX",245,0)
 
682
 ;
 
683
"RTN","ZOSVGUX",246,0)
 
684
STRIPCR(%DIRECTORY) ; ** Private Entry Point: strip extraneous CR from end of lines of all
 
685
"RTN","ZOSVGUX",247,0)
 
686
 ; routines in %DIRECTORY Linux directory
 
687
"RTN","ZOSVGUX",248,0)
 
688
 ;
 
689
"RTN","ZOSVGUX",249,0)
 
690
 ZSYSTEM "perl -pi -e 's/\r\n$/\n/' "_%DIRECTORY_"[A-K]*.m"
 
691
"RTN","ZOSVGUX",250,0)
 
692
 ZSYSTEM "perl -pi -e 's/\r\n$/\n/' "_%DIRECTORY_"[L-S]*.m"
 
693
"RTN","ZOSVGUX",251,0)
 
694
 ZSYSTEM "perl -pi -e 's/\r\n$/\n/' "_%DIRECTORY_"[T-z]*.m"
 
695
"RTN","ZOSVGUX",252,0)
 
696
 ZSYSTEM "perl -pi -e 's/\r\n$/\n/' "_%DIRECTORY_"[_]*.m"
 
697
"RTN","ZOSVGUX",253,0)
 
698
 Q
 
699
"RTN","ZOSVGUX",254,0)
 
700
 ;
 
701
"VER")
 
702
8.0^22.0
 
703
**END**
 
704
**END**