Search in sources :

Example 1 with MasterNode

use of org.apache.asterix.event.schema.cluster.MasterNode in project asterixdb by apache.

the class QueryTranslatorTest method test.

@Test
public void test() throws Exception {
    List<Statement> statements = new ArrayList<>();
    SessionOutput mockSessionOutput = mock(SessionOutput.class);
    RunStatement mockRunStatement = mock(RunStatement.class);
    // Mocks AppContextInfo.
    CcApplicationContext mockAsterixAppContextInfo = mock(CcApplicationContext.class);
    ExternalProperties mockAsterixExternalProperties = mock(ExternalProperties.class);
    when(mockAsterixAppContextInfo.getExternalProperties()).thenReturn(mockAsterixExternalProperties);
    when(mockAsterixExternalProperties.getAPIServerPort()).thenReturn(19002);
    // Mocks AsterixClusterProperties.
    Cluster mockCluster = mock(Cluster.class);
    MasterNode mockMasterNode = mock(MasterNode.class);
    ClusterProperties mockClusterProperties = mock(ClusterProperties.class);
    setFinalStaticField(ClusterProperties.class.getDeclaredField("INSTANCE"), mockClusterProperties);
    when(mockClusterProperties.getCluster()).thenReturn(mockCluster);
    when(mockCluster.getMasterNode()).thenReturn(mockMasterNode);
    when(mockMasterNode.getClientIp()).thenReturn("127.0.0.1");
    IStatementExecutor aqlTranslator = new DefaultStatementExecutorFactory().create(mockAsterixAppContextInfo, statements, mockSessionOutput, new AqlCompilationProvider(), new StorageComponentProvider());
    List<String> parameters = new ArrayList<>();
    parameters.add("examples/pregelix-example-jar-with-dependencies.jar");
    parameters.add("org.apache.pregelix.example.PageRankVertex");
    parameters.add("-ip 10.0.2.15 -port 3199");
    when(mockRunStatement.getParameters()).thenReturn(parameters);
    // Test a customer command without "-cust-prop".
    List<String> cmds = (List<String>) PA.invokeMethod(aqlTranslator, "constructPregelixCommand(org.apache.asterix.lang.common.statement.RunStatement," + "String,String,String,String)", mockRunStatement, "fromDataverse", "fromDataset", "toDataverse", "toDataset");
    List<String> expectedCmds = Arrays.asList(new String[] { "bin/pregelix", "examples/pregelix-example-jar-with-dependencies.jar", "org.apache.pregelix.example.PageRankVertex", "-ip", "10.0.2.15", "-port", "3199", "-cust-prop", "pregelix.asterixdb.url=http://127.0.0.1:19002,pregelix.asterixdb.source=true,pregelix.asterixdb.sink=true,pregelix.asterixdb.input.dataverse=fromDataverse,pregelix.asterixdb.input.dataset=fromDataset,pregelix.asterixdb.output.dataverse=toDataverse,pregelix.asterixdb.output.dataset=toDataset,pregelix.asterixdb.output.cleanup=false,pregelix.asterixdb.input.converterclass=org.apache.pregelix.example.converter.VLongIdInputVertexConverter,pregelix.asterixdb.output.converterclass=org.apache.pregelix.example.converter.VLongIdOutputVertexConverter" });
    Assert.assertEquals(cmds, expectedCmds);
    parameters.remove(parameters.size() - 1);
    parameters.add("-ip 10.0.2.15 -port 3199 -cust-prop " + "pregelix.asterixdb.input.converterclass=org.apache.pregelix.example.converter.TestInputVertexConverter," + "pregelix.asterixdb.output.converterclass=org.apache.pregelix.example.converter.TestOutputVertexConverter");
    // Test a customer command with "-cust-prop".
    cmds = (List<String>) PA.invokeMethod(aqlTranslator, "constructPregelixCommand(org.apache.asterix.lang.common.statement.RunStatement," + "String,String,String,String)", mockRunStatement, "fromDataverse", "fromDataset", "toDataverse", "toDataset");
    expectedCmds = Arrays.asList(new String[] { "bin/pregelix", "examples/pregelix-example-jar-with-dependencies.jar", "org.apache.pregelix.example.PageRankVertex", "-ip", "10.0.2.15", "-port", "3199", "-cust-prop", "pregelix.asterixdb.url=http://127.0.0.1:19002,pregelix.asterixdb.source=true,pregelix.asterixdb.sink=true,pregelix.asterixdb.input.dataverse=fromDataverse,pregelix.asterixdb.input.dataset=fromDataset,pregelix.asterixdb.output.dataverse=toDataverse,pregelix.asterixdb.output.dataset=toDataset,pregelix.asterixdb.output.cleanup=false,pregelix.asterixdb.input.converterclass=org.apache.pregelix.example.converter.TestInputVertexConverter,pregelix.asterixdb.output.converterclass=org.apache.pregelix.example.converter.TestOutputVertexConverter" });
    Assert.assertEquals(cmds, expectedCmds);
}
Also used : RunStatement(org.apache.asterix.lang.common.statement.RunStatement) MasterNode(org.apache.asterix.event.schema.cluster.MasterNode) AqlCompilationProvider(org.apache.asterix.compiler.provider.AqlCompilationProvider) RunStatement(org.apache.asterix.lang.common.statement.RunStatement) Statement(org.apache.asterix.lang.common.base.Statement) ArrayList(java.util.ArrayList) ExternalProperties(org.apache.asterix.common.config.ExternalProperties) Cluster(org.apache.asterix.event.schema.cluster.Cluster) StorageComponentProvider(org.apache.asterix.file.StorageComponentProvider) IStatementExecutor(org.apache.asterix.translator.IStatementExecutor) CcApplicationContext(org.apache.asterix.runtime.utils.CcApplicationContext) SessionOutput(org.apache.asterix.translator.SessionOutput) DefaultStatementExecutorFactory(org.apache.asterix.app.translator.DefaultStatementExecutorFactory) ClusterProperties(org.apache.asterix.common.config.ClusterProperties) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Example 2 with MasterNode

