From 60d4779889baedc44972d4749daa073efca3b25c Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Mon, 19 Feb 2018 21:30:33 +0100 Subject: reorganize code * Gophercloud dependencies move into subpackage gopherschwift. * Tests move into subpackage tests (to avoid import cycles). + Rename "Client" to "Backend". --- backend.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 backend.go (limited to 'backend.go') diff --git a/backend.go b/backend.go new file mode 100644 index 0000000..30013b1 --- /dev/null +++ b/backend.go @@ -0,0 +1,43 @@ +/****************************************************************************** +* +* Copyright 2018 Stefan Majewsky +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +******************************************************************************/ + +package schwift + +import ( + "net/http" +) + +//Backend is the interface between Schwift and the libraries providing +//authentication for it. +// +//TODO list implementations +type Backend interface { + //EndpointURL returns the endpoint URL from the Keystone catalog for the + //Swift account that this backend operates on. It should look like + //`http://domain.tld/v1/AUTH_projectid/`. + EndpointURL() string + //Clone returns a deep clone of this backend with the endpoint URL changed to + //the given URL. + Clone(newEndpointURL string) Backend + //Do executes the given HTTP request after adding to it the X-Auth-Token + //header containing the backend's current Keystone (or Swift auth) token. It + //may also set other headers, such as User-Agent. If the status code returned + //is 401, it shall attempt to acquire a new auth token and restart the + //request with the new token. + Do(req *http.Request) (*http.Response, error) +} -- cgit v1.2.3