# Copyright (C) 2006-2012 Mortal Coil Games # See LICENSE for details. """ ** DEPRECATED ** Some Testing Code To Setup Servers """ from twisted.internet import defer from twisted.internet import reactor from mv3d.net.client import ServiceLoc from mv3d.util.conductor import Conductor as Server from mv3d.server.account import Account from mv3d.server.model.realm import Realm from mv3d.server.model.area import Area from mv3d.server.model.object import Object try: from mv3d.client import Client except: pass MasterServers = [] MasterServerObjects = [] DirectoryServers = [] DirectoryServerObjects = [] AccountServers = [] RealmServers = [] SimulationServers = [] PlayerServers = [] AssetServers = [] AssetServerObjects = [] AllServers = [] Accounts = [] Players = [] Objects = [] Areas = [] Realms = [] realmid = 0 def Init(): """ You need to add a docstring here ! """ global realmid, MasterServers, MasterServerObjects, DirectoryServers, DirectoryServerObjects, AccountServers, RealmServers, SimulationServers, PlayerServers, AssetServers, AssetServerObjects, AllServers, Accounts, Players, Objects, Areas, Realms MasterServers = [] MasterServerObjects = [] DirectoryServers = [] DirectoryServerObjects = [] AccountServers = [] RealmServers = [] SimulationServers = [] PlayerServers = [] AssetServers = [] AssetServerObjects = [] AllServers = [] Accounts = [] Players = [] Objects = [] Areas = [] Realms = [] realmid = 0 Init() def ErrorBack(e): """ You need to add a docstring here ! """ print e.value() return e def createServer(port, initial=1): """ You need to add a docstring here ! """ s = Server() s.port = port s.grantPermission("read", "all") if initial: s.initialize() s.AddInterface("Account Server") s.AddInterface("Directory Server") i = s.AddInterface("Simulation Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") i = s.AddInterface("Realm Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") AllServers.append(s) return s def createClient(): """ You need to add a docstring here ! """ c = Client() c.AddInterface("Simulation Client") c.AddInterface("Player Client") c.AddInterface("Asset Client") return c def SetupDirectoryServer(s): """ You need to add a docstring here ! """ i = s.AddInterface("Directory Server") # i.grantPermission(u"read", u"all") # i.grantPermission(u"modify", u"all") # i.NewMasterDirectory(u"Realms") # rd = i.getDirectory(u"Realms") # rd.SetInterface(u"Realm Server") # rd.SetItemType(u"Realm") # i.NewMasterDirectory(u"AssetGroups") # rd = i.getDirectory(u"AssetGroups") # rd.SetInterface(u"Asset Server") # rd.SetItemType(u"AssetGroup") DirectoryServers.append(ServiceLoc().FromServer(s)) DirectoryServerObjects.append(s) def AddAccounts(s, un="mike", pw="pass", c=Account): """ You need to add a docstring here ! """ i = s.getInterface("Account Server") a = c() a.grantPermission("read", "all") a.grantPermission("reference", "all") a.setUsername(unicode(un)) a.setPassword(unicode(pw)) i.addAccount(a) Accounts.append(a) return a def SetupAccountServer(s): """ You need to add a docstring here ! """ i = s.getInterface("Account Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") AccountServers.append(ServiceLoc().FromServer(s)) def SetupRealmServer(s): """ You need to add a docstring here ! """ i = s.AddInterface("Realm Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") for ss in range(len(DirectoryServers)): i.AddDirectoryServer(DirectoryServers[ss]) RealmServers.append(ServiceLoc().FromServer(s)) def SetupAssetServer(s): """ You need to add a docstring here ! """ i = s.AddInterface("Asset Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") AssetServers.append(ServiceLoc().FromServer(s)) AssetServerObjects.append(s) def SetupSimulationServer(s): """ You need to add a docstring here ! """ s.masterservers = MasterServers i = s.AddInterface("Simulation Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") SimulationServers.append(s) def SetupPlayerServer(s): """ You need to add a docstring here ! """ s.masterservers = MasterServers i = s.AddInterface("Player Server") i.grantPermission("read", "all") i.grantPermission("modify", "all") PlayerServers.append(s) def SetDirectoryServers(): """ You need to add a docstring here ! """ for s in AllServers: i = s.getInterface("Realm Server") if not isinstance(i, int): i.directoryservers = DirectoryServers i = s.getInterface("Asset Server") if not isinstance(i, int): i.directoryservers = DirectoryServers def SetAccountServers(): """ You need to add a docstring here ! """ for s in AllServers: i = s.getInterface("Account Server") i.accountservers = AccountServers def addRealm(s, c=Realm): """ You need to add a docstring here ! """ global realmid r = c(s) r.setName(u"Realm%d" % realmid) r.setID(realmid) r.server = s #print "adding realm", realmid realmid += 1 i = s.getInterface("Realm Server") i.addRealm(r) r.grantPermission("reference", "all") r.grantPermission("read", "all") # r.setMasterServer(1) r.addMasterServer(ServiceLoc().FromServer(s)) for ss in SimulationServers: r.addSimulationServer(ServiceLoc().FromServer(ss)) Realms.append(r) for ds in DirectoryServerObjects: i = ds.getInterface("Directory Server") # di = DirectoryItem() # di.setFrom(r) # i.UpdateDirectoryItem("Realms", di) return r def addArea(s, r, c=Area): """ You need to add a docstring here ! """ a = c() a.setName("An Area") a.server = s i = s.getInterface("Realm Server") d = i.assignId(a, r.getID()) if isinstance(d, defer.Deferred): d.addCallback(addArea_GotId, s, r, a) # d.addErrback(ErrorBack) return d return addArea_GotId(d, s, r, a) def addArea_GotId(d, s, r, a): """ You need to add a docstring here ! """ #print "Got Area ID", d a.grantPermission("reference", "all") a.grantPermission("read", "all") a.grantPermission("enter", "all") i = s.AddInterface("Simulation Server") i.addItem(a) Areas.append(a) return a def addObject(s, r, c=Object, addit=1): """ You need to add a docstring here ! """ p = c() p.setName("Desk") p.server = s i = s.getInterface("Realm Server") d = i.assignId(p, r.getID()) if isinstance(d, defer.Deferred): d.addCallback(addObject_GotId, s, r, p, addit) # d.addErrback(ErrorBack) return p return addObject_GotId(d, s, r, p, addit) def addObject_GotId(d, s, r, p, addit): """ You need to add a docstring here ! """ p.grantPermission("reference", "all") p.grantPermission("read", "all") if addit: Areas[ -1].contain(p) s.getInterface("Simulation Server").AddItem(p) Objects.append(p) return p def StopServers(): """ You need to add a docstring here ! """ dd = [] for s in AllServers: d = s.finalize() if isinstance(d, defer.Deferred): dd.append(d) if len(dd): dl = defer.DeferredList(dd) dl.addCallback(StopServers_Done) if not reactor.running: for x in range(1000): reactor.iterate() return dl StopServers_done(1) def StopServers_done(r): """ You need to add a docstring here ! """ Init()