Rename reconciler to planner

This commit is contained in:
Pim van Pelt
2025-11-10 00:40:50 +01:00
parent 63585671dc
commit 5612667a58
3 changed files with 19 additions and 19 deletions

View File

@@ -253,7 +253,7 @@ $ vppcfg plan -c example.yaml -o example.exec
[INFO ] vppcfg.config.valid_config: Configuration validated successfully
[INFO ] root.main: Configuration is valid
[INFO ] vppcfg.vppapi.connect: VPP version is 22.06-rc0~320-g8f60318ac
[INFO ] vppcfg.reconciler.write: Wrote 78 lines to example.exec
[INFO ] vppcfg.planner.write: Wrote 78 lines to example.exec
[INFO ] root.main: Planning succeeded
$ vppctl exec ~/src/vppcfg/example.exec
@@ -263,7 +263,7 @@ $ vppcfg plan -c example.yaml
[INFO ] vppcfg.config.valid_config: Configuration validated successfully
[INFO ] root.main: Configuration is valid
[INFO ] vppcfg.vppapi.connect: VPP version is 22.06-rc0~320-g8f60318ac
[INFO ] vppcfg.reconciler.write: Wrote 0 lines to (stdout)
[INFO ] vppcfg.planner.write: Wrote 0 lines to (stdout)
[INFO ] root.main: Planning succeeded
```

View File

@@ -29,8 +29,8 @@ from vppcfg.config import tap
from .vppapi import VPPApi
class Reconciler:
"""The Reconciler class first reads the running configuration of a VPP Dataplane,
class Planner:
"""The Planner class first reads the running configuration of a VPP Dataplane,
and based on an intended target YAML configuration file, plans a path to make the
dataplane safely reflect the target config. It first prunes (removes) objects that
are not meant to be in the dataplane, or are in the dataplane but are not of the
@@ -44,7 +44,7 @@ class Reconciler:
vpp_api_socket="/run/vpp/api.sock",
vpp_json_dir=None,
):
self.logger = logging.getLogger("vppcfg.reconciler")
self.logger = logging.getLogger("vppcfg.planner")
self.logger.addHandler(logging.NullHandler())
self.vpp = VPPApi(vpp_api_socket, vpp_json_dir)
@@ -88,7 +88,7 @@ class Reconciler:
def prune(self):
"""Remove all objects from VPP that do not occur in the config. For an indepth explanation
of how and why this particular pruning order is chosen, see README.md section on
Reconciling."""
Planning."""
ret = True
if not self.__prune_admin_state():
self.logger.warning("Could not set interfaces down in VPP")
@@ -752,8 +752,8 @@ class Reconciler:
def create(self):
"""Create all objects in VPP that occur in the config but not in VPP. For an indepth
explanation of how and why this particular pruning order is chosen, see README.md
section on Reconciling."""
explanation of how and why this particular creation order is chosen, see README.md
section on Planning."""
ret = True
if not self.__create_loopbacks():
self.logger.warning("Could not create Loopbacks in VPP")

View File

@@ -29,7 +29,7 @@ except ModuleNotFoundError:
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from vppcfg.config import Validator
from vppcfg._version import __version__
from vppcfg.vpp.reconciler import Reconciler
from vppcfg.vpp.planner import Planner
from vppcfg.vpp.dumper import Dumper
try:
@@ -246,44 +246,44 @@ def main():
if args.command == "check":
sys.exit(0)
reconciler = Reconciler(cfg, **opt_kwargs)
planner = Planner(cfg, **opt_kwargs)
if args.command == "plan" and args.novpp:
if not reconciler.vpp.mockconfig(cfg):
if not planner.vpp.mockconfig(cfg):
sys.exit(-7)
else:
if not reconciler.vpp.readconfig():
if not planner.vpp.readconfig():
sys.exit(-3)
if not reconciler.phys_exist_in_vpp():
if not planner.phys_exist_in_vpp():
logging.error("Not all PHYs in the config exist in VPP")
sys.exit(-4)
if not reconciler.phys_exist_in_config():
if not planner.phys_exist_in_config():
logging.error("Not all PHYs in VPP exist in the config")
sys.exit(-5)
if not reconciler.lcps_exist_with_lcp_enabled():
if not planner.lcps_exist_with_lcp_enabled():
logging.error(
"Linux Control Plane is needed, but linux-cp API is not available"
)
sys.exit(-6)
failed = False
if not reconciler.prune():
if not planner.prune():
if not args.force:
logging.error("Planning prune failure")
sys.exit(-10)
failed = True
logging.warning("Planning prune failure, continuing due to --force")
if not reconciler.create():
if not planner.create():
if not args.force:
logging.error("Planning create failure")
sys.exit(-20)
failed = True
logging.warning("Planning create failure, continuing due to --force")
if not reconciler.sync():
if not planner.sync():
if not args.force:
logging.error("Planning sync failure")
sys.exit(-30)
@@ -291,7 +291,7 @@ def main():
logging.warning("Planning sync failure, continuing due to --force")
if args.command == "plan":
reconciler.write(args.outfile, emit_ok=not failed)
planner.write(args.outfile, emit_ok=not failed)
if failed:
logging.error("Planning failed")