public static String getNamespace(HasMetadata entity) { if (entity != null) { return entity.getMetadata() != null ? entity.getMetadata().getNamespace() : null; } else { return null; } }
/** * Returns the name and falls back to the item name. * @param item The item. * @param name The name to check. * @param <T> * @return */ private static <T> String name(T item, String name) { if (name != null && !name.isEmpty()) { return name; } else if (item instanceof HasMetadata) { HasMetadata h = (HasMetadata) item; return h.getMetadata() != null ? h.getMetadata().getName() : null; } return null; }
/** * Getting namespace from Kubernetes Resource * * @param entity Kubernetes Resource * @return */ public static String getNamespace(HasMetadata entity) { if (entity != null) { return getNamespace(entity.getMetadata()); } else { return null; } }
/** * Returns name of the resource from it's Metadata * * @param entity Kubernetes resource * @return */ public static String getName(HasMetadata entity) { if (entity != null) { return getName(entity.getMetadata()); } else { return null; } }
public KubernetesClientTimeoutException(HasMetadata resource, long amount, TimeUnit timeUnit) { super(String.format(RESOURCE_FORMAT, timeUnit.toMillis(amount), resource.getKind(), resource.getMetadata().getName(), resource.getMetadata().getNamespace())); this.resourcesNotReady = Collections.unmodifiableList(Arrays.asList(resource)); }
@Override public void run() { LOG.debug("Only {}/{} pod(s) ready for {}: {} in namespace: {} seconds so waiting...", podCount.get(), requiredPodCount, obj.getKind(), obj.getMetadata().getName(), namespace); } }, 0, loggingIntervalMillis, TimeUnit.MILLISECONDS);
public static ObjectMeta getOrCreateMetadata(HasMetadata entity) { ObjectMeta metadata = entity.getMetadata(); if (metadata == null) { metadata = new ObjectMeta(); entity.setMetadata(metadata); } return metadata; }
/** * Null safe operation for getting Metadata of a Kubernetes resource * * @param entity Kubernetes Resource * @return */ public static ObjectMeta getOrCreateMetadata(HasMetadata entity) { ObjectMeta metadata = entity.getMetadata(); if (metadata == null) { metadata = new ObjectMeta(); entity.setMetadata(metadata); } return metadata; }
/** * Returns the resource version for the entity or null if it does not have one */ public static String getResourceVersion(HasMetadata entity) { if (entity != null) { ObjectMeta metadata = entity.getMetadata(); if (metadata != null) { String resourceVersion = metadata.getResourceVersion(); if (!Utils.isNullOrEmpty(resourceVersion)) { return resourceVersion; } } } return null; }
@Override protected <T> String checkNamespace(T item) { String operationNs = getNamespace(); String itemNs = (item instanceof HasMetadata && ((HasMetadata)item).getMetadata() != null) ? ((HasMetadata) item).getMetadata().getNamespace() : null; if (Utils.isNullOrEmpty(operationNs) && Utils.isNullOrEmpty(itemNs)) { return null; } else if (Utils.isNullOrEmpty(itemNs)) { return operationNs; } else if (Utils.isNullOrEmpty(operationNs)) { return itemNs; } else if (itemNs.equals(operationNs)) { return itemNs; } throw new KubernetesClientException("Namespace mismatch. Item namespace:" + itemNs + ". Operation namespace:" + operationNs + "."); }
@Override public T apply(T resource) { try { resource.getMetadata().setResourceVersion(resourceVersion); return handleReplace(resource); } catch (Exception e) { throw KubernetesClientException.launderThrowable(forOperationType("replace"), e); } } };
protected <T> String checkNamespace(T item) { String operationNs = getNamespace(); String itemNs = (item instanceof HasMetadata && ((HasMetadata)item).getMetadata() != null) ? ((HasMetadata) item).getMetadata().getNamespace() : null; if (Utils.isNullOrEmpty(operationNs) && Utils.isNullOrEmpty(itemNs)) { if (!isResourceNamespaced()) { return null; } else { throw new KubernetesClientException("Namespace not specified. But operation requires namespace."); } } else if (Utils.isNullOrEmpty(itemNs)) { return operationNs; } else if (Utils.isNullOrEmpty(operationNs)) { return itemNs; } else if (itemNs.equals(operationNs)) { return itemNs; } throw new KubernetesClientException("Namespace mismatch. Item namespace:" + itemNs + ". Operation namespace:" + operationNs + "."); }
@Override public Watch watch(Watcher<HasMetadata> watcher) { HasMetadata meta = acceptVisitors(asHasMetadata(item), visitors); ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); return h.watch(client, config, meta.getMetadata().getNamespace(), meta, watcher); }
@Override public Boolean delete() { //First pass check before deleting HasMetadata meta = acceptVisitors(asHasMetadata(item), visitors); ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); return h.delete(client, config, meta.getMetadata().getNamespace(), meta); }
@Override public Watch watch(String resourceVersion, Watcher<HasMetadata> watcher) { HasMetadata meta = acceptVisitors(asHasMetadata(item), visitors); ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); return h.watch(client, config, meta.getMetadata().getNamespace(), meta, watcher); }
protected <T> String checkName(T item) { String operationName = getName(); String itemName = item instanceof HasMetadata ? ((HasMetadata) item).getMetadata().getName() : null; if (Utils.isNullOrEmpty(operationName) && Utils.isNullOrEmpty(itemName)) { return null; } else if (Utils.isNullOrEmpty(itemName)) { return operationName; } else if (Utils.isNullOrEmpty(operationName)) { return itemName; } else if (itemName.equals(operationName)) { return itemName; } throw new KubernetesClientException("Name mismatch. Item name:" + itemName + ". Operation name:" + operationName + "."); }
@Override public HasMetadata waitUntilReady(long amount, TimeUnit timeUnit) throws InterruptedException { HasMetadata meta = acceptVisitors(asHasMetadata(get()), visitors); ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); return h.waitUntilReady(client, config, meta.getMetadata().getNamespace(), meta, amount, timeUnit); }
@Override public HasMetadata waitUntilCondition(Predicate<HasMetadata> condition, long amount, TimeUnit timeUnit) throws InterruptedException { HasMetadata meta = acceptVisitors(asHasMetadata(get()), visitors); ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); return h.waitUntilCondition(client, config, meta.getMetadata().getNamespace(), meta, condition, amount, timeUnit); }
@Override public Boolean delete() { //First pass check before deleting for (HasMetadata meta : acceptVisitors(asHasMetadata(item, true), visitors)) { if (handlerOf(meta) == null) { return false; } } //Second pass do delete for (HasMetadata meta : acceptVisitors(asHasMetadata(item, true), visitors)) { ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); if (!h.delete(client, config, meta.getMetadata().getNamespace(), meta)) { return false; } } return true; }
@Override public HasMetadata get() { if (fromServer) { HasMetadata meta = acceptVisitors(asHasMetadata(item), visitors); ResourceHandler<HasMetadata, HasMetadataVisitiableBuilder> h = handlerOf(meta); HasMetadata reloaded = h.reload(client, config, meta.getMetadata().getNamespace(), meta); if (reloaded != null) { HasMetadata edited = reloaded; //Let's apply any visitor that might have been specified. for (Visitor v : visitors) { edited = h.edit(edited).accept(v).build(); } return edited; } return null; } else { return acceptVisitors(asHasMetadata(item), visitors); } }