github.com/google/cadvisor@v0.49.1/container/containerd/namespaces/store.go (about) 1 // Copyright 2017 Google Inc. All Rights Reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 /* 15 Copyright The containerd Authors. 16 17 Licensed under the Apache License, Version 2.0 (the "License"); 18 you may not use this file except in compliance with the License. 19 You may obtain a copy of the License at 20 21 http://www.apache.org/licenses/LICENSE-2.0 22 23 Unless required by applicable law or agreed to in writing, software 24 distributed under the License is distributed on an "AS IS" BASIS, 25 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 26 See the License for the specific language governing permissions and 27 limitations under the License. 28 */ 29 30 package namespaces 31 32 import "context" 33 34 // Store provides introspection about namespaces. 35 // 36 // Note that these are slightly different than other objects, which are record 37 // oriented. A namespace is really just a name and a set of labels. Objects 38 // that belong to a namespace are returned when the namespace is assigned to a 39 // given context. 40 type Store interface { 41 Create(ctx context.Context, namespace string, labels map[string]string) error 42 Labels(ctx context.Context, namespace string) (map[string]string, error) 43 SetLabel(ctx context.Context, namespace, key, value string) error 44 List(ctx context.Context) ([]string, error) 45 46 // Delete removes the namespace. The namespace must be empty to be deleted. 47 Delete(ctx context.Context, namespace string, opts ...DeleteOpts) error 48 } 49 50 // DeleteInfo specifies information for the deletion of a namespace 51 type DeleteInfo struct { 52 // Name of the namespace 53 Name string 54 } 55 56 // DeleteOpts allows the caller to set options for namespace deletion 57 type DeleteOpts func(context.Context, *DeleteInfo) error