Changeset - 15f296550447
[Not reviewed]
default
0 4 5
Drew Perttula - 8 years ago 2017-04-15 04:03:28
drewp@bigasterisk.com
start paintServer
Ignore-this: 1cae4bcb98aed1c2c494adb92fbed2e5
9 files changed with 130 insertions and 17 deletions:
0 comments (0 inline, 0 general)
bin/homepage
Show inline comments
 
@@ -4,8 +4,7 @@ CONF=/tmp/light9_nginx.conf
 
ROOT=`dirname $0`/..
 
ROOT=${ROOT:a}
 

	
 
bin/homepageConfig > /tmp/light9_nginx_routes.conf
 

	
 
bin/homepageConfig > /tmp/light9_nginx_routes.conf && \
 
cat > $CONF <<EOF
 
worker_processes 1;
 

	
bin/homepageConfig
Show inline comments
 
@@ -12,7 +12,10 @@ from twisted.internet import reactor
 
graph = showconfig.getGraph()
 

	
 
netHome = graph.value(showconfig.showUri(), L9['networking'])
 
print "listen %s;" % splitport(urlparse(graph.value(netHome, L9['webServer'])).netloc)[1]
 
webServer = graph.value(netHome, L9['webServer'])
 
if not webServer:
 
    raise ValueError('no %r :webServer' % netHome)
 
print "listen %s;" % splitport(urlparse(webServer).netloc)[1]
 

	
 
