Skip to content

Commit f9f979c

Browse files
authored
Merge pull request #2212 from yue9944882/cherrypick-15-regen-openapi
Cherrypick release-15 #2206: Automated Generate from openapi release-1.23
2 parents 9175fa9 + cec1a93 commit f9f979c

File tree

2,354 files changed

+193513
-207630
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,354 files changed

+193513
-207630
lines changed

examples/examples-release-15/src/main/java/io/kubernetes/client/examples/YamlExample.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
import io.kubernetes.client.openapi.models.V1PodBuilder;
2323
import io.kubernetes.client.openapi.models.V1Service;
2424
import io.kubernetes.client.openapi.models.V1ServiceBuilder;
25-
import io.kubernetes.client.openapi.models.V1ServicePort;
26-
import io.kubernetes.client.openapi.models.V1ServiceSpec;
2725
import io.kubernetes.client.util.Config;
2826
import io.kubernetes.client.util.Yaml;
2927
import java.io.File;
@@ -63,10 +61,10 @@ public static void main(String[] args) throws IOException, ApiException, ClassNo
6361
.withName("aservice")
6462
.endMetadata()
6563
.withNewSpec()
66-
.withSessionAffinity(V1ServiceSpec.SessionAffinityEnum.CLIENTIP)
67-
.withType(V1ServiceSpec.TypeEnum.NODEPORT)
64+
.withSessionAffinity("ClientIP")
65+
.withType("NodePort")
6866
.addNewPort()
69-
.withProtocol(V1ServicePort.ProtocolEnum.TCP)
67+
.withProtocol("TCP")
7068
.withName("client")
7169
.withPort(8008)
7270
.withNodePort(8080)

extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlTaint.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,10 @@
1212
*/
1313
package io.kubernetes.client.extended.kubectl;
1414

15-
import static io.kubernetes.client.openapi.models.V1Taint.EffectEnum.NOEXECUTE;
16-
import static io.kubernetes.client.openapi.models.V1Taint.EffectEnum.NOSCHEDULE;
17-
import static io.kubernetes.client.openapi.models.V1Taint.EffectEnum.PREFERNOSCHEDULE;
18-
1915
import io.kubernetes.client.extended.kubectl.exception.KubectlException;
2016
import io.kubernetes.client.openapi.ApiException;
2117
import io.kubernetes.client.openapi.apis.CoreV1Api;
2218
import io.kubernetes.client.openapi.models.V1Node;
23-
import io.kubernetes.client.openapi.models.V1Taint;
2419
import io.kubernetes.client.util.taints.Taints;
2520
import io.kubernetes.client.util.taints.Taints.TaintsBuilder;
2621
import java.io.IOException;
@@ -89,15 +84,15 @@ private V1Node executeInternal() throws KubectlException, ApiException, IOExcept
8984
return v1.replaceNode(name, node, null, null, null, null);
9085
}
9186

