Search in sources :

Example 1 with User

use of org.voltdb.catalog.User in project voltdb by VoltDB.

the class TestCatalogUtil method testUserRoles.

public void testUserRoles() throws Exception {
    final String depRole = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" + "<deployment>" + "<security enabled=\"true\"/>" + "<cluster hostcount='3' kfactor='1' sitesperhost='2'/>" + "<paths><voltdbroot path=\"/tmp/" + System.getProperty("user.name") + "\" /></paths>" + "<httpd port='0'>" + "<jsonapi enabled='true'/>" + "</httpd>" + "<users> " + "<user name=\"admin\" password=\"admin\" roles=\"administrator\"/>" + "<user name=\"joe\" password=\"aaa\" roles=\"lotre,lodue,louno,dontexist\"/>" + "<user name=\"jane\" password=\"bbb\" roles=\"launo,ladue,latre,dontexist\"/>" + "</users>" + "</deployment>";
    catalog_db.getGroups().add("louno");
    catalog_db.getGroups().add("lodue");
    catalog_db.getGroups().add("lotre");
    catalog_db.getGroups().add("launo");
    catalog_db.getGroups().add("ladue");
    catalog_db.getGroups().add("latre");
    final File tmpRole = VoltProjectBuilder.writeStringToTempFile(depRole);
    CatalogUtil.compileDeployment(catalog, tmpRole.getPath(), false);
    Database db = catalog.getClusters().get("cluster").getDatabases().get("database");
    User joe = db.getUsers().get("joe");
    assertNotNull(joe);
    assertNotNull(joe.getGroups().get("louno"));
    assertNotNull(joe.getGroups().get("lodue"));
    assertNotNull(joe.getGroups().get("lotre"));
    assertNull(joe.getGroups().get("latre"));
    assertNull(joe.getGroups().get("dontexist"));
    User jane = db.getUsers().get("jane");
    assertNotNull(jane);
    assertNotNull(jane.getGroups().get("launo"));
    assertNotNull(jane.getGroups().get("ladue"));
    assertNotNull(jane.getGroups().get("latre"));
    assertNull(jane.getGroups().get("lotre"));
    assertNull(joe.getGroups().get("dontexist"));
}
Also used : User(org.voltdb.catalog.User) Database(org.voltdb.catalog.Database) File(java.io.File)

Example 2 with User

use of org.voltdb.catalog.User in project voltdb by VoltDB.

the class TestCatalogUtil method testScrambledPasswords.

public void testScrambledPasswords() throws Exception {
    final String depRole = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" + "<deployment>" + "<security enabled=\"true\"/>" + "<cluster hostcount='3' kfactor='1' sitesperhost='2'/>" + "<paths><voltdbroot path=\"/tmp/" + System.getProperty("user.name") + "\" /></paths>" + "<httpd port='0'>" + "<jsonapi enabled='true'/>" + "</httpd>" + "<users> " + "<user name=\"joe\" password=\"D033E22AE348AEB5660FC2140AEC35850C4DA9978C6976E5B5410415BDE908BD4DEE15DFB167A9C873FC4BB8A81F6F2AB448A918\" plaintext=\"false\" roles=\"louno,administrator\"/>" + "</users>" + "</deployment>";
    catalog_db.getGroups().add("louno");
    final File tmpRole = VoltProjectBuilder.writeStringToTempFile(depRole);
    CatalogUtil.compileDeployment(catalog, tmpRole.getPath(), false);
    Database db = catalog.getClusters().get("cluster").getDatabases().get("database");
    User joe = db.getUsers().get("joe");
    assertNotNull(joe);
    assertNotNull(joe.getGroups().get("louno"));
    assertNotNull(joe.getShadowpassword());
}
Also used : User(org.voltdb.catalog.User) Database(org.voltdb.catalog.Database) File(java.io.File)

Example 3 with User

use of org.voltdb.catalog.User in project voltdb by VoltDB.

the class SystemInformation method populateDeploymentProperties.