def location(path, server):
 
    print """
bin/paintserver
Show inline comments
 
new file 100644
 
#!bin/python
 

	
 
from __future__ import division
 
from run_local import log
 
import json
 
from twisted.internet import reactor
 
from light9.greplin_cyclone import StatsForCyclone
 
from light9.rdfdb.syncedgraph import SyncedGraph
 
from light9 import networking, showconfig
 
from greplin import scales
 
import optparse, sys, logging
 
import cyclone.web
 
from rdflib import URIRef
 
from light9.rdfdb import clientsession
 
import light9.paint.solve
 
from lib.cycloneerr import PrettyErrorHandler
 

	
 
class Solve(PrettyErrorHandler, cyclone.web.RequestHandler):
 
    def post(self):
 
        painting = json.loads(self.request.body)
 
        reload(light9.paint.solve)
 
        with self.settings.stats.solve.time():
 
            out = light9.paint.solve.solve(painting)
 
        self.write(json.dumps(out))
 

	
 
class App(object):
 
    def __init__(self, show, session):
 
        self.show = show
 
        self.session = session
 

	
 
        self.graph = SyncedGraph(networking.rdfdb.url, "paintServer")
 
        self.graph.initiallySynced.addCallback(self.launch)
 

	
 
        self.stats = scales.collection('/',
 
                                       scales.PmfStat('solve'),
 
                                       )
 
    def launch(self, *args):
 
        self.cycloneApp = cyclone.web.Application(handlers=[
 
            (r'/stats', StatsForCyclone),
 
            (r'/solve', Solve),
 
        ],
 
                                                  debug=True,
 
                                                  graph=self.graph,
 
                                                  stats=self.stats)
 
        reactor.listenTCP(networking.paintServer.port, self.cycloneApp)
 
        log.info("listening on %s" % networking.paintServer.port)
 

	
 

	
 
if __name__ == "__main__":
 
    parser = optparse.OptionParser()
 
    parser.add_option('--show',
 
        help='show URI, like http://light9.bigasterisk.com/show/dance2008',
 
                      default=showconfig.showUri())
 
    parser.add_option("-v", "--verbose", action="store_true",
 
                      help="logging.DEBUG")
 
    parser.add_option("--twistedlog", action="store_true",
 
                      help="twisted logging")
 
    clientsession.add_option(parser)
 
    (options, args) = parser.parse_args()
 
    log.setLevel(logging.DEBUG if options.verbose else logging.INFO)
 

	
 
    if not options.show:
 
        raise ValueError("missing --show http://...")
 
        
 
    session = clientsession.getUri('paint', options)
 

	
 
    app = App(URIRef(options.show), session)
 
    if options.twistedlog:
 
        from twisted.python import log as twlog
 
        twlog.startLogging(sys.stderr)
 
    reactor.run()
light9/networking.py
Show inline comments
 
@@ -45,6 +45,7 @@ effectSequencer = ServiceAddress(L9['eff
 
keyboardComposer = ServiceAddress(L9['keyboardComposer'])
 
musicPlayer = ServiceAddress(L9['musicPlayer'])
 
oscDmxServer = ServiceAddress(L9['oscDmxServer'])
 
paintServer = ServiceAddress(L9['paintServer'])
 
picamserve = ServiceAddress(L9['picamserve'])
 
rdfdb = ServiceAddress(L9['rdfdb'])
 
subComposer = ServiceAddress(L9['subComposer'])
light9/paint/__init__.py
Show inline comments
 
new file 100644
light9/paint/solve.py
Show inline comments
 
new file 100644
 
def solve(painting):
 
    return 0
show/dance2016/networking.n3
Show inline comments
 
@@ -4,21 +4,21 @@
 

	
 
show:dance2016 :networking sh:netHome .
 
sh:netHome
 
  :webServer        <http://plus:8200/>;
 
  :patchReceiverUpdateHost "plus";
 
  :curveCalc        <http://plus:8201/>;
 
  :collector        <http://plus:8202/>;
 
  :collectorZmq     <http://plus:8203/>;
 
  :effectEval       <http://plus:8204/>;
 
  :effectSequencer  <http://plus:8213/>;
 
  :keyboardComposer <http://plus:8205/>;
 
  :musicPlayer      <http://plus:8206/>;
 
  :oscDmxServer     <udp://plus:8207/>;
 
  :webServer        <http://dash:8200/>;
 
  :patchReceiverUpdateHost "dash";
 
  :curveCalc        <http://dash:8201/>;
 
  :collector        <http://dash:8202/>;
 
  :collectorZmq     <http://dash:8203/>;
 
  :effectEval       <http://dash:8204/>;
 
  :effectSequencer  <http://dash:8213/>;
 
  :keyboardComposer <http://dash:8205/>;
 
  :musicPlayer      <http://dash:8206/>;
 
  :oscDmxServer     <udp://dash:8207/>;
 
  :picamserve       <http://10.2.0.5:8208/>;
 
  :rdfdb            <http://plus:8209/>;
 
  :subComposer      <http://plus:8210/>;
 
  :subServer        <http://plus:8211/>;
 
  :vidref           <http://plus:8212/> .
 
  :rdfdb            <http://dash:8209/>;
 
  :subComposer      <http://dash:8210/>;
 
  :subServer        <http://dash:8211/>;
 
  :vidref           <http://dash:8212/> .
 

	
 
:curveCalc        :urlPath "curveCalc" .
 
:dmxServer        :urlPath "dmxServer" .
show/dance2017/URI
Show inline comments
 
new file 100644
 
http://light9.bigasterisk.com/show/dance2017
show/dance2017/networking.n3
Show inline comments
 
new file 100644
 
@prefix : <http://light9.bigasterisk.com/> .
 
@prefix show: <http://light9.bigasterisk.com/show/> .
 
@prefix sh: <http://light9.bigasterisk.com/show/dance2017/> .
 

	
 
show:dance2017 :networking sh:netHome .
 
sh:netHome
 
  :webServer        <http://dash:8200/>;
 
  :patchReceiverUpdateHost "dash";
 
  :curveCalc        <http://dash:8201/>;
 
  :collector        <http://dash:8202/>;
 
  :collectorZmq     <http://dash:8203/>;
 
  :effectEval       <http://dash:8204/>;
 
  :effectSequencer  <http://dash:8213/>;
 
  :keyboardComposer <http://dash:8205/>;
 
  :musicPlayer      <http://dash:8206/>;
 
  :oscDmxServer     <udp://dash:8207/>;
 
  :paintServer      <http://dash:8213/>;
 
  :picamserve       <http://10.2.0.5:8208/>;
 
  :rdfdb            <http://dash:8209/>;
 
  :subComposer      <http://dash:8210/>;
 
  :subServer        <http://dash:8211/>;
 
  :vidref           <http://dash:8212/> .
 

	
 
:curveCalc        :urlPath "curveCalc" .
 
:dmxServer        :urlPath "dmxServer" .
 
:effectEval       :urlPath "effectEval" .
 
:keyboardComposer :urlPath "keyboardComposer" .
 
:musicPlayer      :urlPath "ascoltami" .
 
:picamserve       :urlPath "picamserve" .
 
:paintServer      :urlPath "paintServer" .
 
:rdfdb            :urlPath "rdfdb" .
 
:subComposer      :urlPath "subComposer" .
 
:subServer        :urlPath "subServer" .
 
:vidref           :urlPath "vidref" .
 
:collector        :urlPath "collector" .
 
:effectSequencer  :urlPath "effectSequencer" .
 
\ No newline at end of file
0 comments (0 inline, 0 general)