Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLOUDSTACK-9730: [VMware] Unable to add a host with space in its name to existing VMware cluster #1891

Closed
wants to merge 1 commit into from

Conversation

sureshanaparti
Copy link
Contributor

Issue: Unable to add a host with space in its name to existing VMware cluster

Root Cause: Previously cluster url from API used to be inserted into DB after validation of inventory url. White spaces in url would be encoded as '+' during creation of URI object which are being inserted into database. Further references of the cluster's data center name would see '+' symbols instead of white space which is incorrect.

Fix: Skip update of encoded cluster url path in cluster_details table while adding host to existing cluster.

Copy link
Member

@sateesh-chodapuneedi sateesh-chodapuneedi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for code changes.

Copy link
Contributor

@jburwell jburwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add unit test case(s) to validate the changes to validateCluster method. I would recommend changing the visibility to default to make it easier to test.

@sureshanaparti
Copy link
Contributor Author

@rhtyd Can you kick off VMware CI on this PR.

@borisstoyanov
Copy link
Contributor

@blueorangutan package

@blueorangutan
Copy link

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@borisstoyanov
Copy link
Contributor

@sureshanaparti since we're making changes of the return type can we also create/edit unit tests?

@blueorangutan
Copy link

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-510

Copy link
Contributor

@borisstoyanov borisstoyanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sureshanaparti can you please add the tests so I could kick integration and smoke tests. Thanks

@sureshanaparti
Copy link
Contributor Author

@jburwell Thanks for the recommendation. Not changing the visibility for now. Couldn't find any tests for VmwareServerDiscoverer to update. Will try to add.

@sureshanaparti
Copy link
Contributor Author

@borisstoyanov the existing tests with space in the host name should work.

@sureshanaparti
Copy link
Contributor Author

@borisstoyanov Can you please kick off tests for this.

@borisstoyanov
Copy link
Contributor

@blueorangutan package

@blueorangutan
Copy link

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-590

@blueorangutan
Copy link

@borisstoyanov unsupported parameters provided. Supported mgmt server os are: centos6, centos7, ubuntu. Supported hypervisors are: kvm-centos6, kvm-centos7, kvm-ubuntu, xenserver-65sp1, xenserver-62sp1, vmware-60u2, vmware-55u3, vmware-51u1, vmware-50u1

@borisstoyanov
Copy link
Contributor

@blueorangutan test centos7 vmware-55u3

@blueorangutan
Copy link

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + vmware-55u3) has been kicked to run smoke tests

@blueorangutan
Copy link

Trillian test result (tid-952)
Environment: vmware-55u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 45011 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1891-t952-vmware-55u3.zip
Intermitten failure detected: /marvin/tests/smoke/test_internal_lb.py
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_routers_network_ops.py
Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py
Intermitten failure detected: /marvin/tests/smoke/test_vm_snapshots.py
Test completed. 46 look ok, 3 have error(s)

