Skip to content

Commit bb84f0b

Browse files
committed
fix: use get instead of list in kubernetes client.
this fixes #647
1 parent 8ae11b6 commit bb84f0b

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

src/KubeOps.KubernetesClient/KubernetesClient.cs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -104,53 +104,53 @@ public string GetCurrentNamespace(string downwardApiEnvName = "POD_NAMESPACE")
104104
where TEntity : IKubernetesObject<V1ObjectMeta>
105105
{
106106
var metadata = GetMetadata<TEntity>();
107-
var list = @namespace switch
108-
{
109-
null => await _client.CustomObjects.ListClusterCustomObjectAsync<EntityList<TEntity>>(
110-
metadata.Group ?? string.Empty,
111-
metadata.Version,
112-
metadata.PluralName,
113-
fieldSelector: $"metadata.name={name}"),
114-
_ => await _client.CustomObjects.ListNamespacedCustomObjectAsync<EntityList<TEntity>>(
115-
metadata.Group ?? string.Empty,
116-
metadata.Version,
117-
@namespace,
118-
metadata.PluralName,
119-
fieldSelector: $"metadata.name={name}"),
120-
};
121107

122-
return list switch
108+
try
123109
{
124-
{ Items: [var existing] } => existing,
125-
_ => default,
126-
};
110+
return await (string.IsNullOrWhiteSpace(@namespace)
111+
? _client.CustomObjects.GetClusterCustomObjectAsync<TEntity>(
112+
metadata.Group ?? string.Empty,
113+
metadata.Version,
114+
metadata.PluralName,
115+
name)
116+
: _client.CustomObjects.GetNamespacedCustomObjectAsync<TEntity>(
117+
metadata.Group ?? string.Empty,
118+
metadata.Version,
119+
@namespace,
120+
metadata.PluralName,
121+
name));
122+
}
123+
catch (HttpOperationException e) when (e.Response.StatusCode == HttpStatusCode.NotFound)
124+
{
125+
return default;
126+
}
127127
}
128128

129129
/// <inheritdoc />
130130
public TEntity? Get<TEntity>(string name, string? @namespace = null)
131131
where TEntity : IKubernetesObject<V1ObjectMeta>
132132
{
133133
var metadata = GetMetadata<TEntity>();
134-
var list = @namespace switch
135-
{
136-
null => _client.CustomObjects.ListClusterCustomObject<EntityList<TEntity>>(
137-
metadata.Group ?? string.Empty,
138-
metadata.Version,
139-
metadata.PluralName,
140-
fieldSelector: $"metadata.name={name}"),
141-
_ => _client.CustomObjects.ListNamespacedCustomObject<EntityList<TEntity>>(
142-
metadata.Group ?? string.Empty,
143-
metadata.Version,
144-
@namespace,
145-
metadata.PluralName,
146-
fieldSelector: $"metadata.name={name}"),
147-
};
148134

149-
return list switch
135+
try
150136
{
151-
{ Items: [var existing] } => existing,
152-
_ => default,
153-
};
137+
return string.IsNullOrWhiteSpace(@namespace)
138+
? _client.CustomObjects.GetClusterCustomObject<TEntity>(
139+
metadata.Group ?? string.Empty,
140+
metadata.Version,
141+
metadata.PluralName,
142+
name)
143+
: _client.CustomObjects.GetNamespacedCustomObject<TEntity>(
144+
metadata.Group ?? string.Empty,
145+
metadata.Version,
146+
@namespace,
147+
metadata.PluralName,
148+
name);
149+
}
150+
catch (HttpOperationException e) when (e.Response.StatusCode == HttpStatusCode.NotFound)
151+
{
152+
return default;
153+
}
154154
}
155155

156156
/// <inheritdoc />

0 commit comments

Comments
 (0)