Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: KMPURG1

KMPURG1.m

Go to the documentation of this file.
KMPURG1 ;SP/JML - VSM GET REST functions ;7/1/2025
 ;;4.0;CAPACITY MANAGEMENT;**5**;3/1/2018;Build 9
 ;
 ;
 ;
CONFIGG() ;
 N KMPRET,KMPSITE,KMPCPF,KMPMON,KMPF,KMPMKEY,KMPGROUP,KMPMG
 ;
 S KMPRET=##class(%DynamicObject).%New()
 D SITEARR^KMPUTLW(.KMPSITE)
 D CPFARR^KMPUTLW(.KMPCPF)
 D MONARR^KMPUTLW(.KMPMON)
 S KMPMG=""
 I $$EXIST^%R("R1XUMSAR.int",$ZDEFNSP) D
 .D GETSENDTO^R1XUMSAR(.KMPMG)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 W "<H1>CPF</H1>"
 W "<H2>CPF Startup</H2>"
 S KMPF=""
 F  S KMPF=$O(KMPCPF("Startup",KMPF)) Q:KMPF=""  D
 .W KMPF_": "_KMPCPF("Startup",KMPF)_"<BR>"
 W "<H2>CPF Mirror</H2>"
 S KMPF=""
 F  S KMPF=$O(KMPCPF("MirrorMember",KMPF)) Q:KMPF=""  D
 .W KMPF_": "_KMPCPF("MirrorMember",KMPF)_"<BR>"
 W "<H2>CPF Config</H2>"
 S KMPF=""
 F  S KMPF=$O(KMPCPF("config",KMPF)) Q:KMPF=""  D
 .W KMPF_": "_KMPCPF("config",KMPF)_"<BR>"
 W "<H1>Monitors</H1>"
 S KMPMKEY=""
 F  S KMPMKEY=$O(KMPMON(KMPMKEY)) Q:KMPMKEY=""  D
 .W "<H3>"_KMPMKEY_"</H3>"
 .S KMPF=""
 .F  S KMPF=$O(KMPMON(KMPMKEY,KMPF)) Q:KMPF=""  D
 ..W KMPF_": "_KMPMON(KMPMKEY,KMPF)_"<BR>"
 S KMPGROUP=""
 W "<H3>Local Support Email</H3>"
 F  S KMPGROUP=$O(KMPMG(KMPGROUP)) Q:KMPGROUP=""  D
 .W KMPGROUP_"<BR>"
 Q
 ;
GLOBUFFG() ;
 N KMPSITE,KMPF,KMPRNS,KMPTBUFF,KMPBUFF,KMPI,KMPL
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 W "<H2>Global Buffers</H2>"
 S KMPTBUFF=##class(KMP.Utilities).getTotalBuffers()
 W "<TABLE width='50%'>"
 W "<TR><TD>Total Buffers: "_KMPTBUFF_"</TD><TD></TD><TD></TD></TR>"
 W "<TR><TD> </TD><TD></TD><TD></TD></TR>"
 W "<TR><TH>Global</TH><TH>Database</TH><TH>Percentage</TH></TR>"
 S KMPBUFF=##class(KMP.Utilities).getBuffers()
 F KMPI=1:1:KMPBUFF.Count() D
 .S KMPL=KMPBUFF.GetAt(KMPI)
 .W "<TR><TD>"_$LISTGET(KMPL,1)_"</TD><TD>"_$LISTGET(KMPL,2)_"</TD><TD>"_$LISTGET(KMPL,3)_"</TD></TR>"
 W "</TABLE>"
 Q
 ;