Test Result Time (s) Test File
test_01_test_vm_volume_snapshot Failure 277.24 test_vm_snapshots.py
test_04_rvpc_privategw_static_routes Failure 878.79 test_privategw_acl.py
test_02_list_snapshots_with_removed_data_store Error 121.10 test_snapshots.py
test_02_list_snapshots_with_removed_data_store Error 126.19 test_snapshots.py
ContextSuite context=TestSnapshotRootDisk>:teardown Error 156.48 test_snapshots.py
test_02_vpc_privategw_static_routes Error 646.76 test_privategw_acl.py
test_01_vpc_site2site_vpn Success 366.15 test_vpc_vpn.py
test_01_vpc_remote_access_vpn Success 151.59 test_vpc_vpn.py
test_01_redundant_vpc_site2site_vpn Success 558.22 test_vpc_vpn.py
test_02_VPC_default_routes Success 329.08 test_vpc_router_nics.py
test_01_VPC_nics_after_destroy Success 707.72 test_vpc_router_nics.py
test_05_rvpc_multi_tiers Success 661.92 test_vpc_redundant.py
test_04_rvpc_network_garbage_collector_nics Success 1529.30 test_vpc_redundant.py
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers Success 725.10 test_vpc_redundant.py
test_02_redundant_VPC_default_routes Success 714.27 test_vpc_redundant.py
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL Success 1524.70 test_vpc_redundant.py
test_09_delete_detached_volume Success 30.78 test_volumes.py
test_06_download_detached_volume Success 55.48 test_volumes.py
test_05_detach_volume Success 105.28 test_volumes.py
test_04_delete_attached_volume Success 20.23 test_volumes.py
test_03_download_attached_volume Success 15.28 test_volumes.py
test_02_attach_volume Success 58.70 test_volumes.py
test_01_create_volume Success 511.69 test_volumes.py
test_change_service_offering_for_vm_with_snapshots Success 476.60 test_vm_snapshots.py
test_03_delete_vm_snapshots Success 275.20 test_vm_snapshots.py
test_02_revert_vm_snapshots Success 232.18 test_vm_snapshots.py
test_01_create_vm_snapshots Success 161.63 test_vm_snapshots.py
test_deploy_vm_multiple Success 222.39 test_vm_life_cycle.py
test_deploy_vm Success 0.03 test_vm_life_cycle.py
test_advZoneVirtualRouter Success 0.02 test_vm_life_cycle.py
test_10_attachAndDetach_iso Success 26.71 test_vm_life_cycle.py
test_09_expunge_vm Success 125.18 test_vm_life_cycle.py
test_08_migrate_vm Success 65.98 test_vm_life_cycle.py
test_07_restore_vm Success 0.10 test_vm_life_cycle.py
test_06_destroy_vm Success 5.11 test_vm_life_cycle.py
test_03_reboot_vm Success 5.12 test_vm_life_cycle.py
test_02_start_vm Success 15.19 test_vm_life_cycle.py
test_01_stop_vm Success 5.11 test_vm_life_cycle.py
test_CreateTemplateWithDuplicateName Success 216.45 test_templates.py
test_08_list_system_templates Success 0.04 test_templates.py
test_07_list_public_templates Success 0.04 test_templates.py
test_05_template_permissions Success 0.07 test_templates.py
test_04_extract_template Success 15.22 test_templates.py
test_03_delete_template Success 5.12 test_templates.py
test_02_edit_template Success 90.13 test_templates.py
test_01_create_template Success 115.92 test_templates.py
test_10_destroy_cpvm Success 211.69 test_ssvm.py
test_09_destroy_ssvm Success 268.64 test_ssvm.py
test_08_reboot_cpvm Success 156.47 test_ssvm.py
test_07_reboot_ssvm Success 158.25 test_ssvm.py
test_06_stop_cpvm Success 176.81 test_ssvm.py
test_05_stop_ssvm Success 183.65 test_ssvm.py
test_04_cpvm_internals Success 1.09 test_ssvm.py
test_03_ssvm_internals Success 3.12 test_ssvm.py
test_02_list_cpvm_vm Success 0.11 test_ssvm.py
test_01_list_sec_storage_vm Success 0.12 test_ssvm.py
test_01_snapshot_root_disk Success 61.32 test_snapshots.py
test_04_change_offering_small Success 96.82 test_service_offerings.py
test_03_delete_service_offering Success 0.04 test_service_offerings.py
test_02_edit_service_offering Success 0.05 test_service_offerings.py
test_01_create_service_offering Success 0.10 test_service_offerings.py
test_02_sys_template_ready Success 0.12 test_secondary_storage.py
test_01_sys_vm_start Success 0.17 test_secondary_storage.py
test_09_reboot_router Success 135.90 test_routers.py
test_08_start_router Success 120.77 test_routers.py
test_07_stop_router Success 30.25 test_routers.py
test_06_router_advanced Success 0.05 test_routers.py
test_05_router_basic Success 0.04 test_routers.py
test_04_restart_network_wo_cleanup Success 5.64 test_routers.py
test_03_restart_network_cleanup Success 135.87 test_routers.py
test_02_router_internal_adv Success 0.99 test_routers.py
test_01_router_internal_basic Success 0.54 test_routers.py
test_router_dns_guestipquery Success 76.63 test_router_dns.py
test_router_dns_externalipquery Success 0.07 test_router_dns.py
test_router_dhcphosts Success 179.69 test_router_dhcphosts.py
test_router_dhcp_opts Success 21.59 test_router_dhcphosts.py
test_01_updatevolumedetail Success 0.08 test_resource_detail.py
test_01_reset_vm_on_reboot Success 55.57 test_reset_vm_on_reboot.py
test_createRegion Success 0.04 test_regions.py
test_create_pvlan_network Success 5.20 test_pvlan.py
test_dedicatePublicIpRange Success 0.36 test_public_ip_range.py
test_03_vpc_privategw_restart_vpc_cleanup Success 987.34 test_privategw_acl.py
test_01_vpc_privategw_acl Success 192.65 test_privategw_acl.py
test_01_primary_storage_nfs Success 37.15 test_primary_storage.py
test_createPortablePublicIPRange Success 15.18 test_portable_publicip.py
test_createPortablePublicIPAcquire Success 15.42 test_portable_publicip.py
test_isolate_network_password_server Success 59.09 test_password_server.py
test_UpdateStorageOverProvisioningFactor Success 0.13 test_over_provisioning.py
test_oobm_zchange_password Success 30.70 test_outofbandmanagement.py
test_oobm_multiple_mgmt_server_ownership Success 16.35 test_outofbandmanagement.py
test_oobm_issue_power_status Success 10.22 test_outofbandmanagement.py
test_oobm_issue_power_soft Success 15.30 test_outofbandmanagement.py
test_oobm_issue_power_reset Success 15.39 test_outofbandmanagement.py
test_oobm_issue_power_on Success 15.29 test_outofbandmanagement.py
test_oobm_issue_power_off Success 15.29 test_outofbandmanagement.py
test_oobm_issue_power_cycle Success 15.32 test_outofbandmanagement.py
test_oobm_enabledisable_across_clusterzones Success 92.85 test_outofbandmanagement.py
test_oobm_enable_feature_valid Success 5.15 test_outofbandmanagement.py
test_oobm_enable_feature_invalid Success 0.08 test_outofbandmanagement.py
test_oobm_disable_feature_valid Success 5.16 test_outofbandmanagement.py
test_oobm_disable_feature_invalid Success 0.12 test_outofbandmanagement.py
test_oobm_configure_invalid_driver Success 0.06 test_outofbandmanagement.py
test_oobm_configure_default_driver Success 0.06 test_outofbandmanagement.py
test_oobm_background_powerstate_sync Success 23.51 test_outofbandmanagement.py
test_extendPhysicalNetworkVlan Success 15.29 test_non_contigiousvlan.py
test_01_nic Success 550.11 test_nic.py
test_releaseIP Success 212.59 test_network.py
test_reboot_router Success 699.97 test_network.py
test_public_ip_user_account Success 10.25 test_network.py
test_public_ip_admin_account Success 40.27 test_network.py
test_network_rules_acquired_public_ip_3_Load_Balancer_Rule Success 71.64 test_network.py
test_network_rules_acquired_public_ip_2_nat_rule Success 61.52 test_network.py
test_network_rules_acquired_public_ip_1_static_nat_rule Success 124.49 test_network.py
test_delete_account Success 242.60 test_network.py
test_02_port_fwd_on_non_src_nat Success 55.64 test_network.py
test_01_port_fwd_on_src_nat Success 111.85 test_network.py
test_nested_virtualization_vmware Success 292.92 test_nested_virtualization.py
test_nic_secondaryip_add_remove Success 212.66 test_multipleips_per_nic.py
login_test_saml_user Success 19.10 test_login.py
test_assign_and_removal_lb Success 147.86 test_loadbalance.py
test_02_create_lb_rule_non_nat Success 207.30 test_loadbalance.py
test_01_create_lb_rule_src_nat Success 207.39 test_loadbalance.py
test_03_list_snapshots Success 0.09 test_list_ids_parameter.py
test_02_list_templates Success 0.04 test_list_ids_parameter.py
test_01_list_volumes Success 0.03 test_list_ids_parameter.py
test_07_list_default_iso Success 0.06 test_iso.py
test_05_iso_permissions Success 0.06 test_iso.py
test_04_extract_Iso Success 5.17 test_iso.py
test_03_delete_iso Success 95.20 test_iso.py
test_02_edit_iso Success 0.10 test_iso.py
test_01_create_iso Success 20.98 test_iso.py
test_04_rvpc_internallb_haproxy_stats_on_all_interfaces Success 509.68 test_internal_lb.py
test_03_vpc_internallb_haproxy_stats_on_all_interfaces Success 384.12 test_internal_lb.py
test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 Success 997.79 test_internal_lb.py
test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 Success 819.05 test_internal_lb.py
test_dedicateGuestVlanRange Success 10.25 test_guest_vlan_range.py
test_UpdateConfigParamWithScope Success 0.13 test_global_settings.py
test_rolepermission_lifecycle_update Success 6.12 test_dynamicroles.py
test_rolepermission_lifecycle_list Success 5.93 test_dynamicroles.py
test_rolepermission_lifecycle_delete Success 5.84 test_dynamicroles.py
test_rolepermission_lifecycle_create Success 5.89 test_dynamicroles.py
test_rolepermission_lifecycle_concurrent_updates Success 5.98 test_dynamicroles.py
test_role_lifecycle_update_role_inuse Success 5.86 test_dynamicroles.py
test_role_lifecycle_update Success 10.94 test_dynamicroles.py
test_role_lifecycle_list Success 5.87 test_dynamicroles.py
test_role_lifecycle_delete Success 10.93 test_dynamicroles.py
test_role_lifecycle_create Success 5.89 test_dynamicroles.py
test_role_inuse_deletion Success 5.84 test_dynamicroles.py
test_role_account_acls_multiple_mgmt_servers Success 7.99 test_dynamicroles.py
test_role_account_acls Success 8.10 test_dynamicroles.py
test_default_role_deletion Success 6.14 test_dynamicroles.py
test_04_create_fat_type_disk_offering Success 0.06 test_disk_offerings.py
test_03_delete_disk_offering Success 0.04 test_disk_offerings.py
test_02_edit_disk_offering Success 0.05 test_disk_offerings.py
test_02_create_sparse_type_disk_offering Success 0.06 test_disk_offerings.py
test_01_create_disk_offering Success 0.10 test_disk_offerings.py
test_deployvm_userdispersing Success 55.75 test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userconcentrated Success 90.95 test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_firstfit Success 166.39 test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userdata_post Success 25.46 test_deploy_vm_with_userdata.py
test_deployvm_userdata Success 157.05 test_deploy_vm_with_userdata.py
test_02_deploy_vm_root_resize Success 5.82 test_deploy_vm_root_resize.py
test_01_deploy_vm_root_resize Success 5.84 test_deploy_vm_root_resize.py
test_00_deploy_vm_root_resize Success 5.96 test_deploy_vm_root_resize.py
test_deploy_vm_from_iso Success 212.39 test_deploy_vm_iso.py
test_3d_gpu_support Success 394.75 test_deploy_vgpu_enabled_vm.py
test_DeployVmAntiAffinityGroup Success 151.52 test_affinity_groups.py
test_08_resize_volume Skipped 5.10 test_volumes.py
test_07_resize_fail Skipped 15.29 test_volumes.py
test_06_copy_template Skipped 0.00 test_templates.py
test_static_role_account_acls Skipped 0.02 test_staticroles.py
test_11_ss_nfs_version_on_ssvm Skipped 0.02 test_ssvm.py
test_01_scale_vm Skipped 63.26 test_scale_vm.py
test_01_primary_storage_iscsi Skipped 0.03 test_primary_storage.py
test_06_copy_iso Skipped 0.00 test_iso.py
test_deploy_vgpu_enabled_vm Skipped 1.05 test_deploy_vgpu_enabled_vm.py

