Exemple #1
0
def main():
    setup_logging()

    args = docopt(__doc__, version="CMK v1.4.1")
    if args["cluster-init"]:
        clusterinit.cluster_init(args["--host-list"], args["--all-hosts"],
                                 args["--cmk-cmd-list"], args["--cmk-img"],
                                 args["--cmk-img-pol"], args["--conf-dir"],
                                 args["--install-dir"],
                                 args["--num-exclusive-cores"],
                                 args["--num-shared-cores"],
                                 args["--pull-secret"],
                                 args["--saname"], args["--exclusive-mode"],
                                 args["--shared-mode"], args["--namespace"],
                                 args["--excl-non-isolcpus"])
        return
    if args["init"]:
        init.init(args["--conf-dir"],
                  int(args["--num-exclusive-cores"]),
                  int(args["--num-shared-cores"]),
                  args["--exclusive-mode"],
                  args["--shared-mode"],
                  args["--excl-non-isolcpus"])
        return
    if args["discover"]:
        discover.discover(args["--conf-dir"])
        return
    if args["describe"]:
        describe.describe(args["--conf-dir"])
        return
    if args["isolate"]:
        isolate.isolate(args["--conf-dir"],
                        args["--pool"],
                        args["--no-affinity"],
                        args["<command>"],
                        args["<args>"],
                        args["--socket-id"])
        return
    if args["reconcile"]:
        reconcile.reconcile(args["--conf-dir"],
                            int(args["--interval"]),
                            args["--publish"])
        return
    if args["install"]:
        install.install(args["--install-dir"])
        return
    if args["uninstall"]:
        uninstall.uninstall(args["--install-dir"],
                            args["--conf-dir"],
                            args["--namespace"])
        return
    if args["node-report"]:
        nodereport.nodereport(args["--conf-dir"],
                              int(args["--interval"]),
                              args["--publish"])
        return
    if args["webhook"]:
        webhook.webhook(args["--conf-file"])
Exemple #2
0
def test_isolate_exclusive1():
    p = MockProcess()
    c = MockConfig(return_config([]))
    with patch('psutil.Process', MagicMock(return_value=p)):
        with patch('intel.config.Config', MagicMock(return_value=c)):
            isolate.isolate("exclusive", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id=None)
            assert p.cpu_affinity() == [0, 11]
Exemple #3
0
def test_isolate_shared_failure1():
    c = MockConfig(return_config([]))
    with patch('intel.config.Config', MagicMock(return_value=c)):
        with pytest.raises(SystemError) as err:
            isolate.isolate("shared", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id="1")

        assert err is not None
        assert err.value.args[0] == "No cpu lists in pool shared"
Exemple #4
0
def test_pool_not_exist():
    c = MockConfig(return_config([]))
    with patch('intel.config.Config', MagicMock(return_value=c)):
        with pytest.raises(KeyError) as err:
            isolate.isolate("fake-pool", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id=None)

        assert err is not None
        assert err.value.args[0] == "Requested pool fake-pool does not exist"
Exemple #5
0
def test_isolate_exclusive_non_isolcpus2():
    p = MockProcess()
    c = MockConfig(return_config(EXNI_ONE))
    with patch('psutil.Process',
               MagicMock(return_value=p)):
        with patch('intel.config.Config', MagicMock(return_value=c)):
            isolate.isolate("exclusive-non-isolcpus", False, "fake-cmd",
                            ["fake-args"], "fake-namespaec",
                            socket_id=None)
            assert p.cpu_affinity() == [10, 21]
Exemple #6
0
def test_isolate_infra2():
    p = MockProcess()
    c = MockConfig(return_config(INF_ONE))
    with patch('psutil.Process',
               MagicMock(return_value=p)):
        with patch('intel.config.Config', MagicMock(return_value=c)):
            isolate.isolate("infra", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id=None)
            assert p.cpu_affinity() == [6, 17, 7, 18, 8, 19]
Exemple #7
0
def test_isolate_shared2():
    p = MockProcess()
    c = MockConfig(return_config(SHAR_ONE))
    with patch('psutil.Process',
               MagicMock(return_value=p)):
        with patch('intel.config.Config', MagicMock(return_value=c)):
            isolate.isolate("shared", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id=None)
            assert p.cpu_affinity() == [4, 15, 5, 16]
Exemple #8
0
def test_not_enough_cpus():
    c = MockConfig(return_config([]))
    with patch('intel.config.Config', MagicMock(return_value=c)):
        with pytest.raises(SystemError) as err:
            isolate.isolate("exclusive", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id=None)

        assert err is not None
        assert err.value.args[0] == "Not enough free cpu lists "\
                                    "in pool exclusive"
Exemple #9
0
def test_n_cpus_lt_one():
    c = MockConfig(return_config([]))
    with patch('intel.config.Config', MagicMock(return_value=c)):
        with pytest.raises(ValueError) as err:
            isolate.isolate("exclusive", False, "fake-cmd",
                            ["fake-args"], "fake-namespace",
                            socket_id=None)

        assert err is not None
        assert err.value.args[0] == "Requested numbers of cores "\
                                    "must be positive integer"
Exemple #10
0
def main():
    setup_logging()

    args = docopt(__doc__, version="CMK v1.0.1")
    if args["cluster-init"]:
        clusterinit.cluster_init(args["--host-list"], args["--all-hosts"],
                                 args["--cmk-cmd-list"], args["--cmk-img"],
                                 args["--cmk-img-pol"], args["--conf-dir"],
                                 args["--install-dir"], args["--num-dp-cores"],
                                 args["--num-cp-cores"], args["--pull-secret"],
                                 args["--saname"])
        return
    if args["init"]:
        init.init(args["--conf-dir"], int(args["--num-dp-cores"]),
                  int(args["--num-cp-cores"]))
        return
    if args["discover"]:
        discover.discover(args["--conf-dir"])
        return
    if args["describe"]:
        describe.describe(args["--conf-dir"])
        return
    if args["isolate"]:
        isolate.isolate(args["--conf-dir"], args["--pool"],
                        args["--no-affinity"], args["<command>"],
                        args["<args>"])
        return
    if args["reconcile"]:
        reconcile.reconcile(args["--conf-dir"], int(args["--interval"]),
                            args["--publish"])
        return
    if args["install"]:
        install.install(args["--install-dir"])
        return
    if args["uninstall"]:
        uninstall.uninstall(args["--install-dir"], args["--conf-dir"])
        return
    if args["node-report"]:
        nodereport.nodereport(args["--conf-dir"], int(args["--interval"]),
                              args["--publish"])
        return