Skip to content

Commit 7451f8a

Browse files
fix: find pod resource by pod name and fix log output
1 parent b47977d commit 7451f8a

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesComputer.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public void doContainerLog(@QueryParameter String containerId, StaplerRequest2 r
147147
if (slave != null) {
148148
KubernetesCloud cloud = slave.getKubernetesCloud();
149149
String namespace = StringUtils.defaultIfBlank(slave.getNamespace(), cloud.getNamespace());
150-
PodResource resource = cloud.getPodResource(namespace, containerId);
150+
PodResource resource = cloud.getPodResource(namespace, slave.getPodName());
151151

152152
// check if pod exists
153153
Pod pod = resource.get();
@@ -158,29 +158,22 @@ public void doContainerLog(@QueryParameter String containerId, StaplerRequest2 r
158158
return;
159159
}
160160

161-
// Check if container exists and is running (maybe terminated if ephemeral)
161+
// Check if container exists (ephemeral containers are not included)
162162
Optional<ContainerStatus> status = PodContainerSource.lookupContainerStatus(pod, containerId);
163-
if (status.isPresent()) {
164-
ContainerStatus cs = status.get();
165-
if (cs.getState().getTerminated() != null) {
166-
outputStream.write("Container terminated".getBytes(StandardCharsets.UTF_8));
167-
text.markAsComplete();
168-
text.doProgressText(req, rsp);
169-
return;
170-
}
171-
} else {
163+
if (!status.isPresent()) {
172164
outputStream.write("Container not found".getBytes(StandardCharsets.UTF_8));
173165
text.markAsComplete();
174166
text.doProgressText(req, rsp);
175167
return;
176168
}
177169

178-
// Get logs
179-
try (LogWatch ignore =
180-
resource.inContainer(containerId).tailingLines(20).watchLog(outputStream)) {
170+
// Get logs, the state of the container should not matter
171+
try (LogWatch ignore = resource.inContainer(containerId).watchLog(outputStream)) {
172+
// without Thread.sleep logs are not shown
173+
Thread.sleep(5000L);
181174
text.doProgressText(req, rsp);
182-
} catch (KubernetesClientException kce) {
183-
LOGGER.log(Level.WARNING, "Failed getting container logs for " + containerId, kce);
175+
} catch (KubernetesClientException | InterruptedException e) {
176+
LOGGER.log(Level.WARNING, "Failed getting container logs for " + containerId, e);
184177
}
185178
} else {
186179
outputStream.write("Node not available".getBytes(StandardCharsets.UTF_8));

0 commit comments

Comments
 (0)