Merge lp://staging/~jeff-apple/openvista-gtm-integration/bug355710 into lp://staging/openvista-gtm-integration

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

Needs header comment update.

The structure of this thing is odd. It enters what is essentially the "body" of the FOR loop once in the DO before starting the FOR loop, then repeats the body again with the same variables on the first FOR loop iteration. Is this the desired behavior? If not, then the DO can be removed.

I would rename the variable OS to be more specific, such as ISGTM. Actually rather than that, why not remove OS completely and have ROUT determine the platform instead of passing it as a parameter? That way it could be expanded for other platforms besides GTM and Cache.

Revision history for this message
Jon Tai (jontai) wrote :

Let's rename OS => ISGTM, then commit.

review: Approve
22. By jeff.apple

Rename variable, add comment

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'mumps/XPDR.m'
--- mumps/XPDR.m 1970-01-01 00:00:00 +0000
+++ mumps/XPDR.m 2009-04-22 07:44:39 +0000
@@ -0,0 +1,156 @@
1XPDR ;SFISC/RSD - Routine File Edit ;09/17/96 10:05
2 ;;8.0;KERNEL;**1,2,44,MSC**;Jul 10, 1995
3 Q
4UPDT ;update routine file
5 N DIR,DIRUT,XPD,XPDI,XPDJ,XPDN,X,X1,Y,Y1,% W !
6 W ! S DIR(0)="FO^1:9^K:X'?.1""-""1U.7UNP X",DIR("A")="Routine Namespace",DIR("?")="Enter 1 to 8 characters, preceed with ""-"" to exclude namespace"
7 ;XPDN(0=excluded names or 1=include names, namespace)=""
8 F D ^DIR Q:$D(DIRUT) S X=$E(Y,$L(Y))="*",%=$E(Y)="-",XPDN('%,$E(Y,%+1,$L(Y)-X))=""
9 Q:'$D(XPDN)!$D(DTOUT)!$D(DUOUT)
10 W !!,"NAMESPACE INCLUDE",?35,"EXCLUDE",!,?11,"-------",?35,"-------"
11 S (X,Y)="",(X1,Y1)=1
12 F D W !?11,X,?35,Y Q:'X1&'Y1
13 .S:X1 X=$O(XPDN(1,X)),X1=X]"" S:Y1 Y=$O(XPDN(0,Y)),Y1=Y]""
14 K DIR S DIR(0)="Y",DIR("A")="OK to continue",DIR("B")="YES" D ^DIR
15 Q:'Y!$D(DIRUT) W !
16 S DIR(0)="Y",DIR("A")="Want me to clean up the Routine File before updating",DIR("?")="YES means you want to go throught the Routine file and delete any routine name that no longer exists on the system."
17 D ^DIR
18 Q:$D(DIRUT) D WAIT^DICD,DELRTN:Y
19 ;loop thru include list XPDN(1,XPDI)
20 N OS S OS=$G(^%ZOSF("OS"))["GT.M"
21 S XPDI="" F S XPDI=$O(XPDN(1,XPDI)) Q:XPDI="" D
22 .D:OS SILENT^%RSEL("*") S XPDJ=XPDI D:$$ROUT(1,OS,XPDJ) F S XPDJ=$$ROUT(0,OS,XPDJ) Q:XPDJ=""!($P(XPDJ,XPDI)]"") D
23 ..;if name XPDJ is in the exclude list, XPDN(0,XPDJ) or in Routine file, quit
24 ..Q:$D(XPDN(0,XPDJ))!$O(^DIC(9.8,"B",XPDJ,0))
25 ..;check if XPDJ is refered in the namespace by checking the subscript
26 ..;before XPDJ, if sub exist and $P(XPDJ,sub)="" then it is part of the
27 ..;namespace, quit
28 ..S %=$O(XPDN(0,XPDJ),-1) I $L(%),$P(XPDJ,%)="" Q
29 ..N XPD S XPD(9.8,"+1,",.01)=XPDJ,XPD(9.8,"+1,",1)="R"
30 ..D ADD^DICA("","XPD")
31 W " ...Done.",!
32 Q
33ROUT(D,OS,VALUE) ;
34 I D,OS Q $D(%ZR(VALUE))
35 I OS Q $O(%ZR(VALUE))
36 N A I D X "S X=$D(^$R(VALUE))" Q A
37 X "S A=$O(^$R(VALUE))" Q A
38VER ;verify Routine file
39 N DIR,DIRUT,X,Y
40 W !,"I will delete all entries in the Routine File in which",!,"the Routine no longer exist on this system!",!
41 S DIR(0)="Y",DIR("A")="OK to continue",DIR("B")="YES" D ^DIR
42 Q:'Y!$D(DIRUT) D DELRTN
43 W " ...Done.",!
44 Q
45DELRTN ;delete routine file entries
46 N DA,DIK,Y
47 S DIK="^DIC(9.8,",DA=0
48 F S DA=$O(^DIC(9.8,DA)) Q:'DA S Y=$G(^(DA,0)) I $P(Y,U,2)="R",$T(^@$P(Y,U))="" D ^DIK
49 Q
50PURGE ;purge file
51 N DA,DIK,DIR,DIRUT,X,XPD,XPDF,XPDI,XPDJ,XPDL,XPDN,XPDPG,XPDS,XPDUL,Y,Z
52 S DIR("?")="Enter the file you want to purge the data from.",DIR(0)="SM^B:Build;I:Install;ALL:Build & Install",DIR("A")="Purge from what file(s)"
53 D ^DIR Q:$D(DIRUT)
54 S XPDF=$S(Y="I":9.7,1:9.6) S:Y="ALL" XPDF(1)=9.7
55 K DIR S DIR("?")="Enter the number of Versions to keep in the file, for each package",DIR(0)="N^0:100:0",DIR("A")="Versions to Retain",DIR("B")=1
56 D ^DIR Q:$D(DIRUT) S XPDN=Y
57 K DIR
58 S DIR(0)="FO^3:30",DIR("?")="^D PURGEH^XPDR",DIR("A")="Package Name",DIR("B")="ALL"
59 F D ^DIR Q:$D(DIRUT) S XPD(X)="" Q:X="ALL" K DIR("B") S DIR("A")="Another Package Name"
60 Q:'$D(XPD)
61 ;if they want all, make sure all is the only one
62 I $D(XPD("ALL")) K XPD S XPD("ALL")=""
63 ;XPDF(1) is defined if doing both files, do purge twice
64 K ^TMP($J) D PURGE1(XPDF),PURGE1($G(XPDF(1))):$D(XPDF(1))
65 I '$D(^TMP($J)) W !!,"No match found" Q
66 K XPD,DIR
67 S DIR(0)="E",$P(XPDUL,"-",IOM)=""
68 ;if ALL, reset XPDF to next file and Do, then reset back to 9.6
69 D I $D(XPDF(1)) D ^DIR I Y S XPDF=XPDF(1) D S XPDF=9.6
70 .S XPD="^TMP("_$J_","_XPDF,XPDS=XPD_",",XPD=XPD_")",XPDL=$L(XPDS),XPDPG=1,Y=1
71 .W @IOF D HDR
72 .;loop thru ^TMP($J,file,package) & show list, quit if user "^"
73 .F S XPD=$Q(@XPD) Q:XPD=""!($E(XPD,1,XPDL)'=XPDS) D Q:'Y
74 ..S Z=@XPD W $P(Z,"^"),$S($P(Z,"^",3):" (duplicates)",1:""),! Q:$Y<(IOSL-4)
75 ..D ^DIR Q:'Y
76 ..S XPDPG=XPDPG+1 W @IOF D HDR
77 S DIR(0)="Y",DIR("A")="OK to DELETE these entries",DIR("B")="NO"
78 W !! D ^DIR
79 I $D(DIRUT)!'Y W !!,"Nothing Purged" Q
80 ;loop thru and delete
81 D I $D(XPDF(1)) S XPDF=XPDF(1) D
82 .S DIK="^XPD("_XPDF_",",XPD="^TMP("_$J_","_XPDF,XPDS=XPD_",",XPD=XPD_")",XPDL=$L(XPDS)
83 .F S XPD=$Q(@XPD) Q:XPD=""!($E(XPD,1,XPDL)'=XPDS) D
84 ..S XPDI=@XPD F XPDJ=2:1 S DA=$P(XPDI,"^",XPDJ) Q:'DA D ^DIK
85 Q
86 ;
87PURGE1(XPDF) ;XPDF=file #
88 N XPDFL,XPDI,XPDJ,XPDP,XPDV,Y,Z
89 W "."
90 ;if All, loop thru B x-ref
91 I $D(XPD("ALL")) D
92 .S XPDI=""
93 .F S XPDI=$O(^XPD(XPDF,"B",XPDI)) Q:XPDI="" D
94 ..S X=$$PKG^XPDUTL(XPDI) D PURGE2(X)
95 ..W "."
96 E S XPDI="" F S XPDI=$O(XPD(XPDI)) Q:XPDI="" D
97 .D PURGE2(XPDI)
98 .W "."
99 ;loop thru each package, XPDP=package name
100 S XPDP="" F S XPDP=$O(^TMP($J,XPDF,XPDP)) Q:XPDP="" D
101 .S XPDV="",XPDL=XPDN
102 .;the last is the most recent, XPDN = number to retain, XPDV=version
103 .;XPDS=type (T/V/Z)
104 .F S XPDV=$O(^TMP($J,XPDF,XPDP,XPDV),-1),XPDS="" Q:'XPDV!'XPDL F S XPDS=$O(^TMP($J,XPDF,XPDP,XPDV,XPDS),-1) Q:XPDS=""!'XPDL D
105 ..S Y="" F S Y=$O(^TMP($J,XPDF,XPDP,XPDV,XPDS,Y),-1) Q:Y=""!'XPDL D
106 ...I $D(^TMP($J,XPDF,XPDP,XPDV,XPDS,Y))#2 K ^(Y) S XPDL=XPDL-1 Q
107 ...S Z="" F S Z=$O(^TMP($J,XPDF,XPDP,XPDV,XPDS,Y,Z),-1) Q:Z=""!'XPDL K ^(Z) S XPDL=XPDL-1
108 Q
109 ;
110PURGE2(XPDX) ;XPDX=package name
111 ;XPDFL=1 this is not a patch, quit when we find a patch during loop
112 S XPDS=XPDX,XPDL=$L(XPDX),XPDFL=XPDX'["*"
113 ;loop and find matches
114 D F S XPDS=$O(^XPD(XPDF,"B",XPDS)) Q:XPDS=""!($E(XPDS,1,XPDL)'=XPDX)!($S(XPDFL:XPDS["*",1:0)) D
115 .S Y=$O(^XPD(XPDF,"B",XPDS,0)) Q:'Y
116 .Q:'$D(^XPD(XPDF,Y,0)) S Z=^(0),Y=XPDS_"^"_Y
117 .;can't delete Installs that status isn't 'Install Completed'
118 .I XPDF=9.7 Q:$P(Z,U,9)<3
119 .S XPDV=$$VER^XPDUTL(XPDS)
120 .;TMP($J,file,package name,version,"*","T/V/Z",num,patch)=NAME^DA^duplicat DAs
121 .I XPDS["*" D Q
122 ..I XPDV?1.2N1"."1.2N S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"*Z",0,+$P(XPDS,"*",3))=Y_$$DUP(XPDS,$P(Y,"^",2)) Q
123 ..I XPDV["T" S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"*T",+$P(XPDV,"T",2),+$P(XPDS,"*",3))=Y_$$DUP(XPDS,$P(Y,"^",2)) Q
124 ..I XPDV["V" S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"*V",+$P(XPDV,"V",2),+$P(XPDS,"*",3))=Y_$$DUP(XPDS,$P(Y,"^",2)) Q
125 ..S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"*",+$P(XPDS,"*",3))=Y_$$DUP(XPDS,$P(Y,"^",2))
126 .;TMP($J,file,package name,version,"Z",0)=NAME^DA^duplicate DAs
127 .I XPDV?1.2N1"."1.2N S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"Z",0)=Y_$$DUP(XPDS,$P(Y,"^",2)) Q
128 .;TMP($J,file,package name,version,"T/V",num)=NAME^DA^dup DAs
129 .I XPDV["T" S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"T",+$P(XPDV,"T",2))=Y_$$DUP(XPDS,$P(Y,"^",2)) Q
130 .I XPDV["V" S ^TMP($J,XPDF,$$PKG^XPDUTL(XPDS),+XPDV,"V",+$P(XPDV,"V",2))=Y_$$DUP(XPDS,$P(Y,"^",2)) Q
131 Q
132PURGEH ;executable help from DIR call at PURGE+8
133 W:$E(DIR("A"),1)="P" !,"Enter 'ALL' to purge all packages, or"
134 W !,"Enter the name of the Package you want to Purge.",!," i.e. KERNEL 8.0 will purge version 8.0Tx and 8.0Vx",!," XU*8.0 will purge all patches for 8.0",!
135 N DIR,X,Y
136 S DIR(0)="Y",DIR("A")="Want to see the "_$S(XPDF=9.7:"Install File",$D(XPDF(1)):"Build & Install Files",1:"Build File")_" List",DIR("B")="Y"
137 D ^DIR Q:'Y!$D(DIRUT)
138 D PURGEH1("^XPD(9.6,"):XPDF=9.6,PURGEH1("^XPD(9.7,"):XPDF=9.7!$D(XPDF(1))
139 Q
140 ;
141DUP(Z,Z1) ;find duplicate, Z=NAME, Z1=last ien
142 ;returns Y=DA^dup DA^dup DA...
143 N Y S Y=""
144 F S Z1=$O(^XPD(XPDF,"B",Z,Z1)) Q:'Z1 S Y=Y_"^"_Z1
145 Q Y
146 ;
147PURGEH1(DIC) ;
148 W !!,$S(DIC[9.6:"BUILD ",1:"INSTALL ")_"File"
149 S DIC(0)="QE",X="??" D ^DIC
150 Q
151 ;
152HDR W !,"Package(s) in ",$S(XPDF=9.7:"INSTALL",1:"BUILD")," File, "
153 I XPDN W "Retain last ",$S(XPDN=1:"version",1:XPDN_" versions")
154 E W "Don't retain any versions"
155 W ?70,"PAGE ",XPDPG,!,XPDUL,!
156 Q

Subscribers

People subscribed via source and target branches