#!/usr/bin/python

import urllib2
import urllib
import base64
import binascii
import string
import os
import re
import sys

agentconf= '/opt/novell/zenworks/zos/agent/agent.properties'

VMResync = '\
<?xml version="1.0" encoding="utf-8"?>	\n\
  <function name="VMResync">		\n\
    <instanceID>%s</instanceID>		\n\
  </function>				\n\
'

'''
VMResync = '\
<?xml version="1.0" encoding="utf-8"?>	\n\
  <function name="VMResync">		\n\
    <instanceIDSet>			\n\
      <item>				\n\
        <instanceID>%s</instanceID>	\n\
      </item>				\n\
    </instanceIDSet>			\n\
  </function>				\n\
'
'''

if __name__ == "__main__":
    argv = sys.argv
    if len(argv) != 2:
        print 'WRONG parameters'
        print 'xvmresync domName'
        sys.exit(-1)

    domName = argv[1]

    input = open(agentconf, 'r').read()
    r = re.compile("(zos.agent.server=)([\d|.]*)").search(input)
    serverip = r.group(2) 
    if serverip is None:
        #print "can't found server ip"
        sys.exit(-1)

    url = 'http://%s:9090' % serverip

    vmresync_xml = VMResync % (domName)
    data = {'event': 'AIS', 'encode': '0', 'data': base64.encodestring(vmresync_xml)}
    output = urllib2.urlopen('%s/%s.po' % (url, 'VMResync'), urllib.urlencode(data)).read()
    r = re.compile("(<result>)(.*)(</result>)").search(output)
    result = r.group(2)
    if result != '0':
        #print 'vmresync error'
        sys.exit(-1) 

    sys.exit(0)
