@GET @Produces(MediaType.APPLICATION_JSON) @ResourceFilters(StateResourceFilter.class) public Response getRules() { return Response.ok(databaseRuleManager.getAllRules()).build(); }
@GET @Path("/{dataSourceName}") @Produces(MediaType.APPLICATION_JSON) @ResourceFilters(RulesResourceFilter.class) public Response getDatasourceRules( @PathParam("dataSourceName") final String dataSourceName, @QueryParam("full") final String full ) { if (full != null) { return Response.ok(databaseRuleManager.getRulesWithDefault(dataSourceName)) .build(); } return Response.ok(databaseRuleManager.getRules(dataSourceName)) .build(); }
private void stopBeingLeader() { synchronized (lock) { log.info("I am no longer the leader..."); for (String server : loadManagementPeons.keySet()) { LoadQueuePeon peon = loadManagementPeons.remove(server); peon.stop(); } loadManagementPeons.clear(); serviceAnnouncer.unannounce(self); lookupCoordinatorManager.stop(); metadataRuleManager.stop(); metadataSegmentManager.stop(); } }
final List<Rule> rules = databaseRuleManager.getRulesWithDefault(dataSourceName); final Interval theInterval = Intervals.of(interval); final SegmentDescriptor descriptor = new SegmentDescriptor(theInterval, version, partitionNumber);
int numSegments = 55000; int numServers = 50; EasyMock.expect(manager.getAllRules()).andReturn(ImmutableMap.of("test", rules)).anyTimes(); EasyMock.expect(manager.getRules(EasyMock.anyObject())).andReturn(rules).anyTimes(); EasyMock.expect(manager.getRulesWithDefault(EasyMock.anyObject())).andReturn(rules).anyTimes(); EasyMock.replay(manager);
EasyMock.expect(metadataRuleManager.getRulesWithDefault(EasyMock.anyString())) .andReturn(ImmutableList.of(foreverLoadRule)).atLeastOnce(); metadataRuleManager.stop(); EasyMock.expectLastCall().once();
@POST @Path("/{dataSourceName}") @Consumes(MediaType.APPLICATION_JSON) @ResourceFilters(RulesResourceFilter.class) public Response setDatasourceRules( @PathParam("dataSourceName") final String dataSourceName, final List<Rule> rules, @HeaderParam(AuditManager.X_DRUID_AUTHOR) @DefaultValue("") final String author, @HeaderParam(AuditManager.X_DRUID_COMMENT) @DefaultValue("") final String comment, @Context HttpServletRequest req ) { if (databaseRuleManager.overrideRule( dataSourceName, rules, new AuditInfo(author, comment, req.getRemoteAddr()) )) { return Response.ok().build(); } return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); }
metadataRuleManager.start(); lookupCoordinatorManager.start(); serviceAnnouncer.announce(self);
public Map<String, ? extends Object2LongMap<String>> getReplicationStatus() { final Map<String, Object2LongOpenHashMap<String>> retVal = new HashMap<>(); if (segmentReplicantLookup == null) { return retVal; } final DateTime now = DateTimes.nowUtc(); for (final DataSegment segment : getAvailableDataSegments()) { final List<Rule> rules = metadataRuleManager.getRulesWithDefault(segment.getDataSource()); for (final Rule rule : rules) { if (!(rule instanceof LoadRule && rule.appliesTo(segment, now))) { continue; } ((LoadRule) rule) .getTieredReplicants() .forEach((final String tier, final Integer ruleReplicants) -> { int currentReplicants = segmentReplicantLookup.getLoadedReplicants(segment.getId(), tier); retVal .computeIfAbsent(tier, ignored -> new Object2LongOpenHashMap<>()) .addTo(segment.getDataSource(), Math.max(ruleReplicants - currentReplicants, 0)); }); break; // only the first matching rule applies } } return retVal; }
@POST @Path("/{dataSourceName}") @Consumes(MediaType.APPLICATION_JSON) @ResourceFilters(RulesResourceFilter.class) public Response setDatasourceRules( @PathParam("dataSourceName") final String dataSourceName, final List<Rule> rules, @HeaderParam(AuditManager.X_DRUID_AUTHOR) @DefaultValue("") final String author, @HeaderParam(AuditManager.X_DRUID_COMMENT) @DefaultValue("") final String comment, @Context HttpServletRequest req ) { if (databaseRuleManager.overrideRule( dataSourceName, rules, new AuditInfo(author, comment, req.getRemoteAddr()) )) { return Response.ok().build(); } return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); }
metadataRuleManager.start(); lookupCoordinatorManager.start(); serviceAnnouncer.announce(self);
int missingRules = 0; for (DataSegment segment : paramsWithReplicationManager.getAvailableSegments()) { List<Rule> rules = databaseRuleManager.getRulesWithDefault(segment.getDataSource()); boolean foundMatchingRule = false; for (Rule rule : rules) {
@GET @Path("/{dataSourceName}") @Produces(MediaType.APPLICATION_JSON) @ResourceFilters(RulesResourceFilter.class) public Response getDatasourceRules( @PathParam("dataSourceName") final String dataSourceName, @QueryParam("full") final String full ) { if (full != null) { return Response.ok(databaseRuleManager.getRulesWithDefault(dataSourceName)) .build(); } return Response.ok(databaseRuleManager.getRules(dataSourceName)) .build(); }
@GET @Produces(MediaType.APPLICATION_JSON) @ResourceFilters(StateResourceFilter.class) public Response getRules() { return Response.ok(databaseRuleManager.getAllRules()).build(); }
private void stopBeingLeader() { synchronized (lock) { log.info("I am no longer the leader..."); for (String server : loadManagementPeons.keySet()) { LoadQueuePeon peon = loadManagementPeons.remove(server); peon.stop(); } loadManagementPeons.clear(); serviceAnnouncer.unannounce(self); lookupCoordinatorManager.stop(); metadataRuleManager.stop(); metadataSegmentManager.stop(); } }
EasyMock.expect(databaseRuleManager.getRulesWithDefault("dataSource1")) .andReturn(ImmutableList.of(loadRule, dropRule)) .once(); EasyMock.expect(databaseRuleManager.getRulesWithDefault("dataSource1")) .andReturn(ImmutableList.of(loadRule, dropRule)) .once(); EasyMock.expect(databaseRuleManager.getRulesWithDefault("dataSource1")) .andReturn(ImmutableList.of(loadRule, dropRule)) .once();
dataSegments.values().forEach(druidDataSources[0]::addSegment); EasyMock.expect(metadataRuleManager.getRulesWithDefault(EasyMock.anyString())) .andReturn(ImmutableList.of(hotTier, coldTier)).atLeastOnce(); EasyMock.expect(databaseSegmentManager.isStarted()).andReturn(true).anyTimes();
.expect(databaseRuleManager.getRulesWithDefault(EasyMock.anyObject())) .andReturn( Collections.singletonList(
mockEmptyPeon(); EasyMock.expect(databaseRuleManager.getRulesWithDefault(EasyMock.anyObject())).andReturn( Collections.singletonList(new ForeverLoadRule(ImmutableMap.of(DruidServer.DEFAULT_TIER, 1)))).atLeastOnce(); EasyMock.replay(databaseRuleManager);
mockEmptyPeon(); EasyMock.expect(databaseRuleManager.getRulesWithDefault(EasyMock.anyObject())).andReturn( Lists.newArrayList( new IntervalLoadRule(