use of org.ow2.proactive.scheduler.common.SchedulerAuthenticationInterface in project scheduling by ow2-proactive.
the class SchedulerRuntimeDataMBeanTest method testAsUser.
private void testAsUser() throws Exception {
final SchedulerAuthenticationInterface auth = schedulerHelper.getSchedulerAuth();
final HashMap<String, Object> env = new HashMap<>(1);
env.put(JMXConnector.CREDENTIALS, new Object[] { TestUsers.USER.username, TestUsers.USER.password });
JMXConnector userJmxConnector = JMXConnectorFactory.connect(new JMXServiceURL(auth.getJMXConnectorURL(JMXTransportProtocol.RMI)), env);
try {
MBeanServerConnection connection = userJmxConnector.getMBeanServerConnection();
final ObjectName beanName = new ObjectName(SchedulerJMXHelper.RUNTIMEDATA_MBEAN_NAME);
RuntimeDataMBean bean = JMX.newMXBeanProxy(connection, beanName, RuntimeDataMBean.class);
checkDataConsistent(bean);
} finally {
userJmxConnector.close();
}
}
use of org.ow2.proactive.scheduler.common.SchedulerAuthenticationInterface in project scheduling by ow2-proactive.
the class SchedulerRuntimeDataMBeanTest method testAsAdmin.
private void testAsAdmin() throws Exception {
final SchedulerAuthenticationInterface auth = schedulerHelper.getSchedulerAuth();
final HashMap<String, Object> env = new HashMap<>(1);
env.put(JMXConnector.CREDENTIALS, new Object[] { TestUsers.DEMO.username, TestUsers.DEMO.password });
JMXConnector adminJmxConnector = JMXConnectorFactory.connect(new JMXServiceURL(auth.getJMXConnectorURL(JMXTransportProtocol.RMI)), env);
List<JobInfo> existingFinishedJobs = schedulerHelper.getSchedulerInterface().getJobs(0, 1000, new JobFilterCriteria(false, false, true, true), null).getList();
int nbFinishedTasks = 0;
int nbTotalTasks = 0;
for (JobInfo existingFinishedJob : existingFinishedJobs) {
nbFinishedTasks += existingFinishedJob.getNumberOfFinishedTasks();
nbTotalTasks += existingFinishedJob.getTotalNumberOfTasks();
}
try {
MBeanServerConnection connection = adminJmxConnector.getMBeanServerConnection();
final ObjectName beanName = new ObjectName(SchedulerJMXHelper.RUNTIMEDATA_MBEAN_NAME);
RuntimeDataMBean bean = JMX.newMXBeanProxy(connection, beanName, RuntimeDataMBean.class);
checkDataConsistent(bean);
JobId jobId;
jobId = schedulerHelper.submitJob(createJobWithFailingTask());
schedulerHelper.waitForEventTaskWaitingForRestart(jobId, "task1");
checkDataConsistent(bean);
schedulerHelper.waitForEventTaskWaitingForRestart(jobId, "task1");
checkDataConsistent(bean);
schedulerHelper.waitForEventJobFinished(jobId, 60000);
checkDataConsistent(bean);
checkTasksData(bean, 0, 0, 1 + nbFinishedTasks, 1 + nbTotalTasks);
checkJobData(bean, jobId);
jobId = schedulerHelper.submitJob(createJobWithMultinodeTask(100));
Thread.sleep(5000);
checkDataConsistent(bean);
checkTasksData(bean, 1, 0, 1 + nbFinishedTasks, 2 + nbTotalTasks);
schedulerHelper.getSchedulerInterface().killJob(jobId);
checkDataConsistent(bean);
checkTasksData(bean, 0, 0, 1 + nbFinishedTasks, 2 + nbTotalTasks);
} finally {
adminJmxConnector.close();
}
}
Aggregations