HTTPMETG() ;
 N KMPSITE,KMPF,KMPMCHK,KMPDATE,KMPDCHK,KMPSUB,KMPDAY,KMPMTYP,KMPNODE,KMPT,KMPTIME,KMPDATA
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 S KMPMCHK=%request.Get("MONTYPE")
 I KMPMCHK="" S KMPMCHK="ALL"
 S KMPDATE=%request.Get("DATE")
 I KMPDATE'="" S KMPDCHK="3"_KMPDATE
 E  S KMPDCHK="ALL"
 S KMPSUB="KMP"
 F  S KMPSUB=$O(^XTMP(KMPSUB)) Q:$E(KMPSUB,1,3)'="KMP"  D
 .S KMPDAY=$P(KMPSUB," ",2)
 .Q:(KMPDCHK'=KMPDAY)&(KMPDCHK'="ALL")
 .W "<H2>"_$P(^XTMP(KMPSUB,0),"^",3)_"</H2>"
 .S KMPMTYP=0
 .F  S KMPMTYP=$O(^XTMP(KMPSUB,KMPMTYP)) Q:KMPMTYP=""  D
 ..Q:(KMPMTYP'[KMPMCHK)&(KMPMCHK'="ALL")
 ..S KMPNODE=""
 ..F  S KMPNODE=$O(^XTMP(KMPSUB,KMPMTYP,"HTTP",KMPNODE)) Q:KMPNODE=""  D
 ...W "<H3>"_KMPMTYP_" : "_KMPNODE_"</H3>"
 ...S KMPT=""
 ...F  S KMPT=$O(^XTMP(KMPSUB,KMPMTYP,"HTTP",KMPNODE,KMPT)) Q:KMPT=""  D
 ....S KMPTIME=$ZT(KMPT)
 ....S KMPDATA=^XTMP(KMPSUB,KMPMTYP,"HTTP",KMPNODE,KMPT)
 ....W "<pre>"_KMPMTYP_" - "_KMPTIME_" - "_KMPDATA_"</pre>"
 Q
 ;
GETCPFG() ;
 N KMPF,KMPHLIST,KMPH,KMPHEAD,KMPARR,KMPI,KMPLIST,KMPHARR,KMPHONLY
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 ;
 S KMPHLIST=%request.Get("HEADTYPE")
 S KMPHONLY=+%request.Get("HEADONLY")
 I KMPHLIST]"" D
 .F KMPI=1:1:$L(KMPHLIST,":") D
 ..S KMPHARR($P(KMPHLIST,":",KMPI))=""
 I KMPHLIST="" D CPFHARR(.KMPHARR)
 S KMPHEAD=""
 F  S KMPHEAD=$O(KMPHARR(KMPHEAD)) Q:KMPHEAD=""  D
 .S KMPARR=##class(KMP.Utilities).getCPF(KMPHEAD)
 .I KMPARR="" D  Q
 ..W "<BR>"_KMPHEAD_"is not a valid CPF Section Header<BR>"
 .W "<BR><TABLE>"
 .W "<TH COLSPAN=2>"_KMPHEAD_"</TH>"
 .Q:KMPHONLY
 .F KMPI=1:1:KMPARR.Count() D
 ..S KMPLIST=KMPARR.GetAt(KMPI)
 ..W "<TR><TD>"_$LISTGET(KMPLIST,1)_"</TD><TD>"_$LISTGET(KMPLIST,2)_"</TR>"
 .W "</TABLE>"
 Q
 ;
CPFHARR(KMPLIST) ;
 S KMPLIST("Cluster")="",KMPLIST("ComPorts")="",KMPLIST("ConfigFile")="",KMPLIST("Conversions")=""
 S KMPLIST("Databases")="",KMPLIST("Debug")="",KMPLIST("DeviceSubTypes")="",KMPLIST("Devices")=""
 S KMPLIST("ECP")="",KMPLIST("ECPServers")="",KMPLIST("Gateways")="",KMPLIST("IO")=""
 S KMPLIST("Journal")="",KMPLIST("LicenseServers")="",KMPLIST("MagTapes")="",KMPLIST("MirrorMember")=""
 S KMPLIST("Mirrors")="",KMPLIST("Miscellaneous")="",KMPLIST("Monitor")="",KMPLIST("Namespaces")=""
 S KMPLIST("SQL")="",KMPLIST("Shadows")="",KMPLIST("SqlSysDatatypes")="",KMPLIST("SqlUserDatatypes")=""
 S KMPLIST("Startup")="",KMPLIST("Telnet")="",KMPLIST("WorkQueues")="",KMPLIST("config")=""
 Q
 ;
