00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 import sys
00023 import urlgrabber.grabber
00024 from optparse import OptionParser
00025 from urlparse import urljoin
00026
00027
00028 def main():
00029 sys.path.append('/usr/share/smolt/client')
00030
00031 from i18n import _
00032 import smolt
00033 from smolt import error, debug, get_profile_link, PubUUIDError
00034 from uuiddb import create_default_uuiddb
00035
00036 def serverMessage(page):
00037 for line in page.split("\n"):
00038 if 'ServerMessage:' in line:
00039 error(_('Server Message: "%s"') % line.split('ServerMessage: ')[1])
00040 if 'Critical' in line:
00041 sys.exit(3)
00042
00043 parser = OptionParser(version = smolt.smoltProtocol)
00044
00045 parser.add_option('-d', '--debug',
00046 dest = 'DEBUG',
00047 default = False,
00048 action = 'store_true',
00049 help = _('enable debug information'))
00050 parser.add_option('-s', '--server',
00051 dest = 'smoonURL',
00052 default = smolt.smoonURL,
00053 metavar = 'smoonURL',
00054 help = _('specify the URL of the server (default "%default")'))
00055 parser.add_option('-p', '--printOnly',
00056 dest = 'printOnly',
00057 default = False,
00058 action = 'store_true',
00059 help = _('print information only, do not send'))
00060 parser.add_option('-u', '--useragent',
00061 dest = 'user_agent',
00062 default = smolt.user_agent,
00063 metavar = 'USERAGENT',
00064 help = _('specify HTTP user agent (default "%default")'))
00065 parser.add_option('-t', '--timeout',
00066 dest = 'timeout',
00067 type = 'float',
00068 default = smolt.timeout,
00069 help = _('specify HTTP timeout in seconds (default %default seconds)'))
00070 parser.add_option('--uuidFile',
00071 dest = 'uuidFile',
00072 default = smolt.hw_uuid_file,
00073 help = _('specify which uuid to use, useful for debugging and testing mostly.'))
00074
00075
00076 (opts, args) = parser.parse_args()
00077
00078 smolt.DEBUG = opts.DEBUG
00079 smolt.hw_uuid_file = opts.uuidFile
00080
00081 grabber = urlgrabber.grabber.URLGrabber(user_agent=opts.user_agent, timeout=opts.timeout)
00082
00083 uuid = smolt.read_uuid()
00084 delHostString = 'uuid=%s' % uuid
00085
00086
00087 pub_uuid = None
00088 try:
00089 pub_uuid = smolt.read_pub_uuid(create_default_uuiddb(), uuid, silent=True)
00090 except PubUUIDError:
00091 pass
00092
00093
00094 try:
00095 o=grabber.urlopen(urljoin(opts.smoonURL + '/', '/client/delete'), data=delHostString, http_headers=(
00096 ('Content-length', '%i' % len(delHostString)),
00097 ('Content-type', 'application/x-www-form-urlencoded')))
00098 except urlgrabber.grabber.URLGrabError, e:
00099 sys.stderr.write(_('Error contacting Server:'))
00100 sys.stderr.write(str(e))
00101 sys.stderr.write('\n')
00102 sys.exit(1)
00103 else:
00104 serverMessage(o.read())
00105 o.close()
00106
00107 if pub_uuid is None:
00108 profile_url = urljoin(opts.smoonURL + '/', '/client/show?%s' % delHostString)
00109 else:
00110 profile_url = get_profile_link(opts.smoonURL, pub_uuid)
00111 print _('Profile removed, please verify at'), profile_url
00112
00113
00114 if __name__ == '__main__':
00115 main()