Search in sources :

Example 1 with DriverAdapter

use of io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter in project nosqlbench by nosqlbench.

the class ActivityTypeLoader method getDriverAdapter.

private Optional<ActivityType> getDriverAdapter(String activityTypeName, ActivityDef activityDef) {
    Optional<DriverAdapter> oda = DRIVERADAPTER_SPI_FINDER.getOptionally(activityTypeName);
    if (oda.isPresent()) {
        DriverAdapter<?, ?> driverAdapter = oda.get();
        activityDef.getParams().remove("driver");
        if (driverAdapter instanceof NBConfigurable) {
            NBConfigModel cfgModel = ((NBConfigurable) driverAdapter).getConfigModel();
            Optional<String> op_yaml_loc = activityDef.getParams().getOptionalString("yaml", "workload");
            if (op_yaml_loc.isPresent()) {
                Map<String, Object> disposable = new LinkedHashMap<>(activityDef.getParams());
                StmtsDocList workload = StatementsLoader.loadPath(logger, op_yaml_loc.get(), disposable, "activities");
                cfgModel = cfgModel.add(workload.getConfigModel());
            }
            NBConfiguration cfg = cfgModel.apply(activityDef.getParams());
            ((NBConfigurable) driverAdapter).applyConfig(cfg);
        }
        ActivityType activityType = new StandardActivityType<>(driverAdapter, activityDef);
        return Optional.of(activityType);
    } else {
        return Optional.empty();
    }
}
Also used : NBConfigurable(io.nosqlbench.nb.api.config.standard.NBConfigurable) StandardActivityType(io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType) StandardActivityType(io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType) ActivityType(io.nosqlbench.engine.api.activityapi.core.ActivityType) NBConfiguration(io.nosqlbench.nb.api.config.standard.NBConfiguration) StmtsDocList(io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList) DriverAdapter(io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter) NBConfigModel(io.nosqlbench.nb.api.config.standard.NBConfigModel)

Aggregations

ActivityType (io.nosqlbench.engine.api.activityapi.core.ActivityType)1 StmtsDocList (io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList)1 DriverAdapter (io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter)1 StandardActivityType (io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType)1 NBConfigModel (io.nosqlbench.nb.api.config.standard.NBConfigModel)1 NBConfigurable (io.nosqlbench.nb.api.config.standard.NBConfigurable)1 NBConfiguration (io.nosqlbench.nb.api.config.standard.NBConfiguration)1