Repository: knox Updated Branches: refs/heads/master d5a875982 -> af5d6abeb
http://git-wip-us.apache.org/repos/asf/knox/blob/af5d6abe/gateway-test/src/test/java/org/apache/hadoop/gateway/OozieServiceDefinitionTest.java ---------------------------------------------------------------------- diff --git a/gateway-test/src/test/java/org/apache/hadoop/gateway/OozieServiceDefinitionTest.java b/gateway-test/src/test/java/org/apache/hadoop/gateway/OozieServiceDefinitionTest.java index f49e95c..039ae1c 100644 --- a/gateway-test/src/test/java/org/apache/hadoop/gateway/OozieServiceDefinitionTest.java +++ b/gateway-test/src/test/java/org/apache/hadoop/gateway/OozieServiceDefinitionTest.java @@ -47,166 +47,166 @@ import static org.hamcrest.xml.HasXPath.hasXPath; public class OozieServiceDefinitionTest { - private static final long SHORT_TIMEOUT = 1000L; - private static final long MEDIUM_TIMEOUT = 5 * SHORT_TIMEOUT; - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testOozieRewriteRulesForLiteralTemplateValuesBugKnox394() throws Exception { - LOG_ENTER(); - - // This is a unique part of this test. - String testResource = "oozie-request-with-var.xml"; - - // Mock out the service url registry which is required for several url rewrite functions to work. - ServiceRegistry registry = EasyMock.createNiceMock( ServiceRegistry.class ); - EasyMock.expect( registry.lookupServiceURL( "test-cluster", "NAMENODE" ) ).andReturn( "test-scheme://test-host:42" ).anyTimes(); - - // Mock out the gateway services registry which is required for several url rewrite functions to work. - GatewayServices services = EasyMock.createNiceMock( GatewayServices.class ); - EasyMock.expect( services.getService( GatewayServices.SERVICE_REGISTRY_SERVICE ) ).andReturn( registry ).anyTimes(); - - UrlRewriteProcessor rewriteProcessor = new UrlRewriteProcessor(); - - ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); - EasyMock.expect( servletContext.getAttribute( UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME ) ).andReturn( rewriteProcessor ).anyTimes(); - EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( services ).anyTimes(); - EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster" ).anyTimes(); - - HttpServletRequest servletRequest = EasyMock.createNiceMock( HttpServletRequest.class ); - EasyMock.expect( servletRequest.getInputStream() ).andReturn( new MockServletInputStream( TestUtils.getResourceStream( OozieServiceDefinitionTest.class, testResource ) ) ).anyTimes(); - EasyMock.expect( servletRequest.getContentType() ).andReturn( "text/xml" ).anyTimes(); - - FilterConfig filterConfig = EasyMock.createNiceMock( FilterConfig.class ); - EasyMock.expect( filterConfig.getServletContext() ).andReturn( servletContext ).anyTimes(); - EasyMock.expect( filterConfig.getInitParameter( UrlRewriteServletFilter.REQUEST_BODY_FILTER_PARAM ) ).andReturn( "OOZIE/oozie/configuration" ).anyTimes(); - - EasyMock.replay( registry, services, servletContext, servletRequest, filterConfig ); - - UrlRewriteEnvironment rewriteEnvironment = new UrlRewriteServletEnvironment( servletContext ); - - Reader rulesReader = TestUtils.getResourceReader( "services/oozie/4.0.0/rewrite.xml", "UTF-8" ); - UrlRewriteRulesDescriptor rewriteRules = UrlRewriteRulesDescriptorFactory.load( "xml", rulesReader ); - rulesReader.close(); - - rewriteProcessor.initialize( rewriteEnvironment, rewriteRules ); - - UrlRewriteRequest rewriteRequest = new UrlRewriteRequest( filterConfig, servletRequest ); - - InputStream stream = rewriteRequest.getInputStream(); - - Document document = TestUtils.parseXml( stream ); - - assertThat( document, - hasXPath( "/configuration/property[name='oozie.wf.application.path']/value", - equalTo( "${appPath}/workflow.xml" ) ) ); - - LOG_EXIT(); - } - - @Test( timeout = SHORT_TIMEOUT ) - public void testOozieRewriteRulesForLiteralComplexTemplateValuesBugKnox394() throws Exception { - LOG_ENTER(); - - // This is a unique part of this test. - String testResource = "oozie-request-with-complex-var.xml"; - - // Mock out the service url registry which is required for several url rewrite functions to work. - ServiceRegistry registry = EasyMock.createNiceMock( ServiceRegistry.class ); - EasyMock.expect( registry.lookupServiceURL( "test-cluster", "NAMENODE" ) ).andReturn( "test-scheme://test-host:42" ).anyTimes(); - - // Mock out the gateway services registry which is required for several url rewrite functions to work. - GatewayServices services = EasyMock.createNiceMock( GatewayServices.class ); - EasyMock.expect( services.getService( GatewayServices.SERVICE_REGISTRY_SERVICE ) ).andReturn( registry ).anyTimes(); - - UrlRewriteProcessor rewriteProcessor = new UrlRewriteProcessor(); - - ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); - EasyMock.expect( servletContext.getAttribute( UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME ) ).andReturn( rewriteProcessor ).anyTimes(); - EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( services ).anyTimes(); - EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster" ).anyTimes(); - - HttpServletRequest servletRequest = EasyMock.createNiceMock( HttpServletRequest.class ); - EasyMock.expect( servletRequest.getInputStream() ).andReturn( new MockServletInputStream( TestUtils.getResourceStream( OozieServiceDefinitionTest.class, testResource ) ) ).anyTimes(); - EasyMock.expect( servletRequest.getContentType() ).andReturn( "text/xml" ).anyTimes(); - - FilterConfig filterConfig = EasyMock.createNiceMock( FilterConfig.class ); - EasyMock.expect( filterConfig.getServletContext() ).andReturn( servletContext ).anyTimes(); - EasyMock.expect( filterConfig.getInitParameter( UrlRewriteServletFilter.REQUEST_BODY_FILTER_PARAM ) ).andReturn( "OOZIE/oozie/configuration" ).anyTimes(); - - EasyMock.replay( registry, services, servletContext, servletRequest, filterConfig ); - - UrlRewriteEnvironment rewriteEnvironment = new UrlRewriteServletEnvironment( servletContext ); - - Reader rulesReader = TestUtils.getResourceReader( "services/oozie/4.0.0/rewrite.xml", "UTF-8" ); - UrlRewriteRulesDescriptor rewriteRules = UrlRewriteRulesDescriptorFactory.load( "xml", rulesReader ); - rulesReader.close(); - - rewriteProcessor.initialize( rewriteEnvironment, rewriteRules ); - - UrlRewriteRequest rewriteRequest = new UrlRewriteRequest( filterConfig, servletRequest ); - - InputStream stream = rewriteRequest.getInputStream(); - - Document document = TestUtils.parseXml( stream ); - - assertThat( document, - hasXPath( "/configuration/property[name='oozie.wf.application.path']/value", - equalTo( "${nameNode}/user/${user.name}/${examplesRoot}/apps/hive" ) ) ); - - LOG_EXIT(); - } - - @Test( timeout = SHORT_TIMEOUT ) - public void testOozieRewriteRulesForValuesRelativeToServiceRegistry() throws Exception { - LOG_ENTER(); - - // This is a unique part of this test. - String testResource = "oozie-request-relative.xml"; - - // Mock out the service url registry which is required for several url rewrite functions to work. - ServiceRegistry registry = EasyMock.createNiceMock( ServiceRegistry.class ); - EasyMock.expect( registry.lookupServiceURL( "test-cluster", "NAMENODE" ) ).andReturn( "test-scheme://test-host:42" ).anyTimes(); - - // Mock out the gateway services registry which is required for several url rewrite functions to work. - GatewayServices services = EasyMock.createNiceMock( GatewayServices.class ); - EasyMock.expect( services.getService( GatewayServices.SERVICE_REGISTRY_SERVICE ) ).andReturn( registry ).anyTimes(); - - UrlRewriteProcessor rewriteProcessor = new UrlRewriteProcessor(); - - ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); - EasyMock.expect( servletContext.getAttribute( UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME ) ).andReturn( rewriteProcessor ).anyTimes(); - EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( services ).anyTimes(); - EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster" ).anyTimes(); - - HttpServletRequest servletRequest = EasyMock.createNiceMock( HttpServletRequest.class ); - EasyMock.expect( servletRequest.getInputStream() ).andReturn( new MockServletInputStream( TestUtils.getResourceStream( OozieServiceDefinitionTest.class, testResource ) ) ).anyTimes(); - EasyMock.expect( servletRequest.getContentType() ).andReturn( "text/xml" ).anyTimes(); - - FilterConfig filterConfig = EasyMock.createNiceMock( FilterConfig.class ); - EasyMock.expect( filterConfig.getServletContext() ).andReturn( servletContext ).anyTimes(); - EasyMock.expect( filterConfig.getInitParameter( UrlRewriteServletFilter.REQUEST_BODY_FILTER_PARAM ) ).andReturn( "OOZIE/oozie/configuration" ).anyTimes(); - - EasyMock.replay( registry, services, servletContext, servletRequest, filterConfig ); - - UrlRewriteEnvironment rewriteEnvironment = new UrlRewriteServletEnvironment( servletContext ); - - Reader rulesReader = TestUtils.getResourceReader( "services/oozie/4.0.0/rewrite.xml", "UTF-8" ); - UrlRewriteRulesDescriptor rewriteRules = UrlRewriteRulesDescriptorFactory.load( "xml", rulesReader ); - rulesReader.close(); - - rewriteProcessor.initialize( rewriteEnvironment, rewriteRules ); - - UrlRewriteRequest rewriteRequest = new UrlRewriteRequest( filterConfig, servletRequest ); - - InputStream stream = rewriteRequest.getInputStream(); - - Document document = TestUtils.parseXml( stream ); - - assertThat( document, - hasXPath( "/configuration/property[name='oozie.wf.application.path']/value", - equalTo( "test-scheme://test-host:42/workflow.xml" ) ) ); - - LOG_EXIT(); - } +// private static final long SHORT_TIMEOUT = 1000L; +// private static final long MEDIUM_TIMEOUT = 5 * SHORT_TIMEOUT; +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testOozieRewriteRulesForLiteralTemplateValuesBugKnox394() throws Exception { +// LOG_ENTER(); +// +// // This is a unique part of this test. +// String testResource = "oozie-request-with-var.xml"; +// +// // Mock out the service url registry which is required for several url rewrite functions to work. +// ServiceRegistry registry = EasyMock.createNiceMock( ServiceRegistry.class ); +// EasyMock.expect( registry.lookupServiceURL( "test-cluster", "NAMENODE" ) ).andReturn( "test-scheme://test-host:42" ).anyTimes(); +// +// // Mock out the gateway services registry which is required for several url rewrite functions to work. +// GatewayServices services = EasyMock.createNiceMock( GatewayServices.class ); +// EasyMock.expect( services.getService( GatewayServices.SERVICE_REGISTRY_SERVICE ) ).andReturn( registry ).anyTimes(); +// +// UrlRewriteProcessor rewriteProcessor = new UrlRewriteProcessor(); +// +// ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); +// EasyMock.expect( servletContext.getAttribute( UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME ) ).andReturn( rewriteProcessor ).anyTimes(); +// EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( services ).anyTimes(); +// EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster" ).anyTimes(); +// +// HttpServletRequest servletRequest = EasyMock.createNiceMock( HttpServletRequest.class ); +// EasyMock.expect( servletRequest.getInputStream() ).andReturn( new MockServletInputStream( TestUtils.getResourceStream( OozieServiceDefinitionTest.class, testResource ) ) ).anyTimes(); +// EasyMock.expect( servletRequest.getContentType() ).andReturn( "text/xml" ).anyTimes(); +// +// FilterConfig filterConfig = EasyMock.createNiceMock( FilterConfig.class ); +// EasyMock.expect( filterConfig.getServletContext() ).andReturn( servletContext ).anyTimes(); +// EasyMock.expect( filterConfig.getInitParameter( UrlRewriteServletFilter.REQUEST_BODY_FILTER_PARAM ) ).andReturn( "OOZIE/oozie/configuration" ).anyTimes(); +// +// EasyMock.replay( registry, services, servletContext, servletRequest, filterConfig ); +// +// UrlRewriteEnvironment rewriteEnvironment = new UrlRewriteServletEnvironment( servletContext ); +// +// Reader rulesReader = TestUtils.getResourceReader( "services/oozie/4.0.0/rewrite.xml", "UTF-8" ); +// UrlRewriteRulesDescriptor rewriteRules = UrlRewriteRulesDescriptorFactory.load( "xml", rulesReader ); +// rulesReader.close(); +// +// rewriteProcessor.initialize( rewriteEnvironment, rewriteRules ); +// +// UrlRewriteRequest rewriteRequest = new UrlRewriteRequest( filterConfig, servletRequest ); +// +// InputStream stream = rewriteRequest.getInputStream(); +// +// Document document = TestUtils.parseXml( stream ); +// +// assertThat( document, +// hasXPath( "/configuration/property[name='oozie.wf.application.path']/value", +// equalTo( "${appPath}/workflow.xml" ) ) ); +// +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testOozieRewriteRulesForLiteralComplexTemplateValuesBugKnox394() throws Exception { +// LOG_ENTER(); +// +// // This is a unique part of this test. +// String testResource = "oozie-request-with-complex-var.xml"; +// +// // Mock out the service url registry which is required for several url rewrite functions to work. +// ServiceRegistry registry = EasyMock.createNiceMock( ServiceRegistry.class ); +// EasyMock.expect( registry.lookupServiceURL( "test-cluster", "NAMENODE" ) ).andReturn( "test-scheme://test-host:42" ).anyTimes(); +// +// // Mock out the gateway services registry which is required for several url rewrite functions to work. +// GatewayServices services = EasyMock.createNiceMock( GatewayServices.class ); +// EasyMock.expect( services.getService( GatewayServices.SERVICE_REGISTRY_SERVICE ) ).andReturn( registry ).anyTimes(); +// +// UrlRewriteProcessor rewriteProcessor = new UrlRewriteProcessor(); +// +// ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); +// EasyMock.expect( servletContext.getAttribute( UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME ) ).andReturn( rewriteProcessor ).anyTimes(); +// EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( services ).anyTimes(); +// EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster" ).anyTimes(); +// +// HttpServletRequest servletRequest = EasyMock.createNiceMock( HttpServletRequest.class ); +// EasyMock.expect( servletRequest.getInputStream() ).andReturn( new MockServletInputStream( TestUtils.getResourceStream( OozieServiceDefinitionTest.class, testResource ) ) ).anyTimes(); +// EasyMock.expect( servletRequest.getContentType() ).andReturn( "text/xml" ).anyTimes(); +// +// FilterConfig filterConfig = EasyMock.createNiceMock( FilterConfig.class ); +// EasyMock.expect( filterConfig.getServletContext() ).andReturn( servletContext ).anyTimes(); +// EasyMock.expect( filterConfig.getInitParameter( UrlRewriteServletFilter.REQUEST_BODY_FILTER_PARAM ) ).andReturn( "OOZIE/oozie/configuration" ).anyTimes(); +// +// EasyMock.replay( registry, services, servletContext, servletRequest, filterConfig ); +// +// UrlRewriteEnvironment rewriteEnvironment = new UrlRewriteServletEnvironment( servletContext ); +// +// Reader rulesReader = TestUtils.getResourceReader( "services/oozie/4.0.0/rewrite.xml", "UTF-8" ); +// UrlRewriteRulesDescriptor rewriteRules = UrlRewriteRulesDescriptorFactory.load( "xml", rulesReader ); +// rulesReader.close(); +// +// rewriteProcessor.initialize( rewriteEnvironment, rewriteRules ); +// +// UrlRewriteRequest rewriteRequest = new UrlRewriteRequest( filterConfig, servletRequest ); +// +// InputStream stream = rewriteRequest.getInputStream(); +// +// Document document = TestUtils.parseXml( stream ); +// +// assertThat( document, +// hasXPath( "/configuration/property[name='oozie.wf.application.path']/value", +// equalTo( "${nameNode}/user/${user.name}/${examplesRoot}/apps/hive" ) ) ); +// +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testOozieRewriteRulesForValuesRelativeToServiceRegistry() throws Exception { +// LOG_ENTER(); +// +// // This is a unique part of this test. +// String testResource = "oozie-request-relative.xml"; +// +// // Mock out the service url registry which is required for several url rewrite functions to work. +// ServiceRegistry registry = EasyMock.createNiceMock( ServiceRegistry.class ); +// EasyMock.expect( registry.lookupServiceURL( "test-cluster", "NAMENODE" ) ).andReturn( "test-scheme://test-host:42" ).anyTimes(); +// +// // Mock out the gateway services registry which is required for several url rewrite functions to work. +// GatewayServices services = EasyMock.createNiceMock( GatewayServices.class ); +// EasyMock.expect( services.getService( GatewayServices.SERVICE_REGISTRY_SERVICE ) ).andReturn( registry ).anyTimes(); +// +// UrlRewriteProcessor rewriteProcessor = new UrlRewriteProcessor(); +// +// ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); +// EasyMock.expect( servletContext.getAttribute( UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME ) ).andReturn( rewriteProcessor ).anyTimes(); +// EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( services ).anyTimes(); +// EasyMock.expect( servletContext.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster" ).anyTimes(); +// +// HttpServletRequest servletRequest = EasyMock.createNiceMock( HttpServletRequest.class ); +// EasyMock.expect( servletRequest.getInputStream() ).andReturn( new MockServletInputStream( TestUtils.getResourceStream( OozieServiceDefinitionTest.class, testResource ) ) ).anyTimes(); +// EasyMock.expect( servletRequest.getContentType() ).andReturn( "text/xml" ).anyTimes(); +// +// FilterConfig filterConfig = EasyMock.createNiceMock( FilterConfig.class ); +// EasyMock.expect( filterConfig.getServletContext() ).andReturn( servletContext ).anyTimes(); +// EasyMock.expect( filterConfig.getInitParameter( UrlRewriteServletFilter.REQUEST_BODY_FILTER_PARAM ) ).andReturn( "OOZIE/oozie/configuration" ).anyTimes(); +// +// EasyMock.replay( registry, services, servletContext, servletRequest, filterConfig ); +// +// UrlRewriteEnvironment rewriteEnvironment = new UrlRewriteServletEnvironment( servletContext ); +// +// Reader rulesReader = TestUtils.getResourceReader( "services/oozie/4.0.0/rewrite.xml", "UTF-8" ); +// UrlRewriteRulesDescriptor rewriteRules = UrlRewriteRulesDescriptorFactory.load( "xml", rulesReader ); +// rulesReader.close(); +// +// rewriteProcessor.initialize( rewriteEnvironment, rewriteRules ); +// +// UrlRewriteRequest rewriteRequest = new UrlRewriteRequest( filterConfig, servletRequest ); +// +// InputStream stream = rewriteRequest.getInputStream(); +// +// Document document = TestUtils.parseXml( stream ); +// +// assertThat( document, +// hasXPath( "/configuration/property[name='oozie.wf.application.path']/value", +// equalTo( "test-scheme://test-host:42/workflow.xml" ) ) ); +// +// LOG_EXIT(); +// } } http://git-wip-us.apache.org/repos/asf/knox/blob/af5d6abe/gateway-test/src/test/java/org/apache/hadoop/gateway/WebHdfsHaFuncTest.java ---------------------------------------------------------------------- diff --git a/gateway-test/src/test/java/org/apache/hadoop/gateway/WebHdfsHaFuncTest.java b/gateway-test/src/test/java/org/apache/hadoop/gateway/WebHdfsHaFuncTest.java index 7823978..e0af24e 100644 --- a/gateway-test/src/test/java/org/apache/hadoop/gateway/WebHdfsHaFuncTest.java +++ b/gateway-test/src/test/java/org/apache/hadoop/gateway/WebHdfsHaFuncTest.java @@ -42,438 +42,438 @@ import static org.hamcrest.CoreMatchers.is; @Category({FunctionalTests.class, MediumTests.class}) public class WebHdfsHaFuncTest { - private static final long SHORT_TIMEOUT = 1000L; - private static final long MEDIUM_TIMEOUT = 10 * SHORT_TIMEOUT; - - // Specifies if the test requests should go through the gateway or directly to the services. - // This is frequently used to verify the behavior of the test both with and without the gateway. - private static final boolean USE_GATEWAY = true; - - // Specifies if the test requests should be sent to mock services or the real services. - // This is frequently used to verify the behavior of the test both with and without mock services. - private static final boolean USE_MOCK_SERVICES = true; - - private static GatewayFuncTestDriver driver = new GatewayFuncTestDriver(); - - private static MockServer masterServer; - - private static MockServer standbyServer; - - private static int findFreePort() throws IOException { - ServerSocket socket = new ServerSocket(0); - int port = socket.getLocalPort(); - socket.close(); - return port; - } - - /** - * Creates a deployment of a gateway instance that all test methods will share. This method also creates a - * registry of sorts for all of the services that will be used by the test methods. - * The createTopology method is used to create the topology file that would normally be read from disk. - * The driver.setupGateway invocation is where the creation of GATEWAY_HOME occurs. - * <p/> - * This would normally be done once for this suite but the failure tests start affecting each other depending - * on the state the last 'active' url - * - * @throws Exception Thrown if any failure occurs. - */ - @Before - public void setup() throws Exception { - LOG_ENTER(); - //Log.setLog(new NoOpLogger()); - masterServer = new MockServer("master", true); - standbyServer = new MockServer("standby", true); - GatewayTestConfig config = new GatewayTestConfig(); - config.setGatewayPath("gateway"); - driver.setResourceBase(WebHdfsHaFuncTest.class); - driver.setupLdap(findFreePort()); - driver.setupService("WEBHDFS", "http://vm.local:50070/webhdfs", "/cluster/webhdfs", USE_MOCK_SERVICES); - driver.setupGateway(config, "cluster", createTopology(), USE_GATEWAY); - LOG_EXIT(); - } - - @After - public void cleanup() throws Exception { - LOG_ENTER(); - driver.cleanup(); - driver.reset(); - masterServer.reset(); - standbyServer.reset(); - LOG_EXIT(); - } - - /** - * Creates a topology that is deployed to the gateway instance for the test suite. - * Note that this topology is shared by all of the test methods in this suite. - * - * @return A populated XML structure for a topology file. - */ - private static XMLTag createTopology() { - XMLTag xml = XMLDoc.newDocument(true) - .addRoot("topology") - .addTag("gateway") - .addTag("provider") - .addTag("role").addText("webappsec") - .addTag("name").addText("WebAppSec") - .addTag("enabled").addText("true") - .addTag("param") - .addTag("name").addText("csrf.enabled") - .addTag("value").addText("true").gotoParent().gotoParent() - .addTag("provider") - .addTag("role").addText("authentication") - .addTag("name").addText("ShiroProvider") - .addTag("enabled").addText("true") - .addTag("param") - .addTag("name").addText("main.ldapRealm") - .addTag("value").addText("org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm").gotoParent() - .addTag("param") - .addTag("name").addText("main.ldapRealm.userDnTemplate") - .addTag("value").addText("uid={0},ou=people,dc=hadoop,dc=apache,dc=org").gotoParent() - .addTag("param") - .addTag("name").addText("main.ldapRealm.contextFactory.url") - .addTag("value").addText(driver.getLdapUrl()).gotoParent() - .addTag("param") - .addTag("name").addText("main.ldapRealm.contextFactory.authenticationMechanism") - .addTag("value").addText("simple").gotoParent() - .addTag("param") - .addTag("name").addText("urls./**") - .addTag("value").addText("authcBasic").gotoParent().gotoParent() - .addTag("provider") - .addTag("role").addText("identity-assertion") - .addTag("enabled").addText("true") - .addTag("name").addText("Default").gotoParent() - .addTag("provider") - .addTag("role").addText("authorization") - .addTag("enabled").addText("true") - .addTag("name").addText("AclsAuthz").gotoParent() - .addTag("param") - .addTag("name").addText("webhdfs-acl") - .addTag("value").addText("hdfs;*;*").gotoParent() - .addTag("provider") - .addTag("role").addText("ha") - .addTag("enabled").addText("true") - .addTag("name").addText("HaProvider") - .addTag("param") - .addTag("name").addText("WEBHDFS") - .addTag("value").addText("maxFailoverAttempts=3;failoverSleep=15;maxRetryAttempts=3;retrySleep=10;enabled=true").gotoParent() - .gotoRoot() - .addTag("service") - .addTag("role").addText("WEBHDFS") - .addTag("url").addText("http://localhost:" + masterServer.getPort() + "/webhdfs") - .addTag("url").addText("http://localhost:" + standbyServer.getPort() + "/webhdfs").gotoParent() - .gotoRoot(); -// System.out.println( "GATEWAY=" + xml.toString() ); - return xml; - } - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testBasicListOperation() throws IOException { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - masterServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_OK) - .content(driver.getResourceBytes("webhdfs-liststatus-success.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "LISTSTATUS") - .expect() - .log().ifError() - .statusCode(HttpStatus.SC_OK) - .content("FileStatuses.FileStatus[0].pathSuffix", is("app-logs")) - .when().get(driver.getUrl("WEBHDFS") + "/v1/"); - masterServer.isEmpty(); - LOG_EXIT(); - } - - @Test( timeout = MEDIUM_TIMEOUT ) - @Ignore( "KNOX-446" ) - public void testFailoverListOperation() throws Exception { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //Shutdown master and expect standby to serve the list response - masterServer.stop(); - standbyServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_OK) - .content(driver.getResourceBytes("webhdfs-liststatus-success.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "LISTSTATUS") - .expect() - .log().ifError() - .statusCode(HttpStatus.SC_OK) - .content("FileStatuses.FileStatus[0].pathSuffix", is("app-logs")) - .when().get(driver.getUrl("WEBHDFS") + "/v1/"); - standbyServer.isEmpty(); - masterServer.start(); - LOG_EXIT(); - } - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testFailoverLimit() throws Exception { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //Shutdown master and expect standby to serve the list response - masterServer.stop(); - standbyServer.stop(); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "LISTSTATUS") - .expect() +// private static final long SHORT_TIMEOUT = 1000L; +// private static final long MEDIUM_TIMEOUT = 10 * SHORT_TIMEOUT; +// +// // Specifies if the test requests should go through the gateway or directly to the services. +// // This is frequently used to verify the behavior of the test both with and without the gateway. +// private static final boolean USE_GATEWAY = true; +// +// // Specifies if the test requests should be sent to mock services or the real services. +// // This is frequently used to verify the behavior of the test both with and without mock services. +// private static final boolean USE_MOCK_SERVICES = true; +// +// private static GatewayFuncTestDriver driver = new GatewayFuncTestDriver(); +// +// private static MockServer masterServer; +// +// private static MockServer standbyServer; +// +// private static int findFreePort() throws IOException { +// ServerSocket socket = new ServerSocket(0); +// int port = socket.getLocalPort(); +// socket.close(); +// return port; +// } +// +// /** +// * Creates a deployment of a gateway instance that all test methods will share. This method also creates a +// * registry of sorts for all of the services that will be used by the test methods. +// * The createTopology method is used to create the topology file that would normally be read from disk. +// * The driver.setupGateway invocation is where the creation of GATEWAY_HOME occurs. +// * <p/> +// * This would normally be done once for this suite but the failure tests start affecting each other depending +// * on the state the last 'active' url +// * +// * @throws Exception Thrown if any failure occurs. +// */ +// @Before +// public void setup() throws Exception { +// LOG_ENTER(); +// //Log.setLog(new NoOpLogger()); +// masterServer = new MockServer("master", true); +// standbyServer = new MockServer("standby", true); +// GatewayTestConfig config = new GatewayTestConfig(); +// config.setGatewayPath("gateway"); +// driver.setResourceBase(WebHdfsHaFuncTest.class); +// driver.setupLdap(findFreePort()); +// driver.setupService("WEBHDFS", "http://vm.local:50070/webhdfs", "/cluster/webhdfs", USE_MOCK_SERVICES); +// driver.setupGateway(config, "cluster", createTopology(), USE_GATEWAY); +// LOG_EXIT(); +// } +// +// @After +// public void cleanup() throws Exception { +// LOG_ENTER(); +// driver.cleanup(); +// driver.reset(); +// masterServer.reset(); +// standbyServer.reset(); +// LOG_EXIT(); +// } +// +// /** +// * Creates a topology that is deployed to the gateway instance for the test suite. +// * Note that this topology is shared by all of the test methods in this suite. +// * +// * @return A populated XML structure for a topology file. +// */ +// private static XMLTag createTopology() { +// XMLTag xml = XMLDoc.newDocument(true) +// .addRoot("topology") +// .addTag("gateway") +// .addTag("provider") +// .addTag("role").addText("webappsec") +// .addTag("name").addText("WebAppSec") +// .addTag("enabled").addText("true") +// .addTag("param") +// .addTag("name").addText("csrf.enabled") +// .addTag("value").addText("true").gotoParent().gotoParent() +// .addTag("provider") +// .addTag("role").addText("authentication") +// .addTag("name").addText("ShiroProvider") +// .addTag("enabled").addText("true") +// .addTag("param") +// .addTag("name").addText("main.ldapRealm") +// .addTag("value").addText("org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm").gotoParent() +// .addTag("param") +// .addTag("name").addText("main.ldapRealm.userDnTemplate") +// .addTag("value").addText("uid={0},ou=people,dc=hadoop,dc=apache,dc=org").gotoParent() +// .addTag("param") +// .addTag("name").addText("main.ldapRealm.contextFactory.url") +// .addTag("value").addText(driver.getLdapUrl()).gotoParent() +// .addTag("param") +// .addTag("name").addText("main.ldapRealm.contextFactory.authenticationMechanism") +// .addTag("value").addText("simple").gotoParent() +// .addTag("param") +// .addTag("name").addText("urls./**") +// .addTag("value").addText("authcBasic").gotoParent().gotoParent() +// .addTag("provider") +// .addTag("role").addText("identity-assertion") +// .addTag("enabled").addText("true") +// .addTag("name").addText("Default").gotoParent() +// .addTag("provider") +// .addTag("role").addText("authorization") +// .addTag("enabled").addText("true") +// .addTag("name").addText("AclsAuthz").gotoParent() +// .addTag("param") +// .addTag("name").addText("webhdfs-acl") +// .addTag("value").addText("hdfs;*;*").gotoParent() +// .addTag("provider") +// .addTag("role").addText("ha") +// .addTag("enabled").addText("true") +// .addTag("name").addText("HaProvider") +// .addTag("param") +// .addTag("name").addText("WEBHDFS") +// .addTag("value").addText("maxFailoverAttempts=3;failoverSleep=15;maxRetryAttempts=3;retrySleep=10;enabled=true").gotoParent() +// .gotoRoot() +// .addTag("service") +// .addTag("role").addText("WEBHDFS") +// .addTag("url").addText("http://localhost:" + masterServer.getPort() + "/webhdfs") +// .addTag("url").addText("http://localhost:" + standbyServer.getPort() + "/webhdfs").gotoParent() +// .gotoRoot(); +//// System.out.println( "GATEWAY=" + xml.toString() ); +// return xml; +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testBasicListOperation() throws IOException { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// masterServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_OK) +// .content(driver.getResourceBytes("webhdfs-liststatus-success.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "LISTSTATUS") +// .expect() // .log().ifError() - .statusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR) - .when().get(driver.getUrl("WEBHDFS") + "/v1/"); - standbyServer.start(); - masterServer.start(); - LOG_EXIT(); - } - - - @Test( timeout = MEDIUM_TIMEOUT ) - @Ignore( "KNOX-446" ) - public void testServerInStandby() throws IOException { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //make master the server that is in standby - masterServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) - .contentType("application/json"); - //standby server is 'active' in this test case and serves the list response - standbyServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_OK) - .content(driver.getResourceBytes("webhdfs-liststatus-success.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "LISTSTATUS") - .expect() - .log().ifError() - .statusCode(HttpStatus.SC_OK) - .content("FileStatuses.FileStatus[0].pathSuffix", is("app-logs")) - .when().get(driver.getUrl("WEBHDFS") + "/v1/"); - masterServer.isEmpty(); - standbyServer.isEmpty(); - LOG_EXIT(); - } - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testServerInStandbyFailoverLimit() throws IOException { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //make master the server that is in standby - masterServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) - .contentType("application/json"); - standbyServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) - .contentType("application/json"); - masterServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) - .contentType("application/json"); - standbyServer.expect() - .method("GET") - .pathInfo("/webhdfs/v1/") - .queryParam("op", "LISTSTATUS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "LISTSTATUS") - .expect() +// .statusCode(HttpStatus.SC_OK) +// .content("FileStatuses.FileStatus[0].pathSuffix", is("app-logs")) +// .when().get(driver.getUrl("WEBHDFS") + "/v1/"); +// masterServer.isEmpty(); +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// @Ignore( "KNOX-446" ) +// public void testFailoverListOperation() throws Exception { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //Shutdown master and expect standby to serve the list response +// masterServer.stop(); +// standbyServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_OK) +// .content(driver.getResourceBytes("webhdfs-liststatus-success.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "LISTSTATUS") +// .expect() // .log().ifError() - .statusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR) - .when().get(driver.getUrl("WEBHDFS") + "/v1/"); - masterServer.isEmpty(); - standbyServer.isEmpty(); - LOG_EXIT(); - } - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testServerInSafeMode() throws IOException { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //master is in safe mode - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) - .contentType("application/json"); - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_OK) - .content(driver.getResourceBytes("webhdfs-rename-safemode-off.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .expect() - .log().ifError() - .statusCode(HttpStatus.SC_OK) - .content("boolean", is(true)) - .when().post(driver.getUrl("WEBHDFS") + "/v1/user/hdfs/foo.txt"); - masterServer.isEmpty(); - LOG_EXIT(); - } - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testServerInSafeModeRetriableException() throws IOException { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //master is in safe mode - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/new") - .queryParam("op", "MKDIRS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-mkdirs-safemode.json")) - .contentType("application/json"); - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/new") - .queryParam("op", "MKDIRS") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_OK) - .content(driver.getResourceBytes("webhdfs-rename-safemode-off.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "MKDIRS") - .expect() - .log().ifError() - .statusCode(HttpStatus.SC_OK) - .content("boolean", is(true)) - .when().post(driver.getUrl("WEBHDFS") + "/v1/user/hdfs/new"); - masterServer.isEmpty(); - LOG_EXIT(); - } - - @Test( timeout = MEDIUM_TIMEOUT ) - public void testServerInSafeModeRetryLimit() throws IOException { - LOG_ENTER(); - String username = "hdfs"; - String password = "hdfs-password"; - //master is in safe mode - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) - .contentType("application/json"); - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) - .contentType("application/json"); - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) - .contentType("application/json"); - masterServer.expect() - .method("POST") - .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .queryParam("user.name", username) - .respond() - .status(HttpStatus.SC_FORBIDDEN) - .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) - .contentType("application/json"); - given() - .auth().preemptive().basic(username, password) - .header("X-XSRF-Header", "jksdhfkhdsf") - .queryParam("op", "RENAME") - .queryParam("destination", "/user/hdfs/foo.txt") - .expect() +// .statusCode(HttpStatus.SC_OK) +// .content("FileStatuses.FileStatus[0].pathSuffix", is("app-logs")) +// .when().get(driver.getUrl("WEBHDFS") + "/v1/"); +// standbyServer.isEmpty(); +// masterServer.start(); +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testFailoverLimit() throws Exception { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //Shutdown master and expect standby to serve the list response +// masterServer.stop(); +// standbyServer.stop(); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "LISTSTATUS") +// .expect() +//// .log().ifError() +// .statusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR) +// .when().get(driver.getUrl("WEBHDFS") + "/v1/"); +// standbyServer.start(); +// masterServer.start(); +// LOG_EXIT(); +// } +// +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// @Ignore( "KNOX-446" ) +// public void testServerInStandby() throws IOException { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //make master the server that is in standby +// masterServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) +// .contentType("application/json"); +// //standby server is 'active' in this test case and serves the list response +// standbyServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_OK) +// .content(driver.getResourceBytes("webhdfs-liststatus-success.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "LISTSTATUS") +// .expect() +// .log().ifError() +// .statusCode(HttpStatus.SC_OK) +// .content("FileStatuses.FileStatus[0].pathSuffix", is("app-logs")) +// .when().get(driver.getUrl("WEBHDFS") + "/v1/"); +// masterServer.isEmpty(); +// standbyServer.isEmpty(); +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testServerInStandbyFailoverLimit() throws IOException { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //make master the server that is in standby +// masterServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) +// .contentType("application/json"); +// standbyServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) +// .contentType("application/json"); +// masterServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) +// .contentType("application/json"); +// standbyServer.expect() +// .method("GET") +// .pathInfo("/webhdfs/v1/") +// .queryParam("op", "LISTSTATUS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-liststatus-standby.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "LISTSTATUS") +// .expect() +//// .log().ifError() +// .statusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR) +// .when().get(driver.getUrl("WEBHDFS") + "/v1/"); +// masterServer.isEmpty(); +// standbyServer.isEmpty(); +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testServerInSafeMode() throws IOException { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //master is in safe mode +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) +// .contentType("application/json"); +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_OK) +// .content(driver.getResourceBytes("webhdfs-rename-safemode-off.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .expect() +// .log().ifError() +// .statusCode(HttpStatus.SC_OK) +// .content("boolean", is(true)) +// .when().post(driver.getUrl("WEBHDFS") + "/v1/user/hdfs/foo.txt"); +// masterServer.isEmpty(); +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testServerInSafeModeRetriableException() throws IOException { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //master is in safe mode +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/new") +// .queryParam("op", "MKDIRS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-mkdirs-safemode.json")) +// .contentType("application/json"); +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/new") +// .queryParam("op", "MKDIRS") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_OK) +// .content(driver.getResourceBytes("webhdfs-rename-safemode-off.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "MKDIRS") +// .expect() // .log().ifError() - .statusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR) - .when().post(driver.getUrl("WEBHDFS") + "/v1/user/hdfs/foo.txt"); - masterServer.isEmpty(); - LOG_EXIT(); - } +// .statusCode(HttpStatus.SC_OK) +// .content("boolean", is(true)) +// .when().post(driver.getUrl("WEBHDFS") + "/v1/user/hdfs/new"); +// masterServer.isEmpty(); +// LOG_EXIT(); +// } +// +// @Test( timeout = MEDIUM_TIMEOUT ) +// public void testServerInSafeModeRetryLimit() throws IOException { +// LOG_ENTER(); +// String username = "hdfs"; +// String password = "hdfs-password"; +// //master is in safe mode +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) +// .contentType("application/json"); +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) +// .contentType("application/json"); +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) +// .contentType("application/json"); +// masterServer.expect() +// .method("POST") +// .pathInfo("/webhdfs/v1/user/hdfs/foo.txt") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .queryParam("user.name", username) +// .respond() +// .status(HttpStatus.SC_FORBIDDEN) +// .content(driver.getResourceBytes("webhdfs-rename-safemode.json")) +// .contentType("application/json"); +// given() +// .auth().preemptive().basic(username, password) +// .header("X-XSRF-Header", "jksdhfkhdsf") +// .queryParam("op", "RENAME") +// .queryParam("destination", "/user/hdfs/foo.txt") +// .expect() +//// .log().ifError() +// .statusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR) +// .when().post(driver.getUrl("WEBHDFS") + "/v1/user/hdfs/foo.txt"); +// masterServer.isEmpty(); +// LOG_EXIT(); +// } }