GETOPSG() ;
 N KMPRTYP,KMPFROM,KMPTO,KMPREFRESH,KMPDAT
 S KMPRTYP=%request.Get("RETTYPE")
 S KMPFROM=%request.Get("FROMDATE")
 S KMPTO=%request.Get("TODATE")
 S KMPREFRESH=%request.Get("REFRESH")
 I KMPRTYP="" S KMPRTYP="HTML"
 I KMPRTYP="HTML" D GETWEBG^KMPOPSW(KMPFROM,KMPTO,KMPREFRESH)
 I KMPRTYP'="HTML" D
 .S KMPDAT=$$GETDATA^KMPOPS(KMPFROM,KMPTO)
 .W KMPDAT.%ToJSON()
 Q
 ;
GETRETRYG() ;
 N KMPRET,KMPF,KMPMCHK,KMPI,KMPMKEY,KMPNODE,KMPDAY,HOROLOG,KMPJDAY,KMPJTIME,KMPDATA
 S KMPRET=##class(%DynamicObject).%New()
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 S KMPMCHK=%request.Get("MONTYPE")
 I KMPMCHK="" W "<BR>Must specify a monitor type.</BR>" Q
 I KMPMCHK="ALL" S KMPMCHK="VBEM:VCSM:VETM:VHLM:VMCM:VSTM:VTCM"
 F KMPI=1:1:$L(KMPMCHK,":") D
 .S KMPMKEY=$P(KMPMCHK,":",KMPI)
 .W "<H3>Monitor:"_KMPMKEY_"</H3>"
 .S KMPNODE=""
 .F  S KMPNODE=$O(^KMPTMP("KMPV",KMPMKEY,"RETRY",KMPNODE)) Q:KMPNODE=""  D
 ..S KMPDAY=""
 ..F  S KMPDAY=$O(^KMPTMP("KMPV",KMPMKEY,"RETRY",KMPNODE,KMPDAY)) Q:KMPDAY=""  D
 ...S HOROLOG=""
 ...F  S HOROLOG=$O(^KMPTMP("KMPV",KMPMKEY,"RETRY",KMPNODE,KMPDAY,HOROLOG)) Q:HOROLOG=""  D
 ....S KMPJDAY=$ZD(KMPDAY)
 ....S KMPJTIME=$ZT($P(HOROLOG,",",2))
 ....S KMPDATA=KMPMKEY_"^"_KMPNODE_"^"_KMPJDAY_"^"_KMPJTIME
 ....W "<BR>Data:"_KMPDATA
 Q
 ;
RUNLOGG() ;
 N KMPDAYS,KMPF,KMPREF,KMPSREF,KMPMON,KMPP,KMPDATE,KMPIEN,KMPNODE,KMPRDAT,KMPRES,KMPMLIST,X,%H,%T
 S KMPMLIST=%request.Get("MONTYPE")
 S KMPDAYS=%request.Get("DAYS")
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 I $G(KMPMLIST)="" S KMPMLIST="VBEM:VCSM:VETM:VHLM:VMCM:VSTM:VTCM"
 S KMPDAYS=$G(KMPDAYS)
 S KMPREF("VTCM")=3
 S KMPREF("VSTM")=4
 S KMPREF("VMCM")=5
 S KMPREF("VBEM")=6
 S KMPREF("VCSM")=7
 S KMPREF("VETM")=8
 S KMPREF("VHLM")=9
 S KMPSREF=$S(KMPDAYS="":"",1:$H-KMPDAYS)
 F KMPI=1:1:$L(KMPMLIST,":") D
 .S KMPMON=$P(KMPMLIST,":",KMPI)
 .S KMPP=$G(KMPREF(KMPMON))
 .S KMPDATE=KMPSREF
 .F  S KMPDATE=$O(^KMPV(8969.03,"B",KMPDATE)) Q:KMPDATE=""  D
 ..S KMPIEN=""
 ..F  S KMPIEN=$O(^KMPV(8969.03,"B",KMPDATE,KMPIEN)) Q:KMPIEN=""  D
 ...S KMPNODE=$P(^KMPV(8969.03,KMPIEN,0),"^",2)
 ...S KMPRDAT=$P(^KMPV(8969.03,KMPIEN,0),"^",KMPP)
 ...S KMPRES(KMPMON,KMPDATE,KMPNODE)=KMPRDAT
 S KMPMON=""
 F  S KMPMON=$O(KMPRES(KMPMON)) Q:KMPMON=""  D
 .W "<BR><BR>"
 .S KMPDATE=""
 .F  S KMPDATE=$O(KMPRES(KMPMON,KMPDATE)) Q:KMPDATE=""  D
 ..S KMPNODE=""
 ..F  S KMPNODE=$O(KMPRES(KMPMON,KMPDATE,KMPNODE)) Q:KMPNODE=""  D
 ...S X=KMPRES(KMPMON,KMPDATE,KMPNODE),KMPRDAT=""
 ...I X]"" D
 ....D H^%DTC
 ....S KMPRDAT=$ZDATETIME(%H_","_%T)
 ...W "<BR>"_KMPMON_"  "_$ZD(KMPDATE)_"  "_KMPNODE_"  "_KMPRDAT
 Q
 ;
