def main(): ensure_code_reachability() from i18n import _ import smolt from gate import create_default_gate, create_gate_from_file from uuiddb import create_default_uuiddb (opts, args) = command_line() if opts.the_only_config_file is None: gate = create_default_gate() else: gate = create_gate_from_file(opts.the_only_config_file) smolt.DEBUG = opts.DEBUG smolt.hw_uuid_file = opts.uuidFile profile = read_profile(gate, smolt.read_uuid()) if opts.new_pub: uuiddb = create_default_uuiddb() uuid = smolt.read_uuid() main_request_new_public_uuid(uuiddb, uuid, profile, opts) elif not opts.send_profile: main_scan_only(profile, opts) elif opts.printOnly and not opts.autoSend: main_print_only(profile) else: uuiddb = create_default_uuiddb() uuid = smolt.read_uuid() main_send_profile(uuiddb, uuid, profile, opts, gate)
def main(): from gate import create_default_gate profile = smolt.create_profile(create_default_gate(), smolt.read_uuid()) session = requests.Session() session.headers.update({'USER-AGENT': opts.user_agent}) o = session.post(opts.smoonURL + '', timeout=opts.timeout) exceptions = (requests.exceptions.HTTPError, requests.exceptions.URLRequired, requests.exceptions.Timeout, requests.exceptions.ConnectionError, requests.exceptions.InvalidURL) #first find out the server desired protocol try: #fli is a file like item pub_uuid_fli = opts.smoonURL + 'client/pub_uuid?uuid=%s' % profile.host.UUID pub_uuid_fli = session.get(pub_uuid_fli, timeout=opts.timeout) except exceptions as e: error(_('Error contacting Server: %s') % e) return 1 try: pub_uuid_obj = pub_uuid_fli.json() try: print(_('To view your profile visit: %s') % smolt.get_profile_link(opts.smoonURL, pub_uuid_obj["pub_uuid"])) except ValueError as e: error(_('Something went wrong fetching the public UUID')) finally: session.close()
def main(): from gate import create_default_gate profile = smolt.create_profile(create_default_gate(), smolt.read_uuid()) grabber = urlgrabber.grabber.URLGrabber(user_agent=opts.user_agent, timeout=opts.timeout) #first find out the server desired protocol try: #fli is a file like item pub_uuid_fli = grabber.urlopen(urljoin(opts.smoonURL + "/", '/client/pub_uuid?uuid=%s' % profile.host.UUID, False)) except urlgrabber.grabber.URLGrabError, e: error(_('Error contacting Server: %s') % e) return 1
for page in r['query']['pages']: try: if int(page) > 0: found.append('\t%swiki/%s' % (smoonURL, r['query']['pages'][page]['title'])) except KeyError: pass if found: print(_("\tErrata Found!")) for f in found: print("\t%s" % f) else: print( _("\tNo errata found, if this machine is having issues please go to" )) print( _("\tyour profile and create a wiki page for the device so others can" )) print(_("\tbenefit")) if __name__ == "__main__": from gate import create_passing_gate gate = create_passing_gate() smoonURL = get_config_attr("SMOON_URL", "http://smolts.org/") profile = smolt.create_profile(gate, smolt.read_uuid()) scan(profile, smoonURL, gate) rating(profile, smoonURL, gate)
def main(): sys.path.append('/usr/share/smolt/client') from i18n import _ import smolt from smolt import error, debug, get_profile_link, PubUUIDError from uuiddb import create_default_uuiddb def serverMessage(page): for line in page.split("\n"): if 'ServerMessage:' in line: error(_('Server Message: "%s"') % line.split('ServerMessage: ')[1]) if 'Critical' in line: sys.exit(3) parser = OptionParser(version = smolt.smoltProtocol) parser.add_option('-d', '--debug', dest = 'DEBUG', default = False, action = 'store_true', help = _('enable debug information')) parser.add_option('-s', '--server', dest = 'smoonURL', default = smolt.smoonURL, metavar = 'smoonURL', help = _('specify the URL of the server (default "%default")')) parser.add_option('-p', '--printOnly', dest = 'printOnly', default = False, action = 'store_true', help = _('print information only, do not send')) parser.add_option('-u', '--useragent', dest = 'user_agent', default = smolt.user_agent, metavar = 'USERAGENT', help = _('specify HTTP user agent (default "%default")')) parser.add_option('-t', '--timeout', dest = 'timeout', type = 'float', default = smolt.timeout, help = _('specify HTTP timeout in seconds (default %default seconds)')) parser.add_option('--uuidFile', dest = 'uuidFile', default = smolt.hw_uuid_file, help = _('specify which uuid to use, useful for debugging and testing mostly.')) (opts, args) = parser.parse_args() smolt.DEBUG = opts.DEBUG smolt.hw_uuid_file = opts.uuidFile grabber = urlgrabber.grabber.URLGrabber(user_agent=opts.user_agent, timeout=opts.timeout) uuid = smolt.read_uuid() delHostString = 'uuid=%s' % uuid # Try retrieving current pub_uuid (from cache or remotely if necessary) pub_uuid = None try: pub_uuid = smolt.read_pub_uuid(create_default_uuiddb(), uuid, silent=True) except PubUUIDError: pass try: o=grabber.urlopen(urljoin(opts.smoonURL + '/', '/client/delete'), data=delHostString, http_headers=( ('Content-length', '%i' % len(delHostString)), ('Content-type', 'application/x-www-form-urlencoded'))) except urlgrabber.grabber.URLGrabError, e: sys.stderr.write(_('Error contacting Server:')) sys.stderr.write(str(e)) sys.stderr.write('\n') sys.exit(1)
scanData = 'action=query&titles=%s&format=json' % searchDevices try: r = json.load(urllib.urlopen(scanURL, scanData)) except ValueError: print "Could not wiki for errata!" return found = [] for page in r['query']['pages']: try: if int(page) > 0: found.append('\t%swiki/%s' % (smoonURL, r['query']['pages'][page]['title'])) except KeyError: pass if found: print _("\tErrata Found!") for f in found: print "\t%s" % f else: print _("\tNo errata found, if this machine is having issues please go to") print _("\tyour profile and create a wiki page for the device so others can") print _("\tbenefit") if __name__ == "__main__": from gate import create_passing_gate gate = create_passing_gate() smoonURL = get_config_attr("SMOON_URL", "http://smolts.org/") profile = smolt.create_profile(gate, smolt.read_uuid()) scan(profile, smoonURL, gate) rating(profile, smoonURL, gate)