Game Service Version

For LIVE

GameServiceVersion_before.sh
cd /srv/salt/LIVE_Scripts/GameServiceVersion/
scl enable python27 "python /srv/salt/LIVE_Scripts/GameServiceVersion/GameServiceVersion.py | tee GameServiceVersion_before.txt"
GameServiceVersion_after.sh
cd /srv/salt/LIVE_Scripts/GameServiceVersion/
 
scl enable python27 "python /srv/salt/LIVE_Scripts/GameServiceVersion/GameServiceVersion.py | tee GameServiceVersion_after.txt"
 
sdiff -E  GameServiceVersion_before.txt GameServiceVersion_after.txt
if [[ $? == "0" ]]
then
    echo "=====================No Game Service Version Change============================"
else
    echo "============================Version Change====================================="
    sdiff -E -s GameServiceVersion_before.txt GameServiceVersion_after.txt
fi
GameServiceVersion.py
#!/bin/python
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from datetime import datetime
import sys
import os
import subprocess
import base64
 
monitorServer='10.xx.xx.xx'
seleniumServer='10.xx.xx.xx'
seleniumServer_Hostname="xxx-eO"
 
#kill process
def kill_process(myprocess):
    subprocess.call(["salt", seleniumServer_Hostname,"cmd.exec_code","python", \
                     "import psutil ; PROCNAME = '"+ myprocess +"' ; "+ \
                     "[proc.kill() for proc in psutil.process_iter() if proc.name() == PROCNAME]"])
#star selenium server
def restart_selenium_server():
    subprocess.call(["salt", seleniumServer_Hostname,"cmd.run","sc stop selenium & ping 127.0.0.1 -n 4 & sc start selenium"])
 

##############kill_process("chromedriver.exe")
 
#get input username and password
     
username="twxxx"
password="xxxxxxxxxx"
 
 
InGateD01='InGateD01'
InGateD02='InGateD02'
LobbyD='LobbyD'
LoGateD01='LoGateD01'
LoGateD02='LoGateD02'
 
Lobby_list=[InGateD01,\
            InGateD02,\
            LobbyD,\
            LoGateD01,\
            LoGateD02 ]
 
 
WorldDB01='WorldDB01'
WorldDB03='WorldDB03'
WorldDB04='WorldDB04'
Cache_list=[WorldDB01, \
            WorldDB03, \
            WorldDB04 ]
 
 
WorldD01='WorldD01'
WorldD03='WorldD03'
WorldD04='WorldD04'
Game_list=[ WorldD01, \
            WorldD03, \
            WorldD04 ]
 
 
ArenaLobby='ArenaLobby'
ArenaD01='ArenaD01'
ArenaD02='ArenaD02'
Dungeon01='Dungeon01'
Dungeon02='Dungeon02'
 
Arena_list=[ ArenaLobby,\
             ArenaD01,\
             ArenaD02,\
             Dungeon01, \
             Dungeon02 ]
 
 
AccountIn='AccountIn'
Achieve='Achieve'
CacheGate='CacheGate'
MarkDA='MarkDARA'
MarketDD='MarketDD'
MarkRA='MarkDARA'
MarketRD='MarketRD'
PostOffD='PostOffD'
Rank='Rank'
DuelBot='DuelBot'
Economy_list=[ AccountIn,\
               Achieve,\
               CacheGate,\
               MarkDA,\
               MarketDD,\
               MarkRA,\
               MarketRD,\
               PostOffD,\
               Rank,\
               DuelBot ]
 
def version_check(seq,name):
    try:
    state=(browser.find_element_by_xpath('//*[@id="rowContents"]/tr['+str(seq+1)+']/td[6]')).text
        print name+ ": "+state
    except:
        print "Get state fail. "
 
def page_version_check(list_name,length):
    for i in range(0,length):
        version_check(i,list_name[i])
    #print i,list_name[i]
 
 
def connect_selenium_server():
 
    try:
        global  browser
        browser= webdriver.Remote(
                command_executor="http://"+ seleniumServer +":4444/wd/hub",
                desired_capabilities={'browserName': 'chrome',
                                             'version': '2',
                                             'javascriptEnabled': True})
    except:
        global restart_time
        if restart_time>2:
            print "Selenium server restart fail."
            os.system('echo "Selenium server restart fail, please check." | mutt -e "my_hdr from:thlivesalt<saltmaster@th.com>" -s "game service check" abc@domain.com')
        #email alert
            exit()
        else:
            restart_time+=1
        kill_process("chromedriver.exe")
        kill_process("java.exe")
        restart_selenium_server()
        print "restart time: "+str(restart_time)
        print "Connection error. Webdriver restarted"
        connect_selenium_server()
        #return
 
def LiveService_version_check():
    global restart_time
    restart_time=0
 
    connect_selenium_server()
 
    ####open website          
    try:
         
        browser.get('http://'+username+':'+password+'@'+ monitorServer+'/monitoring/DaemonLobby.aspx')
         
        print(browser.title+'\n')
        browser.implicitly_wait(60)
    except:
        print "Open Website Error."
 
    time.sleep(5)
 
     
    browser.find_element_by_link_text('Lobby').click() 
    browser.implicitly_wait(10)
    print 'Lobby'
    page_version_check(Lobby_list,len(Lobby_list))
 
    browser.find_element_by_link_text('Cache').click()
    browser.implicitly_wait(10)
    print 'Cache'
    page_version_check(Cache_list,len(Cache_list))  
  
    browser.find_element_by_link_text('Game').click()
    browser.implicitly_wait(10)
    print 'Game'
    page_version_check(Game_list,len(Game_list))
     
    browser.find_element_by_link_text('Arena').click()
    browser.implicitly_wait(10)
    print 'Arena'
    page_version_check(Arena_list,len(Arena_list))
     
    browser.find_element_by_link_text('Economy').click()
    browser.implicitly_wait(10)
    print 'Economy'
    page_version_check(Economy_list,len(Economy_list))   
 
    browser.quit()   
 
LiveService_version_check()

For Dev/Stage

Last updated