public void addOpenShiftOverride(HasMetadata item) { KindAndName key = new KindAndName(item); map.put(key, item); }
/** * Returns the OpenShift dependency for the given resource if there is one */ public HasMetadata convertKubernetesItemToOpenShift(HasMetadata item) { KindAndName key = new KindAndName(item); HasMetadata answer = openshiftDependencyResources.get(key); if (answer == null && item instanceof Deployment) { key = new KindAndName("DeploymentConfig", KubernetesHelper.getName(item)); answer = openshiftDependencyResources.get(key); } return answer; }
public void addMissingResources(List<HasMetadata> objects) { Map<KindAndName, HasMetadata> itemMap = new HashMap<>(); for (HasMetadata item : objects) { itemMap.put(new KindAndName(item), item); } // lets add any openshift specific dependencies (OAuthClient etc) which are not already added for (Map.Entry<KindAndName, HasMetadata> entry : openshiftDependencyResources.entrySet()) { KindAndName key = entry.getKey(); HasMetadata dependency = entry.getValue(); if (!itemMap.containsKey(key)) { objects.add(dependency); } } }
/** * Applies any overrides if we have any for the given item */ public HasMetadata overrideResource(HasMetadata item) { KindAndName key = new KindAndName(item); HasMetadata override = map.get(key); if (override != null) { log.info("Overriding " + key); HasMetadata answer = KubernetesResourceUtil.mergeResources(item, override, log, false); if (answer != null) { return answer; } } return item; } }
public void filterAndAddItemsToBuilder(KubernetesListBuilder builder, List<HasMetadata> items) { Map<KindAndName, Integer> aIndexMap = new HashMap<>(); int nItems = 0; // Populate map with existing items in the builder for(int index = 0; index < builder.getItems().size(); index++, nItems++) { HasMetadata aItem = builder.getItems().get(index); KindAndName aKey = new KindAndName(aItem); aIndexMap.put(aKey, index); } for(HasMetadata item : items) { KindAndName aKey = new KindAndName(item); if(aIndexMap.containsKey(aKey)) { // Merge the override fragments, and remove duplicate HasMetadata duplicateItem = builder.getItems().get(aIndexMap.get(aKey)); item = KubernetesResourceUtil.mergeResources(item, duplicateItem, log, false); builder.setToItems(aIndexMap.get(aKey), item); } else { aIndexMap.put(aKey, nItems++); builder.addToItems(item); } } }
public void filterAndAddItemsToBuilder(KubernetesListBuilder builder, List<HasMetadata> items) { Map<KindAndName, Integer> aIndexMap = new HashMap<>(); int nItems = 0; // Populate map with existing items in the builder for(int index = 0; index < builder.getItems().size(); index++, nItems++) { HasMetadata aItem = builder.getItems().get(index); KindAndName aKey = new KindAndName(aItem); aIndexMap.put(aKey, index); } for(HasMetadata item : items) { KindAndName aKey = new KindAndName(item); if(aIndexMap.containsKey(aKey)) { // Merge the override fragments, and remove duplicate HasMetadata duplicateItem = builder.getItems().get(aIndexMap.get(aKey)); item = KubernetesResourceUtil.mergeResources(item, duplicateItem, log, false); builder.setToItems(aIndexMap.get(aKey), item); } else { aIndexMap.put(aKey, nItems++); builder.addToItems(item); } } }
public void addOpenShiftResources(List<HasMetadata> items) { for (HasMetadata item : items) { if (item instanceof Template) { Template template = (Template) item; if (!KubernetesResourceUtil.isAppCatalogResource(template)) { List<HasMetadata> objects = notNullList(template.getObjects()); String sourceUrl = getSourceUrlAnnotation(template); if (StringUtils.isNotBlank(sourceUrl)) { for (HasMetadata object : objects) { setSourceUrlAnnotationIfNotSet(object, sourceUrl); } } addOpenShiftResources(objects); mergeParametersIntoMap(templateParameters, notNullList(template.getParameters())); continue; } } KindAndName key = new KindAndName(item); HasMetadata old = openshiftDependencyResources.get(key); if (old != null) { log.warn("Duplicate OpenShift resources for %s at %s and %s", key, getSourceUrlAnnotation(old), getSourceUrlAnnotation(item)); } openshiftDependencyResources.put(key, item); } }