コード例 #1
0
    def test_gen_volumes_usage_lt_capacity(self):
        """Test that gen_volumes generates requests and usage values which don't exceed capacity."""
        for attributes in [self.attributes, {}]:
            with self.subTest(attributes=attributes):
                generator = OCPGenerator(self.two_hours_ago, self.now,
                                         attributes)
                # gen_volumes depends on the output formatting of gen_namespaces and gen_pods.
                out_volumes = generator._gen_volumes(generator.namespaces,
                                                     generator.namespace2pods)
                for volume in out_volumes.values():
                    with self.subTest(volume=volume):
                        total_capacity = 0
                        for claim in volume.get("volume_claims").values():
                            with self.subTest(claim=claim):
                                capacity = claim.get("capacity")
                                total_capacity += capacity

                                if attributes:
                                    for value in claim.get(
                                            "volume_claim_usage_gig").values():
                                        self.assertLessEqual(
                                            value * GIGABYTE, capacity)
                        self.assertLessEqual(
                            total_capacity,
                            volume.get("volume_request_gig", 80.0 * GIGABYTE))
コード例 #2
0
    def test_gen_volumes_with_namespaces(self):
        """Test that gen_volumes arranges the output dict in the expected way.

            If namespaces with volumes are specified, defined volumes are used.
        """
        generator = OCPGenerator(self.two_hours_ago, self.now, self.attributes)

        # gen_volumes depends on the output formatting of gen_namespaces and gen_pods.
        out_volumes = generator._gen_volumes(generator.namespaces,
                                             generator.namespace2pods)

        namespaces = self.attributes.get("nodes")[0].get("namespaces")
        volume_names = [
            vol.get("volume_name") for ns in namespaces
            for vol in namespaces.get(ns).get("volumes")
        ]
        self.assertEqual(list(out_volumes.keys()), volume_names)

        expected = [
            "namespace", "volume", "storage_class", "volume_request", "labels",
            "volume_claims"
        ]
        for vol in out_volumes.values():
            with self.subTest(volume=vol):
                self.assertEqual(list(vol.keys()), expected)
コード例 #3
0
ファイル: test_ocp_generator.py プロジェクト: dccurtis/nise
    def test_gen_volumes_with_namespaces(self):
        """Test that gen_volumes arranges the output dict in the expected way.

            If namespaces with volumes are specified, defined volumes are used.
        """
        generator = OCPGenerator(self.two_hours_ago, self.now)

        namespaces = self.attributes.get("nodes")[0].get("namespaces")
        in_pods = namespaces[0].get("pods")

        out_volumes = generator._gen_volumes(in_pods)

        expected = [
            "namespace", "volume_name", "storage_class", "volume_request_gig",
            "labels", "volume_claims"
        ]
        for vol in out_volumes:
            with self.subTest(volume=vol):
                self.assertEqual(list(vol.keys()), expected)
            self.assertEqual(vol.get("namespace"),
                             namespaces[0].get("namespace_name"))
コード例 #4
0
    def test_gen_volumes_without_namespaces(self):
        """Test that gen_volumes arranges the output dict in the expected way.

            If no namespaces are specified, volumes are generated.
        """
        generator = OCPGenerator(self.two_hours_ago, self.now, {})

        # gen_volumes depends on the output formatting of gen_namespaces and gen_pods.
        out_volumes = generator._gen_volumes(generator.namespaces,
                                             generator.namespace2pods)

        # these magic numbers are the random ranges defined in the OCP generator.
        self.assertGreaterEqual(len(out_volumes), 2 * 2 * 1)
        self.assertLessEqual(len(out_volumes), 6 * 12 * 3)

        expected = [
            "namespace", "volume", "storage_class", "volume_request", "labels",
            "volume_claims"
        ]
        for vol in out_volumes.values():
            with self.subTest(volume=vol):
                self.assertEqual(list(vol.keys()), expected)