Skip to content

Commit e70ed8e

Browse files
committed
chore: remove any usage
related to podman-desktop#10600 Signed-off-by: Florent Benoit <fbenoit@redhat.com>
1 parent a230ae2 commit e70ed8e

File tree

7 files changed

+38
-10
lines changed

7 files changed

+38
-10
lines changed

packages/api/src/container-info.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,15 @@ export interface DeviceMapping {
9595
PathOnHost: string;
9696
}
9797

98+
export interface HostConfigPortBinding {
99+
[port: string]: {
100+
HostPort?: string;
101+
HostIp?: string;
102+
}[];
103+
}
104+
98105
export interface HostConfig {
99-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
100-
PortBindings?: any;
106+
PortBindings?: HostConfigPortBinding;
101107
Binds?: string[];
102108
AutoRemove?: boolean;
103109
SecurityOpt?: string[];

packages/extension-api/src/extension-api.d.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2688,6 +2688,12 @@ declare module '@podman-desktop/api' {
26882688
PathOnHost: string;
26892689
}
26902690

2691+
export interface HostConfigPortBinding {
2692+
[port: string]: {
2693+
HostPort?: string;
2694+
HostIp?: string;
2695+
}[];
2696+
}
26912697
interface HostConfig {
26922698
AutoRemove?: boolean;
26932699
Binds?: string[];
@@ -2697,7 +2703,7 @@ declare module '@podman-desktop/api' {
26972703
Config: unknown;
26982704
};
26992705
NetworkMode?: string;
2700-
PortBindings?: unknown;
2706+
PortBindings?: HostConfigPortBinding;
27012707
RestartPolicy?: HostRestartPolicy;
27022708
VolumeDriver?: string;
27032709
VolumesFrom?: unknown;

packages/main/src/plugin/container-registry.spec.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import { ImageRegistry } from '/@/plugin/image-registry.js';
4040
import { KubePlayContext } from '/@/plugin/podman/kube.js';
4141
import type { Proxy } from '/@/plugin/proxy.js';
4242
import type { Telemetry } from '/@/plugin/telemetry/telemetry.js';
43-
import type { ContainerCreateOptions } from '/@api/container-info.js';
43+
import type { ContainerCreateOptions, HostConfig } from '/@api/container-info.js';
4444
import type { ContainerInspectInfo } from '/@api/container-inspect-info.js';
4545
import type { ImageInfo } from '/@api/image-info.js';
4646
import type { ProviderContainerConnectionInfo } from '/@api/provider-info.js';
@@ -2926,6 +2926,16 @@ describe('createContainer', () => {
29262926
await verifyCreateContainer({ WorkingDir: 'workdir' });
29272927
});
29282928

2929+
test('test create and start Container with custom HostIp', async () => {
2930+
const hostConfig: HostConfig = { PortBindings: { '123/tcp': [{ HostIp: '123.123.123.123' }] } };
2931+
await verifyCreateContainer({ HostConfig: hostConfig });
2932+
});
2933+
2934+
test('test create and start Container with custom HostPort', async () => {
2935+
const hostConfig: HostConfig = { PortBindings: { '123/tcp': [{ HostPort: '8000' }] } };
2936+
await verifyCreateContainer({ HostConfig: hostConfig });
2937+
});
2938+
29292939
test('test container is created but not started', async () => {
29302940
const createdId = '1234';
29312941

packages/main/src/plugin/container-registry.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2084,7 +2084,13 @@ export class ContainerProviderRegistry {
20842084
portmappings = [];
20852085
for (const [key, value] of Object.entries(options.HostConfig?.PortBindings)) {
20862086
const keyAsNumber = parseInt(key);
2087-
if (Array.isArray(value) && 'HostPort' in value[0] && !isNaN(keyAsNumber)) {
2087+
if (
2088+
Array.isArray(value) &&
2089+
value[0] &&
2090+
'HostPort' in value[0] &&
2091+
!isNaN(keyAsNumber) &&
2092+
value[0].HostPort !== undefined
2093+
) {
20882094
const valueAsNumber = parseInt(value[0].HostPort);
20892095
if (!isNaN(valueAsNumber)) {
20902096
portmappings.push({

packages/renderer/src/lib/compose/ComposeDetails.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**********************************************************************
2-
* Copyright (C) 2023-2024 Red Hat, Inc.
2+
* Copyright (C) 2023-2025 Red Hat, Inc.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -122,7 +122,7 @@ const containerInspectInfo: ContainerInspectInfo = {
122122
PortBindings: {
123123
9090: [
124124
{
125-
HostPort: 8383,
125+
HostPort: '8383',
126126
HostIp: '',
127127
},
128128
],

packages/renderer/src/lib/image/RunImage.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { router } from 'tinro';
77
88
import { array2String } from '/@/lib/string/string.js';
99
import { handleNavigation } from '/@/navigation';
10-
import type { ContainerCreateOptions, DeviceMapping, HostConfig } from '/@api/container-info';
10+
import type { ContainerCreateOptions, DeviceMapping, HostConfig, HostConfigPortBinding } from '/@api/container-info';
1111
import type { ImageInspectInfo } from '/@api/image-inspect-info';
1212
import { NavigationPage } from '/@api/navigation-page';
1313
import type { NetworkInspectInfo } from '/@api/network-info';
@@ -250,7 +250,7 @@ async function startContainer(): Promise<void> {
250250
// create ExposedPorts objects
251251
const ExposedPorts: { [key: string]: object } = {};
252252
253-
const PortBindings: { [key: string]: object } = {};
253+
const PortBindings: HostConfigPortBinding = {};
254254
try {
255255
exposedPorts.forEach((port, index) => {
256256
if (port.includes('-') || containerPortMapping[index]?.port.includes('-')) {

packages/renderer/src/lib/pod/PodCreateFromContainers.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ const containerInspectInfo: ContainerInspectInfo = {
156156
PortBindings: {
157157
9090: [
158158
{
159-
HostPort: 8383,
159+
HostPort: '8383',
160160
HostIp: '',
161161
},
162162
],

0 commit comments

Comments
 (0)