fix(proxmox): parse port from URL when adding remote

When adding a remote with a URL like https://172.0.0.18:8006, the code
was previously passing the port as part of the hostname
(172.0.0.18:8006) while also setting the port separately, causing
connection failures.

Now properly extracts the port from the URL if present, falling back
to default ports (8006 for PVE, 8007 for PBS) if not specified.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Shaun Arman 2026-06-13 23:27:08 -05:00
parent f2aa75061b
commit 666de6ddfb

View File

@ -55,14 +55,24 @@ export function ProxmoxRemotesPage() {
const handleAddRemote = async (config: any) => {
try {
const clusterType = config.type === 'pve' ? 've' : 'pbs';
const url = config.url.replace(/^https?:\/\//, '');
const port = config.type === 'pve' ? 8006 : 8007;
// Parse URL to extract hostname and port
let hostname = config.url.replace(/^https?:\/\//, '');
let port = config.type === 'pve' ? 8006 : 8007;
// If URL contains port, extract it
const portMatch = hostname.match(/:(\d+)$/);
if (portMatch) {
port = parseInt(portMatch[1], 10);
hostname = hostname.replace(/:\d+$/, '');
}
const id = config.id || generateId();
await addProxmoxCluster(
id,
config.name,
clusterType as ClusterType,
{ url, port },
{ url: hostname, port },
config.username,
config.password || ''
);
@ -79,14 +89,24 @@ export function ProxmoxRemotesPage() {
const handleEditRemote = async (config: any) => {
try {
const clusterType = config.type === 'pve' ? 've' : 'pbs';
const url = config.url.replace(/^https?:\/\//, '');
const port = config.type === 'pve' ? 8006 : 8007;
// Parse URL to extract hostname and port
let hostname = config.url.replace(/^https?:\/\//, '');
let port = config.type === 'pve' ? 8006 : 8007;
// If URL contains port, extract it
const portMatch = hostname.match(/:(\d+)$/);
if (portMatch) {
port = parseInt(portMatch[1], 10);
hostname = hostname.replace(/:\d+$/, '');
}
await removeProxmoxCluster(config.id);
await addProxmoxCluster(
config.id,
config.name,
clusterType as ClusterType,
{ url, port },
{ url: hostname, port },
config.username,
config.password || ''
);