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
23
class HTTPBackend(glance.store.Backend):
24
""" An implementation of the HTTP Backend Adapter """
27
def get(cls, parsed_uri, expected_size, conn_class=None):
28
"""Takes a parsed uri for an HTTP resource, fetches it, and yields the
33
pass # use the conn_class passed in
34
elif parsed_uri.scheme == "http":
35
conn_class = httplib.HTTPConnection
36
elif parsed_uri.scheme == "https":
37
conn_class = httplib.HTTPSConnection
39
raise glance.store.BackendException(
40
"scheme '%s' not supported for HTTPBackend")
42
conn = conn_class(parsed_uri.netloc)
43
conn.request("GET", parsed_uri.path, "", {})
46
return glance.store._file_iter(conn.getresponse(), cls.CHUNKSIZE)