92-
private V1Taint.EffectEnum makeEffect(String effect) throws KubectlException {
93-
if (effect.equals(NOSCHEDULE.toString())) {
94-
return NOSCHEDULE;
87+
private Taints.Effect makeEffect(String effect) throws KubectlException {
88+
if (effect.equals(Taints.Effect.NO_SCHEDULE.toString())) {
89+
return Taints.Effect.NO_SCHEDULE;
9590
}
96-
if (effect.equals(PREFERNOSCHEDULE.toString())) {
97-
return PREFERNOSCHEDULE;
91+
if (effect.equals(Taints.Effect.PREFER_NO_SCHEDULE.toString())) {
92+
return Taints.Effect.PREFER_NO_SCHEDULE;
9893
}
99-
if (effect.equals(NOEXECUTE.toString())) {
100-
return NOEXECUTE;
94+
if (effect.equals(Taints.Effect.NO_EXECUTE.toString())) {
95+
return Taints.Effect.NO_EXECUTE;
10196
}
10297
throw new KubectlException("Unknown effect: " + effect);
10398
}

fluent/src/main/java/io/kubernetes/client/fluent/BaseFluent.java

Lines changed: 54 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,26 @@
1414

1515
import java.util.ArrayList;
1616
import java.util.Arrays;
17+
import java.util.Collections;
1718
import java.util.LinkedHashSet;
19+
import java.util.List;
1820
import java.util.Objects;
21+
import java.util.Set;
1922
import java.util.stream.Collectors;
2023

21-
public class BaseFluent<F extends io.kubernetes.client.fluent.Fluent<F>>
22-
implements io.kubernetes.client.fluent.Fluent<F>, io.kubernetes.client.fluent.Visitable<F> {
23-
public static final java.lang.String VISIT = "visit";
24-
public final io.kubernetes.client.fluent.VisitableMap _visitables = new VisitableMap();
24+
public class BaseFluent<F extends Fluent<F>>
25+
implements io.kubernetes.client.fluent.Fluent<F>, Visitable<F> {
26+
public static final String VISIT = "visit";
27+
public final VisitableMap _visitables = new VisitableMap();
2528

26-
public static <T> io.kubernetes.client.fluent.VisitableBuilder<T, ?> builderOf(T item) {
29+
public static <T> VisitableBuilder<T, ?> builderOf(T item) {
2730
if (item instanceof Editable) {
2831
Object editor = ((Editable) item).edit();
2932
if (editor instanceof VisitableBuilder) {
3033
return (VisitableBuilder<T, ?>) editor;
3134
}
3235
}
36+
3337
try {
3438
return (VisitableBuilder<T, ?>)
3539
Class.forName(item.getClass().getName() + "Builder")
@@ -40,118 +44,91 @@ public class BaseFluent<F extends io.kubernetes.client.fluent.Fluent<F>>
4044
}
4145
}
4246

43-
public static <T> java.util.List<T> build(
47+
public static <T> List<T> build(
4448
java.util.List<? extends io.kubernetes.client.fluent.Builder<? extends T>> list) {
4549
return list == null
4650
? null
4751
: new ArrayList<T>(list.stream().map(Builder::build).collect(Collectors.toList()));
4852
}
4953

50-
public static <T> java.util.List<T> build(
54+
public static <T> Set<T> build(
5155
java.util.Set<? extends io.kubernetes.client.fluent.Builder<? extends T>> set) {
5256
return set == null
5357
? null
54-
: new ArrayList<>(set.stream().map(Builder::build).collect(Collectors.toList()));
58+
: new LinkedHashSet<T>(set.stream().map(Builder::build).collect(Collectors.toSet()));
5559
}
5660

5761
public static <T> java.util.List<T> aggregate(java.util.List<? extends T>... lists) {
5862
return new ArrayList(
5963
Arrays.stream(lists).filter(Objects::nonNull).collect(Collectors.toList()));
6064
}
6165

62-
public static <T> java.util.Set<T> aggregate(java.util.Set<? extends T>[] sets) {
66+
public static <T> java.util.Set<T> aggregate(java.util.Set<? extends T>... sets) {
6367
return new LinkedHashSet(
6468
Arrays.stream(sets).filter(Objects::nonNull).collect(Collectors.toSet()));
6569
}
6670

67-
public static <V extends io.kubernetes.client.fluent.Visitor<?>, F> java.lang.Boolean canVisit(
68-
V visitor, F fluent) {
69-
if (visitor instanceof TypedVisitor) {
70-
if (!((TypedVisitor) visitor).getType().isAssignableFrom(fluent.getClass())) {
71-
return false;
72-
}
73-
}
74-
if (visitor instanceof PathAwareTypedVisitor) {
75-
PathAwareTypedVisitor pathAwareTypedVisitor = (PathAwareTypedVisitor) visitor;
76-
Class parentType = pathAwareTypedVisitor.getParentType();
77-
Class actaulParentType = pathAwareTypedVisitor.getActualParentType();
78-
if (!parentType.isAssignableFrom(actaulParentType)) {
79-
return false;
80-
}
81-
}
82-
return hasCompatibleVisitMethod(visitor, fluent);
83-
}
84-
85-
public static <V, F> java.lang.Boolean hasCompatibleVisitMethod(V visitor, F fluent) {
86-
for (java.lang.reflect.Method method : visitor.getClass().getMethods()) {
87-
if (!method.getName().equals(VISIT) || method.getParameterTypes().length != 1) {
88-
continue;
89-
}
90-
Class visitorType = method.getParameterTypes()[0];
91-
if (visitorType.isAssignableFrom(fluent.getClass())) {
92-
return true;
93-
} else {
94-
return false;
95-
}
96-
}
97-
return false;
98-
}
99-
100-
public F accept(io.kubernetes.client.fluent.Visitor... visitors) {
101-
return isPathAwareVisitorArray(visitors)
102-
? acceptPathAware(asPathAwareVisitorArray(visitors))
103-
: acceptInternal(visitors);
71+
public F accept(Visitor... visitors) {
72+
return accept(Collections.emptyList(), visitors);
10473
}
10574

106-
public <V> F accept(java.lang.Class<V> type, io.kubernetes.client.fluent.Visitor<V> visitor) {
75+
public <V> F accept(Class<V> type, io.kubernetes.client.fluent.Visitor<V> visitor) {
10776
return accept(
108-
new TypedVisitor<V>() {
77+
Collections.emptyList(),
78+
new Visitor<V>() {
10979
@Override
11080
public Class<V> getType() {
11181
return type;
11282
}
11383

84+
@Override
85+
public void visit(List<Object> path, V element) {
86+
visitor.visit(path, element);
87+
}
88+
11489
@Override
11590
public void visit(V element) {
11691
visitor.visit(element);
11792
}
11893
});
11994
}
12095

121-
public F acceptInternal(io.kubernetes.client.fluent.Visitor<?>... visitors) {
122-
for (Visitor visitor : visitors) {
123-
for (Visitable visitable : _visitables) {
124-
visitable.accept(visitor);
125-
}
126-
127-
if (canVisit(visitor, this)) {
128-
visitor.visit(this);
129-
}
96+
public F accept(java.util.List<Object> path, io.kubernetes.client.fluent.Visitor... visitors) {
97+
Arrays.stream(visitors)
98+
.map(v -> VisitorListener.wrap(v))
99+
.filter(v -> ((Visitor) v).canVisit(path, this))
100+
.sorted((l, r) -> ((Visitor) r).order() - ((Visitor) l).order())
101+
.forEach(
102+
v -> {
103+
((Visitor) v).visit(path, this);
104+
});
105+
106+
List<Object> copyOfPath = path != null ? new ArrayList(path) : new ArrayList<>();
107+
copyOfPath.add(this);
108+
List<Object> newPath = Collections.unmodifiableList(copyOfPath);
109+
110+
for (Visitable visitable : _visitables) {
111+
Arrays.stream(visitors)
112+
.filter(v -> v.getType() != null && v.getType().isAssignableFrom(visitable.getClass()))
113+
.forEach(v -> visitable.accept(newPath, v));
114+
Arrays.stream(visitors)
115+
.filter(v -> v.getType() == null || !v.getType().isAssignableFrom(visitable.getClass()))
116+
.forEach(v -> visitable.accept(newPath, v));
130117
}
131118
return (F) this;
132119
}
133120

134-
private F acceptPathAware(
135-
io.kubernetes.client.fluent.PathAwareTypedVisitor<?, ?>... pathAwareTypedVisitors) {
136-
return acceptInternal(
137-
Arrays.stream(pathAwareTypedVisitors)
138-
.map(p -> p.next(this))
139-
.toArray(size -> new PathAwareTypedVisitor[size]));
140-
}
141-
142-
private static boolean isPathAwareVisitorArray(
143-
io.kubernetes.client.fluent.Visitor<?>[] visitors) {
144-
return !Arrays.stream(visitors)
145-
.filter(v -> !(v instanceof PathAwareTypedVisitor))
146-
.findAny()
147-
.isPresent();
121+
public int hashCode() {
122+
final int prime = 31;
123+
int result = 1;
124+
result = prime * result + 0;
125+
return result;
148126
}
149127

150-
private static io.kubernetes.client.fluent.PathAwareTypedVisitor<?, ?>[] asPathAwareVisitorArray(
151-
io.kubernetes.client.fluent.Visitor<?>[] visitors) {
152-
return Arrays.stream(visitors)
153-
.filter(v -> v instanceof PathAwareTypedVisitor)
154-
.map(v -> (PathAwareTypedVisitor) v)
155-
.toArray(size -> new PathAwareTypedVisitor[size]);
128+
public boolean equals(java.lang.Object obj) {
129+
if (this == obj) return true;
130+
if (obj == null) return false;
131+
if (getClass() != obj.getClass()) return false;
132+
return true;
156133
}
157134
}

fluent/src/main/java/io/kubernetes/client/fluent/Builder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*/
1313
package io.kubernetes.client.fluent;
1414

15-
@java.lang.FunctionalInterface
15+
@FunctionalInterface
1616
public interface Builder<T> {
1717
T build();
1818
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
Copyright 2022 The Kubernetes Authors.
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+
http://www.apache.org/licenses/LICENSE-2.0
7+
Unless required by applicable law or agreed to in writing, software
8+
distributed under the License is distributed on an "AS IS" BASIS,
9+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10+
See the License for the specific language governing permissions and
11+
limitations under the License.
12+
*/
13+
package io.kubernetes.client.fluent;
14+
15+
import java.util.List;
16+
import java.util.function.Predicate;
17+
18+
public class DelegatingVisitor<T> implements Visitor<T> {
19+
DelegatingVisitor(Class<T> type, io.kubernetes.client.fluent.Visitor<T> delegate) {
20+
this.type = type;
21+
this.delegate = delegate;
22+
}
23+
24+
private final java.lang.Class<T> type;
25+
private final io.kubernetes.client.fluent.Visitor<T> delegate;
26+
27+
public java.lang.Class<T> getType() {
28+
return type;
29+
}
30+
31+
public void visit(T target) {
32+
delegate.visit(target);
33+
}
34+
35+
public int order() {
36+
return delegate.order();
37+
}
38+
39+
public void visit(List<Object> path, T target) {
40+
delegate.visit(path, target);
41+
}
42+
43+
public <F> Predicate<java.util.List<java.lang.Object>> getRequirement() {
44+
return delegate.getRequirement();
45+
}
46+
}

fluent/src/main/java/io/kubernetes/client/fluent/Fluent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
*/
1313
package io.kubernetes.client.fluent;
1414

15-
public interface Fluent<F extends io.kubernetes.client.fluent.Fluent<F>> {}
15+
public interface Fluent<F extends Fluent<F>> {}

fluent/src/main/java/io/kubernetes/client/fluent/PathAwareTypedVisitor.java

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,49 +12,33 @@
1212
*/
1313
package io.kubernetes.client.fluent;
1414

15-
import java.util.ArrayList;
1615
import java.util.List;
1716

18-
public class PathAwareTypedVisitor<V, P> extends io.kubernetes.client.fluent.TypedVisitor<V> {
19-
PathAwareTypedVisitor(java.util.List<java.lang.Object> path) {
20-
this.path = path;
21-
this.delegate = this;
22-
this.parentType = (Class<P>) getTypeArguments(PathAwareTypedVisitor.class, getClass()).get(1);
17+
public class PathAwareTypedVisitor<V, P> extends TypedVisitor<V> {
18+
PathAwareTypedVisitor() {
19+
List<Class> args = Visitors.getTypeArguments(PathAwareTypedVisitor.class, getClass());
20+
if (args == null || args.isEmpty()) {
21+
throw new IllegalStateException(
22+
"Could not determine type arguments for path aware typed visitor.");
23+
}
24+
this.type = (Class<V>) args.get(0);
25+
this.parentType = (Class<P>) args.get(1);
2326
}
2427

25-
PathAwareTypedVisitor(
26-
java.util.List<java.lang.Object> path,
27-
io.kubernetes.client.fluent.PathAwareTypedVisitor<V, P> delegate) {
28-
this.path = path;
29-
this.delegate = this;
30-
this.parentType =
31-
(Class<P>) getTypeArguments(PathAwareTypedVisitor.class, delegate.getClass()).get(1);
32-
}
33-
34-
java.util.List<java.lang.Object> path;
35-
io.kubernetes.client.fluent.PathAwareTypedVisitor<V, P> delegate;
36-
java.lang.Class<P> parentType;
28+
private final Class<V> type;
29+
private final java.lang.Class<P> parentType;
3730

38-
public void visit(V element) {
39-
delegate.path = path;
40-
delegate.visit(element);
41-
}
42-
43-
io.kubernetes.client.fluent.PathAwareTypedVisitor<V, P> next(java.lang.Object item) {
44-
List<Object> path = new ArrayList<Object>(this.path);
45-
path.add(item);
46-
return new PathAwareTypedVisitor<V, P>(path, this);
47-
}
31+
public void visit(V element) {}
4832

49-
P getParent() {
50-
return path.size() - 2 >= 0 ? (P) path.get(path.size() - 2) : null;
33+
public void visit(List<Object> path, V element) {
34+
visit(element);
5135
}
5236

53-
java.lang.Class<P> getParentType() {
54-
return parentType != null ? parentType : delegate.getParentType();
37+
public P getParent(java.util.List<java.lang.Object> path) {
38+
return path.size() - 1 >= 0 ? (P) path.get(path.size() - 1) : null;
5539
}
5640

57-
protected java.lang.Class<?> getActualParentType() {
58-
return path.size() - 2 >= 0 ? path.get(path.size() - 2).getClass() : Void.class;
41+
public java.lang.Class<P> getParentType() {
42+
return parentType;
5943
}
6044
}

0 commit comments

Comments
 (0)