Mailing List Archive

Purge by python and expect
Ok, I gott there first I guess :)

Quick & dirty, more like sketches in fact,
so please post your improvements, and suggestions.

Regards
Gaute Amundsen

By expect:

#!/usr/bin/expect --

set timeout 5
log_user 0

spawn -noecho telnet localhost 90
#spawn telnet localhost 90

expect {
"Escape character is '^]'." {
send -- "url.purge .*\r";
expect -re "(\\d+ \\d+)(.*)PURGE"
puts $expect_out(1,string)
close;
puts "DONE\r" }

"Connection refused" {
puts "FAILED\r"}

}


by python:

#!/usr/bin/python

def by_http():
# not complete, need to take a list of urls, and possibly a host as
paramertes
import httplib
#(scheme, host, path, params, query, fragment ) =
urlparse.urlparse(objecturl)

conn = httplib.HTTPConnection("cache.site.com")
conn.request("PURGE", "/foo/bar/baf")
r1 = conn.getresponse()
conn.close()
return r1.status, r1.reason


def by_telnet():
# deletes everything from all hosts. dont know if host matching is
possible
import telnetlib
import socket
#tn.set_debuglevel(10)

try:
tn = telnetlib.Telnet('localhost',90)
except socket.error, e:
return e[1]
#socket.error: (111, 'Connection refused')

tn.write("url.purge .*\n") # purge documets matching regexp
(a,b,c) = tn.expect(["\d+ \d+"], 2)
tn.close()
return b.group(0) + "\nDONE"