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:
parent
f2aa75061b
commit
666de6ddfb
@ -55,14 +55,24 @@ export function ProxmoxRemotesPage() {
|
|||||||
const handleAddRemote = async (config: any) => {
|
const handleAddRemote = async (config: any) => {
|
||||||
try {
|
try {
|
||||||
const clusterType = config.type === 'pve' ? 've' : 'pbs';
|
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();
|
const id = config.id || generateId();
|
||||||
await addProxmoxCluster(
|
await addProxmoxCluster(
|
||||||
id,
|
id,
|
||||||
config.name,
|
config.name,
|
||||||
clusterType as ClusterType,
|
clusterType as ClusterType,
|
||||||
{ url, port },
|
{ url: hostname, port },
|
||||||
config.username,
|
config.username,
|
||||||
config.password || ''
|
config.password || ''
|
||||||
);
|
);
|
||||||
@ -79,14 +89,24 @@ export function ProxmoxRemotesPage() {
|
|||||||
const handleEditRemote = async (config: any) => {
|
const handleEditRemote = async (config: any) => {
|
||||||
try {
|
try {
|
||||||
const clusterType = config.type === 'pve' ? 've' : 'pbs';
|
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 removeProxmoxCluster(config.id);
|
||||||
await addProxmoxCluster(
|
await addProxmoxCluster(
|
||||||
config.id,
|
config.id,
|
||||||
config.name,
|
config.name,
|
||||||
clusterType as ClusterType,
|
clusterType as ClusterType,
|
||||||
{ url, port },
|
{ url: hostname, port },
|
||||||
config.username,
|
config.username,
|
||||||
config.password || ''
|
config.password || ''
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user