github.com/timstclair/heapster@v0.20.0-alpha1/Godeps/_workspace/src/k8s.io/kubernetes/pkg/client/unversioned/secrets.go (about)

     1  /*
     2  Copyright 2015 The Kubernetes Authors All rights reserved.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package unversioned
    18  
    19  import (
    20  	"k8s.io/kubernetes/pkg/api"
    21  	"k8s.io/kubernetes/pkg/fields"
    22  	"k8s.io/kubernetes/pkg/labels"
    23  	"k8s.io/kubernetes/pkg/watch"
    24  )
    25  
    26  type SecretsNamespacer interface {
    27  	Secrets(namespace string) SecretsInterface
    28  }
    29  
    30  type SecretsInterface interface {
    31  	Create(secret *api.Secret) (*api.Secret, error)
    32  	Update(secret *api.Secret) (*api.Secret, error)
    33  	Delete(name string) error
    34  	List(label labels.Selector, field fields.Selector) (*api.SecretList, error)
    35  	Get(name string) (*api.Secret, error)
    36  	Watch(label labels.Selector, field fields.Selector, opts api.ListOptions) (watch.Interface, error)
    37  }
    38  
    39  // events implements Secrets interface
    40  type secrets struct {
    41  	client    *Client
    42  	namespace string
    43  }
    44  
    45  // newSecrets returns a new secrets object.
    46  func newSecrets(c *Client, ns string) *secrets {
    47  	return &secrets{
    48  		client:    c,
    49  		namespace: ns,
    50  	}
    51  }
    52  
    53  func (s *secrets) Create(secret *api.Secret) (*api.Secret, error) {
    54  	result := &api.Secret{}
    55  	err := s.client.Post().
    56  		Namespace(s.namespace).
    57  		Resource("secrets").
    58  		Body(secret).
    59  		Do().
    60  		Into(result)
    61  
    62  	return result, err
    63  }
    64  
    65  // List returns a list of secrets matching the selectors.
    66  func (s *secrets) List(label labels.Selector, field fields.Selector) (*api.SecretList, error) {
    67  	result := &api.SecretList{}
    68  
    69  	err := s.client.Get().
    70  		Namespace(s.namespace).
    71  		Resource("secrets").
    72  		LabelsSelectorParam(label).
    73  		FieldsSelectorParam(field).
    74  		Do().
    75  		Into(result)
    76  
    77  	return result, err
    78  }
    79  
    80  // Get returns the given secret, or an error.
    81  func (s *secrets) Get(name string) (*api.Secret, error) {
    82  	result := &api.Secret{}
    83  	err := s.client.Get().
    84  		Namespace(s.namespace).
    85  		Resource("secrets").
    86  		Name(name).
    87  		Do().
    88  		Into(result)
    89  
    90  	return result, err
    91  }
    92  
    93  // Watch starts watching for secrets matching the given selectors.
    94  func (s *secrets) Watch(label labels.Selector, field fields.Selector, opts api.ListOptions) (watch.Interface, error) {
    95  	return s.client.Get().
    96  		Prefix("watch").
    97  		Namespace(s.namespace).
    98  		Resource("secrets").
    99  		VersionedParams(&opts, api.Scheme).
   100  		LabelsSelectorParam(label).
   101  		FieldsSelectorParam(field).
   102  		Watch()
   103  }
   104  
   105  func (s *secrets) Delete(name string) error {
   106  	return s.client.Delete().
   107  		Namespace(s.namespace).
   108  		Resource("secrets").
   109  		Name(name).
   110  		Do().
   111  		Error()
   112  }
   113  
   114  func (s *secrets) Update(secret *api.Secret) (result *api.Secret, err error) {
   115  	result = &api.Secret{}
   116  	err = s.client.Put().
   117  		Namespace(s.namespace).
   118  		Resource("secrets").
   119  		Name(secret.Name).
   120  		Body(secret).
   121  		Do().
   122  		Into(result)
   123  
   124  	return
   125  }