#### Motivation There are many functions integrated in patch_sle which make it more and more complicated. At least we can split it to registration, patching, de-registration, remove old repos, remove dropped modules etc. 1. Registration: we need register base system and select modules and extensions before update. https://openqa.nue.suse.com/tests/10561202#step/patch_sle/18 2. Patching: install the patches for update system to latest. https://openqa.nue.suse.com/tests/10561202#step/patch_sle/90 3. De-registration: For offline media migration test, we need de-register system to simulate user to upgrade via DVD. https://openqa.nue.suse.com/tests/10561202#step/patch_sle/145 For offline ProxySCC migration test, this will skip. https://openqa.nue.suse.com/tests/10564350#step/patch_sle/160 4. Remove old repos: There are some old repos left from installation, we need clean them. 5. Remove dropped modules: Some modules dropped on target system, so we need remove them before migration. https://openqa.nue.suse.com/tests/10561202#step/patch_sle/128 #### Acceptance criteria **AC1**: Split patch_sle into several test modules **AC2**: No other refactor or change of codes are applied (just focus on splitting functionality, later we will tackle some specific parts). #### Suggestions Tackle some simple migration and replace those module in single scenario. We might need several iteration of this about how to split in a more readable way.