12
12
*/
13
13
package io .kubernetes .client .extended .kubectl ;
14
14
15
- import io .kubernetes .client .common .KubernetesListObject ;
16
15
import io .kubernetes .client .common .KubernetesObject ;
17
16
import io .kubernetes .client .custom .V1Patch ;
17
+ import io .kubernetes .client .util .ModelMapper ;
18
18
import io .kubernetes .client .util .generic .GenericKubernetesApi ;
19
19
20
20
public class KubectlPatch <ApiType extends KubernetesObject >
21
21
extends Kubectl .ResourceBuilder <ApiType , KubectlPatch <ApiType >>
22
22
implements Kubectl .Executable <ApiType > {
23
23
24
- private Class <ApiType > apiTypeClass ;
25
- private Class <KubernetesListObject > apiListTypeClass ;
24
+ private String patchType ;
26
25
private V1Patch patchContent ;
27
26
28
27
KubectlPatch (Class <ApiType > apiTypeClass ) {
@@ -34,9 +33,18 @@ public KubectlPatch patchContent(V1Patch patchContent) {
34
33
return this ;
35
34
}
36
35
36
+ public KubectlPatch patchType (String patchType ) {
37
+ this .patchType = patchType ;
38
+ return this ;
39
+ }
40
+
37
41
@ Override
38
42
public ApiType execute () {
39
43
GenericKubernetesApi genericKubernetesApi = getGenericApi ();
40
- return (ApiType ) genericKubernetesApi .patch (namespace , name , patchContent );
44
+ if (ModelMapper .isNamespaced (apiTypeClass )) {
45
+ return (ApiType ) genericKubernetesApi .patch (namespace , name , patchType , patchContent );
46
+ } else {
47
+ return (ApiType ) genericKubernetesApi .patch (name , patchType , patchContent );
48
+ }
41
49
}
42
50
}
0 commit comments