create_replica.py #1

  • //
  • guest/
  • sven_erik_knop/
  • P4Pythonlib/
  • scripts/
  • create_replica.py
  • View
  • Commits
  • Open Download .zip Download (1 KB)
#!/usr/bin/env python
from __future__ import print_function
import P4
import sys

def make(name, option):
        return "{0}#{1}=".format(name, option)

def create_replica(root, name, target, number):
        p4 = P4.P4()
        p4.connect()

        p4.run_configure("set", make(name, "P4TARGET") + target)
        p4.run_configure("set", make(name, "P4TICKETS") + "{}.p4tickets".format(root))
        p4.run_configure("set", make(name, "db.replication") + "readonly")
        p4.run_configure("set", make(name, "lbr.replication") + "readonly")
        p4.run_configure("set", make(name, "monitor") + "1")
        p4.run_configure("set", make(name, "rpl.forward.all") + "1")
        p4.run_configure("set", make(name, "serviceUser") + "service_user")
        p4.run_configure("set", make(name, "startup.1") + "pull -i 1")
        for n in range(2, number + 2):
            p4.run_configure("set", make(name, "startup.{}".format(n)) + "pull -i 1 -u" )

        p4.disconnect()

if __name__ == "__main__":
        if len(sys.argv) < 5:
                print("Usage: create_repl root name P4TARGET number")
                sys.exit(1)
        root = sys.argv[1]
        name = sys.argv[2]
        target = sys.argv[3]
        number = int(sys.argv[4])

        create_replica(root, name, target, number)

# Change User Description Committed
#1 8333 Sven Erik Knop Two simple scripts to create and remove replica metadata from the master server.
   Requires P4Python and Python 3 to run.