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 }