1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
3
# Copyright 2010 OpenStack, LLC
6
# Licensed under the Apache License, Version 2.0 (the "License"); you may
7
# not use this file except in compliance with the License. You may obtain
8
# a copy of the License at
10
# http://www.apache.org/licenses/LICENSE-2.0
12
# Unless required by applicable law or agreed to in writing, software
13
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
# License for the specific language governing permissions and limitations
19
from glance.teller import backends
21
class HTTPBackend(backends.Backend):
22
""" An implementation of the HTTP Backend Adapter """
25
def get(cls, parsed_uri, expected_size, conn_class=None):
26
"""Takes a parsed uri for an HTTP resource, fetches it, and yields the
31
pass # use the conn_class passed in
32
elif parsed_uri.scheme == "http":
33
conn_class = httplib.HTTPConnection
34
elif parsed_uri.scheme == "https":
35
conn_class = httplib.HTTPSConnection
37
raise BackendException("scheme '%s' not supported for HTTPBackend")
39
conn = conn_class(parsed_uri.netloc)
40
conn.request("GET", parsed_uri.path, "", {})
43
return backends._file_iter(conn.getresponse(), cls.CHUNKSIZE)