/** * Extracts apiGroupName from apiGroupVersion when in resource for apiGroupName/apiGroupVersion combination * @param item resource which is being used * @param apiGroup apiGroupName present if any * @return Just the apiGroupName part without apiGroupVersion */ public static <T> String apiGroup(T item, String apiGroup) { if (item instanceof HasMetadata && Utils.isNotNullOrEmpty(((HasMetadata) item).getApiVersion())) { return trimGroupOrNull(((HasMetadata) item).getApiVersion()); } else if (apiGroup != null && !apiGroup.isEmpty()) { return trimGroup(apiGroup); } return null; }
/** * Updates the resource if it has missing or default apiGroupVersion values and the resource is currently * using API Groups with custom version strings */ protected void updateApiVersion(HasMetadata hasMetadata) { String version = getApiVersion(); if (hasMetadata != null && version != null && version.length() > 0) { String current = hasMetadata.getApiVersion(); // lets overwrite the api version if its currently missing, the resource uses an API Group with '/' // or we have the default of 'v1' when using an API group version like 'build.openshift.io/v1' if (current == null || "v1".equals(current) || current.indexOf('/') < 0 && version.indexOf('/') > 0) { hasMetadata.setApiVersion(version); } } }
/** * Returns the api version falling back to the items apiGroupVersion if not null. * @param <T> * @param item * @param apiVersion * @return */ public static <T> String apiVersion(T item, String apiVersion) { if (item instanceof HasMetadata && Utils.isNotNullOrEmpty(((HasMetadata) item).getApiVersion())) { return trimVersion(((HasMetadata) item).getApiVersion()); } else if (apiVersion != null && !apiVersion.isEmpty()) { return trimVersion(apiVersion); } return null; }
/** * Returns the api version falling back to the items apiVersion if not null. * @param <T> * @param item * @param apiVersion * @return */ private static <T> String apiVersion(T item, String apiVersion) { if (apiVersion != null && !apiVersion.isEmpty()) { return trimVersion(apiVersion); } else if (item instanceof HasMetadata) { return trimVersion(((HasMetadata)item).getApiVersion()); } return null; }
/** * Set fields needed to generate the OwnerReference object * * @param parent The resource which should be used as parent. It will be used to gather the date needed for generating OwnerReferences. */ protected void setOwnerReference(HasMetadata parent) { this.ownerApiVersion = parent.getApiVersion(); this.ownerKind = parent.getKind(); this.ownerUid = parent.getMetadata().getUid(); }
private void setOwnership(HasMetadata owned, HasMetadata ...owners) { ArrayList<OwnerReference> ownerReferences = new ArrayList<>(owners.length); for (HasMetadata owner: owners) { ownerReferences.add(new OwnerReferenceBuilder() .withApiVersion(owner.getApiVersion()) .withKind(owner.getKind()) .withBlockOwnerDeletion(false) .withName(owner.getMetadata().getName()) .withUid(owner.getMetadata().getUid()) .build()); } owned.getMetadata().setOwnerReferences(ownerReferences); }
@Override public void handle(Void v) { EventBuilder evtb = new EventBuilder().withApiVersion("v1"); if (involvedObject != null) { evtb.withNewInvolvedObject() .withKind(involvedObject.getKind()) .withName(involvedObject.getMetadata().getName()) .withApiVersion(involvedObject.getApiVersion()) .withNamespace(involvedObject.getMetadata().getNamespace()) .withUid(involvedObject.getMetadata().getUid()) .endInvolvedObject(); } evtb.withType(eventType.name) .withMessage(message) .withNewMetadata().withLabels(resourcePredicate.labels()).withGenerateName("topic-operator").withNamespace(namespace).endMetadata() .withNewSource() .withComponent(TopicOperator.class.getName()) .endSource(); io.fabric8.kubernetes.api.model.Event event = evtb.build(); switch (eventType) { case INFO: LOGGER.info("{}", message); break; case WARNING: LOGGER.warn("{}", message); break; } k8s.createEvent(event, handler); }