-
Notifications
You must be signed in to change notification settings - Fork 664
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
[GCU] Add RemoveCreateOnlyDependency Validator/Generator #2500
Conversation
1. Make LaneReplacementValidator into a general Validator. 2. Don't change to sonic-cfggen and submit issue for show command slow execution.
if simulated_member is None: | ||
return True | ||
|
||
if table_to_check == "PORT": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @qiluo-msft , still need to confirm admin_status need to be set with "down" for PORT["lanes"] change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. PORT["lanes"] are created only field. If the user require to change this field, we need to delete port and create new port. It is already a disruptive change, set admin_status
to down
will make it super safe on all platform, and does not make things worse.
Should also add to 202211. |
Update sonic-utilities submodule pointer to include the following: * ca9a020 [generate_dump] [Mellanox] Fix the duplicate dfw dump collection problem by adding symlinks ([sonic-net#2536](sonic-net/sonic-utilities#2536)) * 92c7001 [config] Add check in config interface ip command to block if the interface is portchannel member ([sonic-net#2539](sonic-net/sonic-utilities#2539)) * e8130f5 [system-health] Improve code structure of system health CLIs ([sonic-net#2453](sonic-net/sonic-utilities#2453)) * 00c01b3 Transceiver eeprom dom CLI modification to show output from TRANSCEIVER_DOM_THRESHOLD table ([sonic-net#2535](sonic-net/sonic-utilities#2535)) * 42f51c2 sonic-utilities: Update config reload() to verify formatting of an input file ([sonic-net#2529](sonic-net/sonic-utilities#2529)) * a5e1e2b [GCU] Add RemoveCreateOnlyDependency Validator/Generator ([sonic-net#2500](sonic-net/sonic-utilities#2500)) * 6411b52 [QoS] Introduce delay to the qos reload flow ([sonic-net#2503](sonic-net/sonic-utilities#2503)) * fce7ec3 Use github code scanning instead of LGTM ([sonic-net#2530](sonic-net/sonic-utilities#2530)) * 91bd6de Change show kube command default value of insecure key to True ([sonic-net#2517](sonic-net/sonic-utilities#2517)) * c44c584 Add db_migrator_constants.py script to setup.py ([sonic-net#2534](sonic-net/sonic-utilities#2534)) * 6a3238e [drop counters] Fix CLI script for unconfigured PGs ([sonic-net#2518](sonic-net/sonic-utilities#2518)) * 263810b Update vrf add, del commands for duplicate/non-existing VRFs ([sonic-net#2467](sonic-net/sonic-utilities#2467)) * addae73 Port 202012 DB migration changes to newer branches ([sonic-net#2515](sonic-net/sonic-utilities#2515)) * 2af8cfa [VXLAN]Fixing traceback in show remotemac when mac moves during command execution ([sonic-net#2506](sonic-net/sonic-utilities#2506)) Signed-off-by: dprital <[email protected]>
What I did Add RemoveCreateOnlyDependency Generator and Validator. How I did it Added new validator/generator for handling the lane replacement case. The validator/generator understands that for which create-only fields and their dependencies need to be removed. How to verify it Unit Test.
What I did Add RemoveCreateOnlyDependency Generator and Validator. How I did it Added new validator/generator for handling the lane replacement case. The validator/generator understands that for which create-only fields and their dependencies need to be removed. How to verify it Unit Test.
What I did
Refer #2273
Efficiency Improvement:
What is the problem?
/PORT/Ethernet124
for example needs to be deleted then added./PORT/Ethernet124
requires deletion of all of its dependencies.Check the following to better understand:
initial state:
Deletion dep1
Adding dep1 back will rejected, because it will move us back to the initial state
Try and delete dep2
Try and add dep1
Now the above is a valid state, but it is useless. If you can expand that to 18 dependencies we end up with a lot of tries that are useless.
Solution is to add a custom validator that understand that once a dependency is deleted, do not add it back until we delete the
/PORT/Ethernet124
Also add a generator for the deletion to make it faster to pick the dependencies to remove.
How I did it
Added new validator/generator for handling the lane replacement case. The validator/generator understands that for which create-only fields and their dependencies need to be removed.
How to verify it
Unit Test.
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)