DEFAULT_RETRY_POLICY.attempt(() -> _helixDataAccessor.removeProperty(_keyBuilder.instance(instanceName))); } catch (Exception e) { return PinotResourceManagerResponse.failure("Failed to remove /INSTANCES/" + instanceName); DEFAULT_RETRY_POLICY.attempt(() -> _helixDataAccessor.removeProperty(_keyBuilder.instanceConfig(instanceName))); } catch (Exception e) { return PinotResourceManagerResponse.failure(
@Override public Object call() { for (Map.Entry<String, Map<String, Message>> entry : pendingMessagesToPurge.entrySet()) { String instanceName = entry.getKey(); for (Message msg : entry.getValue().values()) { if (accessor.removeProperty(msg.getKey(accessor.keyBuilder(), instanceName))) { LogUtil.logInfo(logger, _eventId, String .format("Deleted message %s from instance %s", msg.getMsgId(), instanceName)); } } } return null; } });
@Override public Object call() { for (Map.Entry<String, Map<String, Message>> entry : pendingMessagesToPurge.entrySet()) { String instanceName = entry.getKey(); for (Message msg : entry.getValue().values()) { if (accessor.removeProperty(msg.getKey(accessor.keyBuilder(), instanceName))) { LogUtil.logInfo(logger, _eventId, String .format("Deleted message %s from instance %s", msg.getMsgId(), instanceName)); } } } return null; } });
/** * Remove the given message from ZK using the given accessor. This function will * not throw exception * @param accessor HelixDataAccessor * @param msg message to remove * @param instanceName name of the instance on which the message sits * @return true if success else false */ public static boolean removeMessageFromZK(HelixDataAccessor accessor, Message msg, String instanceName) { try { return accessor.removeProperty(msg.getKey(accessor.keyBuilder(), instanceName)); } catch (Exception e) { LOG.error("Caught exception while removing message {}.", msg, e); } return false; }
/** * Remove the given message from ZK using the given accessor. This function will * not throw exception * @param accessor HelixDataAccessor * @param msg message to remove * @param instanceName name of the instance on which the message sits * @return true if success else false */ public static boolean removeMessageFromZK(HelixDataAccessor accessor, Message msg, String instanceName) { try { return accessor.removeProperty(msg.getKey(accessor.keyBuilder(), instanceName)); } catch (Exception e) { LOG.error("Caught exception while removing message {}.", msg, e); } return false; }
/** * Remove workflow or job config. * @param accessor * @param workflowJobResource the workflow or job name */ private static boolean removeWorkflowJobConfig(HelixDataAccessor accessor, String workflowJobResource) { PropertyKey cfgKey = accessor.keyBuilder().resourceConfig(workflowJobResource); if (accessor.getPropertyStat(cfgKey) != null) { if (!accessor.removeProperty(cfgKey)) { LOG.warn(String.format( "Error occurred while trying to remove config for %s. Failed to remove node %s.", workflowJobResource, cfgKey)); return false; } } return true; }
@Override public void dropResource(String clusterName, String resourceName) { logger.info("Drop resource {} from cluster {}", resourceName, clusterName); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); accessor.removeProperty(keyBuilder.idealStates(resourceName)); accessor.removeProperty(keyBuilder.resourceConfig(resourceName)); }
@Override public void dropResource(String clusterName, String resourceName) { logger.info("Drop resource {} from cluster {}", resourceName, clusterName); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); accessor.removeProperty(keyBuilder.idealStates(resourceName)); accessor.removeProperty(keyBuilder.resourceConfig(resourceName)); }
/** * Remove workflow or job config. * @param accessor * @param workflowJobResource the workflow or job name */ private static boolean removeWorkflowJobConfig(HelixDataAccessor accessor, String workflowJobResource) { PropertyKey cfgKey = accessor.keyBuilder().resourceConfig(workflowJobResource); if (accessor.getPropertyStat(cfgKey) != null) { if (!accessor.removeProperty(cfgKey)) { LOG.warn(String.format( "Error occurred while trying to remove config for %s. Failed to remove node %s.", workflowJobResource, cfgKey)); return false; } } return true; }
/** * Cleans up IdealState and external view associated with a job/workflow resource. */ private static boolean cleanupIdealStateExtView(final HelixDataAccessor accessor, String workflowJobResource) { boolean success = true; PropertyKey isKey = accessor.keyBuilder().idealStates(workflowJobResource); if (accessor.getPropertyStat(isKey) != null) { if (!accessor.removeProperty(isKey)) { LOG.warn(String.format( "Error occurred while trying to remove IdealState for %s. Failed to remove node %s.", workflowJobResource, isKey)); success = false; } } // Delete external view PropertyKey evKey = accessor.keyBuilder().externalView(workflowJobResource); if (accessor.getPropertyStat(evKey) != null) { if (!accessor.removeProperty(evKey)) { LOG.warn(String.format( "Error occurred while trying to remove ExternalView of resource %s. Failed to remove node %s.", workflowJobResource, evKey)); success = false; } } return success; }
/** * Cleans up IdealState and external view associated with a job/workflow resource. */ private static boolean cleanupIdealStateExtView(final HelixDataAccessor accessor, String workflowJobResource) { boolean success = true; PropertyKey isKey = accessor.keyBuilder().idealStates(workflowJobResource); if (accessor.getPropertyStat(isKey) != null) { if (!accessor.removeProperty(isKey)) { LOG.warn(String.format( "Error occurred while trying to remove IdealState for %s. Failed to remove node %s.", workflowJobResource, isKey)); success = false; } } // Delete external view PropertyKey evKey = accessor.keyBuilder().externalView(workflowJobResource); if (accessor.getPropertyStat(evKey) != null) { if (!accessor.removeProperty(evKey)) { LOG.warn(String.format( "Error occurred while trying to remove ExternalView of resource %s. Failed to remove node %s.", workflowJobResource, evKey)); success = false; } } return success; }
@Override public void doInject(ClusterDataCache cache) { accessor.removeProperty(accessor.keyBuilder().liveInstance(downInstance)); cache.getLiveInstances().remove("localhost_0"); cache.getInstanceOfflineTimeMap().put("localhost_0", lastOfflineTime); cache.notifyDataChange(HelixConstants.ChangeType.LIVE_INSTANCE); } }, 1, 0,
@Override public void enableMaintenanceMode(String clusterName, boolean enabled, String reason) { logger.info("Cluster {} {} maintenance mode for reason {}.", enabled ? "enters" : "exits", clusterName, reason == null ? "NULL" : reason); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); if (!enabled) { accessor.removeProperty(keyBuilder.maintenance()); } else { MaintenanceSignal maintenanceSignal = new MaintenanceSignal("maintenance"); if (reason != null) { maintenanceSignal.setReason(reason); } if (!accessor.createMaintenance(maintenanceSignal)) { throw new HelixException("Failed to create maintenance signal"); } } }
@Override public void enableMaintenanceMode(String clusterName, boolean enabled, String reason) { logger.info("Cluster {} {} maintenance mode for reason {}.", enabled ? "enters" : "exits", clusterName, reason == null ? "NULL" : reason); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); if (!enabled) { accessor.removeProperty(keyBuilder.maintenance()); } else { MaintenanceSignal maintenanceSignal = new MaintenanceSignal("maintenance"); if (reason != null) { maintenanceSignal.setReason(reason); } if (!accessor.createMaintenance(maintenanceSignal)) { throw new HelixException("Failed to create maintenance signal"); } } }
/** * @param clusterName * @param enabled * @param reason set additional string description on why the cluster is disabled when * <code>enabled</code> is false. */ @Override public void enableCluster(String clusterName, boolean enabled, String reason) { logger.info("{} cluster {} for reason {}.", enabled ? "Enable" : "Disable", clusterName, reason == null ? "NULL" : reason); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); if (enabled) { accessor.removeProperty(keyBuilder.pause()); } else { PauseSignal pauseSignal = new PauseSignal("pause"); if (reason != null) { pauseSignal.setReason(reason); } if (!accessor.createPause(pauseSignal)) { throw new HelixException("Failed to create pause signal"); } } }
/** * @param clusterName * @param enabled * @param reason set additional string description on why the cluster is disabled when * <code>enabled</code> is false. */ @Override public void enableCluster(String clusterName, boolean enabled, String reason) { logger.info("{} cluster {} for reason {}.", enabled ? "Enable" : "Disable", clusterName, reason == null ? "NULL" : reason); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); if (enabled) { accessor.removeProperty(keyBuilder.pause()); } else { PauseSignal pauseSignal = new PauseSignal("pause"); if (reason != null) { pauseSignal.setReason(reason); } if (!accessor.createPause(pauseSignal)) { throw new HelixException("Failed to create pause signal"); } } }
accessor.removeProperty(keyBuilder.resourceConfig(resourceName)); Thread.sleep(500); // wait zk callback Assert.assertTrue(listener._configChanged,
participants[i].syncStop(); accessor.removeProperty(keyBuilder.liveInstance("newLiveInstance")); TestHelper.dropCluster(_clusterName, _gZkClient);
accessor.removeProperty(keyBuild.idealStates(jobQueueName)); accessor.removeProperty(keyBuild.resourceConfig(jobQueueName)); accessor.removeProperty(keyBuild.workflowContext(jobQueueName)); || _driver.getWorkflowConfig(jobQueueName) != null || _driver.getWorkflowContext(jobQueueName) != null) { accessor.removeProperty(keyBuild.idealStates(jobQueueName)); accessor.removeProperty(keyBuild.resourceConfig(jobQueueName)); accessor.removeProperty(keyBuild.workflowContext(jobQueueName));
accessor.removeProperty(keyBuild.idealStates(jobQueueName)); Assert.assertNull(admin.getResourceIdealState(CLUSTER_NAME, jobQueueName));