@ghost
Copy link

ghost commented May 10, 2017

Verified the PR with space in cluster name & data center name. Was able to attach a host in both cases.
LGTM

blank_in_cluster_name
blank_in_datacenter_name

@sureshanaparti
Copy link
Contributor Author

The trillian test failures above are not related this PR changes.

… to Cluster

Skip update of encoded cluster url path in cluster_details table while adding host to existing cluster.
Previously cluster url from API used to be inserted into DB after validation of inventory url. White spaces in url would be encoded as '+' during creation of URI object which are being inserted into database. Further references of the cluster's data center name would see '+' symbols instead of white space which is incorrect.
@rohityadavcloud rohityadavcloud added this to the 4.11 milestone Dec 10, 2017
@rohityadavcloud
Copy link
Member

@blueorangutan package

@blueorangutan
Copy link

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1419

@rohityadavcloud
Copy link
Member

@blueorangutan package

@blueorangutan
Copy link

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1539

@rohityadavcloud
Copy link
Member

@blueorangutan package

@blueorangutan
Copy link

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1581

@rohityadavcloud
Copy link
Member

@blueorangutan test centos7 vmware-55u3

@blueorangutan
Copy link

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-55u3) has been kicked to run smoke tests

@blueorangutan
Copy link

Trillian test result (tid-2036)
Environment: vmware-55u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 43902 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1891-t2036-vmware-55u3.zip
Intermitten failure detected: /marvin/tests/smoke/test_vm_life_cycle.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 66 look OK, 1 have error(s)
Only failed tests results shown below:

