VCF Brownfield operations fails with error, "unexpected keyword argument 'port'"
search cancel

VCF Brownfield operations fails with error, "unexpected keyword argument 'port'"

book

Article ID: 392660

calendar_today

Updated On:

Products

VMware SDDC Manager

Issue/Introduction

The following traceback is observed in the vcf_brownfield.log

<pathoftool>/vcf-brownfield-toolset/output/vcf_brownfield.log
======================================================================================
Traceback (most recent call last):
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/vcf_brownfield.py", line 555, in sync_domain
    warnings.extend(sync.sync_domain())
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/domain_sync/sync_domain.py", line 52, in sync_domain
    discovery_model: DiscoveryModel = self.__run_discovery(sso_remote_endpoint, domain_type)
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/domain_sync/sync_domain.py", line 122, in __run_discovery
    return discovery.discover_domain(domain_type=domain_type, activating_status=False)
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/domain_discovery/discover_domain.py", line 1180, in discover_domain
    ssh_keys_are_trusted: bool = TrustSshKeys().establish_trust_for_ssh_keys(product_ssh_keys,
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/domain_trust/trust_ssh_keys.py", line 18, in establish_trust_for_ssh_keys
    sddc_known_hosts: Optional[list[SshKnownHost]] = sddc_manager_helper.get_sddc_manager_known_hosts()
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/api/request_helper.py", line 38, in wrapper
    return func(*args, **kwargs)
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/api/sddc_manager/sddc_manager_helper.py", line 378, in get_sddc_manager_known_hosts
    return [SshKnownHost.from_json(known_host) for known_host in response.json()['knownHosts']]
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/api/sddc_manager/sddc_manager_helper.py", line 378, in <listcomp>
    return [SshKnownHost.from_json(known_host) for known_host in response.json()['knownHosts']]
  File "/home/vcf/vcfimport/vcf-brownfield-import-5.2.1.2-24494579/vcf-brownfield-toolset/models/ssh_known_host.py", line 31, in from_json
    return cls(**json_data)
TypeError: SshKnownHost.__init__() got an unexpected keyword argument 'port'

Environment

VMware Cloud Foundation 5.x

Cause

The vcf-brownfield-import script does not support custom SSH ports. 

Resolution

VCF Engineering is aware of this limitation and working on a permanent fix in a future release of the brownfield import tool. 

Workaround:

1. SSH into the SDDC Manager with the vcf user and then elevate to root with su. 

2. Take a backup of the known_hosts file

cp -p  /etc/vmware/vcf/commonsvcs/known_hosts /home/vcf/known_hosts.backup

3. Remove all of the entries with custom ports. 

sed -i '/]:[0-9]/d' /etc/vmware/vcf/commonsvcs/known_hosts

4. Run the vcf-brownfield-import operation again.

5. Reconfigure the backup server in the SDDC Manager UI to push the custom port ssh-key.