MCPcopy Index your code
hub / github.com/kubernetes-client/python / Resource

Class Resource

kubernetes/base/dynamic/resource.py:22–105  ·  view source on GitHub ↗

Represents an API resource type, containing the information required to build urls for requests

Source from the content-addressed store, hash-verified

20
21
22class Resource:
23 """ Represents an API resource type, containing the information required to build urls for requests """
24
25 def __init__(self, prefix=None, group=None, api_version=None, kind=None,
26 namespaced=False, verbs=None, name=None, preferred=False, client=None,
27 singularName=None, shortNames=None, categories=None, subresources=None, **kwargs):
28
29 if None in (api_version, kind, prefix):
30 raise ValueError("At least prefix, kind, and api_version must be provided")
31
32 self.prefix = prefix
33 self.group = group
34 self.api_version = api_version
35 self.kind = kind
36 self.namespaced = namespaced
37 self.verbs = verbs
38 self.name = name
39 self.preferred = preferred
40 self.client = client
41 self.singular_name = singularName or (name[:-1] if name else "")
42 self.short_names = shortNames
43 self.categories = categories
44 self.subresources = {
45 k: Subresource(self, **v) for k, v in (subresources or {}).items()
46 }
47
48 self.extra_args = kwargs
49
50 def to_dict(self):
51 d = {
52 '_type': 'Resource',
53 'prefix': self.prefix,
54 'group': self.group,
55 'api_version': self.api_version,
56 'kind': self.kind,
57 'namespaced': self.namespaced,
58 'verbs': self.verbs,
59 'name': self.name,
60 'preferred': self.preferred,
61 'singularName': self.singular_name,
62 'shortNames': self.short_names,
63 'categories': self.categories,
64 'subresources': {k: sr.to_dict() for k, sr in self.subresources.items()},
65 }
66 d.update(self.extra_args)
67 return d
68
69 @property
70 def group_version(self):
71 if self.group:
72 return '{}/{}'.format(self.group, self.api_version)
73 return self.api_version
74
75 def __repr__(self):
76 return '<{}({}/{})>'.format(self.__class__.__name__, self.group_version, self.name)
77
78 @property
79 def urls(self):

Callers 2

object_hookMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected