Skip to content

Commit e94a4cc

Browse files
authored
Merge pull request #502 from rkpattnaik780/new-sdk
fix: use kiota generated Java SDK
2 parents ff4cf93 + 7305c67 commit e94a4cc

File tree

57 files changed

+1144
-1070
lines changed

Some content is hidden

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

57 files changed

+1144
-1070
lines changed

pom.xml

Lines changed: 52 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,69 @@
1818
<maven.checkstyle.version>3.2.1</maven.checkstyle.version>
1919
<maven.failsafe.version>3.0.0-M7</maven.failsafe.version>
2020
<download.maven.plugin.version>1.6.8</download.maven.plugin.version>
21-
<fabric8.version>6.4.0</fabric8.version>
21+
<fabric8.version>6.4.1</fabric8.version>
2222
<sundrio.version>0.93.2</sundrio.version>
2323
<!-- See 'Update the rhoas-model dependency' in the README.md on how to build and update the rhoas-model -->
2424
<rhoas-model.version>0.9.7</rhoas-model.version>
25+
<sdk.version>1.0.1</sdk.version>
2526
</properties>
2627

27-
<repositories>
28-
<repository>
29-
<id>jitpack.io</id>
30-
<url>https://jitpack.io</url>
31-
</repository>
32-
</repositories>
33-
3428
<dependencies>
3529
<dependency>
36-
<groupId>com.github.andreaTP.rh-java-sdk</groupId>
30+
<groupId>org.jboss.resteasy</groupId>
31+
<artifactId>resteasy-client</artifactId>
32+
<version>6.2.3.Final</version>
33+
</dependency>
34+
<dependency>
35+
<groupId>org.jboss.resteasy</groupId>
36+
<artifactId>resteasy-multipart-provider</artifactId>
37+
<version>6.2.3.Final</version>
38+
</dependency>
39+
<dependency>
40+
<groupId>org.jboss.resteasy</groupId>
41+
<artifactId>resteasy-jackson2-provider</artifactId>
42+
<version>6.2.3.Final</version>
43+
</dependency>
44+
<dependency>
45+
<groupId>com.microsoft.kiota</groupId>
46+
<artifactId>microsoft-kiota-http-okHttp</artifactId>
47+
<version>0.3.2</version>
48+
</dependency>
49+
50+
<dependency>
51+
<groupId>com.redhat.cloud</groupId>
3752
<artifactId>account-management-sdk</artifactId>
38-
<version>0.0.5-SNAPSHOT</version>
53+
<version>${sdk.version}</version>
54+
</dependency>
55+
<dependency>
56+
<groupId>com.redhat.cloud</groupId>
57+
<artifactId>kafka-instance-sdk</artifactId>
58+
<version>${sdk.version}</version>
59+
</dependency>
60+
<dependency>
61+
<groupId>com.redhat.cloud</groupId>
62+
<artifactId>kafka-management-sdk</artifactId>
63+
<version>${sdk.version}</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>com.redhat.cloud</groupId>
67+
<artifactId>registry-instance-sdk</artifactId>
68+
<version>${sdk.version}</version>
3969
</dependency>
4070
<dependency>
41-
<groupId>com.github.andreaTP.kiota-utils</groupId>
71+
<groupId>com.redhat.cloud</groupId>
72+
<artifactId>registry-management-sdk</artifactId>
73+
<version>${sdk.version}</version>
74+
</dependency>
75+
<dependency>
76+
<groupId>com.redhat.cloud</groupId>
77+
<artifactId>service-accounts-sdk</artifactId>
78+
<version>${sdk.version}</version>
79+
</dependency>
80+
<dependency>
81+
<groupId>com.redhat.cloud</groupId>
4282
<artifactId>kiota-rh-auth</artifactId>
43-
<version>0.1.5</version>
83+
<version>0.0.3</version>
4484
</dependency>
4585
<dependency>
4686
<groupId>org.testng</groupId>
@@ -147,31 +187,11 @@
147187
<artifactId>joda-time</artifactId>
148188
<version>2.12.2</version>
149189
</dependency>
150-
<dependency>
151-
<groupId>com.redhat.cloud</groupId>
152-
<artifactId>kafka-management-sdk</artifactId>
153-
<version>0.31.0</version>
154-
</dependency>
155190
<dependency>
156191
<groupId>org.openapitools</groupId>
157192
<artifactId>jackson-databind-nullable</artifactId>
158193
<version>0.2.5</version>
159194
</dependency>
160-
<dependency>
161-
<groupId>com.redhat.cloud</groupId>
162-
<artifactId>registry-management-sdk</artifactId>
163-
<version>0.31.0</version>
164-
</dependency>
165-
<dependency>
166-
<groupId>com.redhat.cloud</groupId>
167-
<artifactId>kafka-instance-sdk</artifactId>
168-
<version>0.31.0</version>
169-
</dependency>
170-
<dependency>
171-
<groupId>com.redhat.cloud</groupId>
172-
<artifactId>service-accounts-sdk</artifactId>
173-
<version>0.31.0</version>
174-
</dependency>
175195
<dependency>
176196
<groupId>io.apicurio</groupId>
177197
<artifactId>apicurio-registry-client</artifactId>

src/main/java/io/managed/services/test/cli/AsyncProcess.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
import com.fasterxml.jackson.databind.DeserializationFeature;
55
import com.fasterxml.jackson.databind.ObjectMapper;
66
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
7+
import com.microsoft.kiota.serialization.JsonParseNodeFactory;
8+
import com.microsoft.kiota.serialization.ParseNode;
79
import lombok.extern.log4j.Log4j2;
810
import org.apache.commons.io.input.TeeInputStream;
911
import org.apache.commons.io.output.ByteArrayOutputStream;
1012
import org.openapitools.jackson.nullable.JsonNullableModule;
11-
1213
import java.io.BufferedReader;
1314
import java.io.BufferedWriter;
1415
import java.io.IOException;
@@ -167,6 +168,15 @@ public <T> T asJson(Class<T> c) {
167168
}
168169
}
169170

171+
public ParseNode parseNodeFromProcessOutput() {
172+
InputStream targetStream = new java.io.ByteArrayInputStream(this.stdoutAsString().getBytes());
173+
log.debug("process stdout: ");
174+
log.debug(this.stdoutAsString());
175+
176+
var factory = new JsonParseNodeFactory();
177+
return factory.getParseNode("application/json", targetStream);
178+
}
179+
170180
public void readAll() {
171181
readAll(liveStdout);
172182
readAll(liveStderr);

src/main/java/io/managed/services/test/cli/CLI.java

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
import lombok.extern.log4j.Log4j2;
2525
import org.openapitools.jackson.nullable.JsonNullableModule;
2626
import org.testng.Assert;
27-
28-
2927
import java.io.File;
3028
import java.io.IOException;
3129
import java.nio.file.Path;
@@ -36,7 +34,6 @@
3634
import java.util.Locale;
3735
import java.util.concurrent.ExecutionException;
3836
import java.util.stream.Collectors;
39-
4037
import static java.time.Duration.ofMinutes;
4138
import static lombok.Lombok.sneakyThrow;
4239

@@ -134,7 +131,8 @@ public String help() {
134131

135132
public KafkaRequest createKafka(String name) throws CliGenericException {
136133
return retryKafkaCreation(() -> exec("kafka", "create", "--bypass-checks", "--name", name, "--provider", Environment.CLOUD_PROVIDER, "--region", Environment.DEFAULT_KAFKA_REGION))
137-
.asJson(KafkaRequest.class);
134+
.parseNodeFromProcessOutput()
135+
.getObjectValue(KafkaRequest::createFromDiscriminatorValue);
138136
}
139137

140138
public void deleteKafka(String id) throws CliGenericException {
@@ -143,12 +141,14 @@ public void deleteKafka(String id) throws CliGenericException {
143141

144142
public KafkaRequest describeKafkaById(String id) throws CliGenericException {
145143
return retry(() -> exec("kafka", "describe", "--id", id))
146-
.asJson(KafkaRequest.class);
144+
.parseNodeFromProcessOutput()
145+
.getObjectValue(KafkaRequest::createFromDiscriminatorValue);
147146
}
148147

149148
public KafkaRequest describeKafkaByName(String name) throws CliGenericException {
150149
return retry(() -> exec("kafka", "describe", "--name", name))
151-
.asJson(KafkaRequest.class);
150+
.parseNodeFromProcessOutput()
151+
.getObjectValue(KafkaRequest::createFromDiscriminatorValue);
152152
}
153153

154154
public void useKafka(String id) throws CliGenericException {
@@ -157,25 +157,26 @@ public void useKafka(String id) throws CliGenericException {
157157

158158
public KafkaRequestList listKafka() throws CliGenericException {
159159
return retry(() -> exec("kafka", "list", "-o", "json"))
160-
.asJson(KafkaRequestList.class);
160+
.parseNodeFromProcessOutput()
161+
.getObjectValue(KafkaRequestList::createFromDiscriminatorValue);
161162
}
162163

163164
public KafkaRequestList searchKafkaByName(String name) throws CliGenericException {
164-
var p = retry(() -> exec("kafka", "list", "--search", name, "-o", "json"));
165-
if (p.stderrAsString().contains("No Kafka instances were found")) {
166-
return new KafkaRequestList();
167-
}
168-
return p.asJson(KafkaRequestList.class);
165+
return retry(() -> exec("kafka", "list", "--search", name, "-o", "json"))
166+
.parseNodeFromProcessOutput()
167+
.getObjectValue(KafkaRequestList::createFromDiscriminatorValue);
169168
}
170169

171170
public ServiceAccountData describeServiceAccount(String id) throws CliGenericException {
172171
return retry(() -> exec("service-account", "describe", "--id", id))
173-
.asJson(ServiceAccountData.class);
172+
.parseNodeFromProcessOutput()
173+
.getObjectValue(ServiceAccountData::createFromDiscriminatorValue);
174174
}
175175

176-
public ServiceAccountData[] listServiceAccount() throws CliGenericException {
176+
public List<ServiceAccountData> listServiceAccount() throws CliGenericException {
177177
return retry(() -> exec("service-account", "list", "-o", "json"))
178-
.asJson(ServiceAccountData[].class);
178+
.parseNodeFromProcessOutput()
179+
.getCollectionOfObjectValues(ServiceAccountData::createFromDiscriminatorValue);
179180
}
180181

181182
public void deleteServiceAccount(String id) throws CliGenericException {
@@ -188,12 +189,14 @@ public void createServiceAccount(String name, Path path) throws CliGenericExcept
188189

189190
public Topic createTopic(String topicName) throws CliGenericException {
190191
return retry(() -> exec("kafka", "topic", "create", "--name", topicName, "-o", "json"))
191-
.asJson(Topic.class);
192+
.parseNodeFromProcessOutput()
193+
.getObjectValue(Topic::createFromDiscriminatorValue);
192194
}
193195

194196
public Topic createTopic(String topicName, int partitions) throws CliGenericException {
195197
return retry(() -> exec("kafka", "topic", "create", "--name", topicName, "--partitions", String.valueOf(partitions), "-o", "json"))
196-
.asJson(Topic.class);
198+
.parseNodeFromProcessOutput()
199+
.getObjectValue(Topic::createFromDiscriminatorValue);
197200
}
198201

199202
public void deleteTopic(String topicName) throws CliGenericException {
@@ -202,12 +205,14 @@ public void deleteTopic(String topicName) throws CliGenericException {
202205

203206
public TopicsList listTopics() throws CliGenericException {
204207
return retry(() -> exec("kafka", "topic", "list", "-o", "json"))
205-
.asJson(TopicsList.class);
208+
.parseNodeFromProcessOutput()
209+
.getObjectValue(TopicsList::createFromDiscriminatorValue);
206210
}
207211

208212
public Topic describeTopic(String topicName) throws CliGenericException {
209213
return retry(() -> exec("kafka", "topic", "describe", "--name", topicName, "-o", "json"))
210-
.asJson(Topic.class);
214+
.parseNodeFromProcessOutput()
215+
.getObjectValue(Topic::createFromDiscriminatorValue);
211216
}
212217

213218
public void updateTopic(String topicName, String retentionTime) throws CliGenericException {
@@ -216,7 +221,8 @@ public void updateTopic(String topicName, String retentionTime) throws CliGeneri
216221

217222
public ConsumerGroupList listConsumerGroups() throws CliGenericException {
218223
return retry(() -> exec("kafka", "consumer-group", "list", "-o", "json"))
219-
.asJson(ConsumerGroupList.class);
224+
.parseNodeFromProcessOutput()
225+
.getObjectValue(ConsumerGroupList::createFromDiscriminatorValue);
220226
}
221227

222228
public void deleteConsumerGroup(String id) throws CliGenericException {
@@ -225,7 +231,8 @@ public void deleteConsumerGroup(String id) throws CliGenericException {
225231

226232
public ConsumerGroup describeConsumerGroup(String name) throws CliGenericException {
227233
return retry(() -> exec("kafka", "consumer-group", "describe", "--id", name, "-o", "json"))
228-
.asJson(ConsumerGroup.class);
234+
.parseNodeFromProcessOutput()
235+
.getObjectValue(ConsumerGroup::createFromDiscriminatorValue);
229236
}
230237

231238
public void connectCluster(String token, String kubeconfig, String serviceType) throws CliGenericException {
@@ -253,12 +260,14 @@ public void createAcl(ACLEntityType aclEntityType, String entityIdentificator, A
253260
//// kafka acl list
254261
public AclBindingListPage listACLs() throws CliGenericException {
255262
return retry(() -> exec("kafka", "acl", "list", "-o", "json"))
256-
.asJson(AclBindingListPage.class);
263+
.parseNodeFromProcessOutput()
264+
.getObjectValue(AclBindingListPage::createFromDiscriminatorValue);
257265
}
258266

259267
public AclBindingListPage listACLs(ACLEntityType aclEntityType, String entityIdentificator) throws CliGenericException {
260268
return retry(() -> exec("kafka", "acl", "list", aclEntityType.flag, entityIdentificator, "-o", "json"))
261-
.asJson(AclBindingListPage.class);
269+
.parseNodeFromProcessOutput()
270+
.getObjectValue(AclBindingListPage::createFromDiscriminatorValue);
262271
}
263272

264273
//// kafka acl delete
@@ -285,22 +294,26 @@ public void grantAdminAcl(ACLEntityType aclEntityType, String entityIdentificato
285294
*/
286295
public Registry createServiceRegistry(String name) throws CliGenericException {
287296
return retry(() -> exec("service-registry", "create", "--name", name))
288-
.asJson(Registry.class);
297+
.parseNodeFromProcessOutput()
298+
.getObjectValue(Registry::createFromDiscriminatorValue);
289299
}
290300

291301
public Registry describeServiceRegistry(String id) throws CliGenericException {
292302
return retry(() -> exec("service-registry", "describe", "--id", id))
293-
.asJson(Registry.class);
303+
.parseNodeFromProcessOutput()
304+
.getObjectValue(Registry::createFromDiscriminatorValue);
294305
}
295306

296307
public Registry describeServiceRegistry() throws CliGenericException {
297308
return retry(() -> exec("service-registry", "describe"))
298-
.asJson(Registry.class);
309+
.parseNodeFromProcessOutput()
310+
.getObjectValue(Registry::createFromDiscriminatorValue);
299311
}
300312

301313
public RegistryList listServiceRegistry() throws CliGenericException {
302314
return retry(() -> exec("service-registry", "list", "-o", "json"))
303-
.asJson(RegistryList.class);
315+
.parseNodeFromProcessOutput()
316+
.getObjectValue(RegistryList::createFromDiscriminatorValue);
304317
}
305318

306319
public void useServiceRegistry(String id) throws CliGenericException {

src/main/java/io/managed/services/test/cli/CLIUtils.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import java.nio.file.Paths;
4848
import java.time.Duration;
4949
import java.util.ArrayList;
50-
import java.util.Arrays;
5150
import java.util.List;
5251
import java.util.Objects;
5352
import java.util.Optional;
@@ -181,8 +180,28 @@ public static void waitUntilRegistryIsDeleted(CLI cli, String registryId)
181180
});
182181
}
183182

183+
public static KafkaRequest applyKafkaInstance(CLI cli, String kafkaInstanceName) throws CliGenericException, KafkaUnknownHostsException, KafkaNotReadyException, InterruptedException {
184+
Optional<KafkaRequest> optionalKafka = cli.listKafka().getItems().stream().filter(e -> kafkaInstanceName.equals(e.getName())).findAny();
185+
KafkaRequest kafka = null;
186+
if (optionalKafka.isPresent()) {
187+
LOGGER.info("kafka instance with name {} is present", kafkaInstanceName);
188+
kafka = optionalKafka.get();
189+
} else {
190+
LOGGER.info("kafka instance with name {} is not present, it will be created now", kafkaInstanceName);
191+
kafka = cli.createKafka(kafkaInstanceName);
192+
LOGGER.debug(kafka);
193+
194+
// updated version of kafka after it is ready needs to be passed
195+
LOGGER.info("wait for kafka instance: {}", kafka.getId());
196+
kafka = CLIUtils.waitUntilKafkaIsReady(cli, kafka.getId());
197+
}
198+
199+
cli.useKafka(kafka.getId());
200+
return kafka;
201+
}
202+
184203
public static Optional<ServiceAccountData> getServiceAccountByName(CLI cli, String name) throws CliGenericException {
185-
return Arrays.stream(cli.listServiceAccount()).filter(sa -> name.equals(sa.getName())).findAny();
204+
return cli.listServiceAccount().stream().filter(sa -> name.equals(sa.getName())).findAny();
186205
}
187206

188207
public static ServiceAccountSecret createServiceAccount(CLI cli, String name) throws CliGenericException {
@@ -204,7 +223,13 @@ public static ConsumerGroup waitForConsumerGroup(CLI cli, String name) {
204223
public static Registry waitUntilServiceRegistryIsReady(CLI cli, String id)
205224
throws InterruptedException, CliGenericException, RegistryNotReadyException {
206225

207-
return RegistryMgmtApiUtils.waitUntilRegistryIsReady(() -> cli.describeServiceRegistry(id));
226+
return RegistryMgmtApiUtils.waitUntilRegistryIsReady(() -> {
227+
try {
228+
return cli.describeServiceRegistry(id);
229+
} catch (CliGenericException e) {
230+
throw new RuntimeException(e);
231+
}
232+
});
208233
}
209234

210235
public static Topic applyTopic(CLI cli, String topicName, int partitions) throws CliGenericException {

0 commit comments

Comments
 (0)