Repository: ambari Updated Branches: refs/heads/branch-3.0-ams 397af778b -> 8329f46b9
http://git-wip-us.apache.org/repos/asf/ambari/blob/8329f46b/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TestTimelineWebServices.java ---------------------------------------------------------------------- diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TestTimelineWebServices.java b/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TestTimelineWebServices.java index b093a2a..83e2a27 100644 --- a/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TestTimelineWebServices.java +++ b/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TestTimelineWebServices.java @@ -22,8 +22,6 @@ import static org.junit.Assert.assertEquals; import javax.ws.rs.core.MediaType; -import junit.framework.Assert; - import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics; import org.apache.hadoop.yarn.api.records.timeline.TimelineEntities; import org.apache.hadoop.yarn.api.records.timeline.TimelineEntity; @@ -33,7 +31,6 @@ import org.apache.hadoop.yarn.api.records.timeline.TimelinePutResponse; import org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TestTimelineMetricStore; import org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricStore; import org.apache.hadoop.yarn.server.applicationhistoryservice.timeline.TimelineStore; -import org.apache.hadoop.yarn.server.applicationhistoryservice.timeline.TestMemoryTimelineStore; import org.apache.hadoop.yarn.webapp.GenericExceptionHandler; import org.apache.hadoop.yarn.webapp.YarnJacksonJaxbJsonProvider; import org.junit.Test; @@ -49,10 +46,10 @@ import com.sun.jersey.guice.spi.container.servlet.GuiceContainer; import com.sun.jersey.test.framework.JerseyTest; import com.sun.jersey.test.framework.WebAppDescriptor; +import junit.framework.Assert; -public class TestTimelineWebServices extends JerseyTest { - private static TimelineStore store; +public class TestTimelineWebServices extends JerseyTest { private static TimelineMetricStore metricStore; private long beforeTime; @@ -63,13 +60,11 @@ public class TestTimelineWebServices extends JerseyTest { bind(YarnJacksonJaxbJsonProvider.class); bind(TimelineWebServices.class); bind(GenericExceptionHandler.class); - try{ - store = mockTimelineStore(); + try { metricStore = new TestTimelineMetricStore(); } catch (Exception e) { Assert.fail(); } - bind(TimelineStore.class).toInstance(store); bind(TimelineMetricStore.class).toInstance(metricStore); serve("/*").with(GuiceContainer.class); } @@ -84,59 +79,30 @@ public class TestTimelineWebServices extends JerseyTest { } } - private TimelineStore mockTimelineStore() - throws Exception { - beforeTime = System.currentTimeMillis() - 1; - TestMemoryTimelineStore store = new TestMemoryTimelineStore(); - store.setup(); - return store.getTimelineStore(); - } - public TestTimelineWebServices() { super(new WebAppDescriptor.Builder( - "org.apache.hadoop.yarn.server.applicationhistoryservice.webapp") - .contextListenerClass(GuiceServletConfig.class) - .filterClass(com.google.inject.servlet.GuiceFilter.class) - .contextPath("jersey-guice-filter") - .servletPath("/") - .clientConfig(new DefaultClientConfig(YarnJacksonJaxbJsonProvider.class)) - .build()); + "org.apache.hadoop.yarn.server.applicationhistoryservice.webapp") + .contextListenerClass(GuiceServletConfig.class) + .filterClass(com.google.inject.servlet.GuiceFilter.class) + .contextPath("jersey-guice-filter") + .servletPath("/") + .clientConfig(new DefaultClientConfig(YarnJacksonJaxbJsonProvider.class)) + .build()); } @Test public void testAbout() throws Exception { WebResource r = resource(); ClientResponse response = r.path("ws").path("v1").path("timeline") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); + .accept(MediaType.APPLICATION_JSON) + .get(ClientResponse.class); assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); TimelineWebServices.AboutInfo about = - response.getEntity(TimelineWebServices.AboutInfo.class); + response.getEntity(TimelineWebServices.AboutInfo.class); Assert.assertNotNull(about); - Assert.assertEquals("Timeline API", about.getAbout()); - } - - private static void verifyEntities(TimelineEntities entities) { - Assert.assertNotNull(entities); - Assert.assertEquals(2, entities.getEntities().size()); - TimelineEntity entity1 = entities.getEntities().get(0); - Assert.assertNotNull(entity1); - Assert.assertEquals("id_1", entity1.getEntityId()); - Assert.assertEquals("type_1", entity1.getEntityType()); - Assert.assertEquals(123l, entity1.getStartTime().longValue()); - Assert.assertEquals(2, entity1.getEvents().size()); - Assert.assertEquals(4, entity1.getPrimaryFilters().size()); - Assert.assertEquals(4, entity1.getOtherInfo().size()); - TimelineEntity entity2 = entities.getEntities().get(1); - Assert.assertNotNull(entity2); - Assert.assertEquals("id_2", entity2.getEntityId()); - Assert.assertEquals("type_1", entity2.getEntityType()); - Assert.assertEquals(123l, entity2.getStartTime().longValue()); - Assert.assertEquals(2, entity2.getEvents().size()); - Assert.assertEquals(4, entity2.getPrimaryFilters().size()); - Assert.assertEquals(4, entity2.getOtherInfo().size()); + Assert.assertEquals("AMS API", about.getAbout()); } - + private static void verifyMetrics(TimelineMetrics metrics) { Assert.assertNotNull(metrics); Assert.assertEquals("cpu_user", metrics.getMetrics().get(0).getMetricName()); @@ -146,239 +112,6 @@ public class TestTimelineWebServices extends JerseyTest { } @Test - public void testGetEntities() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - verifyEntities(response.getEntity(TimelineEntities.class)); - } - - @Test - public void testFromId() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("fromId", "id_2") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - assertEquals(1, response.getEntity(TimelineEntities.class).getEntities() - .size()); - - response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("fromId", "id_1") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - assertEquals(2, response.getEntity(TimelineEntities.class).getEntities() - .size()); - } - - @Test - public void testFromTs() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("fromTs", Long.toString(beforeTime)) - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - assertEquals(0, response.getEntity(TimelineEntities.class).getEntities() - .size()); - - response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("fromTs", Long.toString( - System.currentTimeMillis())) - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - assertEquals(2, response.getEntity(TimelineEntities.class).getEntities() - .size()); - } - - @Test - public void testPrimaryFilterString() { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("primaryFilter", "user:username") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - verifyEntities(response.getEntity(TimelineEntities.class)); - } - - @Test - public void testPrimaryFilterInteger() { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("primaryFilter", - "appname:" + Integer.toString(Integer.MAX_VALUE)) - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - verifyEntities(response.getEntity(TimelineEntities.class)); - } - - @Test - public void testPrimaryFilterLong() { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("primaryFilter", - "long:" + Long.toString((long)Integer.MAX_VALUE + 1l)) - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - verifyEntities(response.getEntity(TimelineEntities.class)); - } - - @Test - public void testPrimaryFilterNumericString() { - // without quotes, 123abc is interpreted as the number 123, - // which finds no entities - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("primaryFilter", "other:123abc") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - assertEquals(0, response.getEntity(TimelineEntities.class).getEntities() - .size()); - } - - @Test - public void testPrimaryFilterNumericStringWithQuotes() { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").queryParam("primaryFilter", "other:\"123abc\"") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - verifyEntities(response.getEntity(TimelineEntities.class)); - } - - @Test - public void testSecondaryFilters() { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1") - .queryParam("secondaryFilter", - "user:username,appname:" + Integer.toString(Integer.MAX_VALUE)) - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - verifyEntities(response.getEntity(TimelineEntities.class)); - } - - @Test - public void testGetEntity() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").path("id_1") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - TimelineEntity entity = response.getEntity(TimelineEntity.class); - Assert.assertNotNull(entity); - Assert.assertEquals("id_1", entity.getEntityId()); - Assert.assertEquals("type_1", entity.getEntityType()); - Assert.assertEquals(123l, entity.getStartTime().longValue()); - Assert.assertEquals(2, entity.getEvents().size()); - Assert.assertEquals(4, entity.getPrimaryFilters().size()); - Assert.assertEquals(4, entity.getOtherInfo().size()); - } - - @Test - public void testGetEntityFields1() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").path("id_1").queryParam("fields", "events,otherinfo") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - TimelineEntity entity = response.getEntity(TimelineEntity.class); - Assert.assertNotNull(entity); - Assert.assertEquals("id_1", entity.getEntityId()); - Assert.assertEquals("type_1", entity.getEntityType()); - Assert.assertEquals(123l, entity.getStartTime().longValue()); - Assert.assertEquals(2, entity.getEvents().size()); - Assert.assertEquals(0, entity.getPrimaryFilters().size()); - Assert.assertEquals(4, entity.getOtherInfo().size()); - } - - @Test - public void testGetEntityFields2() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").path("id_1").queryParam("fields", "lasteventonly," + - "primaryfilters,relatedentities") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - TimelineEntity entity = response.getEntity(TimelineEntity.class); - Assert.assertNotNull(entity); - Assert.assertEquals("id_1", entity.getEntityId()); - Assert.assertEquals("type_1", entity.getEntityType()); - Assert.assertEquals(123l, entity.getStartTime().longValue()); - Assert.assertEquals(1, entity.getEvents().size()); - Assert.assertEquals(4, entity.getPrimaryFilters().size()); - Assert.assertEquals(0, entity.getOtherInfo().size()); - } - - @Test - public void testGetEvents() throws Exception { - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .path("type_1").path("events") - .queryParam("entityId", "id_1") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - TimelineEvents events = response.getEntity(TimelineEvents.class); - Assert.assertNotNull(events); - Assert.assertEquals(1, events.getAllEvents().size()); - TimelineEvents.EventsOfOneEntity partEvents = events.getAllEvents().get(0); - Assert.assertEquals(2, partEvents.getEvents().size()); - TimelineEvent event1 = partEvents.getEvents().get(0); - Assert.assertEquals(456l, event1.getTimestamp()); - Assert.assertEquals("end_event", event1.getEventType()); - Assert.assertEquals(1, event1.getEventInfo().size()); - TimelineEvent event2 = partEvents.getEvents().get(1); - Assert.assertEquals(123l, event2.getTimestamp()); - Assert.assertEquals("start_event", event2.getEventType()); - Assert.assertEquals(0, event2.getEventInfo().size()); - } - - @Test - public void testPostEntities() throws Exception { - TimelineEntities entities = new TimelineEntities(); - TimelineEntity entity = new TimelineEntity(); - entity.setEntityId("test id"); - entity.setEntityType("test type"); - entity.setStartTime(System.currentTimeMillis()); - entities.addEntity(entity); - WebResource r = resource(); - ClientResponse response = r.path("ws").path("v1").path("timeline") - .accept(MediaType.APPLICATION_JSON) - .type(MediaType.APPLICATION_JSON) - .post(ClientResponse.class, entities); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - TimelinePutResponse putResposne = response.getEntity(TimelinePutResponse.class); - Assert.assertNotNull(putResposne); - Assert.assertEquals(0, putResposne.getErrors().size()); - // verify the entity exists in the store - response = r.path("ws").path("v1").path("timeline") - .path("test type").path("test id") - .accept(MediaType.APPLICATION_JSON) - .get(ClientResponse.class); - assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getType()); - entity = response.getEntity(TimelineEntity.class); - Assert.assertNotNull(entity); - Assert.assertEquals("test id", entity.getEntityId()); - Assert.assertEquals("test type", entity.getEntityType()); - } - - @Test public void testGetMetrics() throws Exception { WebResource r = resource(); ClientResponse response = r.path("ws").path("v1").path("timeline") http://git-wip-us.apache.org/repos/asf/ambari/blob/8329f46b/ambari-metrics/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-metrics/pom.xml b/ambari-metrics/pom.xml index ff81060..ab3fcc4 100644 --- a/ambari-metrics/pom.xml +++ b/ambari-metrics/pom.xml @@ -41,23 +41,17 @@ <python.ver>python >= 2.6</python.ver> <deb.python.ver>python (>= 2.6)</deb.python.ver> <!--TODO change to HDP URL--> - <hbase.tar>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.0.3/tars/hbase-1.1.2.2.6.0.3-8.tar.gz</hbase.tar> + <hbase.tar>http://dev.hortonworks.com.s3.amazonaws.com/HDP/centos7/3.x/BUILDS/3.0.0.0-623/tars/hbase/hbase-2.0.0.3.0.0.0-623-bin.tar.gz</hbase.tar> <hbase.folder>hbase-1.1.2.2.6.0.3-8</hbase.folder> - <hadoop.tar>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.0.3/tars/hadoop/hadoop-2.7.3.2.6.0.3-8.tar.gz</hadoop.tar> - <hadoop.folder>hadoop-2.7.3.2.6.0.3-8</hadoop.folder> - <hbase.winpkg.zip>https://msibuilds.blob.core.windows.net/hdp/2.x/2.2.4.2/2/hbase-0.98.4.2.2.4.2-0002-hadoop2.winpkg.zip</hbase.winpkg.zip> - <hbase.winpkg.folder>hbase-0.98.4.2.2.4.2-0002-hadoop2</hbase.winpkg.folder> - <hadoop.winpkg.zip>https://msibuilds.blob.core.windows.net/hdp/2.x/2.2.4.2/2/hadoop-2.6.0.2.2.4.2-0002.winpkg.zip</hadoop.winpkg.zip> - <hadoop.winpkg.folder>hadoop-2.6.0.2.2.4.2-0002</hadoop.winpkg.folder> + <hadoop.tar>http://dev.hortonworks.com.s3.amazonaws.com/HDP/centos7/3.x/BUILDS/3.0.0.0-623/tars/hadoop/hadoop-3.0.0.3.0.0.0-623.tar.gz</hadoop.tar> + <hadoop.folder>hadoop-3.0.0.3.0.0.0-623</hadoop.folder> <grafana.folder>grafana-2.6.0</grafana.folder> <grafana.tar>https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0.linux-x64.tar.gz</grafana.tar> - <phoenix.tar>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.0.3/tars/phoenix-4.7.0.2.6.0.3-8.tar.gz</phoenix.tar> - <phoenix.folder>phoenix-4.7.0.2.6.0.3-8</phoenix.folder> + <phoenix.tar>http://dev.hortonworks.com.s3.amazonaws.com/HDP/centos7/3.x/BUILDS/3.0.0.0-623/tars/phoenix/phoenix-5.0.0.3.0.0.0-623.tar.gz</phoenix.tar> + <phoenix.folder>phoenix-5.0.0.3.0.0.0-623</phoenix.folder> <spark.tar>http://dev.hortonworks.com.s3.amazonaws.com/HDP/centos7/3.x/BUILDS/3.0.0.0-439/tars/spark2/spark-2.1.0.3.0.0.0-439-bin-3.0.0.3.0.0.0-439.tgz</spark.tar> <spark.folder>spark-2.1.0.3.0.0.0-439-bin-3.0.0.3.0.0.0-439</spark.folder> - <resmonitor.install.dir> - /usr/lib/python2.6/site-packages/resource_monitoring - </resmonitor.install.dir> + <resmonitor.install.dir>/usr/lib/python2.6/site-packages/resource_monitoring</resmonitor.install.dir> <powermock.version>1.6.2</powermock.version> <distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId> <distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>