Search in sources :

Example 1 with ResourceData

use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData in project intellij-tekton by redhat-developer.

the class HubModel method getInstalledHubItems.

public List<HubItem> getInstalledHubItems() {
    List<HubItem> items = new ArrayList<>();
    List<HasMetadata> hubItemsAlreadyInstalled = getAllInstalledHubItems();
    List<ResourceData> resourceDataList = retrieveAllResources();
    for (HasMetadata task : hubItemsAlreadyInstalled) {
        Optional<HubItem> hubItem = resourceDataList.stream().filter(resourceData -> resourceData.getName().equalsIgnoreCase(task.getMetadata().getName())).map(resourceData -> {
            String version = task.getMetadata().getLabels() != null ? task.getMetadata().getLabels().get(APP_K8S_IO_VERSION) : "";
            if (!version.isEmpty()) {
                return new HubItem(resourceData, task.getKind(), version);
            } else {
                return new HubItem(resourceData);
            }
        }).findFirst();
        hubItem.ifPresent(items::add);
    }
    return items;
}
Also used : ResourceVersionData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData) HUB_CATALOG_TAG(com.redhat.devtools.intellij.tektoncd.Constants.HUB_CATALOG_TAG) URL(java.net.URL) RecognizerFactory(com.redhat.devtools.alizer.api.RecognizerFactory) LoggerFactory(org.slf4j.LoggerFactory) Watcher(io.fabric8.kubernetes.client.Watcher) APP_K8S_IO_VERSION(com.redhat.devtools.intellij.tektoncd.Constants.APP_K8S_IO_VERSION) ConfigWatcher(com.redhat.devtools.intellij.common.utils.ConfigWatcher) YAMLBuilder(com.redhat.devtools.intellij.tektoncd.utils.YAMLBuilder) Language(com.redhat.devtools.alizer.api.Language) Constants(com.redhat.devtools.intellij.tektoncd.Constants) KIND_TASKS(com.redhat.devtools.intellij.tektoncd.Constants.KIND_TASKS) ExecHelper(com.redhat.devtools.intellij.common.utils.ExecHelper) Map(java.util.Map) ApiCallback(com.redhat.devtools.intellij.tektoncd.hub.invoker.ApiCallback) Config(io.fabric8.kubernetes.api.model.Config) DeployHelper(com.redhat.devtools.intellij.tektoncd.utils.DeployHelper) KIND_CLUSTERTASK(com.redhat.devtools.intellij.tektoncd.Constants.KIND_CLUSTERTASK) Predicate(java.util.function.Predicate) Resources(com.redhat.devtools.intellij.tektoncd.hub.model.Resources) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) Collectors(java.util.stream.Collectors) ClusterTask(io.fabric8.tekton.pipeline.v1beta1.ClusterTask) List(java.util.List) ClusterTasksNode(com.redhat.devtools.intellij.tektoncd.tree.ClusterTasksNode) Optional(java.util.Optional) ApiException(com.redhat.devtools.intellij.tektoncd.hub.invoker.ApiException) KIND_PIPELINE(com.redhat.devtools.intellij.tektoncd.Constants.KIND_PIPELINE) YAMLHelper(com.redhat.devtools.intellij.common.utils.YAMLHelper) KIND_TASK(com.redhat.devtools.intellij.tektoncd.Constants.KIND_TASK) HashMap(java.util.HashMap) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) ArrayList(java.util.ArrayList) KIND_PIPELINES(com.redhat.devtools.intellij.tektoncd.Constants.KIND_PIPELINES) Tkn(com.redhat.devtools.intellij.tektoncd.tkn.Tkn) TknCliFactory(com.redhat.devtools.intellij.tektoncd.tkn.TknCliFactory) WatcherException(io.fabric8.kubernetes.client.WatcherException) Project(com.intellij.openapi.project.Project) ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) ConfigHelper(com.redhat.devtools.intellij.common.utils.ConfigHelper) Pipeline(io.fabric8.tekton.pipeline.v1beta1.Pipeline) Logger(org.slf4j.Logger) PipelinesNode(com.redhat.devtools.intellij.tektoncd.tree.PipelinesNode) IOException(java.io.IOException) ParentableNode(com.redhat.devtools.intellij.tektoncd.tree.ParentableNode) InputStreamReader(java.io.InputStreamReader) ResourceApi(com.redhat.devtools.intellij.tektoncd.hub.api.ResourceApi) KIND_CLUSTERTASKS(com.redhat.devtools.intellij.tektoncd.Constants.KIND_CLUSTERTASKS) Paths(java.nio.file.Paths) BufferedReader(java.io.BufferedReader) Collections(java.util.Collections) Task(io.fabric8.tekton.pipeline.v1beta1.Task) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) ArrayList(java.util.ArrayList)

Example 2 with ResourceData

use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData in project intellij-tekton by redhat-developer.

the class HubDetailsPageComponent method show.

public void show(HubItem item, TriConsumer<HubItem, String, String> doInstallAction) {
    if (item == null) {
        select(1, true);
    } else {
        ResourceData resource = item.getResource();
        ResourceVersionData resourceVersionData = getHubItemResourceVersionData(item);
        if (resourceVersionData == null) {
            return;
        }
        setInstallButtons(item, doInstallAction);
        setNameLabel(resourceVersionData, resource.getName());
        fillVersionsCombo(resource, resourceVersionData);
        myRating.setText(resource.getRating().toString());
        myHomePage.show(resource.getKind() + " Homepage", () -> {
            try {
                Desktop.getDesktop().browse(resourceVersionData.getWebURL());
            } catch (IOException e) {
                logger.warn(e.getLocalizedMessage(), e);
            }
        });
        setDetailsPanel(resource, resourceVersionData);
        loadBottomTabs(resource.getName(), resourceVersionData.getRawURL());
        select(0, true);
    }
}
Also used : ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) ResourceVersionData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData) IOException(java.io.IOException)

