Merge lp:~jontai/openvista-gtm-integration/bug392194 into lp:openvista-gtm-integration

Proposed by Jon Tai
Status: Merged
Merged at revision: not available
Proposed branch: lp:~jontai/openvista-gtm-integration/bug392194
Merge into: lp:openvista-gtm-integration
Diff against target: None lines
To merge this branch: bzr merge lp:~jontai/openvista-gtm-integration/bug392194
Reviewer Review Type Date Requested Status
jeff.apple Approve
Review via email: mp+7962@code.launchpad.net
To post a comment you must log in.
Revision history for this message
jeff.apple (jeff-apple) :
review: Approve
78. By Jon Tai

update comments

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'mumps/MSCZJOB.m'
2--- mumps/MSCZJOB.m 2009-05-21 00:50:25 +0000
3+++ mumps/MSCZJOB.m 2009-06-26 21:06:41 +0000
4@@ -1,4 +1,4 @@
5-MSCZJOB ;GFT,JDS/MSC;1 MAY 2009
6+MSCZJOB ;GFT,JDS/MSC;26JUN2009
7 ;;8.0;KERNEL;**MSC**
8 W !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9 N MSC
10@@ -7,9 +7,10 @@
11 D ^DDS Q
12 ;
13 UNLOCK(D0) ;FROM FIELD 2, PAGE 3: UNLOCK THE LOCK
14- N X,R S R=$G(@MSC@(MSCJOBID,"L",D0)) I R'["^" Q ;CAN'T SEE IT
15+ N X,R,N S R=$G(@MSC@(MSCJOBID,"L",D0)) I R'["^" Q ;CAN'T SEE IT
16 S R=$P(R," ",2),X="L "_R D ^DIM Q:'$D(X)
17- D UNLOCK^MSCZJOBU(R)
18+ S N=$$NSP(MSCJOBD0)
19+ D UNLOCK^MSCZJOBU(R,N)
20 Q
21 ;
22 KILL(J) ;FROM FIELD
23@@ -18,7 +19,8 @@
24 ;
25 COMPMUL ;COMPUTED MULTIPLE FOR MSCZJOBEXAM BLOCK
26 N X,D0,J
27- S MSC="^TMP(""MSCZJOB"")" D POLL
28+ S MSC="^TMP(""MSCZJOB1"",$J)" D POLL
29+ D JOBEXAM^MSCZJOBU(MSC)
30 F D0=0:0 S D0=$O(MSCZJOB(D0)) Q:'D0 D
31 .S MSCZJOB(D0)=MSCZJOB(D0)_U_$$DEV(D0)_U_$$USER(D0)_U_$$NSP(D0)_U_U_U_U_U_$$ROUTINE(D0)
32 .S X=MSCZJOB(D0) X DICMX
33@@ -29,7 +31,7 @@
34 .N L,P S N=$$FIND(D0,"I","$ZGBLDIR"),L=$L(N,"/") I L<2 Q
35 .F L=L-1:-1:2 S P=$P(N,"/",L) I P'[".",P'["globals" Q
36 .S P=1 I $P(N,"/")="" S P=2
37- .S N=$P(N,"/",P,L)
38+ .S N=$P(N,"/",L)
39 USER(D0) Q $P($G(^VA(200,+$$FIND(D0,"V","DUZ"),0)),U)
40 ROUTINE(D0) Q $$FIND(D0,"V","%ZPOS")
41 ;
42@@ -38,7 +40,8 @@
43 Q X
44 ;
45 COMPSTK ;COMPUTED MULTIPLE FOR MSCZJOBSTACK BLOCK
46- S MSC="^TMP(""MSCZJOB"")" K @MSC@(MSCJOBID) D POLL1
47+ S MSC="^TMP(""MSCZJOB1"",$J)" K @MSC@(MSCJOBID) D POLL1
48+ D JOBEXAM^MSCZJOBU(MSC,MSCJOBID)
49 N D0,J S J=MSCJOBID
50 F D0=1:1:$O(@MSC@(J,"S",""),-1) S X="" X DICMX
51 Q
52@@ -47,13 +50,15 @@
53 Q X
54 ;
55 COMPVARS ;COMPUTED MULTIPLE FOR MSCZJOBVARS BLOCK
56- S MSC="^TMP(""MSCZJOB"")" K @MSC@(MSCJOBID) D POLL1
57+ S MSC="^TMP(""MSCZJOB1"",$J)" K @MSC@(MSCJOBID) D POLL1
58+ D JOBEXAM^MSCZJOBU(MSC,MSCJOBID)
59 N D0,J S J=MSCJOBID
60 F D0=1:1:$O(@MSC@(J,"V",""),-1) S X="" X DICMX
61 Q
62 ;
63 COMPLKS ;COMPUTED MULTIPLE FOR MSCZJOBLOCKS BLOCK
64- S MSC="^TMP(""MSCZJOB"")" D POLL1
65+ S MSC="^TMP(""MSCZJOB1"",$J)" D POLL1
66+ D JOBEXAM^MSCZJOBU(MSC,MSCJOBID)
67 N D0
68 F D0=1:1:$$LOCKS S X="" X DICMX
69 Q
70@@ -81,9 +86,9 @@
71 TEST Q
72 COMPLK ;COMPUTED MULTIPLE FOR MSCZLOCK BLOCK
73 N X,D0,J
74- S MSC="^TMP(""MSCZJOB"")" D POLL S D0=0
75+ S MSC="^TMP(""MSCZJOB1"",$J)" K @MSC D POLL,JOBEXAM^MSCZJOBU(MSC) S D0=0
76 F K=0:0 S K=$O(MSCZJOB(K)) Q:'K D
77- .F J=0:0 S J=$O(^TMP("MSCZJOB",MSCZJOB(K),"L",J)) Q:'J S A=$TR(^(J),U,"~") D
78+ .F J=0:0 S J=$O(^TMP("MSCZJOB1",$J,MSCZJOB(K),"L",J)) Q:'J S A=$TR(^(J),U,"~") D
79 ..S D0=D0+1,MSCZLK(D0)=$P(A,"LOCK ",2,9)_U_$$USER(K)_U_$TR($$ROUTINE(K),U,"~")_"^^"_MSCZJOB(K)
80 ..S X=MSCZLK(D0) X DICMX
81 Q
82@@ -91,6 +96,7 @@
83 S DDSFILE=3.081,DR="[MSCZLOCK]",DDSPARM="S"
84 D ^DDS Q
85 UNL(D0) ;FROM FIELD 2, PAGE 3: UNLOCK THE LOCK
86- N X,R S R=$P($G(MSCZLK(D0)),U),P=$P($G(MSCZLK(D0)),U,5) ;I R'["^" Q ;CAN'T SEE IT
87+ N X,R,N S R=$P($G(MSCZLK(D0)),U),P=$P($G(MSCZLK(D0)),U,5) ;I R'["^" Q ;CAN'T SEE IT
88 S R=$P(R,"~",2),R="^"_$S(R'["(":$P(R," "),1:$P(R,")")_")"),X="L "_R D ^DIM Q:'$D(X) ;GOOD SYNTAX?
89- D UNLOCK^MSCZJOBU(R)
90+ S N=$$NSP(D0)
91+ D UNLOCK^MSCZJOBU(R,N)
92
93=== modified file 'mumps/MSCZJOBS.m'
94--- mumps/MSCZJOBS.m 2009-06-01 18:46:25 +0000
95+++ mumps/MSCZJOBS.m 2009-06-26 17:39:51 +0000
96@@ -1,4 +1,4 @@
97-MSCZJOBS ;JKT/MSC - OpenVista System status ;27MAY2009
98+MSCZJOBS ;JKT/MSC - OpenVista System status ;26JUN2009
99 ;;8.0;KERNEL;**MSC**
100 ;
101 ALL D SS() Q
102@@ -13,19 +13,22 @@
103 D INTRPT^MSCZJOBU("*") H .5
104 ;
105 N DATETIME S DATETIME=$$HTE^XLFDT($H)
106- W #!,?22,"OpenVista System Status"
107- W !,?(34-($L(DATETIME)/2)\1),DATETIME
108- W !!,?1,"Process",?12,"Device",?30,"Instance",?42,"Routine",?56,"User"
109+ W #!,?28,"OpenVista System Status"
110+ W !,?(40-($L(DATETIME)/2)\1),DATETIME
111+ W !!,?1,"Process",?12,"Device",?30,"Instance",?42,"Routine",?56,"User",?70,"Identity"
112 ;
113+ N MSC S MSC="^TMP(""MSCZJOB1"",$J)" K @MSC
114+ D JOBEXAM^MSCZJOBU(MSC)
115 N PID S PID=""
116- D PIDS^MSCZJOBU(.PID)
117- F S PID=$O(PID(PID)) Q:PID="" D
118+ F S PID=$O(@MSC@(PID)) Q:PID="" D
119 . I $G(THIS) Q:$$INSTANCE(PID)'=$$CURRENT^ZCD()
120 . W !,$$PID(PID)
121 . W ?12,$$DEVICE(PID)
122 . W ?30,$$INSTANCE(PID)
123 . W ?42,$$ROUTINE(PID)
124 . W ?56,$$USER(PID)
125+ . W ?70,$$IDENT(PID)
126+ K @MSC
127 ;
128 W !! ZSY "uptime"
129 Q
130@@ -34,22 +37,24 @@
131 Q $J(PID,8)_$S($J=PID:"*",1:"")
132 ;
133 DEVICE(PID) ;Return device
134- Q $$FIND("^TMP(""MSCZJOB"")",PID,"I","$PRINCIPAL")
135+ Q $$FIND(PID,"I","$PRINCIPAL")
136 ;
137 INSTANCE(PID) ;Return name of OpenVista instance
138- N ZG S ZG=$$FIND("^TMP(""MSCZJOB"")",PID,"I","$ZGBLDIR")
139+ N ZG S ZG=$$FIND(PID,"I","$ZGBLDIR")
140 Q $P(ZG,"/",$L(ZG,"/")-2)
141 ;
142 ROUTINE(PID) ;Return routine
143- Q $P($$FIND("^TMP(""MSCZJOB"")",PID,"V","%ZPOS"),"^",2)
144- ;
145-USER(PID) ;Return OpenVista user
146- N DUZ S DUZ=+$$FIND("^TMP(""MSCZJOB"")",PID,"V","DUZ")
147- ; FIXME: this code is looking up the name of the person in *this*
148- ; instance, which assumes that ^VA(200) is the same across databases
149- Q $P($G(^VA(200,DUZ,0)),"^")
150- ;
151-FIND(NODE,PID,ARR,KEY) ;Return the value of a key in one of the ZSHOW arrays
152+ Q $P($$FIND(PID,"V","%ZPOS"),"^",2)
153+ ;
154+USER(PID) ;Return Linux user
155+ Q $$OWNER^MSCZJOBU(PID)
156+ ;
157+IDENT(PID) ;Return OpenVista user
158+ N DUZ S DUZ=+$$FIND(PID,"V","DUZ")
159+ N ZG S ZG=$$FIND(PID,"I","$ZGBLDIR")
160+ Q $P($G(^|ZG|VA(200,DUZ,0)),"^")
161+ ;
162+FIND(PID,ARR,KEY) ;Return the value of a key in one of the ZSHOW arrays
163 N I,X S I="",X=""
164- F S I=$O(@NODE@(PID,ARR,I)) Q:'I I $P(^(I),KEY_"=")="" S X=$TR($P(^(I),"=",2),"""") Q
165+ F S I=$O(@MSC@(PID,ARR,I)) Q:'I I $P(@MSC@(PID,ARR,I),KEY_"=")="" S X=$TR($P(@MSC@(PID,ARR,I),"=",2),"""") Q
166 Q X
167
168=== modified file 'mumps/MSCZJOBU.m'
169--- mumps/MSCZJOBU.m 2009-05-21 01:38:37 +0000
170+++ mumps/MSCZJOBU.m 2009-06-26 21:06:41 +0000
171@@ -1,4 +1,4 @@
172-MSCZJOBU ;RHL,JDS,JKT/MSC;20MAY2009
173+MSCZJOBU ;RHL,JDS,JKT/MSC;26JUN2009
174 ;;8.0;KERNEL;**MSC**
175 ;
176 ; JOB EXAM UTILITIES FOR GT.M
177@@ -10,7 +10,7 @@
178 ;
179 N DEV
180 S DEV="psdev"
181- OPEN DEV:(COMM="ps -o pid= -C mumps")::"PIPE" U DEV
182+ OPEN DEV:(COMM="ps -o pid= -C mumps":READONLY)::"PIPE" U DEV
183 ;
184 N %I S %I=$I
185 N %J ; $JOB
186@@ -21,6 +21,39 @@
187 C DEV
188 Q
189 ;
190+JOBEXAM(XARY,ONEPID) ; GET ARRAY OF JOB EXAM DATA FOR ALL MUMPS PROCESSES
191+ ; XARY PASSED BY REFERENCE
192+ ;
193+ ; get a list of all OpenVista instances and look up their $ZG values
194+ N Y D LIST^ZCD
195+ N INSTANCE S INSTANCE=""
196+ F S INSTANCE=$O(Y("B",INSTANCE)) Q:INSTANCE="" D
197+ . N %ZG,%ZRO D NEWZGZRO^ZCD(INSTANCE)
198+ . S Y("B",INSTANCE)=%ZG
199+ ;
200+ I $G(ONEPID) D GETJOB(ONEPID) Q
201+ ; for each mumps process, search each OpenVista instance for the latest job exam data
202+ D PIDS(.XARY)
203+ N PID S PID=""
204+ F S PID=$O(XARY(PID)) Q:PID="" D GETJOB(PID)
205+ Q
206+GETJOB(PID) ;
207+ N SORTDATE
208+ F S INSTANCE=$O(Y("B",INSTANCE)) Q:INSTANCE="" D
209+ . N H S H=$G(^|Y("B",INSTANCE)|TMP("MSCZJOB",PID,0)) Q:H=""
210+ . S SORTDATE($$SEC^XLFDT(H))=INSTANCE
211+ N MAXDATE S MAXDATE=$O(SORTDATE(""),-1) Q:MAXDATE=""
212+ M @XARY@(PID)=^|Y("B",SORTDATE(MAXDATE))|TMP("MSCZJOB",PID)
213+ Q
214+ ;
215+OWNER(PID) ; get owner of process with PID
216+ N DEV
217+ S DEV="psdev"
218+ OPEN DEV:(COMM="ps -o user= -p "_PID:READONLY)::"PIPE" U DEV
219+ N UID R UID
220+ C DEV
221+ Q UID
222+ ;
223 INTRPT(PID) ; SEND mupip intrpt to process with PID
224 ; WHICH CAUSES THE $ZINTERRUPT CODE TO BE EXECUTED.
225 ; PID PASSED BY VALUE
226@@ -32,7 +65,7 @@
227 N CMD,DEV
228 S CMD="gtmsignal -q "_$S(PID="*":"-a",1:PID)
229 S DEV="gtmsignaldev"
230- OPEN DEV:(COMM=CMD)::"PIPE" U DEV C DEV
231+ OPEN DEV:(COMM=CMD:READONLY)::"PIPE" U DEV C DEV
232 Q
233 ;
234 KILL(PID) ; Send mupip stop to process with PID
235@@ -43,12 +76,15 @@
236 ;
237 N DEV
238 S DEV="gtmsignaldev"
239- OPEN DEV:(COMM="gtmsignal -q -s "_PID)::"PIPE" U DEV C DEV
240+ OPEN DEV:(COMM="gtmsignal -q -s "_PID:READONLY)::"PIPE" U DEV C DEV
241 Q
242 ;
243-UNLOCK(NODE) ; Use lke to remove lock on NODE.
244+UNLOCK(NODE,INSTANCE) ; Use lke to remove lock on NODE.
245+ N %ZG,%ZRO
246+ D:$G(INSTANCE)'="" NEWZGZRO^ZCD(INSTANCE)
247 N CMD,DEV
248 S CMD="lke clear -lock="""_NODE_""" -nointeractive -output=/dev/null"
249+ S:$G(%ZG)'="" CMD="gtmgbldir="""_%ZG_""" "_CMD
250 S DEV="lkedev"
251- OPEN DEV:(COMM=CMD)::"PIPE" U DEV C DEV
252+ OPEN DEV:(SHELL="/bin/sh":COMM=CMD:READONLY)::"PIPE" U DEV C DEV
253 Q
254
255=== modified file 'mumps/ZCD.m'
256--- mumps/ZCD.m 2009-06-25 00:16:23 +0000
257+++ mumps/ZCD.m 2009-06-25 23:15:27 +0000
258@@ -1,4 +1,4 @@
259-ZCD ; MSC/JKT,JDS ; "Namespace" utilities for GT.M/Unix ; 24JUN2009
260+ZCD ; MSC/JKT,JDS ; "Namespace" utilities for GT.M/Unix ; 25JUN2009
261 ;;8.0;KERNEL;**MSC**;April 21 2009
262 ; This routine assumes that your global directory file exists one
263 ; directory below the root of the instance, e.g.,
264@@ -57,15 +57,7 @@
265 Q
266 ;
267 SWITCH(INSTANCE) ; switch to another OpenVista instance
268- ;
269- ; don't allow switching if GT.M versions aren't the same
270- Q:$$GTMPATH($$CURRENT())'=$$GTMPATH(INSTANCE) 0
271- ;
272- ; there are several ways to determine new values of $ZG and $ZRO
273- ; try each method until one succeeds
274- N %ZG,%ZRO,%METHOD S %ZG="",%ZRO=""
275- F %METHOD="ENV","CAT","REP" Q:$$@("SWITCH"_%METHOD)(INSTANCE)
276- I %ZG="",%ZRO="" Q 0
277+ N %ZG,%ZRO D NEWZGZRO(INSTANCE) I %ZG="",%ZRO="" Q 0
278 ;
279 ; FIXME: set gtm_dist="$root/$instance/gtm"
280 N %TEMPDIR S %TEMPDIR=$$MKTEMP() S $ZG=%ZG,$ZRO=%ZRO_" "_%TEMPDIR
281@@ -99,26 +91,39 @@
282 Q:'$Q
283 Q 1
284 ;
285-SWITCHENV(INSTANCE) ; private entry point to be used by $$SWITCH only
286+NEWZGZRO(INSTANCE) ; determine new values of $ZG and $ZRO
287+ S %ZG="",%ZRO=""
288+ ;
289+ ; don't allow switching if GT.M versions aren't the same
290+ Q:$$GTMPATH($$CURRENT())'=$$GTMPATH(INSTANCE)
291+ ;
292+ ; there are several ways to determine new values of $ZG and $ZRO
293+ ; try each method until one succeeds
294+ N %METHOD F %METHOD="ENV","CAT","REP" D @("SWITCH"_%METHOD)(INSTANCE) Q:%ZG'=""&(%ZRO'="")
295+ Q
296+ ;
297+SWITCHENV(INSTANCE) ; private entry point
298 ; set new $ZG and $ZRO by parsing env file in target instance
299 ;
300 ; FIXME: implement this
301- Q 0
302+ Q
303 ;
304-SWITCHCAT(INSTANCE) ; private entry point to be used by $$SWITCH only
305- ; set new $ZG and $ZRO by concatenating conventional names to $$ROOT
306+SWITCHCAT(INSTANCE) ; private entry point
307+ ; set new $ZG and $ZRO by concatenating conventional names to $$ROOT.
308+ ; NOTE: this code makes assumptions about the directory layout of the
309+ ; OpenVista instance.
310 ;
311 S %ZG=$$PATH(INSTANCE)_"/globals/mumps.gld"
312 S %ZRO=$$PATH(INSTANCE)_"/objects("_$$PATH(INSTANCE)_"/routines) "_$$PATH(INSTANCE)_"/gtm"
313 ;
314 ; FIXME: check that %ZG actually exists and that all pieces of %ZRO exist
315- Q 1
316+ Q
317 ;
318-SWITCHREP(INSTANCE) ; private entry point to be used by $$SWITCH only
319+SWITCHREP(INSTANCE) ; private entry point
320 ; set new $ZG and $ZRO by replacing $$PATH($$CURRENT()) with $$PATH(INSTANCE)
321 ;
322 ; FIXME: implement this
323- Q 0
324+ Q
325 ;
326 MKTEMP() ; create a secure temporary directory, returns path to new directory
327 N %PIPE,%I S %PIPE="mktemp",%I=$I
328
329=== modified file 'mumps/ZOSFGUX.m'
330--- mumps/ZOSFGUX.m 2009-06-05 18:44:13 +0000
331+++ mumps/ZOSFGUX.m 2009-06-26 07:02:30 +0000
332@@ -1,4 +1,4 @@
333-ZOSFGUX ;SFISC/MVB,PUG/TOAD MSC/JDS- ZOSF Table for GT.M for Unix ;6JUN2009
334+ZOSFGUX ;SFISC/MVB,PUG/TOAD MSC/JDS,JKT- ZOSF Table for GT.M for Unix ;26JUN2009
335 ;;8.0;KERNEL;**275,MSC**;Jul 10, 1995
336 ;; for GT.M for Unix, version 4.3
337 ;
338@@ -100,7 +100,7 @@
339 ;;RSUM
340 ;;S Y=0 F %=1,3:1 S %1=$T(+%^@X),%3=$F(%1," ") Q:'%3 S %3=$S($E(%1,%3)'=";":$L(%1),$E(%1,%3+1)=";":$L(%1),1:%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*%2+Y
341 ;;SS
342- ;;D ^MSCZJOB
343+ ;;D ^%SS
344 ;;SAVE
345 ;;D SAVE^%ZOSV2(X) ;N %I,%F S %I=$I,%F=$P($S($ZRO["(":$P($P($ZRO,"(",2),")"),1:$ZRO)," ")_"/"_X_".m" O %F:(NEWVERSION) U %F X "F S XCN=$O(@(DIE_XCN_"")"")) Q:+XCN'=XCN S %=@(DIE_XCN_"",0)"") Q:$E(%,1)=""$"" I $E(%)'="";"" W %,!" C %F U %I
346 ;;SIZE
347
348=== modified file 'mumps/ZUGTM.m'
349--- mumps/ZUGTM.m 2009-06-09 20:13:51 +0000
350+++ mumps/ZUGTM.m 2009-06-26 00:26:42 +0000
351@@ -1,4 +1,4 @@
352-ZU ;SF/JLI,RWF MSC/JDS- For GT.M, TIE ALL TERMINALS TO THIS ROUTINE!! ;01MAY2009
353+ZU ;SF/JLI,RWF MSC/JDS,JKT- For GT.M, TIE ALL TERMINALS TO THIS ROUTINE!! ;25JUN2009
354 ;;8.0;KERNEL;**275,MSC**;Jul 10, 1995
355 ; for GT.M for VMS & Unix, version 4.3
356 ;
357@@ -81,6 +81,7 @@
358 I $G(^XUTL("XUSYS","COMMAND"))'="EXAM" ZSHOW "SD":^XUTL("XUSYS",$J,"JE")
359 I $G(^XUTL("XUSYS","COMMAND"))="EXAM" ZSHOW "*":^XUTL("XUSYS",$J,"JE")
360 I $G(^XUTL("XUSYS",$J,"CMD"))="HALT" ;To do.
361+ S ^TMP("MSCZJOB",$J,0)=$H
362 ZSHOW "*":^TMP("MSCZJOB",$J)
363 Q 1
364 ;

Subscribers

People subscribed via source and target branches