/** * Deletes a specified key. * * DELETE /v1/kv/{key} * * @param key The key to delete. */ public void deleteKey(String key) { deleteKey(key, DeleteOptions.BLANK); }
/** * Deletes a specified key and any below it. * * DELETE /v1/kv/{key}?recurse * * @param key The key to delete. */ public void deleteKeys(String key) { deleteKey(key, DeleteOptions.RECURSE); }
/** {@inheritDoc} */ @Override public void deleteKey(String key) { getKeyValueClient().deleteKey(key); }
@InvokeOnHeader(ConsulKeyValueActions.DELETE_KEY) protected void deleteKey(Message message) throws Exception { getClient().deleteKey( getMandatoryHeader(message, ConsulConstants.CONSUL_KEY, getConfiguration().getKey(), String.class) ); message.setHeader(ConsulConstants.CONSUL_RESULT, true); }
@Override protected void commitInternal(ConfigChangeContext context) { for(HostAndPort hostAndPort: ConsulBackends.getConsulBackends()){ try{ Consul consul = Consul.builder().withHostAndPort(hostAndPort).build(); KeyValueClient kvClient = consul.keyValueClient(); for(String k: context.getRemovedProperties()){ try{ kvClient.deleteKey(k); } catch(Exception e){ LOG.info("Failed to remove key from consul: " + k); } } for(Map.Entry<String,String> en:context.getAddedProperties().entrySet()){ String key = en.getKey(); try{ kvClient.putValue(key,en.getValue()); }catch(Exception e) { LOG.info("Failed to add key to consul: " + en.getKey() + "=" + en.getValue()); } } // success: stop here break; } catch(Exception e){ LOG.log(Level.FINE, "consul access failed on " + hostAndPort + ", trying next...", e); } } } }
public void remove(String key) { // create session to avoid conflicts (not sure if that is safe enough) SessionClient sessionClient = consul.sessionClient(); String sessionName = "session_" + UUID.randomUUID().toString(); SessionCreatedResponse response = sessionClient .createSession(ImmutableSession.builder().name(sessionName).build()); String sessionId = response.getId(); kvClient = consul.keyValueClient(); String lockKey = "lock_" + key; kvClient.acquireLock(lockKey, sessionName, sessionId); Object object = lookupByName(key); if (object == null) { String msg = "Bean with key '" + key + "' did not exist in Consul Registry."; throw new NoSuchBeanException(msg); } kvClient.deleteKey(key); kvClient.deleteKey(object.getClass().getName() + "/" + key); kvClient.releaseLock(lockKey, sessionId); }