public static VoltTable populateDeploymentProperties(Cluster cluster, Database database, ClusterSettings clusterSettings, NodeSettings nodeSettings) {
    VoltTable results = new VoltTable(clusterInfoSchema);
    // it would be awesome if these property names could come
    // from the RestApiDescription.xml (or the equivalent thereof) someday --izzy
    results.addRow("voltdbroot", VoltDB.instance().getVoltDBRootPath());
    Deployment deploy = cluster.getDeployment().get("deployment");
    results.addRow("hostcount", Integer.toString(clusterSettings.hostcount()));
    results.addRow("kfactor", Integer.toString(deploy.getKfactor()));
    results.addRow("sitesperhost", Integer.toString(nodeSettings.getLocalSitesCount()));
    String http_enabled = "false";
    int http_port = VoltDB.instance().getConfig().m_httpPort;
    if (http_port != -1 && http_port != Integer.MAX_VALUE) {
        http_enabled = "true";
        results.addRow("httpport", Integer.toString(http_port));
    }
    results.addRow("httpenabled", http_enabled);
    String json_enabled = "false";
    if (cluster.getJsonapi()) {
        json_enabled = "true";
    }
    results.addRow("jsonenabled", json_enabled);
    SnapshotSchedule snaps = database.getSnapshotschedule().get("default");
    String snap_enabled = "false";
    if (snaps != null && snaps.getEnabled()) {
        snap_enabled = "true";
        String snap_freq = Integer.toString(snaps.getFrequencyvalue()) + snaps.getFrequencyunit();
        results.addRow("snapshotpath", VoltDB.instance().getSnapshotPath());
        results.addRow("snapshotprefix", snaps.getPrefix());
        results.addRow("snapshotfrequency", snap_freq);
        results.addRow("snapshotretain", Integer.toString(snaps.getRetain()));
    }
    results.addRow("snapshotenabled", snap_enabled);
    for (Connector export_conn : database.getConnectors()) {
        if (export_conn != null && export_conn.getEnabled()) {
            results.addRow("exportoverflowpath", VoltDB.instance().getExportOverflowPath());
            break;
        }
    }
    results.addRow("export", Boolean.toString(CatalogUtil.isExportEnabled()));
    String partition_detect_enabled = "false";
    if (cluster.getNetworkpartition()) {
        partition_detect_enabled = "true";
    }
    results.addRow("partitiondetection", partition_detect_enabled);
    results.addRow("heartbeattimeout", Integer.toString(cluster.getHeartbeattimeout()));
    results.addRow("adminport", Integer.toString(VoltDB.instance().getConfig().m_adminPort));
    String command_log_enabled = "false";
    // log name is MAGIC, you knoooow
    CommandLog command_log = cluster.getLogconfig().get("log");
    if (command_log.getEnabled()) {
        command_log_enabled = "true";
        String command_log_mode = "async";
        if (command_log.getSynchronous()) {
            command_log_mode = "sync";
        }
        String command_log_path = VoltDB.instance().getCommandLogPath();
        String command_log_snaps = VoltDB.instance().getCommandLogSnapshotPath();
        String command_log_fsync_interval = Integer.toString(command_log.getFsyncinterval());
        String command_log_max_txns = Integer.toString(command_log.getMaxtxns());
        results.addRow("commandlogmode", command_log_mode);
        results.addRow("commandlogfreqtime", command_log_fsync_interval);
        results.addRow("commandlogfreqtxns", command_log_max_txns);
        results.addRow("commandlogpath", command_log_path);
        results.addRow("commandlogsnapshotpath", command_log_snaps);
    }
    results.addRow("commandlogenabled", command_log_enabled);
    String users = "";
    for (User user : database.getUsers()) {
        users += addEscapes(user.getTypeName());
        if (user.getGroups() != null && user.getGroups().size() > 0) {
            users += ":";
            for (GroupRef gref : user.getGroups()) {
                users += addEscapes(gref.getGroup().getTypeName());
                users += ",";
            }
            users = users.substring(0, users.length() - 1);
        }
        users += ";";
    }
    results.addRow("users", users);
    // Add system setting information also
    // the attribute names follows the above naming rule
    Systemsettings sysSettings = deploy.getSystemsettings().get("systemsettings");
    results.addRow("elasticduration", Integer.toString(sysSettings.getElasticduration()));
    results.addRow("elasticthroughput", Integer.toString(sysSettings.getElasticthroughput()));
    results.addRow("snapshotpriority", Integer.toString(sysSettings.getSnapshotpriority()));
    results.addRow("temptablesmaxsize", Integer.toString(sysSettings.getTemptablemaxsize()));
    results.addRow("querytimeout", Integer.toString(sysSettings.getQuerytimeout()));
    return results;
}
Also used : Connector(org.voltdb.catalog.Connector) User(org.voltdb.catalog.User) Systemsettings(org.voltdb.catalog.Systemsettings) CommandLog(org.voltdb.catalog.CommandLog) Deployment(org.voltdb.catalog.Deployment) SnapshotSchedule(org.voltdb.catalog.SnapshotSchedule) GroupRef(org.voltdb.catalog.GroupRef) VoltTable(org.voltdb.VoltTable)

Aggregations

User (org.voltdb.catalog.User)3 File (java.io.File)2 Database (org.voltdb.catalog.Database)2 VoltTable (org.voltdb.VoltTable)1 CommandLog (org.voltdb.catalog.CommandLog)1 Connector (org.voltdb.catalog.Connector)1 Deployment (org.voltdb.catalog.Deployment)1 GroupRef (org.voltdb.catalog.GroupRef)1 SnapshotSchedule (org.voltdb.catalog.SnapshotSchedule)1 Systemsettings (org.voltdb.catalog.Systemsettings)1