Exemple #1
0
    def test_describe_service_node(self, localclient):
        daemon_ids = {"data1.ceph": {"host": "data1"}}
        minion_roles = {"data1.ceph": ["storage", "admin", "mon", "mgr"]}

        local = localclient.return_value
        local.cmd.side_effect = [daemon_ids, minion_roles]

        services = mgr_orch.describe_service(node='data1.ceph')

        local.cmd.assert_called_with((
            "I@cluster:ceph and "
            "( I@roles:mon or I@roles:mgr or I@roles:mds or I@roles:rgw or I@roles:ganesha or I@roles:igw ) and data1.ceph"
        ),
                                     'pillar.get', ['roles'],
                                     tgt_type="compound")

        assert services == {
            "data1.ceph": {
                "mon": {
                    "service_instance": "data1"
                },
                "mgr": {
                    "service_instance": "data1"
                }
            }
        }
Exemple #2
0
    def test_describe_service_igw_ipv6(self, localclient):
        daemon_ids = {"data4.ceph": {"host": "data4"}}
        minion_roles = {"data4.ceph": ["igw"]}
        igw_address = {"data4.ceph": "2001:db8::"}
        igw_take_default = {"data4.ceph": ""}

        local = localclient.return_value
        local.cmd.side_effect = [
            daemon_ids, minion_roles, igw_address, igw_take_default,
            igw_take_default, igw_take_default, igw_take_default
        ]

        services = mgr_orch.describe_service(role='igw', service_id='data4')

        local.cmd.assert_any_call("I@cluster:ceph and I@roles:igw",
                                  'pillar.get', ['roles'],
                                  tgt_type="compound")

        assert services == {
            "data4.ceph": {
                "igw": {
                    "service_instance": "data4",
                    "service_url": "http://*****:*****@[2001:db8::]:5000"
                },
            }
        }
Exemple #3
0
    def test_describe_service_role_wrong_id(self, localclient):
        daemon_ids = {"data2.ceph": {"host": "data2"}}
        minion_roles = {"data2.ceph": ["storage", "admin", "mon", "rgw"]}

        local = localclient.return_value
        local.cmd.side_effect = [daemon_ids, minion_roles]

        services = mgr_orch.describe_service(role='rgw', service_id='data4')

        local.cmd.assert_called_with("I@cluster:ceph and I@roles:rgw",
                                     'pillar.get', ['roles'],
                                     tgt_type="compound")

        assert services == {}
Exemple #4
0
    def test_describe_service(self, localclient):
        daemon_ids = {
            "data1.ceph": {
                "host": "data1"
            },
            "data2.ceph": {
                "host": "data2"
            },
            "data3.ceph": {
                "host": "data3"
            },
            "data4.ceph": {
                "host": "data4"
            }
        }
        minion_roles = {
            "data1.ceph": ["storage", "admin", "mon", "mgr"],
            "data2.ceph": ["storage", "admin", "mon", "rgw"],
            "data3.ceph": ["storage", "admin", "mon"],
            "data4.ceph": ["storage", "mds"]
        }

        local = localclient.return_value
        local.cmd.side_effect = [daemon_ids, minion_roles]

        services = mgr_orch.describe_service()

        local.cmd.assert_called_with(
            ("I@cluster:ceph and "
             "( I@roles:mon or I@roles:mgr or I@roles:mds or I@roles:rgw )"),
            'pillar.get', ['roles'],
            tgt_type="compound")

        assert services == {
            "data1.ceph": {
                "mon": "data1",
                "mgr": "data1"
            },
            "data2.ceph": {
                "mon": "data2",
                "rgw": "data2"
            },
            "data3.ceph": {
                "mon": "data3"
            },
            "data4.ceph": {
                "mds": "data4"
            }
        }
Exemple #5
0
    def test_describe_service_1_role(self, localclient):
        daemon_ids = {
            "data1.ceph": {
                "host": "data1"
            },
            "data2.ceph": {
                "host": "data2"
            },
            "data3.ceph": {
                "host": "data3"
            }
        }
        minion_roles = {
            "data1.ceph": ["storage", "admin", "mon", "mgr"],
            "data2.ceph": ["storage", "admin", "mon", "rgw"],
            "data3.ceph": ["storage", "admin", "mon"],
        }

        local = localclient.return_value
        local.cmd.side_effect = [daemon_ids, minion_roles]

        services = mgr_orch.describe_service(role='mon')

        local.cmd.assert_called_with("I@cluster:ceph and I@roles:mon",
                                     'pillar.get', ['roles'],
                                     tgt_type="compound")

        assert services == {
            "data1.ceph": {
                "mon": {
                    "service_instance": "data1"
                }
            },
            "data2.ceph": {
                "mon": {
                    "service_instance": "data2"
                }
            },
            "data3.ceph": {
                "mon": {
                    "service_instance": "data3"
                }
            }
        }
Exemple #6
0
    def test_describe_service(self, mastermodule, localclient):
        daemon_ids = {
            "data1.ceph": {
                "host": "data1"
            },
            "data2.ceph": {
                "host": "data2"
            },
            "data3.ceph": {
                "host": "data3"
            },
            "data4.ceph": {
                "host": "data4"
            }
        }
        minion_roles = {
            "data1.ceph": ["storage", "admin", "mon", "mgr"],
            "data2.ceph": ["storage", "admin", "mon", "rgw"],
            "data3.ceph": ["storage", "admin", "mon"],
            "data4.ceph": ["storage", "mds", "igw", "ganesha"]
        }
        igw_address = {"data4.ceph": "172.16.1.24"}
        igw_take_default = {"data4.ceph": ""}

        local = localclient.return_value
        local.cmd.side_effect = [
            daemon_ids, minion_roles, igw_address, igw_take_default,
            igw_take_default, igw_take_default, igw_take_default
        ]

        mastermodule.return_value = 'cephfs_data'

        services = mgr_orch.describe_service()

        local.cmd.assert_any_call((
            "I@cluster:ceph and "
            "( I@roles:mon or I@roles:mgr or I@roles:mds or I@roles:rgw or I@roles:ganesha or I@roles:igw )"
        ),
                                  'pillar.get', ['roles'],
                                  tgt_type="compound")

        assert services == {
            "data1.ceph": {
                "mon": {
                    "service_instance": "data1"
                },
                "mgr": {
                    "service_instance": "data1"
                }
            },
            "data2.ceph": {
                "mon": {
                    "service_instance": "data2"
                },
                "rgw": {
                    "service_instance": "data2"
                }
            },
            "data3.ceph": {
                "mon": {
                    "service_instance": "data3"
                }
            },
            "data4.ceph": {
                "mds": {
                    "service_instance": "data4"
                },
                "igw": {
                    "service_instance": "data4",
                    "service_url": "http://*****:*****@172.16.1.24:5000"
                },
                "ganesha": {
                    "service_instance":
                    "data4",
                    "rados_config_location":
                    "rados://cephfs_data/ganesha/conf-data4"
                }
            }
        }