From 2d7a297c11dd27dd00770f8f0018ecd98dbec05f Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 14:25:58 -0400 Subject: [PATCH 1/4] Added unit test for GetLegacyResource --- test/kubernetes_unittest.cc | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index 58a45189..66ca4f08 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -22,6 +22,12 @@ class KubernetesTest : public ::testing::Test { pod, std::move(associations), collected_at, is_deleted); } + MetadataUpdater::ResourceMetadata GetLegacyResource( + const KubernetesReader& reader, const json::Object* pod, + const std::string& container_name) const throw(json::Exception) { + return reader.GetLegacyResource(pod, container_name); + } + json::value ComputePodAssociations(const KubernetesReader& reader, const json::Object* pod) { return reader.ComputePodAssociations(pod); @@ -201,4 +207,47 @@ TEST_F(KubernetesTest, GetPodMetadata) { }); EXPECT_EQ(expected_metadata->ToString(), m.metadata().metadata->ToString()); } + +TEST_F(KubernetesTest, GetLegacyResource) { + Configuration config(std::stringstream( + "KubernetesClusterName: TestClusterName\n" + "MetadataApiResourceTypeSeparator: \".\"\n" + "InstanceZone: TestZone\n" + "InstanceId: TestID\n" + )); + Environment environment(config); + KubernetesReader reader(config, nullptr); // Don't need HealthChecker. + json::value pod = json::object({ + {"metadata", json::object({ + {"namespace", json::string("TestNamespace")}, + {"name", json::string("TestName")}, + {"uid", json::string("TestUid")}, + })} + }); + const auto m = GetLegacyResource(reader, json::object({ + {"metadata", json::object({ + {"namespace", json::string("TestNamespace")}, + {"name", json::string("TestName")}, + {"uid", json::string("TestUid")}, + })}, + })->As(), "TestContainerName"); + EXPECT_EQ(std::vector({ + "gke_container.TestNamespace.TestUid.TestContainerName", + "gke_container.TestNamespace.TestName.TestContainerName" + }), m.ids()); + EXPECT_EQ(MonitoredResource("gke_container", { + {"cluster_name", "TestClusterName"}, + {"container_name", "TestContainerName"}, + {"instance_id", "TestID"}, + {"namespace_id", "TestNamespace"}, + {"pod_id", "TestUid"}, + {"zone", "TestZone"}, + }), m.resource()); + EXPECT_EQ("", m.metadata().version); + EXPECT_FALSE(m.metadata().is_deleted); + EXPECT_EQ(Timestamp(), m.metadata().created_at); + EXPECT_EQ(Timestamp(), m.metadata().collected_at); + EXPECT_TRUE(m.metadata().ignore); + EXPECT_EQ(json::object({})->ToString(), m.metadata().metadata->ToString()); +} } // namespace google From eecb64cd412f44b8dd769882777bdaca8aff77ef Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 14:51:27 -0400 Subject: [PATCH 2/4] Switch to using empty and EXPECT_TRUE --- test/kubernetes_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index 66ca4f08..a86ef938 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -243,7 +243,7 @@ TEST_F(KubernetesTest, GetLegacyResource) { {"pod_id", "TestUid"}, {"zone", "TestZone"}, }), m.resource()); - EXPECT_EQ("", m.metadata().version); + EXPECT_TRUE(m.metadata().version.empty()); EXPECT_FALSE(m.metadata().is_deleted); EXPECT_EQ(Timestamp(), m.metadata().created_at); EXPECT_EQ(Timestamp(), m.metadata().collected_at); From 40513a736b6ecebb345dc9e4122ce6d076c10ea5 Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 15:06:05 -0400 Subject: [PATCH 3/4] Addressed code review comments --- test/kubernetes_unittest.cc | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index a86ef938..c9d4ff15 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -217,13 +217,6 @@ TEST_F(KubernetesTest, GetLegacyResource) { )); Environment environment(config); KubernetesReader reader(config, nullptr); // Don't need HealthChecker. - json::value pod = json::object({ - {"metadata", json::object({ - {"namespace", json::string("TestNamespace")}, - {"name", json::string("TestName")}, - {"uid", json::string("TestUid")}, - })} - }); const auto m = GetLegacyResource(reader, json::object({ {"metadata", json::object({ {"namespace", json::string("TestNamespace")}, @@ -233,7 +226,7 @@ TEST_F(KubernetesTest, GetLegacyResource) { })->As(), "TestContainerName"); EXPECT_EQ(std::vector({ "gke_container.TestNamespace.TestUid.TestContainerName", - "gke_container.TestNamespace.TestName.TestContainerName" + "gke_container.TestNamespace.TestName.TestContainerName", }), m.ids()); EXPECT_EQ(MonitoredResource("gke_container", { {"cluster_name", "TestClusterName"}, @@ -243,11 +236,6 @@ TEST_F(KubernetesTest, GetLegacyResource) { {"pod_id", "TestUid"}, {"zone", "TestZone"}, }), m.resource()); - EXPECT_TRUE(m.metadata().version.empty()); - EXPECT_FALSE(m.metadata().is_deleted); - EXPECT_EQ(Timestamp(), m.metadata().created_at); - EXPECT_EQ(Timestamp(), m.metadata().collected_at); EXPECT_TRUE(m.metadata().ignore); - EXPECT_EQ(json::object({})->ToString(), m.metadata().metadata->ToString()); } } // namespace google From 9fd6819ff27edd2b37bc07d19ebe9a2d87230285 Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 17:07:07 -0400 Subject: [PATCH 4/4] Factored out local variable --- test/kubernetes_unittest.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index c9d4ff15..359a8241 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -217,13 +217,15 @@ TEST_F(KubernetesTest, GetLegacyResource) { )); Environment environment(config); KubernetesReader reader(config, nullptr); // Don't need HealthChecker. - const auto m = GetLegacyResource(reader, json::object({ + json::value pod = json::object({ {"metadata", json::object({ {"namespace", json::string("TestNamespace")}, {"name", json::string("TestName")}, {"uid", json::string("TestUid")}, })}, - })->As(), "TestContainerName"); + }); + const auto m = GetLegacyResource(reader, pod->As(), + "TestContainerName"); EXPECT_EQ(std::vector({ "gke_container.TestNamespace.TestUid.TestContainerName", "gke_container.TestNamespace.TestName.TestContainerName",