1 | XMUDNC ;ISC-SF/GMB-Domain Name Change ;04/17/2002 11:48
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; A domain name change happens in two steps, in two patches:
|
---|
4 | ; 1. The first patch adds the new name as a synonym to the site's
|
---|
5 | ; DOMAIN file entry at all sites. (Entry SYNONYM)
|
---|
6 | ; 2. When all sites have added the synonym, the second patch switches
|
---|
7 | ; the names in the DOMAIN file at all sites. The synonym becomes
|
---|
8 | ; the domain name, and old domain name becomes the synonym.
|
---|
9 | ; The domain name is changed in each TCP/IP script, too.
|
---|
10 | ; The domain name is changed in the Postmaster's basket.
|
---|
11 | ; The site's name is changed in file 4.3 MAILMAN SITE PARAMETERS.
|
---|
12 | ; (Entry CHANGE)
|
---|
13 | SYNONYM ;
|
---|
14 | D BMES^XPDUTL("Add <new site name> as synonym for <current site name> in DOMAIN file.")
|
---|
15 | D REINDEX
|
---|
16 | N XMB,XMI,XMDOM,XMSUBDOM,XMSYN
|
---|
17 | ;D INIT("S") Q:'$D(^DOPT("XMSYN",$J))
|
---|
18 | S (XMB,XMI)=""
|
---|
19 | F S XMB=$O(^DIC(4.2,"B",XMB)) Q:XMB="" D
|
---|
20 | . F S XMI=$O(^DIC(4.2,"B",XMB,XMI)) Q:XMI="" D
|
---|
21 | . . N DIC,X,Y
|
---|
22 | . . S (X,XMDOM)=$P(^DIC(4.2,XMI,0),U,1)
|
---|
23 | . . S XMSUBDOM=""
|
---|
24 | . . S DIC="^DOPT(""XMSYN"",$J,"
|
---|
25 | . . S DIC(0)="XZ"
|
---|
26 | . . F D ^DIC Q:Y>0!($L(X,".")<4) D
|
---|
27 | . . . S XMSUBDOM=XMSUBDOM_$P(X,".")_"."
|
---|
28 | . . . S X=$P(X,".",2,99)
|
---|
29 | . . Q:Y<0 ; Quit if (sub) domain is not in the table
|
---|
30 | . . D BMES^XPDUTL("Domain: "_XMDOM)
|
---|
31 | . . S XMSYN=$P(Y(0),U,2)
|
---|
32 | . . I XMSYN="" S XMSYN=$P(XMDOM,".",1,$L(XMDOM,".")-2)_".MED.VA.GOV"
|
---|
33 | . . E S XMSYN=XMSUBDOM_XMSYN
|
---|
34 | . . D CHKSYN(XMI,XMSYN)
|
---|
35 | K ^DOPT("XMSYN",$J)
|
---|
36 | Q
|
---|
37 | INIT(XMENTRY) ; Load table into global
|
---|
38 | ; XMENTRY - An entry point in a pre-init (for synonyms) or post-init
|
---|
39 | ; (for changes).
|
---|
40 | N DIK,I,X
|
---|
41 | K ^DOPT("XMSYN",$J)
|
---|
42 | F I=1:1 S X=$T(@XMENTRY+I) Q:X=" ;;" S ^DOPT("XMSYN",$J,I,0)=$E(X,4,255)
|
---|
43 | Q:'$D(^DOPT("XMSYN",$J))
|
---|
44 | S ^DOPT("XMSYN",$J,0)="Domain Synonyms^1N^"
|
---|
45 | S DIK="^DOPT(""XMSYN"",$J,"
|
---|
46 | D IXALL^DIK
|
---|
47 | Q
|
---|
48 | CHKSYN(XMDIEN,XMSYN) ;
|
---|
49 | N XMSIEN
|
---|
50 | D MES^XPDUTL("Lookup Synonym: "_XMSYN)
|
---|
51 | S XMSIEN=$$FIND1^DIC(4.2,"","MQX",XMSYN,"B^C")
|
---|
52 | I $D(DIERR) D Q
|
---|
53 | . N XMI
|
---|
54 | . D MES^XPDUTL("*** Error on look up!")
|
---|
55 | . D MES^XPDUTL("*** Usually means more than one occurence.")
|
---|
56 | . I $D(^DIC(4.2,"B",XMSYN)) D MES^XPDUTL("*** Synonym is also a domain!")
|
---|
57 | . S XMI=0
|
---|
58 | . F S XMI=$O(^DIC(4.2,"C",XMSYN,XMI)) Q:'XMI D
|
---|
59 | . . D MES^XPDUTL("*** Synonym is for domain IEN "_XMI_", name "_$P(^DIC(4.2,XMI,0),U,1))
|
---|
60 | . D MES^XPDUTL("*** No action taken. Please investigate and fix.")
|
---|
61 | I XMSIEN=XMDIEN D MES^XPDUTL("Already there.") Q
|
---|
62 | I XMSIEN D Q
|
---|
63 | . I $D(^DIC(4.2,"B",XMSYN)) D MES^XPDUTL("*** Synonym is also a domain!")
|
---|
64 | . E D MES^XPDUTL("*** Synonym is for domain IEN "_XMSIEN_", name "_$P(^DIC(4.2,XMSIEN,0),U,1))
|
---|
65 | . D MES^XPDUTL("*** No action taken. Please investigate and fix.")
|
---|
66 | D MES^XPDUTL("Not found. Adding it.")
|
---|
67 | S XMFDA(4.23,"+1,"_XMDIEN_",",.01)=XMSYN
|
---|
68 | D UPDATE^DIE("","XMFDA")
|
---|
69 | I $D(DIERR) D MES^XPDUTL("*** Error adding it!")
|
---|
70 | Q
|
---|
71 | CHANGE ;
|
---|
72 | D BMES^XPDUTL("Change <current site name> to <new site name> in DOMAIN file.")
|
---|
73 | D REINDEX
|
---|
74 | N XMB,XMI,XMDOM,XMSUBDOM,XMSYN
|
---|
75 | ;D INIT("C") Q:'$D(^DOPT("XMSYN",$J))
|
---|
76 | K ^TMP("XM",$J)
|
---|
77 | S (XMB,XMI)=""
|
---|
78 | F S XMB=$O(^DIC(4.2,"B",XMB)) Q:XMB="" D
|
---|
79 | . F S XMI=$O(^DIC(4.2,"B",XMB,XMI)) Q:XMI="" D
|
---|
80 | . . N DIC,X,Y,XMSTAT
|
---|
81 | . . S (X,XMDOM)=$P(^DIC(4.2,XMI,0),U,1)
|
---|
82 | . . S XMSUBDOM=""
|
---|
83 | . . S DIC="^DOPT(""XMSYN"",$J,"
|
---|
84 | . . S DIC(0)="XZ"
|
---|
85 | . . F D ^DIC Q:Y>0!($L(X,".")<4) D
|
---|
86 | . . . S XMSUBDOM=XMSUBDOM_$P(X,".")_"."
|
---|
87 | . . . S X=$P(X,".",2,99)
|
---|
88 | . . Q:Y<0 ; Quit if (sub) domain is not in the table
|
---|
89 | . . D BMES^XPDUTL("Domain: "_XMDOM)
|
---|
90 | . . S XMSYN=$P(Y(0),U,2)
|
---|
91 | . . I XMSYN="" S XMSYN=$P(XMDOM,".",1,$L(XMDOM,".")-2)_".MED.VA.GOV"
|
---|
92 | . . E S XMSYN=XMSUBDOM_XMSYN
|
---|
93 | . . D CHKNAME(XMI,XMDOM,XMSYN,.XMSTAT)
|
---|
94 | . . S ^TMP("XM",$J,XMDOM)=XMSYN_U_$G(XMSTAT,"ERROR")
|
---|
95 | I $G(^XMB("NUM"))'=$P(^XMB(1,1,0),U,1) S ^XMB("NUM")=$P(^XMB(1,1,0),U,1)
|
---|
96 | I ^XMB("NETNAME")'=$P(^DIC(4.2,^XMB("NUM"),0),U,1) D
|
---|
97 | . S (^XMB("NETNAME"),^XMB("NETNAME"))=$P(^DIC(4.2,^XMB("NUM"),0),U,1)
|
---|
98 | . D BMES^XPDUTL("The name of this site has been changed to "_^XMB("NETNAME"))
|
---|
99 | D CSUMM
|
---|
100 | Q
|
---|
101 | CHKNAME(XMDIEN,XMDOM,XMSYN,XMSTAT) ;
|
---|
102 | N XMSIEN
|
---|
103 | D MES^XPDUTL("Lookup Synonym: "_XMSYN)
|
---|
104 | S XMSIEN=$$FIND1^DIC(4.2,"","MQX",XMSYN,"B^C")
|
---|
105 | I $D(DIERR) D Q
|
---|
106 | . N XMI
|
---|
107 | . D MES^XPDUTL("*** Error on look up!")
|
---|
108 | . D MES^XPDUTL("*** Usually means more than one occurence.")
|
---|
109 | . I $D(^DIC(4.2,"B",XMSYN)) D MES^XPDUTL("*** Synonym is also a domain!")
|
---|
110 | . S XMI=0
|
---|
111 | . F S XMI=$O(^DIC(4.2,"C",XMSYN,XMI)) Q:'XMI D
|
---|
112 | . . D MES^XPDUTL("*** Synonym is for domain IEN "_XMI_", name "_$P(^DIC(4.2,XMI,0),U,1))
|
---|
113 | . D MES^XPDUTL("*** No action taken. Please investigate and fix.")
|
---|
114 | I XMSIEN=XMDIEN D Q
|
---|
115 | . D MES^XPDUTL("Already there. Reversing domain/synonym:")
|
---|
116 | . D REVERSE(XMDIEN,XMDOM,XMSYN,.XMSTAT)
|
---|
117 | I XMSIEN D Q
|
---|
118 | . I $D(^DIC(4.2,"B",XMSYN)) D MES^XPDUTL("*** Synonym is also a domain!")
|
---|
119 | . E D MES^XPDUTL("*** Synonym is for domain IEN "_XMSIEN_", name "_$P(^DIC(4.2,XMSIEN,0),U,1))
|
---|
120 | . D MES^XPDUTL("*** No action taken. Please investigate and fix.")
|
---|
121 | D MES^XPDUTL("Not found. Adding it.")
|
---|
122 | S XMFDA(4.23,"+1,"_XMDIEN_",",.01)=XMSYN
|
---|
123 | D UPDATE^DIE("","XMFDA")
|
---|
124 | I $D(DIERR) D MES^XPDUTL("*** Error adding it!") Q
|
---|
125 | D MES^XPDUTL("Reversing domain/synonym:")
|
---|
126 | D REVERSE(XMDIEN,XMDOM,XMSYN,.XMSTAT)
|
---|
127 | Q
|
---|
128 | REVERSE(XMDIEN,XMOLDNAM,XMNEWNAM,XMSTAT) ;
|
---|
129 | I '$D(^DIC(4.2,"C",XMOLDNAM,XMDIEN)) D Q:$D(DIERR)
|
---|
130 | . D MES^XPDUTL(XMOLDNAM_" is not yet a synonym of itself. Adding it.")
|
---|
131 | . S XMFDA(4.23,"+1,"_XMDIEN_",",.01)=XMOLDNAM
|
---|
132 | . D UPDATE^DIE("","XMFDA")
|
---|
133 | . I $D(DIERR) D MES^XPDUTL("*** Error adding it!")
|
---|
134 | E D MES^XPDUTL(XMOLDNAM_" is already a synonym of itself.")
|
---|
135 | D MES^XPDUTL("Change the domain name in the transmission scripts.")
|
---|
136 | N XMI,XMJ,XMTEXT
|
---|
137 | S XMI=0
|
---|
138 | F S XMI=$O(^DIC(4.2,XMDIEN,1,XMI)) Q:'XMI D
|
---|
139 | . S XMJ=0
|
---|
140 | . F S XMJ=$O(^DIC(4.2,XMDIEN,1,XMI,1,XMJ)) Q:'XMJ D
|
---|
141 | . . Q:^DIC(4.2,XMDIEN,1,XMI,1,XMJ,0)'[XMOLDNAM
|
---|
142 | . . S XMTEXT=^DIC(4.2,XMDIEN,1,XMI,1,XMJ,0)
|
---|
143 | . . S ^DIC(4.2,XMDIEN,1,XMI,1,XMJ,0)=$P(XMTEXT,XMOLDNAM,1)_XMNEWNAM_$P(XMTEXT,XMOLDNAM,2)
|
---|
144 | I $D(^XMB(3.7,.5,2,1000+XMDIEN,0)) D
|
---|
145 | . D MES^XPDUTL("Change the transmission queue name to "_XMNEWNAM_".")
|
---|
146 | . S XMFDA(3.701,1000+XMDIEN_",.5,",.01)=$E(XMNEWNAM,1,30)
|
---|
147 | . D FILE^DIE("","XMFDA")
|
---|
148 | . I $D(DIERR) D MES^XPDUTL("*** Error changing it!")
|
---|
149 | E D MES^XPDUTL("There is no transmission queue for this domain. That's OK.")
|
---|
150 | D MES^XPDUTL("Change the domain name to "_XMNEWNAM_".")
|
---|
151 | S XMFDA(4.2,XMDIEN_",",.01)=XMNEWNAM
|
---|
152 | D FILE^DIE("","XMFDA")
|
---|
153 | I $D(DIERR) D MES^XPDUTL("*** Error changing it!") Q
|
---|
154 | S XMSTAT="DONE"
|
---|
155 | Q
|
---|
156 | CSUMM ;
|
---|
157 | N XMI,XMREC,XMOLD,XMNEW,XMCHK
|
---|
158 | S XMI=0
|
---|
159 | F S XMI=$O(^DOPT("XMSYN",$J,XMI)) Q:'XMI S XMREC=^(XMI,0) D
|
---|
160 | . S XMOLD=$P(XMREC,U,1)
|
---|
161 | . Q:$D(^TMP("XM",$J,XMOLD))
|
---|
162 | . S (XMNEW,XMCHK)=$P(XMREC,U,2) I XMNEW="" S XMNEW="xxx.MED.VA.GOV",XMCHK=$P(XMOLD,".",1,$L(XMOLD,".")-2)_".MED.VA.GOV"
|
---|
163 | . S ^TMP("XM",$J,XMOLD)=XMNEW_U_$S($D(^DIC(4.2,"B",XMCHK)):"OK",1:"???")
|
---|
164 | D BMES^XPDUTL("Summary for Domain Name Change")
|
---|
165 | D MES^XPDUTL("Status key:")
|
---|
166 | D MES^XPDUTL(" OK: Already changed, did not check further.")
|
---|
167 | D MES^XPDUTL(" DONE: Name changed during this install.")
|
---|
168 | D MES^XPDUTL(" ERROR: Error noted. See listing above and fix.")
|
---|
169 | D MES^XPDUTL(" ???: Not in your DOMAIN file. Consider adding it.")
|
---|
170 | D BMES^XPDUTL($$LJ^XLFSTR("Old Name",34)_" "_$$LJ^XLFSTR("New Name",37)_" Status")
|
---|
171 | D MES^XPDUTL($$LJ^XLFSTR("",34,"-")_" "_$$LJ^XLFSTR("",37,"-")_" ------")
|
---|
172 | S XMOLD=""
|
---|
173 | F S XMOLD=$O(^TMP("XM",$J,XMOLD)) Q:XMOLD="" S XMREC=^(XMOLD) D
|
---|
174 | . D MES^XPDUTL($$LJ^XLFSTR($E(XMOLD,1,34),35)_$$LJ^XLFSTR($E($P(XMREC,U,1),1,37),38)_$E($P(XMREC,U,2),1,6))
|
---|
175 | K ^DOPT("XMSYN",$J),^TMP("XM",$J)
|
---|
176 | Q
|
---|
177 | REINDEX ;
|
---|
178 | D MES^XPDUTL("First, let's reindex the B and C xrefs.")
|
---|
179 | N DIK,DA,XMI
|
---|
180 | K ^DIC(4.2,"B"),^DIC(4.2,"C")
|
---|
181 | S DIK="^DIC(4.2,",DIK(1)=".01^B" D ENALL^DIK
|
---|
182 | S XMI=0
|
---|
183 | F S XMI=$O(^DIC(4.2,XMI)) Q:'XMI D
|
---|
184 | . N DIK,DA
|
---|
185 | . Q:'$O(^DIC(4.2,XMI,2,0))
|
---|
186 | . S DA(1)=XMI,DIK="^DIC(4.2,"_DA(1)_",2,",DIK(1)=".01^C" D ENALL^DIK
|
---|
187 | D MES^XPDUTL("Done reindexing. Let's get down to business...")
|
---|
188 | Q
|
---|
189 | S ;;current site name^new site name (Add synonyms)
|
---|
190 | ;;ISC-SF.VA.GOV^FO-OAKLAND.MED.VA.GOV
|
---|
191 | ;;
|
---|
192 | C ;;current site name^new site name (Change the names)
|
---|
193 | ;;ISC-SF.VA.GOV^FO-OAKLAND.MED.VA.GOV
|
---|
194 | ;;
|
---|