package org.teiid.test.admin; import java.util.EnumSet; import java.util.List; import java.util.Properties; import org.teiid.adminapi.Admin; import org.teiid.adminapi.Admin.SchemaObjectType; import org.teiid.adminapi.Admin.TranlatorPropertyType; import org.teiid.adminapi.AdminException; import org.teiid.adminapi.AdminFactory; import org.teiid.adminapi.CacheStatistics; import org.teiid.adminapi.DataPolicy; import org.teiid.adminapi.EngineStatistics; import org.teiid.adminapi.Model; import org.teiid.adminapi.PropertyDefinition; import org.teiid.adminapi.Request; import org.teiid.adminapi.Session; import org.teiid.adminapi.Transaction; import org.teiid.adminapi.VDB; import org.teiid.adminapi.WorkerPoolStatistics; import org.teiid.adminapi.VDB.ConnectionType; import org.teiid.adminapi.impl.DataPolicyMetadata; import org.teiid.adminapi.impl.VDBMetaData; public class AdminTest { private static final String HOST = "127.0.0.1"; private static final int PORT = 9999; private static final String JDBC_USER = "teiidUser"; private static final String JDBC_PASS = "password1!"; static Admin admin; public static void main(String[] args) throws AdminException { try { admin = AdminFactory.getInstance().createAdmin(HOST, PORT, JDBC_USER, JDBC_PASS.toCharArray()); // testGetVDBs(); // testGetVDB(); // testAddRemoveSource(); // testChangeVDBConnectionType(); // testDeployUndeploy(); // testGetTranslators(); // testGetWorkerPoolStats(); // testGetCacheTypes(); // testGetSessions(); // testGetRequests(); // testGetRequest(); // testGetTemplatePropertyDefinitions(); // testGetTranslatorPropertyDefinitions(); // testGetTransactions(); // testClearCache(); // testGetCacheStats(); // testGetEngineStats(); // testTerminateSession(); testCancelRequest(); // testDataRoleMapping(); // testDataSources(); // testGetSchema(); // testRestart(); // admin.markDataSourceAvailable("test"); // System.out.println(admin.getDataSourceTemplateNames()); } finally { admin.close(); } } static void testRestart() { admin.restart(); } static void testGetSchema() throws AdminException { EnumSet<SchemaObjectType> allowedTypes = EnumSet.of(Admin.SchemaObjectType.TABLES); String schema = admin.getSchema("AdminAPITestVDB", 1, "TestModel", allowedTypes, "helloworld"); System.out.println(schema); } static void testDataSources() throws AdminException { // admin.createDataSource("deployment", "templete", new Properties()); } static void testDataRoleMapping() throws AdminException { admin.addDataRoleMapping("AdminAPITestVDB", 1, "TestDataRole", "test-role-name"); VDB vdb = admin.getVDB("AdminAPITestVDB", 1); for(DataPolicy policy : vdb.getDataPolicies()) { System.out.println(policy.getMappedRoleNames()); System.out.println(policy.getName()); System.out.println(policy.getDescription()); System.out.println(policy.getPermissions()); } admin.removeDataRoleMapping("AdminAPITestVDB", 1, "TestDataRole", "test-role-name"); System.out.println(getPolicy(admin.getVDB("AdminAPITestVDB", 1), "TestDataRole").isAnyAuthenticated()); admin.setAnyAuthenticatedForDataRole("AdminAPITestVDB", 1, "TestDataRole", false); System.out.println(getPolicy(admin.getVDB("AdminAPITestVDB", 1), "TestDataRole").isAnyAuthenticated()); admin.setAnyAuthenticatedForDataRole("AdminAPITestVDB", 1, "TestDataRole", true); } static DataPolicyMetadata getPolicy(VDB vdb, String policyName) { VDBMetaData vdbMetaData = (VDBMetaData) vdb; return vdbMetaData.getDataPolicyMap().get(policyName); } static void testCancelRequest() throws AdminException { List<Session> sessions = (List<Session>) admin.getSessions(); String id = sessions.get(0).getSessionId(); List<Request> requests = (List<Request>) admin.getRequestsForSession(id); long executionId = requests.get(0).getExecutionId(); System.out.println(id + " " + executionId); admin.cancelRequest(id,executionId); } static void testTerminateSession() throws AdminException { admin.terminateSession("aaa"); } static void testGetEngineStats() throws AdminException { for(EngineStatistics stat : admin.getEngineStats()) { System.out.println(stat); } } @SuppressWarnings("unchecked") static void testGetCacheStats() throws AdminException { List<CacheStatistics> list = (List<CacheStatistics>) admin.getCacheStats("PREPARED_PLAN_CACHE"); System.out.println(list.get(0).getName()); System.out.println(list.get(0).getHitRatio()); System.out.println(list.get(0).getTotalEntries()); System.out.println(list.get(0).getRequestCount()); list = (List<CacheStatistics>) admin.getCacheStats("QUERY_SERVICE_RESULT_SET_CACHE"); System.out.println(list.get(0).getName()); System.out.println(list.get(0).getHitRatio()); System.out.println(list.get(0).getTotalEntries()); System.out.println(list.get(0).getRequestCount()); } static void testClearCache() throws AdminException{ admin.clearCache("PREPARED_PLAN_CACHE"); admin.clearCache("QUERY_SERVICE_RESULT_SET_CACHE"); admin.clearCache("PREPARED_PLAN_CACHE", "AdminAPITestVDB", 1); admin.clearCache("QUERY_SERVICE_RESULT_SET_CACHE", "AdminAPITestVDB", 1); } static void testGetTransactions() throws AdminException { for(Transaction transaction : admin.getTransactions()) { System.out.println(transaction); } } @SuppressWarnings("unchecked") static void testGetTranslatorPropertyDefinitions() throws AdminException { List<PropertyDefinition> list = (List<PropertyDefinition>) admin.getTranslatorPropertyDefinitions("file", TranlatorPropertyType.OVERRIDE); for(PropertyDefinition pd : list){ System.out.println(pd.getName() + ", " + pd.getDefaultValue() + ", " + pd.getDescription()); } } static void testGetTemplatePropertyDefinitions() throws AdminException { Object obj = admin.getTemplatePropertyDefinitions("filead"); System.out.println(obj); } @SuppressWarnings("unchecked") static void testGetRequest() throws AdminException { List<Session> sessions = (List<Session>) admin.getSessions(); String id = sessions.get(0).getSessionId(); List<Request> requests = (List<Request>) admin.getRequestsForSession(id); Request request = requests.get(0); System.out.println(request); } static void testGetRequests() throws AdminException { for(Request request : admin.getRequests()) { System.out.println(request); } } static void testGetSessions() throws AdminException { for(Session session : admin.getSessions()) { System.out.println(session); } } static void testGetCacheTypes() throws AdminException { for(String type : admin.getCacheTypes()){ System.out.println(type); } } static void testGetWorkerPoolStats() throws AdminException { for(WorkerPoolStatistics pool : admin.getWorkerPoolStats()){ System.out.println(pool); System.out.println(pool.getActiveThreads()); System.out.println(pool.getHighestActiveThreads()); System.out.println(pool.getHighestQueued()); System.out.println(pool.getMaxThreads()); System.out.println(pool.getName()); System.out.println(pool.getQueueName()); System.out.println(pool.getQueued()); System.out.println(pool.getTotalCompleted()); System.out.println(pool.getTotalSubmitted()); System.out.println(pool.getServerName()); } } static void testGetTranslators() throws AdminException { // VDBTranslatorMetaData metadata = TranslatorUtil.buildTranslatorMetadata(ef, moduleName); // for(Translator translator : admin.getTranslators()){ // System.out.println(translator.getName() + ", " + translator.getType() + ", " + translator.getDescription()); // } } static void testDeployUndeploy() throws AdminException { // admin.undeploy("adminapi-test-vdb.xml"); // admin.deploy("adminapi-test-vdb.xml", ""); } static void testChangeVDBConnectionType() throws AdminException { VDB vdb = admin.getVDB("AdminAPITestVDB", 1); ConnectionType previous = vdb.getConnectionType(); admin.changeVDBConnectionType("AdminAPITestVDB", 1, ConnectionType.ANY); System.out.println(admin.getVDB("AdminAPITestVDB", 1).getConnectionType()); admin.changeVDBConnectionType("AdminAPITestVDB", 1, previous); } static void testGetVDB() throws AdminException { VDB vdb = admin.getVDB("AdminAPITestVDB", 1); System.out.println(vdb); } static void testGetVDBs() throws AdminException { for(VDB vdb : admin.getVDBs()){ System.out.println(vdb); } } static void testAddRemoveSource() throws AdminException { admin.addSource("AdminAPITestVDB", 1, "TestModel", "text-connector-test", "file", "java:/test-file"); String expect = null; for(VDB vdb : admin.getVDBs()){ for(Model model : vdb.getModels()){ if(model.getName().equals("TestModel")) { for(String name : model.getSourceNames()) { expect = name; } } } } System.out.println(expect); admin.removeSource("AdminAPITestVDB", 1, "TestModel", "text-connector-test"); } }