This file is indexed.

/usr/share/doc/pyro/examples/distributed-computing/cell/processor.py is in pyro-examples 1:3.14-1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import Pyro.core
import Pyro.naming
import Pyro.errors
import sys,os

Pyro.config.PYRO_MOBILE_CODE=1		# Enable mobile code (for the tasks)


#
# The cell processor.
# It processes tasks that it receives.
# NOTE: it is not particularly intelligent about
# what tasks to run and when!! It depends on the
# dispatcher to do this in the correct way!
#
# NOTE2: notice that this module doesn't import or use
# the actual task code implementation. It relies on Pyro's
# mobile code feature to obtain the task data and code to run!
#
class Cell(Pyro.core.ObjBase):
    def __init__(self):
        Pyro.core.ObjBase.__init__(self)
        self.finished=False
    def receivetask(self,task):
        self.finished=False
        self.task=task
        print "received task: "+str(task)
    def process(self):  
        print "running task..."
        self.task.run()
        print "task finished."
        self.finished=True
    def abort(self):
        print "ABORT!"
        self.task.abort=True
 
#
# Initialize the environment
#   
Pyro.core.initServer()
ns=Pyro.naming.NameServerLocator().getNS()
try:
    ns.createGroup(":Distributed")
except Pyro.errors.NamingError:
    pass
try:
    ns.createGroup(":Distributed.Cells")
except Pyro.errors.NamingError:
    pass
daemon=Pyro.core.Daemon()
daemon.useNameServer(ns)
Pyro.config.PYRO_NS_DEFAULTGROUP = ":Distributed.Cells"


#
# Find the next available object name that we can use
# to register this cell processor.
# The dispatcher looks in the Pyro namespace to find
# us and the other available cells.
#
i=1
object = Cell()
while True:
    try:
        name="processor%d" % i
        uri=daemon.connect( object ,name)
        print "Connected",ns.fullName(name)
        print "Cell ready."
        try:
            daemon.requestLoop()
        except Exception:
            daemon.shutdown()
            print "clean shutdown."
            try:
                ns.unregister(name)
            except Pyro.errors.NamingError:
                pass
            break
    except Pyro.errors.NamingError,x:
        i+=1