From 29d75d72e2294d244c6d06d73f9c5670671f4a3b Mon Sep 17 00:00:00 2001 From: Steve Kriss Date: Mon, 20 Aug 2018 11:38:07 -0700 Subject: [PATCH] move object and block store interfaces to their own files Signed-off-by: Steve Kriss --- .../{storage_interfaces.go => block_store.go} | 37 ------------ pkg/cloudprovider/object_store.go | 56 +++++++++++++++++++ 2 files changed, 56 insertions(+), 37 deletions(-) rename pkg/cloudprovider/{storage_interfaces.go => block_store.go} (58%) create mode 100644 pkg/cloudprovider/object_store.go diff --git a/pkg/cloudprovider/storage_interfaces.go b/pkg/cloudprovider/block_store.go similarity index 58% rename from pkg/cloudprovider/storage_interfaces.go rename to pkg/cloudprovider/block_store.go index 63af12f819..60a2ffdc25 100644 --- a/pkg/cloudprovider/storage_interfaces.go +++ b/pkg/cloudprovider/block_store.go @@ -17,46 +17,9 @@ limitations under the License. package cloudprovider import ( - "io" - "time" - "k8s.io/apimachinery/pkg/runtime" ) -// ObjectStore exposes basic object-storage operations required -// by Ark. -type ObjectStore interface { - // Init prepares the ObjectStore for usage using the provided map of - // configuration key-value pairs. It returns an error if the ObjectStore - // cannot be initialized from the provided config. - Init(config map[string]string) error - - // PutObject creates a new object using the data in body within the specified - // object storage bucket with the given key. - PutObject(bucket string, key string, body io.Reader) error - - // GetObject retrieves the object with the given key from the specified - // bucket in object storage. - GetObject(bucket string, key string) (io.ReadCloser, error) - - // ListCommonPrefixes gets a list of all object key prefixes that come - // before the provided delimiter. For example, if the bucket contains - // the keys "foo-1/bar", "foo-1/baz", and "foo-2/baz", and the delimiter - // is "/", this will return the slice {"foo-1", "foo-2"}. - ListCommonPrefixes(bucket string, delimiter string) ([]string, error) - - // ListObjects gets a list of all keys in the specified bucket - // that have the given prefix. - ListObjects(bucket, prefix string) ([]string, error) - - // DeleteObject removes the object with the specified key from the given - // bucket. - DeleteObject(bucket string, key string) error - - // CreateSignedURL creates a pre-signed URL for the given bucket and key that expires after ttl. - CreateSignedURL(bucket, key string, ttl time.Duration) (string, error) -} - // BlockStore exposes basic block-storage operations required // by Ark. type BlockStore interface { diff --git a/pkg/cloudprovider/object_store.go b/pkg/cloudprovider/object_store.go new file mode 100644 index 0000000000..4cfc8f3a41 --- /dev/null +++ b/pkg/cloudprovider/object_store.go @@ -0,0 +1,56 @@ +/* +Copyright 2017 the Heptio Ark contributors. + +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 cloudprovider + +import ( + "io" + "time" +) + +// ObjectStore exposes basic object-storage operations required +// by Ark. +type ObjectStore interface { + // Init prepares the ObjectStore for usage using the provided map of + // configuration key-value pairs. It returns an error if the ObjectStore + // cannot be initialized from the provided config. + Init(config map[string]string) error + + // PutObject creates a new object using the data in body within the specified + // object storage bucket with the given key. + PutObject(bucket string, key string, body io.Reader) error + + // GetObject retrieves the object with the given key from the specified + // bucket in object storage. + GetObject(bucket string, key string) (io.ReadCloser, error) + + // ListCommonPrefixes gets a list of all object key prefixes that come + // before the provided delimiter. For example, if the bucket contains + // the keys "foo-1/bar", "foo-1/baz", and "foo-2/baz", and the delimiter + // is "/", this will return the slice {"foo-1", "foo-2"}. + ListCommonPrefixes(bucket string, delimiter string) ([]string, error) + + // ListObjects gets a list of all keys in the specified bucket + // that have the given prefix. + ListObjects(bucket, prefix string) ([]string, error) + + // DeleteObject removes the object with the specified key from the given + // bucket. + DeleteObject(bucket string, key string) error + + // CreateSignedURL creates a pre-signed URL for the given bucket and key that expires after ttl. + CreateSignedURL(bucket, key string, ttl time.Duration) (string, error) +}