mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
finished administrative function ops
This commit is contained in:
parent
f1ef3a24c1
commit
3f2a304b83
@ -74,6 +74,10 @@ public class DataApiOpMapper implements OpMapper<DataApiBaseOp> {
|
|||||||
case create_database -> new DataApiCreateDatabaseOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
case create_database -> new DataApiCreateDatabaseOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
case list_databases -> new DataApiListDatabasesOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
case list_databases -> new DataApiListDatabasesOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
case drop_database -> new DataApiDropDatabaseOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
case drop_database -> new DataApiDropDatabaseOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
|
case get_database_info -> new DataApiGetDatabaseInfoOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
|
case create_namespace -> new DataApiCreateNamespaceOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
|
case list_namespaces -> new DataApiListNamespacesOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
|
case drop_namespace -> new DataApiDropNamespaceOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ package io.nosqlbench.adapter.dataapi;
|
|||||||
import com.datastax.astra.client.DataAPIClient;
|
import com.datastax.astra.client.DataAPIClient;
|
||||||
import com.datastax.astra.client.Database;
|
import com.datastax.astra.client.Database;
|
||||||
import com.datastax.astra.client.admin.AstraDBAdmin;
|
import com.datastax.astra.client.admin.AstraDBAdmin;
|
||||||
|
import com.datastax.astra.client.admin.DatabaseAdmin;
|
||||||
import io.nosqlbench.nb.api.config.standard.ConfigModel;
|
import io.nosqlbench.nb.api.config.standard.ConfigModel;
|
||||||
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
|
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
|
||||||
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
|
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
|
||||||
@ -32,6 +33,7 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class DataApiSpace {
|
public class DataApiSpace {
|
||||||
private final static Logger logger = LogManager.getLogger(DataApiSpace.class);
|
private final static Logger logger = LogManager.getLogger(DataApiSpace.class);
|
||||||
@ -45,6 +47,7 @@ public class DataApiSpace {
|
|||||||
|
|
||||||
private String superUserToken;
|
private String superUserToken;
|
||||||
private AstraDBAdmin admin;
|
private AstraDBAdmin admin;
|
||||||
|
private DatabaseAdmin namespaceAdmin;
|
||||||
|
|
||||||
public DataApiSpace(String name, NBConfiguration cfg) {
|
public DataApiSpace(String name, NBConfiguration cfg) {
|
||||||
this.config = cfg;
|
this.config = cfg;
|
||||||
@ -68,6 +71,10 @@ public class DataApiSpace {
|
|||||||
return admin;
|
return admin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DatabaseAdmin getNamespaceAdmin() {
|
||||||
|
return namespaceAdmin;
|
||||||
|
}
|
||||||
|
|
||||||
private void createClient() {
|
private void createClient() {
|
||||||
this.dataAPIClient = new DataAPIClient(astraToken);
|
this.dataAPIClient = new DataAPIClient(astraToken);
|
||||||
if (namespace != null) {
|
if (namespace != null) {
|
||||||
@ -80,6 +87,7 @@ public class DataApiSpace {
|
|||||||
} else {
|
} else {
|
||||||
this.admin = dataAPIClient.getAdmin();
|
this.admin = dataAPIClient.getAdmin();
|
||||||
}
|
}
|
||||||
|
this.namespaceAdmin = database.getDatabaseAdmin();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setApiEndpoint() {
|
private void setApiEndpoint() {
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||||
|
|
||||||
|
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiCreateNamespaceOp;
|
||||||
|
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.util.function.LongFunction;
|
||||||
|
|
||||||
|
public class DataApiCreateNamespaceOpDispenser extends DataApiOpDispenser {
|
||||||
|
private static final Logger logger = LogManager.getLogger(DataApiCreateNamespaceOpDispenser.class);
|
||||||
|
private final LongFunction<DataApiCreateNamespaceOp> opFunction;
|
||||||
|
|
||||||
|
public DataApiCreateNamespaceOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||||
|
super(adapter, op, targetFunction);
|
||||||
|
this.opFunction = createOpFunction(op);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LongFunction<DataApiCreateNamespaceOp> createOpFunction(ParsedOp op) {
|
||||||
|
return (l) -> new DataApiCreateNamespaceOp(
|
||||||
|
spaceFunction.apply(l).getDatabase(),
|
||||||
|
spaceFunction.apply(l).getNamespaceAdmin(),
|
||||||
|
targetFunction.apply(l)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataApiBaseOp getOp(long value) {
|
||||||
|
return opFunction.apply(value);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||||
|
|
||||||
|
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiCreateNamespaceOp;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiDropNamespaceOp;
|
||||||
|
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.util.function.LongFunction;
|
||||||
|
|
||||||
|
public class DataApiDropNamespaceOpDispenser extends DataApiOpDispenser {
|
||||||
|
private static final Logger logger = LogManager.getLogger(DataApiDropNamespaceOpDispenser.class);
|
||||||
|
private final LongFunction<DataApiDropNamespaceOp> opFunction;
|
||||||
|
|
||||||
|
public DataApiDropNamespaceOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||||
|
super(adapter, op, targetFunction);
|
||||||
|
this.opFunction = createOpFunction(op);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LongFunction<DataApiDropNamespaceOp> createOpFunction(ParsedOp op) {
|
||||||
|
return (l) -> new DataApiDropNamespaceOp(
|
||||||
|
spaceFunction.apply(l).getDatabase(),
|
||||||
|
spaceFunction.apply(l).getNamespaceAdmin(),
|
||||||
|
targetFunction.apply(l)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataApiBaseOp getOp(long value) {
|
||||||
|
return opFunction.apply(value);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||||
|
|
||||||
|
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiGetDatabaseInfoOp;
|
||||||
|
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.function.LongFunction;
|
||||||
|
|
||||||
|
public class DataApiGetDatabaseInfoOpDispenser extends DataApiOpDispenser {
|
||||||
|
private static final Logger logger = LogManager.getLogger(DataApiGetDatabaseInfoOpDispenser.class);
|
||||||
|
private final LongFunction<DataApiGetDatabaseInfoOp> opFunction;
|
||||||
|
|
||||||
|
public DataApiGetDatabaseInfoOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||||
|
super(adapter, op, targetFunction);
|
||||||
|
this.opFunction = createOpFunction(op);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LongFunction<DataApiGetDatabaseInfoOp> createOpFunction(ParsedOp op) {
|
||||||
|
return (l) -> new DataApiGetDatabaseInfoOp(
|
||||||
|
spaceFunction.apply(l).getDatabase(),
|
||||||
|
spaceFunction.apply(l).getAdmin(),
|
||||||
|
UUID.fromString(targetFunction.apply(l))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataApiBaseOp getOp(long value) {
|
||||||
|
return opFunction.apply(value);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||||
|
|
||||||
|
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||||
|
import io.nosqlbench.adapter.dataapi.ops.DataApiListNamespacesOp;
|
||||||
|
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.util.function.LongFunction;
|
||||||
|
|
||||||
|
public class DataApiListNamespacesOpDispenser extends DataApiOpDispenser {
|
||||||
|
private static final Logger logger = LogManager.getLogger(DataApiListNamespacesOpDispenser.class);
|
||||||
|
private final LongFunction<DataApiListNamespacesOp> opFunction;
|
||||||
|
|
||||||
|
public DataApiListNamespacesOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||||
|
super(adapter, op, targetFunction);
|
||||||
|
this.opFunction = createOpFunction(op);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LongFunction<DataApiListNamespacesOp> createOpFunction(ParsedOp op) {
|
||||||
|
return (l) -> new DataApiListNamespacesOp(
|
||||||
|
spaceFunction.apply(l).getDatabase(),
|
||||||
|
spaceFunction.apply(l).getNamespaceAdmin()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataApiBaseOp getOp(long value) {
|
||||||
|
return opFunction.apply(value);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.ops;
|
||||||
|
|
||||||
|
import com.datastax.astra.client.Database;
|
||||||
|
import com.datastax.astra.client.admin.AstraDBAdmin;
|
||||||
|
import com.datastax.astra.client.admin.DatabaseAdmin;
|
||||||
|
|
||||||
|
public class DataApiCreateNamespaceOp extends DataApiDBAdminOp {
|
||||||
|
private final String namespace;
|
||||||
|
|
||||||
|
public DataApiCreateNamespaceOp(Database db, DatabaseAdmin admin, String namespace) {
|
||||||
|
super(db, admin);
|
||||||
|
this.namespace = namespace;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object apply(long value) {
|
||||||
|
admin.createNamespace(namespace);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.ops;
|
||||||
|
|
||||||
|
import com.datastax.astra.client.Database;
|
||||||
|
import com.datastax.astra.client.admin.AstraDBAdmin;
|
||||||
|
import com.datastax.astra.client.admin.DatabaseAdmin;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
public abstract class DataApiDBAdminOp extends DataApiBaseOp {
|
||||||
|
protected static final Logger logger = LogManager.getLogger(DataApiDBAdminOp.class);
|
||||||
|
protected final DatabaseAdmin admin;
|
||||||
|
|
||||||
|
public DataApiDBAdminOp(Database db, DatabaseAdmin admin) {
|
||||||
|
super(db);
|
||||||
|
this.admin = admin;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.ops;
|
||||||
|
|
||||||
|
import com.datastax.astra.client.Database;
|
||||||
|
import com.datastax.astra.client.admin.DatabaseAdmin;
|
||||||
|
|
||||||
|
public class DataApiDropNamespaceOp extends DataApiDBAdminOp {
|
||||||
|
private final String namespace;
|
||||||
|
|
||||||
|
public DataApiDropNamespaceOp(Database db, DatabaseAdmin admin, String namespace) {
|
||||||
|
super(db, admin);
|
||||||
|
this.namespace = namespace;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object apply(long value) {
|
||||||
|
admin.dropNamespace(namespace);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.ops;
|
||||||
|
|
||||||
|
import com.datastax.astra.client.Database;
|
||||||
|
import com.datastax.astra.client.admin.AstraDBAdmin;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class DataApiGetDatabaseInfoOp extends DataApiAdminOp {
|
||||||
|
private final UUID uuid;
|
||||||
|
|
||||||
|
public DataApiGetDatabaseInfoOp(Database db, AstraDBAdmin admin, UUID uuid) {
|
||||||
|
super(db, admin);
|
||||||
|
this.uuid = uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object apply(long value) {
|
||||||
|
return admin.getDatabaseInfo(uuid);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.adapter.dataapi.ops;
|
||||||
|
|
||||||
|
import com.datastax.astra.client.Database;
|
||||||
|
import com.datastax.astra.client.admin.DatabaseAdmin;
|
||||||
|
|
||||||
|
public class DataApiListNamespacesOp extends DataApiDBAdminOp {
|
||||||
|
|
||||||
|
public DataApiListNamespacesOp(Database db, DatabaseAdmin admin) {
|
||||||
|
super(db, admin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object apply(long value) {
|
||||||
|
return admin.listNamespaceNames();
|
||||||
|
}
|
||||||
|
}
|
@ -45,4 +45,8 @@ public enum DataApiOpType {
|
|||||||
create_database,
|
create_database,
|
||||||
list_databases,
|
list_databases,
|
||||||
drop_database,
|
drop_database,
|
||||||
|
get_database_info,
|
||||||
|
create_namespace,
|
||||||
|
list_namespaces,
|
||||||
|
drop_namespace,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user