abstract class apptools.core.Production
Utilities for group work with Ensemble or Interoperability products of different Namespaces
d ##class(apptools.core.Production).SaveAndStop()
d ##class(apptools.core.Production).StartAll()
parameter SettingsGN = "^%apptools.core.Productions";
parameter TIMEOUTSTOP = 60;
How long to wait for the product to stop before being stopped again by force (seconds)
classmethod AddTraceUrl(Val, Col, Head, Temp, Del=0)
as %String
Procedure for ##class(apptools.core.Production).AddTraceUrl
classmethod CreateProduction(ns=$Namespace, pn="TestProduction", ConfItem="")
as %Status
Create new Interoperability Production (from diashenrique.messageviewer.util.InstallerProduction)
https://openexchange.intersystems.com/package/IRIS-Interoperability-Message-Viewer
write $System.Status.GetErrorText(##class(apptools.core.Production).CreateProduction("USER","Test.TestProd","Ens.MonitorService,Ens.Alerting.AlertManager,Ens.Activity.Operation.REST"))
zn "USER" do ##class(Ens.Director).StartProduction("Test.TestProd")
classmethod CreateTaskPurge(Name As %String = "", ns=$Namespace, days=90)
Create a task to clean productions messages
w ##class(apptools.core.Production).CreateTaskPurge("Cleaning production messages "_$Namespace,$Namespace,7) }
classmethod CreateTasksPurgeMess(days=90)
as %Status
Creating tasks message cleaning
d ##class(apptools.core.Production).CreateTasksPurgeMess(30)
classmethod EnsAction(ex="", nsOnly="", out)
as %Status
Change products status in Namespaces
d ##class(apptools.core.Production).EnsAction("restart")
ex= "auto0" - clean all Namespaces of auto start products
ex= "auto1" - enable auto start products, restore from #SettingsGN(ns)
ex= "stop" - stop all products
ex= "restart" - reload all products
ex= "start" - run the ones that were started, restore from #SettingsGN(ns)
ex= "status" - output statuses
ex= "info" - output of additional information about products and services with parameters d ##class(apptools.core.Production).EnsAction("info",,.out)
out - result ;d ##class(apptools.core.Production).EnsAction("status",$Namespace,.out)
classmethod ExtInfo(pClassName, ou, write=0)
as %Status
Extended Product Information
w $System.Status.GetErrorText(##class(apptools.core.Production).ExtInfo("Spgz.SpgzProduction",.o))
classmethod FindAndDrawAllErr(sql, nspaces, result)
as %String
d ##class(apptools.core.Production).FindAndDrawAllErr("Select * from Ens_Util.Log where Type='2' and TimeLogged>'2020-09-29 21:00' order by id desc",##class(apptools.core.sys).ListNS(.info,"NotPre,Ens"), .result)
classmethod FindAndDrawAllQueue(nspaces)
as %String
do ##class(apptools.core.Production).FindAndDrawAllQueue(##class(apptools.core.sys).ListNS(.info,"NotPre,Ens"))
classmethod GenDoc(filename="", namespacelist="", title="Productions ", CategotyItem="", StatusProd=1)
as %Status
Automatic generate documenation
CategotyDoc = Category Elements
filename - report html
namespacelist - if empty then all
title - Discriptions report
d ##class(apptools.core.Production).GenDoc("/home/project/shared/gen-doc.xml")
d ##class(apptools.core.Production).GenDoc("G:/!/gen-doc.xml")
classmethod GetListErrProducts(day, NS, result)
as %String
Get a list of product errors per day or more for one namespace
d ##class(apptools.core.Production).GetListErrProducts(1,"USER".res)
classmethod GetQueryTotal(ByRef total)
as %String
do ##class(apptools.core.Production).GetQueryTotal(.info)
classmethod GetSettings(ProductName="", ItemName="", SettingName="", ByRef Value)
as %Status
GetSettings
write ##class(apptools.core.Production).GetSettings("ProductionName","ItemName","SettName",.val)
classmethod GetStatusProducts(day, result)
as %String
Get the status of products for a day or more
d ##class(apptools.core.Production).GetStatusProducts(0,.res)
classmethod GetStatusProductsJson(day, mode=0, result)
as %String
Get the status of products for a day or more to Json
d ##class(apptools.core.Production).GetStatusProductsJson(1,"system-stat",.res) zw res
d ##class(apptools.core.Production).GetStatusProductsJson(1,"count-errors",.res) zw res
d ##class(apptools.core.Production).GetStatusProductsJson(1,"list-errors-SPGZ",.res) zw res
d ##class(apptools.core.Production).GetStatusProductsJson(1,"list-errors-MVK-DOC",.res) zw res
classmethod Init(nsList="")
as %Status
Initiate all Namespaces for the Ensemble\Interoperability
d ##class(apptools.core.Production).Init("USER")
classmethod Reload(item As %String)
as %String
classmethod ReloadList(list As %String)
as %String
do ##class(Spgz.ReloadItemProd).ReloadList("BP2,BP3")
classmethod SaveAndStop()
as %Status
Save settings and status of products in all Namespaces; Stop all productions
d ##class(apptools.core.Production).SaveAndStop()
classmethod SaveStat(resave=0)
as %Status
Check and save settings and status of products in all Namespaces
d ##class(apptools.core.Production).SaveStat(1)
classmethod ShowGlobals(gn, nspaces)
as %String
do ##class(apptools.core.Production).ShowGlobals("^tmp**",##class(apptools.core.sys).ListNS(.info,"NotPre,Ens"))
classmethod ShowLogs(write="1", ByRef gn, nspaces="", flag="NotPre,Ens", sql="select top 5 * from apptools_core.Log order by id desc", exec="")
as %String
do ##class(apptools.core.Production).ShowLogs(1,.out,"USER")
classmethod StartAll(nsOnly="")
as %Status
Check and restore autorun products in Namespaces, run all products that were launched
d ##class(apptools.core.Production).StartAll()
classmethod StopAll(prompt=1)
as %Status
Remove autostart from all products; stop all products in Namespaces before restarting the OS
d ##class(apptools.core.Production).StopAll()
classmethod StopProdAndDismount(ns)
as %String
Stoped production and dismount. Later mounted
d ##class(apptools.core.Production).StopProdAndDismount("AAA")
w $System.Status.GetErrorText(##class(apptools.core.sys).MountListDB("AAA"))
classmethod addstr(ByRef all, s)
as %Status
add string to array
classmethod getModelTable(like, all)
as %Status
d ##class(apptools.core.Production).getModelTable("User.model.",.result)