This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
fastly-py/fastly/fastly.py

52 lines
1.6 KiB
Python
Raw Normal View History

2012-02-07 03:55:05 -08:00
import httplib
import urllib
import json
from connection import *
from auth import *
from errors import *
from models import *
2012-02-07 03:55:05 -08:00
class API(object):
def __init__(self, host='api.fastly.com', secure=True, port=None, root='',
2012-02-09 16:29:35 -08:00
timeout=5.0, key=None):
2012-02-07 03:55:05 -08:00
self.conn = Connection(host, secure, port, root, timeout)
2012-02-09 16:29:35 -08:00
if key:
self.authenticate_by_key(key)
2012-02-07 03:55:05 -08:00
def authenticate_by_key(self, key):
self.conn.authenticator = KeyAuthenticator(key)
def authenticate_by_password(self, login, password):
self.conn.authenticator = SessionAuthenticator(self.conn, login, password)
def deauthenticate(self):
self.conn.authenticator = None
def service(self, id):
2012-02-09 16:29:35 -08:00
return Service.find(self.conn, id=id)
def version(self, service_id, version):
return Version.find(self.conn, service_id=service_id, number=version)
def domain(self, service_id, version, name):
return Domain.find(self.conn, service_id=service_id, version=version, name=name)
def backend(self, service_id, version, name):
return Backend.find(self.conn, service_id=service_id, version=version, name=name)
2012-02-07 03:55:05 -08:00
def purge_url(self, host, path):
resp, data = self.conn.request('PURGE', path, headers={'Host':host})
2012-02-07 03:55:05 -08:00
return resp.status == 200
def purge_service(self, service):
resp, data = self.conn.request('POST','/service/%s/purge_all' % service)
return resp.status == 200
def purge_key(self, service, key):
resp, data = self.conn.request('POST','/service/%s/purge/%s' % (service, key))
return resp.status == 200