Skip to content

Commit

Permalink
fix simulation
Browse files Browse the repository at this point in the history
  • Loading branch information
kianenigma committed Dec 5, 2017
1 parent 842f0cc commit 2ce422a
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 15 deletions.
2 changes: 1 addition & 1 deletion common/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def new(*args):
return fn(*args)
return new

def init_logger(file, separate_game_log, log_lvl=10):
def init_logger(file, separate_game_log=True, log_lvl=10):
global game_file
# Two base logger types
sysLogger = logging.getLogger("sys")
Expand Down
13 changes: 7 additions & 6 deletions emulation/GTAEventsReader.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import os
import time
from decimal import localcontext, Decimal
from common.constants import init_logger
import ntpath
import logging


Expand Down Expand Up @@ -82,9 +82,11 @@ def LoadEventsFromFile(fileLocation, mode):
logger.info("File extracted successfully.")

# Removing the extension of the zip file: '.zip' assuming that the input file has the same name as the zip file.
extractedFileLocation = fileLocation[:-4]
# extractedFileLocation = fileLocation[:-4]
extractedFileZipName = ntpath.basename(fileLocation)
extractedFilename = extractedFileZipName[:-4]

eventsFile = open(extractedFileLocation, 'r')
eventsFile = open(extractedFilename, 'r')

listOfEvents = []
eventsExists = False
Expand Down Expand Up @@ -123,15 +125,14 @@ def LoadEventsFromFile(fileLocation, mode):
logger.error("Mode used to identify events is not known.")


logger.debug("Closing the extracted file: " + extractedFileLocation)

# Closing the file extracted file
eventsFile.close()

#Removing the extracted file
logger.info("Removing the extracted file: " + extractedFileLocation)
logger.info("Removing the extracted file: " + extractedFilename)

os.remove(extractedFileLocation)
os.remove(extractedFilename)

logger.info("Closing the zip file: " + fileLocation)

Expand Down
2 changes: 1 addition & 1 deletion server/network/base_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ def remove_connection(self, id):
# Reduce udp delay
if hasattr(self, 'udp_server'):
self.udp_server.delay -= TRANSPORT.UDP_DELAY_PER_PLAYER
logger.debug("New UDP Delay value {}".format(self.udp_server.delay))
logger.info("New UDP Delay value {}".format(self.udp_server.delay))
4 changes: 3 additions & 1 deletion server/network/client_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ def on_connection(self, connection, address):
# add to pending connections as long as we don't know the id
self.pending_connections[id] = new_client

self.udp_server.delay += TRANSPORT.UDP_DELAY_PER_PLAYER
logger.info("New UDP Delay value {}".format(self.udp_server.delay))

def request_command(self, command):
"""
Put a command on the request queue to the engine.
Expand Down Expand Up @@ -98,4 +101,3 @@ def add_connection(self, connection, old_id, new_id=None):
del self.pending_connections[old_id]

self.connections[new_id] = connection
self.udp_server.delay += TRANSPORT.UDP_DELAY_PER_PLAYER
8 changes: 8 additions & 0 deletions test/das_simple.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"servers": [
"127.0.0.1:7000", "127.0.0.1:8000", "127.0.0.1:9000"
],
"peers": [
"0.0.0.0:7010", "0.0.0.0:8010", "0.0.0.0:9010"
]
}
15 changes: 9 additions & 6 deletions test/simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def addClient(lock, event_details, clientApp, adjTimestamp):
time.sleep(event_details.timeStamp - Decimal(adjTimestamp))

# command line to start the client application: python ../client/app.py --log-prefix player_id
proc = subprocess.Popen([sys.executable, clientApp, '--log-prefix', event_details.playerId, '--config','das_config.json'])
proc = subprocess.Popen([sys.executable, "-m", "client.app", '--log-prefix', event_details.playerId, '--config','./test/das_config.json'])

logger.debug("This is the playerId: " + event_details.playerId + " and this is the PID:" + str(proc.pid))

Expand Down Expand Up @@ -111,12 +111,15 @@ def triggerJoinLeaveEvents(listOfEventsToTrigger, lock, clientApp, delayBetweenE
for single_thread in listOfThreads:
single_thread.join()

def addServer(event_details, serverApp, configFile, serverName, target_port):
def addServer(event_details, serverApp, configFile, serverName, target_port, is_master):

time.sleep(event_details.timeStamp)
# Starting the server
# command line to start the base server: python ../server/app.py --log-prefix player_id
proc = subprocess.Popen([sys.executable, serverApp, '--config', configFile, '--log-prefix', serverName, '--port', str(target_port)])
if is_master:
proc = subprocess.Popen([sys.executable, "-m", "server.app" ,'--users', 'test/das_map.json' , '--config', configFile, '--log-prefix', serverName, '--port', str(target_port)])
else:
proc = subprocess.Popen([sys.executable, "-m", "server.app" , '--config', configFile, '--log-prefix', serverName, '--port', str(target_port)])

if proc.pid > 0:
logger.info("Server" + serverName + "successfully added. Process Id: " + str(proc.pid))
Expand All @@ -138,10 +141,10 @@ def triggerServerEvents(serverApp, configFile, base_port, port_offset, numSlaveS
if event.eventType == emulation.GTAEventsReader.SERVER_ADD:

if event.playerId == MASTER_SERVER:
thread = Thread(target=addServer, args=(event, serverApp,configFile,MASTER_NODE_SERVER_NAME, base_port))
thread = Thread(target=addServer, args=(event, serverApp,configFile,MASTER_NODE_SERVER_NAME, base_port, True))
else:
slave_port = base_port + port_offset * int(event.playerId)
thread = Thread(target=addServer, args=(event, serverApp, configFile, SLAVE_NODE_SERVER_NAME_PREFIX + str(event.playerId).strip(), str(slave_port)))
thread = Thread(target=addServer, args=(event, serverApp, configFile, SLAVE_NODE_SERVER_NAME_PREFIX + str(event.playerId).strip(), str(slave_port), False))
thread.start()
else:
if event.eventType == emulation.GTAEventsReader.SERVER_REMOVE:
Expand Down Expand Up @@ -260,7 +263,7 @@ def killServers():
parser.add_argument("--port-offset", dest="portOffset",default=1000)
parser.add_argument("--num-slave-servers", dest="numSlaveServers", default=0)
parser.add_argument("--server-event-file", dest="serverEventFilename")
parser.add_argument("--server-config", dest="serverConfig", default="das_config.json")
parser.add_argument("--server-config", dest="serverConfig", default="./test/das_config.json")

# Example of parameters to invoke main --elap-time 15 --delayBetweenEvents 1 --gta-file WoWSession_Node_Player_Fixed_Dynamic_reduced.zip --server-event-file Server_Connectons_Disconnections.zip

Expand Down

0 comments on commit 2ce422a

Please sign in to comment.