use of org.apache.asterix.event.schema.cluster.MasterNode in project asterixdb by apache.

the class ValidateConfig method validateCluster.

public boolean validateCluster(String clusterPath) throws Exception {
    boolean valid = true;
    Cluster cluster = null;
    File f = new File(clusterPath);
    List<String> ipAddresses = new ArrayList<String>();
    if (!f.exists() || !f.isFile()) {
        LOGGER.error(" Invalid path " + f.getAbsolutePath() + ERROR);
        valid = false;
    } else {
        cluster = EventUtil.getCluster(clusterPath);
        valid = valid & validateClusterProperties(cluster);
        Set<String> servers = new HashSet<String>();
        Set<String> serverIds = new HashSet<String>();
        servers.add(cluster.getMasterNode().getClusterIp());
        serverIds.add(cluster.getMasterNode().getId());
        MasterNode masterNode = cluster.getMasterNode();
        Node master = new Node(masterNode.getId(), masterNode.getClusterIp(), masterNode.getJavaHome(), masterNode.getLogDir(), null, null, null, null);
        ipAddresses.add(masterNode.getClusterIp());
        valid = valid & validateNodeConfiguration(master, cluster);
        for (Node node : cluster.getNode()) {
            servers.add(node.getClusterIp());
            if (serverIds.contains(node.getId())) {
                valid = false;
                LOGGER.error("Duplicate node id :" + node.getId() + ERROR);
            } else {
                valid = valid & validateNodeConfiguration(node, cluster);
                if (!ipAddresses.contains(node.getClusterIp())) {
                    ipAddresses.add(node.getClusterIp());
                }
            }
        }
        valid = valid & validateReplicationProperties(cluster);
    }
    if (valid) {
        String username = cluster.getUsername();
        if (username == null) {
            username = System.getProperty("user.name");
        }
        valid = checkPasswordLessSSHLogin(username, ipAddresses);
    }
    return valid;
}
Also used : MasterNode(org.apache.asterix.event.schema.cluster.MasterNode) Node(org.apache.asterix.event.schema.cluster.Node) MasterNode(org.apache.asterix.event.schema.cluster.MasterNode) ArrayList(java.util.ArrayList) Cluster(org.apache.asterix.event.schema.cluster.Cluster) File(java.io.File) HashSet(java.util.HashSet)

Aggregations

ArrayList (java.util.ArrayList)2 Cluster (org.apache.asterix.event.schema.cluster.Cluster)2 MasterNode (org.apache.asterix.event.schema.cluster.MasterNode)2 File (java.io.File)1 HashSet (java.util.HashSet)1 List (java.util.List)1 DefaultStatementExecutorFactory (org.apache.asterix.app.translator.DefaultStatementExecutorFactory)1 ClusterProperties (org.apache.asterix.common.config.ClusterProperties)1 ExternalProperties (org.apache.asterix.common.config.ExternalProperties)1 AqlCompilationProvider (org.apache.asterix.compiler.provider.AqlCompilationProvider)1 Node (org.apache.asterix.event.schema.cluster.Node)1 StorageComponentProvider (org.apache.asterix.file.StorageComponentProvider)1 Statement (org.apache.asterix.lang.common.base.Statement)1 RunStatement (org.apache.asterix.lang.common.statement.RunStatement)1 CcApplicationContext (org.apache.asterix.runtime.utils.CcApplicationContext)1 IStatementExecutor (org.apache.asterix.translator.IStatementExecutor)1 SessionOutput (org.apache.asterix.translator.SessionOutput)1 Test (org.junit.Test)1