use of org.opennms.core.utils.Owner in project opennms by OpenNMS.
the class GroupManager method getRoleScheduleEntries.
/**
* <p>getRoleScheduleEntries</p>
*
* @param roleid a {@link java.lang.String} object.
* @param start a {@link java.util.Date} object.
* @param end a {@link java.util.Date} object.
* @return a {@link org.opennms.core.utils.OwnedIntervalSequence} object.
* @throws java.io.IOException if any.
*/
public OwnedIntervalSequence getRoleScheduleEntries(String roleid, Date start, Date end) throws IOException {
update();
OwnedIntervalSequence schedEntries = new OwnedIntervalSequence();
Role role = getRole(roleid);
for (int i = 0; i < role.getSchedules().size(); i++) {
final int index = i;
Schedule sched = (Schedule) role.getSchedules().get(index);
Owner owner = new Owner(roleid, sched.getName(), i);
schedEntries.addAll(BasicScheduleUtils.getIntervalsCovering(start, end, BasicScheduleUtils.getGroupSchedule(sched), owner));
}
OwnedIntervalSequence defaultEntries = new OwnedIntervalSequence(new OwnedInterval(start, end));
defaultEntries.removeAll(schedEntries);
Owner supervisor = new Owner(roleid, role.getSupervisor());
for (Iterator<OwnedInterval> it = defaultEntries.iterator(); it.hasNext(); ) {
OwnedInterval interval = it.next();
interval.addOwner(supervisor);
}
schedEntries.addAll(defaultEntries);
return schedEntries;
}
use of org.opennms.core.utils.Owner in project opennms by OpenNMS.
the class Day method ownerString.
private String ownerString(List<Owner> owners) {
boolean first = true;
StringBuffer buf = new StringBuffer();
for (Owner owner : owners) {
if (first) {
first = false;
} else {
buf.append(", ");
}
buf.append(owner.getUser());
}
return buf.toString();
}
use of org.opennms.core.utils.Owner in project opennms by OpenNMS.
the class BasicScheduleUtils method getIntervalsCovering.
/**
* <p>getIntervalsCovering</p>
*
* @param start a {@link java.util.Date} object.
* @param end a {@link java.util.Date} object.
* @param sched a {@link org.opennms.netmgt.config.poller.outages.common.BasicSchedule} object.
* @param owner a {@link org.opennms.core.utils.Owner} object.
* @return a {@link org.opennms.core.utils.OwnedIntervalSequence} object.
*/
public static OwnedIntervalSequence getIntervalsCovering(final Date start, final Date end, final BasicSchedule sched, final Owner owner) {
final OwnedIntervalSequence seq = new OwnedIntervalSequence();
for (int i = 0; i < sched.getTimeCount(); i++) {
final Time time = sched.getTime(i);
final Owner thisOwner = owner.addTimeIndex(i);
seq.addAll(getIntervals(start, end, time, thisOwner));
}
return seq;
}
use of org.opennms.core.utils.Owner in project opennms by OpenNMS.
the class RolesTest method testTimeIntervals.
@Test
public void testTimeIntervals() throws Exception {
OwnedIntervalSequence intervals = m_groupManager.getRoleScheduleEntries("oncall", getDate("2005-08-18"), getDate("2005-08-19"));
assertNotNull(intervals);
Owner brozow = new Owner("oncall", "brozow", 1, 1);
Owner admin = new Owner("oncall", "admin", 1, 1);
Owner david = new Owner("oncall", "david", 1, 1);
OwnedIntervalSequence before = new OwnedIntervalSequence();
before.addInterval(owned(david, aug(18, 0, 9)));
before.addInterval(owned(admin, aug(18, 9, 17)));
before.addInterval(owned(david, aug(18, 17, 23)));
before.addInterval(owned(brozow, aug(18, 23, 24)));
OwnedInterval[] expected = { owned(david, aug(18, 0, 9)), owned(admin, aug(18, 9, 17)), owned(david, aug(18, 17, 23)), // brozow is the supervisor and this period is unscheduled
owned(brozow, aug(18, 23, 24)) };
assertTimeIntervalSequence(expected, intervals);
}
use of org.opennms.core.utils.Owner in project opennms by OpenNMS.
the class BasicScheduleUtilsTest method testGetIntervalsDaily.
@Test
public void testGetIntervalsDaily() throws Exception {
String schedSpec = " <schedule name=\"simple\" type=\"daily\">" + " <time begins=\"11:00:00\" ends=\"14:00:00\"/>\n" + " </schedule>";
Schedule simpleSchedule = JaxbUtils.unmarshal(Schedule.class, schedSpec);
assertEquals("simple", simpleSchedule.getName());
assertEquals("daily", simpleSchedule.getType());
assertEquals(1, simpleSchedule.getTimes().size());
final Time simpleScheduleTime = simpleSchedule.getTimes().get(0);
assertEquals("11:00:00", simpleScheduleTime.getBegins());
assertEquals("14:00:00", simpleScheduleTime.getEnds());
assertEquals(false, simpleScheduleTime.getDay().isPresent());
assertEquals(false, simpleScheduleTime.getId().isPresent());
BasicSchedule basicSchedule = BasicScheduleUtils.getGroupSchedule(simpleSchedule);
Owner owner = new Owner("unnamed", "simple", 0, 0);
OwnedIntervalSequence intervals = BasicScheduleUtils.getIntervals(interval(6, 1, 0, 7, 1, 0), basicSchedule.getTime(0), owner);
assertNotNull(intervals);
List<OwnedInterval> expected = new ArrayList<OwnedInterval>();
for (int i = 1; i < 31; i++) {
expected.add(owned(owner, jun(i, 11, i, 14)));
}
assertTimeIntervalSequence(expected.toArray(new OwnedInterval[] {}), intervals);
}
Aggregations