]> git.ipfire.org Git - oddments/fireinfo.git/blame - sendprofile
Add sendprofile script (version 0.2).
[oddments/fireinfo.git] / sendprofile
CommitLineData
65891720
MT
1#!/usr/bin/python
2
3import json
4import logging
5import logging.handlers
6import sys
7import urllib
8import urllib2
9
10import fireinfo
11
12log_level = logging.DEBUG
13
14# Setup logging
15log = logging.getLogger()
16log.setLevel(log_level)
17log.addHandler(logging.handlers.SysLogHandler("/dev/log"))
18log.addHandler(logging.StreamHandler(sys.stdout))
19for handler in log.handlers:
20 handler.setLevel(log_level)
21
22PROFILE_URL = "http://stasy.ipfire.org/send/%(public_id)s"
23
24def send_profile(profile):
25 logging.debug("Sending profile:")
26 for line in json.dumps(profile, sort_keys=True, indent=4).splitlines():
27 logging.debug(line)
28
29 try:
30 request = urllib2.Request(PROFILE_URL % profile,
31 data = urllib.urlencode({"profile" : json.dumps(profile)}),
32 )
33 urllib2.urlopen(request, timeout=60)
34 except (urllib2.HTTPError, urllib2.URLError), e:
35 reason = "Unknown reason"
36
37 if isinstance(e, urllib2.HTTPError):
38 reason = "%s" % e
39 elif isinstance(e, urllib2.URLError):
40 reason = e.reason
41
42 logging.error("Profile was not sent propertly: %s" % reason)
43 return
44
45 logging.debug("Profile was sent successfully.")
46
47def main():
48 logging.info("%s was started." % sys.argv[0])
49
50 # Collect system information
51 system = fireinfo.System()
52 try:
53 send_profile(system.profile())
54 except urllib2.URLError:
55 return 1
56
57 return 0
58
59sys.exit(main())