KILLG() ;
 N KMPRET,KMPF,KMPMCHK,KMPL,KMPI,KMPMTYP
 S KMPRET=##class(%DynamicObject).%New()
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 S KMPMCHK=%request.Get("MONTYPE")
 S KMPMCHK=$REPLACE(KMPMCHK,"""","")
 I KMPMCHK="" S KMPMCHK="VBEM:VCSM:VETM:VHLM:VMCM:VSTM:VTCM"
 S KMPL=$L(KMPMCHK,":")
 F KMPI=1:1:KMPL D
 .S KMPMTYP=$P(KMPMCHK,":",KMPI)
 .K ^KMPTMP("KMPV",KMPMTYP)
 .W "<BR>Data deleted: ",KMPMTYP
 .D STOPMON^KMPVCBG(KMPMTYP,1,0)
 .W "<BR>Monitor stopped: ",KMPMTYP
 Q
 ;
STARTMONG() ;
 N KMPRET,KMPSITE,KMPF,KMPMCHK,KMPI,KMPQUIT,KMPMKEY,KMPROUT,KMPTASK
 S KMPRET=##class(%DynamicObject).%New()
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 S KMPMCHK=%request.Get("MONTYPE")
 I KMPMCHK="" D  Q
 .W "<BR>Must specify a monitor, list of monitors delimited by colons, or ALL"
 I KMPMCHK="ALL" S KMPMCHK="VBEM:VCSM:VETM:VHLM:VMCM:VSTM:VTCM"
 F KMPI=1:1:$L(KMPMCHK,":") D
 .S KMPQUIT=0
 .S KMPMKEY=$P(KMPMCHK,":",KMPI)
 .W "<H3>"_KMPMKEY_"</H3>"
 .I '$D(^KMPV(8969,"B",KMPMKEY)) D
 ..W "    "_KMPMKEY_" not a valid monitor"
 ..S KMPQUIT=1
 .S KMPROUT=$$GETVAL^KMPVCCFG(KMPMKEY,"CACHE DAILY TASK",8969)
 .I KMPROUT="" D
 ..W "    "_KMPMKEY_" has no run routine"
 ..S KMPQUIT=1
 .I $$ROUTCHK^KMPVCBG(KMPROUT)=1 D
 ..W "    "_KMPMKEY_" already running"
 ..S KMPQUIT=1
 .I KMPQUIT=0 D
 ..D STARTMON^KMPVCBG(KMPMKEY,1,1)
 ..S KMPTASK="RUN^"_KMPROUT J @KMPTASK
 ..W !,"    "_KMPMKEY_" Started"
 Q
 ;
STOPMONG() ;
 N KMPRET,KMPF,KMPMCHK,KMPI,KMPQUIT,KMPMKEY
 S KMPRET=##class(%DynamicObject).%New()
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 S KMPMCHK=%request.Get("MONTYPE")
 I KMPMCHK="" D  Q
 .W "<BR>Must specify a monitor, list of monitors delimited by colons, or ALL"
 I KMPMCHK="ALL" S KMPMCHK="VBEM:VCSM:VETM:VHLM:VMCM:VSTM:VTCM"
 F KMPI=1:1:$L(KMPMCHK,":") D
 .S KMPQUIT=0
 .S KMPMKEY=$P(KMPMCHK,":",KMPI)
 .W "<H3>"_KMPMKEY_"</H3>"
 .I '$D(^KMPV(8969,"B",KMPMKEY)) D  Q:KMPQUIT
 ..W "    "_KMPMKEY_" not a valid monitor"
 ..S KMPQUIT=1
 .D STOPMON^KMPVCBG(KMPMKEY,1,1)
 .W !,"    "_KMPMKEY_" Stopped"
 Q