@@ -661,6 +661,26 @@ def test__reset_cloud_init_run(self, mock__exec_cmd_chroot):
661661 mock__exec_cmd_chroot .assert_called_once_with (
662662 "cloud-init clean --logs" )
663663
664+ @ddt .data (
665+ (False , None , None ),
666+ (True , "other_modules:\n - not_update_etc_hosts\n "
667+ "cloud_init_modules:\n - set_hostname\n - update_etc_hosts\n " ,
668+ ["set_hostname" , "update_etc_hosts" ]),
669+ (True , "other_modules:\n - update_etc_hosts\n " , [])
670+ )
671+ @ddt .unpack
672+ @mock .patch .object (base .BaseLinuxOSMorphingTools , "_read_file_sudo" )
673+ @mock .patch .object (base .BaseLinuxOSMorphingTools , "_test_path" )
674+ def test__get_cloud_init_modules (
675+ self , test_path_result , file_content ,
676+ expected_result , mock__test_path , mock__read_file_sudo ):
677+ mock__test_path .return_value = test_path_result
678+ mock__read_file_sudo .return_value = file_content
679+
680+ result = self .os_morphing_tools ._get_cloud_init_modules ()
681+
682+ self .assertEqual (result , expected_result )
683+
664684 @ddt .data (
665685 (False , None , base .DEFAULT_CLOUD_USER ),
666686 (True , "system_info:\n default_user:\n name: mock_user\n " ,
@@ -713,13 +733,15 @@ def test__create_cloudinit_user_already_exists(
713733 ["vim" ],
714734 {},
715735 False ,
736+ [],
716737 None ,
717738 False
718739 ),
719740 (
720741 ["cloud-init" ],
721742 {"retain_user_credentials" : True , "set_dhcp" : False },
722743 False ,
744+ ["set_hostname" ],
723745 {
724746 "disable_root" : False ,
725747 "ssh_pwauth" : True ,
@@ -732,14 +754,28 @@ def test__create_cloudinit_user_already_exists(
732754 ["cloud-init" , "vim" ],
733755 {"retain_user_credentials" : False , "set_dhcp" : True },
734756 True ,
757+ [],
735758 {},
736759 False
737760 ),
761+ (
762+ ["cloud-init" , "vim" ],
763+ {"retain_user_credentials" : False , "set_dhcp" : False },
764+ True ,
765+ ["update_etc_hosts" , "set_hostname" , "write_files" ],
766+ {
767+ "network" : {"config" : "disabled" },
768+ "cloud_init_modules" : ["set_hostname" , "write_files" ]
769+ },
770+ False
771+ ),
738772 )
739773 @ddt .unpack
740774 @mock .patch .object (base .BaseLinuxOSMorphingTools ,
741775 '_enable_systemd_service' )
742776 @mock .patch .object (base .BaseLinuxOSMorphingTools , '_has_systemd_chroot' )
777+ @mock .patch .object (base .BaseLinuxOSMorphingTools ,
778+ '_get_cloud_init_modules' )
743779 @mock .patch .object (base .BaseLinuxOSMorphingTools ,
744780 '_write_cloud_init_mods_config' )
745781 @mock .patch .object (base .BaseLinuxOSMorphingTools , '_create_cloudinit_user' )
@@ -751,15 +787,18 @@ def test__create_cloudinit_user_already_exists(
751787 @mock .patch .object (base .BaseLinuxOSMorphingTools , 'get_packages' )
752788 def test__configure_cloud_init (
753789 self , returned_packages , osmorphing_params , creates_cloudinit_user ,
790+ cloud_init_modules ,
754791 expected_result , has_systemd_chroot , mock_get_packages ,
755792 mock__disable_installer_cloud_config ,
756793 mock__ensure_cloud_init_not_disabled , mock__reset_cloud_init_run ,
757794 mock__create_cloudinit_user , mock__write_cloud_init_mods_config ,
795+ mock__get_cloud_init_modules ,
758796 mock__has_systemd_chroot , mock__enable_systemd_service
759797 ):
760798 mock_get_packages .return_value = returned_packages
761799 self .os_morphing_tools ._osmorphing_parameters = osmorphing_params
762800 mock__has_systemd_chroot .return_value = has_systemd_chroot
801+ mock__get_cloud_init_modules .return_value = cloud_init_modules
763802
764803 self .os_morphing_tools ._configure_cloud_init ()
765804
0 commit comments