SVN Commit by dpage: r4218 - in trunk/pgadmin3/src/agent: . include - Mailing list pgadmin-hackers

From svn@pgadmin.org
Subject SVN Commit by dpage: r4218 - in trunk/pgadmin3/src/agent: . include
Date
Msg-id 200505191030.j4JAUSCH012115@developer.pgadmin.org
Whole thread Raw
List pgadmin-hackers
Author: dpage
Date: 2005-05-19 11:30:28 +0100 (Thu, 19 May 2005)
New Revision: 4218

Modified:
   trunk/pgadmin3/src/agent/include/pgaJob.h
   trunk/pgadmin3/src/agent/include/pgaStep.h
   trunk/pgadmin3/src/agent/pgaJob.cpp
   trunk/pgadmin3/src/agent/pgaStep.cpp
Log:
Display job & step stats

Modified: trunk/pgadmin3/src/agent/include/pgaJob.h
===================================================================
--- trunk/pgadmin3/src/agent/include/pgaJob.h    2005-05-19 10:06:30 UTC (rev 4217)
+++ trunk/pgadmin3/src/agent/include/pgaJob.h    2005-05-19 10:30:28 UTC (rev 4218)
@@ -30,6 +30,7 @@

     int GetIcon() { return enabled ? PGAICON_JOB : PGAICON_JOBDISABLED; }
     void ShowTreeDetail(wxTreeCtrl *browser, frmMain *form=0, ctlListView *properties=0, ctlSQLBox *sqlPane=0);
+    void ShowStatistics(frmMain *form, ctlListView *statistics);
     static pgObject *ReadObjects(pgCollection *collection, wxTreeCtrl *browser, const wxString
&restriction=wxEmptyString);
     pgObject *Refresh(wxTreeCtrl *browser, const wxTreeItemId item);
     bool DropObject(wxFrame *frame, wxTreeCtrl *browser, bool cascaded);

Modified: trunk/pgadmin3/src/agent/include/pgaStep.h
===================================================================
--- trunk/pgadmin3/src/agent/include/pgaStep.h    2005-05-19 10:06:30 UTC (rev 4217)
+++ trunk/pgadmin3/src/agent/include/pgaStep.h    2005-05-19 10:30:28 UTC (rev 4218)
@@ -33,6 +33,7 @@

     int GetIcon() { return PGAICON_STEP; }
     void ShowTreeDetail(wxTreeCtrl *browser, frmMain *form=0, ctlListView *properties=0, ctlSQLBox *sqlPane=0);
+    void ShowStatistics(frmMain *form, ctlListView *statistics);
     static pgObject *ReadObjects(pgCollection *collection, wxTreeCtrl *browser, const wxString
&restriction=wxEmptyString);
     pgObject *Refresh(wxTreeCtrl *browser, const wxTreeItemId item);
     bool DropObject(wxFrame *frame, wxTreeCtrl *browser, bool cascaded);

Modified: trunk/pgadmin3/src/agent/pgaJob.cpp
===================================================================
--- trunk/pgadmin3/src/agent/pgaJob.cpp    2005-05-19 10:06:30 UTC (rev 4217)
+++ trunk/pgadmin3/src/agent/pgaJob.cpp    2005-05-19 10:30:28 UTC (rev 4218)
@@ -160,9 +160,67 @@
     return job;
 }

