Skip to content

Commit 920bb87

Browse files
authored
[config][generic-update] Implementing patch sorting (#1599)
#### What I did Implemented [JSON Patch Ordering using YANG Models Design Doc](https://github.com/Azure/SONiC/blob/master/doc/config-generic-update-rollback/Json_Patch_Ordering_using_YANG_Models_Design.md) #### How I did it #### How to verify it Unit-Tests #### Previous command output (if the output of a command-line utility has changed) #### New command output (if the output of a command-line utility has changed)
1 parent 30907c4 commit 920bb87

24 files changed

+4077
-23
lines changed

generic_config_updater/generic_updater.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from enum import Enum
44
from .gu_common import GenericConfigUpdaterError, ConfigWrapper, \
55
DryRunConfigWrapper, PatchWrapper
6+
from .patch_sorter import PatchSorter
67

78
CHECKPOINTS_DIR = "/etc/sonic/checkpoints"
89
CHECKPOINT_EXT = ".cp.json"
@@ -16,11 +17,6 @@ def release_lock(self):
1617
# TODO: Implement ConfigLock
1718
pass
1819

19-
class PatchSorter:
20-
def sort(self, patch):
21-
# TODO: Implement patch sorter
22-
raise NotImplementedError("PatchSorter.sort(patch) is not implemented yet")
23-
2420
class ChangeApplier:
2521
def apply(self, change):
2622
# TODO: Implement change applier
@@ -36,7 +32,7 @@ def __init__(self,
3632
changeapplier=None,
3733
config_wrapper=None,
3834
patch_wrapper=None):
39-
self.patchsorter = patchsorter if patchsorter is not None else PatchSorter()
35+
self.patchsorter = patchsorter if patchsorter is not None else PatchSorter(config_wrapper, patch_wrapper)
4036
self.changeapplier = changeapplier if changeapplier is not None else ChangeApplier()
4137
self.config_wrapper = config_wrapper if config_wrapper is not None else ConfigWrapper()
4238
self.patch_wrapper = patch_wrapper if patch_wrapper is not None else PatchWrapper()

0 commit comments

Comments
 (0)