[cig-commits] r15466 - cs/portal/trunk/northridge/backend

leif at geodynamics.org leif at geodynamics.org
Thu Jul 16 22:34:52 PDT 2009


Author: leif
Date: 2009-07-16 22:34:52 -0700 (Thu, 16 Jul 2009)
New Revision: 15466

Added:
   cs/portal/trunk/northridge/backend/flow.dot
Log:
Created a 'dot' graph to illustrate how the portal daemon works.


Added: cs/portal/trunk/northridge/backend/flow.dot
===================================================================
--- cs/portal/trunk/northridge/backend/flow.dot	                        (rev 0)
+++ cs/portal/trunk/northridge/backend/flow.dot	2009-07-17 05:34:52 UTC (rev 15466)
@@ -0,0 +1,94 @@
+digraph G {
+    node [shape=box];
+
+    graph[label="Daemon"];
+    subgraph clusterDaemon {
+        node [shape=parallelogram];
+        main[label="main"];
+    }
+
+    graph[label="PortalConnection"];
+    subgraph clusterPortalConnection {
+        runFactory[label="runFactory"];
+        runWatcher1[label="runWatcher #1"];
+        runWatcher2[label="runWatcher #2"];
+        jobWatcher1[label="jobWatcher #1"];
+        jobWatcher2[label="jobWatcher #2"];
+        jobSink1[label="jobSink #1"];
+        jobSink2[label="jobSink #2"];
+
+        node [shape=ellipse];
+        list_py[label="http://.../list.py"];
+        run_1_status[label="http://.../runs/1/status/"];
+        run_2_status[label="http://.../runs/2/status/"];
+        job_1_update[label="http://.../jobs/1/update/"];
+        job_2_update[label="http://.../jobs/2/update/"];
+    }
+
+    graph[label="Run #1"];
+    subgraph clusterRun1 {
+        run1[label="__call__"];
+    }
+    graph[label="Run #2"];
+    subgraph clusterRun2 {
+        run2[label="__call__"];
+    }
+
+    graph[label="JobManager"];
+    subgraph clusterJobManager {
+        jobRunner1[label="jobRunner #1"];
+        jobRunner2[label="jobRunner #2"];
+    }
+
+    job1[label="Job #1"];
+    job2[label="Job #2"];
+
+    graph[label="Clock"];
+    subgraph clusterClock {
+        node[shape=doublecircle,color=red];
+        clock[label="tick"];
+    }
+
+    subgraph messages {
+        edge[style=dashed,color=blue,fontcolor=blue];
+        main->runFactory[label="runSimulations"];
+        runFactory->run1[label="go"];
+        runFactory->run2[label="go"];
+        /*runFactory->runWatcher1[label="watchRun"];
+          runFactory->runWatcher2[label="watchRun"];*/
+        jobRunner1->job1[label="setStatus"];
+        jobRunner2->job2[label="setStatus"];
+        jobSink1->jobWatcher1[label="watchJob"];
+        jobSink2->jobWatcher2[label="watchJob"];
+        jobRunner1->run1[label="runJob",dir=back];
+        jobRunner2->run2[label="runJob",dir=back];
+    }
+
+    subgraph events {
+        edge[color=red,fontcolor=red];
+        run1->runWatcher1;
+        run2->runWatcher2[label="statusChanged"];
+        job1->jobWatcher1[label="statusChanged"];
+        job2->jobWatcher2;
+        job1->run1;
+        job2->run2;
+    }
+
+    subgraph channels {
+        edge[color=forestgreen,fontcolor=forestgreen];
+        run1->jobSink1[label="jobChannel"];
+        run2->jobSink2;
+    }
+
+    subgraph requests {
+        edge[color=purple,fontcolor=purple];
+        runFactory->list_py[label="GET"];
+        runWatcher1->run_1_status[label="POST"];
+        runWatcher2->run_2_status[label="POST"];
+        jobWatcher1->job_1_update[label="POST"];
+        jobWatcher2->job_2_update[label="POST"];
+    }
+
+    graph[label="daemon.py"];
+
+}



More information about the CIG-COMMITS mailing list