Test Result Time (s) Test File
test_08_migrate_vm Error 60.99 test_vm_life_cycle.py

if (!URLDecoder.decode(url.getPath(), "UTF-8").equals(updatedInventoryPath)) {
// If url from API doesn't specify DC then update url in database with DC associated with this zone.
clusterDetails.put("url", url.getScheme() + "://" + url.getHost() + updatedInventoryPath);
_clusterDetailsDao.persist(clusterId, clusterDetails);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sureshanaparti could not persisting the url in the cluster details cause regression?

@rohityadavcloud rohityadavcloud modified the milestones: 4.11, 4.12 Jan 6, 2018
@rafaelweingartner
Copy link
Member

Moving to 5.0.0 due to lack of activity

@rafaelweingartner rafaelweingartner modified the milestones: 4.12.0.0, 5.0.0.0 Jan 15, 2019
@rohityadavcloud rohityadavcloud modified the milestones: 4.13.0.0, 4.14.0.0 Jun 20, 2019
@PaulAngus
Copy link
Member

I'm dropping this from a milestone and to be honest I would like to close it as:

  1. no activity for over 2 years from the author
  2. neither hostnames nor FQDNs can ever have spaces in them, so sounds like a bad idea in the first place.

@PaulAngus PaulAngus removed this from the 4.14.0.0 milestone Nov 12, 2019
@DaanHoogland
Copy link
Contributor

@sureshanaparti please rebase and re-open if this is still relevant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants