github.com/kubernetes-incubator/kube-aws@v0.16.4/pkg/api/s3_folders.go (about)

     1  package api
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  type S3Folders struct {
     9  	clusterName string
    10  	s3URI       string
    11  }
    12  
    13  func NewS3Folders(s3URI string, clusterName string) S3Folders {
    14  	return S3Folders{
    15  		s3URI:       s3URI,
    16  		clusterName: clusterName,
    17  	}
    18  }
    19  
    20  func (n S3Folders) root() S3Folder {
    21  	return newS3Folder(n.s3URI)
    22  }
    23  
    24  func (n S3Folders) Cluster() S3Folder {
    25  	return n.root().subFolder(fmt.Sprintf("kube-aws/clusters/%s", n.clusterName))
    26  }
    27  
    28  func (n S3Folders) ClusterBackups() S3Folder {
    29  	return n.Cluster().subFolder("backup")
    30  }
    31  
    32  func (n S3Folders) ClusterExportedStacks() S3Folder {
    33  	return n.Cluster().subFolder("exported/stacks")
    34  }
    35  
    36  type S3Folder struct {
    37  	s3URI string
    38  }
    39  
    40  func newS3Folder(uri string) S3Folder {
    41  	return S3Folder{
    42  		s3URI: strings.TrimSuffix(uri, "/"),
    43  	}
    44  }
    45  
    46  func (f S3Folder) Path() string {
    47  	uri := strings.TrimSuffix(f.s3URI, "/")
    48  	return strings.TrimPrefix(uri, "s3://")
    49  }
    50  
    51  func (f S3Folder) URI() string {
    52  	return f.s3URI
    53  }
    54  
    55  func (f S3Folder) subFolder(name string) S3Folder {
    56  	return newS3Folder(fmt.Sprintf("%s/%s", f.s3URI, name))
    57  }