+void pgaJob::ShowStatistics(frmMain *form, ctlListView *statistics)
+{
+    wxString sql =
+        wxT("SELECT jlgid")
+             wxT(", jlgstatus")
+             wxT(", jlgstart")
+             wxT(", jlgduration")
+             wxT(", (jlgstart + jlgduration) AS endtime")
+             wxT("  FROM pgagent.pga_joblog\n")
+             wxT(" WHERE jlgjobid = ") + NumToStr(GetRecId()) +
+             wxT(" ORDER BY jlgstart DESC");

+    if (statistics)
+    {
+        wxLogInfo(wxT("Displaying statistics for job %s"), GetFullIdentifier());
+
+        // Add the statistics view columns
+        statistics->ClearAll();
+        statistics->AddColumn(_("Run"), 70);
+        statistics->AddColumn(_("Status"), 90);
+        statistics->AddColumn(_("Start time"), 125);
+        statistics->AddColumn(_("End time"), 125);
+        statistics->AddColumn(_("Duration"), 110);
+
+        pgSet *stats = database->ExecuteSet(sql);
+        wxString status;
+        wxDateTime startTime;
+        wxDateTime endTime;
+
+        if (stats)
+        {
+            while (!stats->Eof())
+            {
+                if (stats->GetVal(1) == wxT("r"))
+                    status = _("Running");
+                else if (stats->GetVal(1) == wxT("s"))
+                    status = _("Successful");
+                else if (stats->GetVal(1) == wxT("f"))
+                    status = _("Failed");
+                else if (stats->GetVal(1) == wxT("i"))
+                    status = _("No steps");
+                else
+                    status = _("Unknown");
+
+                startTime.ParseDateTime(stats->GetVal(2));
+                endTime.ParseDateTime(stats->GetVal(4));
+
+                long pos=statistics->AppendItem(stats->GetVal(0), status, startTime.Format());
+                statistics->SetItem(pos, 3, endTime.Format());
+                statistics->SetItem(pos, 4, stats->GetVal(3));
+
+                stats->MoveNext();
+            }
+            delete stats;
+        }
+    }
+}
+
 pgaJobObject::pgaJobObject(pgaJob *_job, int newType, const wxString& newName)
 : pgDatabaseObject(newType, newName)
 {
     job=_job;
 }
+

Modified: trunk/pgadmin3/src/agent/pgaStep.cpp
===================================================================
--- trunk/pgadmin3/src/agent/pgaStep.cpp    2005-05-19 10:06:30 UTC (rev 4217)
+++ trunk/pgadmin3/src/agent/pgaStep.cpp    2005-05-19 10:30:28 UTC (rev 4218)
@@ -142,3 +142,65 @@
     }
     return step;
 }
+
+
+void pgaStep::ShowStatistics(frmMain *form, ctlListView *statistics)
+{
+    wxString sql =
+        wxT("SELECT jsljlgid")
+             wxT(", jslstatus")
+             wxT(", jslresult")
+             wxT(", jslstart")
+             wxT(", jslduration")
+             wxT(", (jslstart + jslduration) AS endtime")
+             wxT("  FROM pgagent.pga_jobsteplog\n")
+             wxT(" WHERE jsljstid = ") + NumToStr(GetRecId()) +
+             wxT(" ORDER BY jslstart DESC");
+
+    if (statistics)
+    {
+        wxLogInfo(wxT("Displaying statistics for job %s"), GetFullIdentifier());
+
+        // Add the statistics view columns
+        statistics->ClearAll();
+        statistics->AddColumn(_("Run"), 60);
+        statistics->AddColumn(_("Status"), 90);
+        statistics->AddColumn(_("Result"), 90);
+        statistics->AddColumn(_("Start time"), 125);
+        statistics->AddColumn(_("End time"), 125);
+        statistics->AddColumn(_("Duration"), 110);
+
+        pgSet *stats = database->ExecuteSet(sql);
+        wxString status;
+        wxDateTime startTime;
+        wxDateTime endTime;
+
+        if (stats)
+        {
+            while (!stats->Eof())
+            {
+                if (stats->GetVal(1) == wxT("r"))
+                    status = _("Running");
+                else if (stats->GetVal(1) == wxT("s"))
+                    status = _("Successful");
+                else if (stats->GetVal(1) == wxT("f"))
+                    status = _("Failed");
+                else if (stats->GetVal(1) == wxT("i"))
+                    status = _("Ignored");
+                else
+                    status = _("Unknown");
+
+                startTime.ParseDateTime(stats->GetVal(3));
+                endTime.ParseDateTime(stats->GetVal(5));
+
+                long pos=statistics->AppendItem(stats->GetVal(0), status, stats->GetVal(2));
+                statistics->SetItem(pos, 3, startTime.Format());
+                statistics->SetItem(pos, 4, endTime.Format());
+                statistics->SetItem(pos, 5, stats->GetVal(4));
+
+                stats->MoveNext();
+            }
+            delete stats;
+        }
+    }
+}
\ No newline at end of file


pgadmin-hackers by date:

Previous
From: svn@pgadmin.org
Date:
Subject: SVN Commit by dpage: r4217 - trunk/pgadmin3/xtra/pgagent
Next
From: Adam H.Pendleton
Date:
Subject: Re: New acinclude.m4