Skip to content

Instantly share code, notes, and snippets.

@husio
Created May 27, 2009 19:53
Show Gist options
  • Save husio/118865 to your computer and use it in GitHub Desktop.
Save husio/118865 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# -*- coding: utf-8
#Copyright (c) 2009 Piotr Husiatyński.
#Permission is hereby granted, free of charge, to any person
#obtaining a copy of this software and associated documentation
#files (the "Software"), to deal in the Software without
#restriction, including without limitation the rights to use,
#copy, modify, merge, publish, distribute, sublicense, and/or sell
#copies of the Software, and to permit persons to whom the
#Software is furnished to do so, subject to the following
#conditions:
#The above copyright notice and this permission notice shall be
#included in all copies or substantial portions of the Software.
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
#OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
#NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
#HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
#WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
#OTHER DEALINGS IN THE SOFTWARE.
"""
Poke servers from list
"""
import sys
from twisted.internet import reactor, defer
from twisted.web.client import getPage
def check_server(server_addr):
deferred = getPage(server_addr)
deferred.addCallback(server_ok, server=server_addr)
deferred.addErrback(server_fail, server=server_addr)
return deferred
def server_ok(page, server):
print "OK - %s" % server
def server_fail(error, server):
print "FAIL - %s" % server
def main():
deferreds = []
for arg in sys.argv[1:]:
if not arg.startswith("http://"):
arg = "http://" + arg
deferreds.append(check_server(arg))
defer_list = defer.DeferredList(deferreds)
defer_list.addCallback(lambda result: reactor.stop())
reactor.run()
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment