Hello, You guys are always so helpful so I thought I'd come here with my crazy problem I'm trying to solve.
I have a Django Application Cluster. We use subversion for our code. The only type of a post-commit hook we have is an HTTP Request with JSON at a URL we define. Essentially what I want to do is to use this post-commit hook to trigger a cluster-wise reload of the uwsgi service. The problem is that I don't really want to implement a fancy script that uses SSH or anything along those lines. First off, there are security issues. Secondly, I want it to be relatively quick and integrated into our app for easy replication as we add and remove nodes. I started off with some code -- just trying to play around the idea. I want to have two views. The first view is titled "svn_hook". This view is tied to the URL that is called from the post-commit hook by our SVN Hosting Provider. The second view is titled "uwsgi_reload". svn_hook()'s job is to simply open a connection with each of the nodes and call their uwsgi_reload() views. uwsgi_reload()'s job is to simply execute /etc/init.d/uwsgi... reload. Unfortunately, I have *no* idea how to get this thing to work. I tried approaching it with some RPC code in MoinMoin that I was forwarded to by a nice guy in #wsgi. But, as it turns out, I have no idea what I'm doing :) I think if I can get the servers to talk to each other, then I can handle the rest. If you guys have any ideas on either how to fix this code, or a better way of approaching this problem, I would really appreciate the input. By the way, I understand that WSGI is a completely different protocol from HTTP. I tried to understand the code the best I could and had no idea what was going on exactly with the key/value pairs I saw in the MoinMoin code. Hopefully someone can understand what I was trying to accomplish there Thanks again! -Kurtis from django.http import HttpResponse # View for URL Called by SVN on Post-Commit Hook def svn_hook(request): # Resources # import urllib # Used in example code, not here yet... from httplib import HTTPConnection # List of IP Addresses to Reload # <Real IP's Hidden> hosts = ('192.168.1.1', '192.168.1.2') port = '7999' # Hit the Server """ Note: I was going to do more here ... but I can't even get the thing to work without stalling or throwing errors. I wanted to check for a 200 Status from each host and eventually log if any fail. """ for host in hosts: client = HTTPConnection(host, port, False, 30) client.request("GET", '/reload') response = client.getresponse() body = response.read() body = body.decode('utf-8') # Done return HttpResponse(status = 200) # Temporarily set as /reload for testing purposes. def uwsgi_reload(request): # Execute /etc/init.d/uwsgi.... reload # and any other logic that may need to be performed # I'll do this later, after I get the actual WSGI call # working. return HttpResponse(status = 200) -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.