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 from optparse import OptionParser
00024 from urlparse import urljoin
00025 import urlgrabber.grabber
00026 import json
00027
00028 sys.path.append('/usr/share/smolt/client')
00029
00030 from i18n import _
00031 import smolt
00032 from smolt import debug
00033 from smolt import error
00034 from scan import scan
00035
00036 parser = OptionParser(version = smolt.smoltProtocol)
00037
00038 parser.add_option('-d', '--debug',
00039 dest = 'DEBUG',
00040 default = False,
00041 action = 'store_true',
00042 help = _('enable debug information'))
00043 parser.add_option('-s', '--server',
00044 dest = 'smoonURL',
00045 default = smolt.smoonURL,
00046 metavar = 'smoonURL',
00047 help = _('specify the URL of the server (default "%default")'))
00048 parser.add_option('-u', '--useragent', '--user_agent',
00049 dest = 'user_agent',
00050 default = smolt.user_agent,
00051 metavar = 'USERAGENT',
00052 help = _('specify HTTP user agent (default "%default")'))
00053 parser.add_option('-t', '--timeout',
00054 dest = 'timeout',
00055 type = 'float',
00056 default = smolt.timeout,
00057 help = _('specify HTTP timeout in seconds (default %default seconds)'))
00058 parser.add_option('--uuidFile',
00059 dest = 'uuidFile',
00060 default = smolt.hw_uuid_file,
00061 help = _('specify which uuid to use, useful for debugging and testing mostly.'))
00062
00063 (opts, args) = parser.parse_args()
00064
00065 def main():
00066 from gate import create_default_gate
00067 profile = smolt.create_profile(create_default_gate(), smolt.read_uuid())
00068 grabber = urlgrabber.grabber.URLGrabber(user_agent=opts.user_agent, timeout=opts.timeout)
00069
00070 try:
00071
00072 pub_uuid_fli = grabber.urlopen(urljoin(opts.smoonURL + "/", '/client/pub_uuid?uuid=%s' % profile.host.UUID, False))
00073 except urlgrabber.grabber.URLGrabError, e:
00074 error(_('Error contacting Server: %s') % e)
00075 return 1
00076 pub_uuid_str = pub_uuid_fli.read()
00077 try:
00078 try:
00079 pub_uuid_obj = json.loads(pub_uuid_str)
00080 print _('To view your profile visit: %s') % smolt.get_profile_link(opts.smoonURL, pub_uuid_obj["pub_uuid"])
00081 except ValueError, e:
00082 error(_('Something went wrong fetching the public UUID'))
00083 finally:
00084 pub_uuid_fli.close()
00085
00086 if __name__ == '__main__':
00087 main()