Example 3 with ResourceData

use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData in project intellij-tekton by redhat-developer.

the class HubItemScoreTest method buildHubItem.

private HubItem buildHubItem(String name, String description, List<Tag> tags) {
    ResourceData resourceData = mock(ResourceData.class);
    ResourceVersionData resourceVersionData = mock(ResourceVersionData.class);
    when(resourceData.getLatestVersion()).thenReturn(resourceVersionData);
    when(resourceVersionData.getVersion()).thenReturn("v1");
    when(resourceVersionData.getDescription()).thenReturn(description);
    when(resourceData.getName()).thenReturn(name);
    when(resourceData.getKind()).thenReturn("kind");
    when(resourceData.getTags()).thenReturn(tags);
    HubItem hubItem = new HubItem(resourceData);
    return hubItem;
}
Also used : ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) ResourceVersionData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData)

Example 4 with ResourceData

use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData in project intellij-tekton by redhat-developer.

the class HubItemPanelsBoard method installHubItem.

private void installHubItem(HubItem hubItem, String kindToBeSaved, String version) {
    ResourceData resource = hubItem.getResource();
    scrollContentPanel.setCursor(new Cursor(Cursor.WAIT_CURSOR));
    ExecHelper.submit(() -> {
        try {
            Constants.InstallStatus installed = model.installHubItem(resource.getName(), kindToBeSaved, version, resource.getCatalog().getName());
            UIHelper.executeInUI(() -> {
                if (installed != Constants.InstallStatus.ERROR) {
                    NotificationHelper.notify(model.getProject(), "Save Successful", resource.getKind() + " " + resource.getName() + " has been saved!", NotificationType.INFORMATION, true);
                }
            });
        } catch (IOException ex) {
            UIHelper.executeInUI(() -> NotificationHelper.notify(model.getProject(), "Error", "An error occurred while saving " + resource.getKind() + " " + resource.getName() + "\n" + ex.getLocalizedMessage(), NotificationType.ERROR, false));
        }
        UIHelper.executeInUI(() -> {
            scrollContentPanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        });
    });
}
Also used : ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) Constants(com.redhat.devtools.intellij.tektoncd.Constants) ScrollPaneConstants(javax.swing.ScrollPaneConstants) IOException(java.io.IOException) Cursor(java.awt.Cursor)

Example 5 with ResourceData

use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData in project intellij-tekton by redhat-developer.

the class HubItemScore method computeScore.

private int computeScore(HubItem hubItem) {
    int score = 0;
    ResourceData resourceData = hubItem.getResource();
    ResourceVersionData resourceVersionData = resourceData.getLatestVersion();
    for (int i = 0; i < languages.size(); i++) {
        Language language = languages.get(i);
        int multiplier = i >= LANGUAGES_MULTIPLIER.length ? LANGUAGES_MULTIPLIER[LANGUAGES_MULTIPLIER.length - 1] : LANGUAGES_MULTIPLIER[i];
        if (matches(resourceData.getName(), language)) {
            score += NAME_WEIGHT * multiplier;
        }
        if (resourceVersionData != null && matches(resourceVersionData.getDescription(), language)) {
            score += DESCRIPTION_WEIGHT * multiplier;
        }
        List<String> tags = resourceData.getTags().stream().map(c -> c.getName()).collect(Collectors.toList());
        if (resourceData.getTags().contains(language.getName()) || matches(tags, language)) {
            score += TAG_WEIGHT * multiplier;
        }
    }
    return score;
}
Also used : ResourceVersionData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData) Strings(com.google.common.base.Strings) Language(com.redhat.devtools.alizer.api.Language) List(java.util.List) ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) Comparator(java.util.Comparator) Collectors(java.util.stream.Collectors) ResourceData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData) Language(com.redhat.devtools.alizer.api.Language) ResourceVersionData(com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData)

Aggregations

ResourceData (com.redhat.devtools.intellij.tektoncd.hub.model.ResourceData)5 ResourceVersionData (com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData)4 IOException (java.io.IOException)3 Language (com.redhat.devtools.alizer.api.Language)2 Constants (com.redhat.devtools.intellij.tektoncd.Constants)2 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 Strings (com.google.common.base.Strings)1 Project (com.intellij.openapi.project.Project)1 RecognizerFactory (com.redhat.devtools.alizer.api.RecognizerFactory)1 ConfigHelper (com.redhat.devtools.intellij.common.utils.ConfigHelper)1 ConfigWatcher (com.redhat.devtools.intellij.common.utils.ConfigWatcher)1 ExecHelper (com.redhat.devtools.intellij.common.utils.ExecHelper)1 YAMLHelper (com.redhat.devtools.intellij.common.utils.YAMLHelper)1 APP_K8S_IO_VERSION (com.redhat.devtools.intellij.tektoncd.Constants.APP_K8S_IO_VERSION)1 HUB_CATALOG_TAG (com.redhat.devtools.intellij.tektoncd.Constants.HUB_CATALOG_TAG)1 KIND_CLUSTERTASK (com.redhat.devtools.intellij.tektoncd.Constants.KIND_CLUSTERTASK)1 KIND_CLUSTERTASKS (com.redhat.devtools.intellij.tektoncd.Constants.KIND_CLUSTERTASKS)1 KIND_PIPELINE (com.redhat.devtools.intellij.tektoncd.Constants.KIND_PIPELINE)1 KIND_PIPELINES (com.redhat.devtools.intellij.tektoncd.Constants.KIND_PIPELINES)1 KIND_TASK (com.redhat.devtools.intellij.tektoncd.Constants.KIND_TASK)1