use of com.redhat.devtools.intellij.tektoncd.tkn.Tkn in project intellij-tekton by redhat-developer.
the class TreeHelper method getYAMLAndKindFromNode.
/**
* Get YAML and Tekton kind from Tekton tree node.
*
* @param node the Tekton tree node
* @return Pair where 'first' is YAML content and 'second' is Tekton kind
*/
public static Pair<String, String> getYAMLAndKindFromNode(ParentableNode<?> node) {
Pair<String, String> yamlAndKind = null;
try {
String namespace = node.getNamespace();
Tkn tkncli = node.getRoot().getTkn();
String content = "";
String kind = "";
if (node instanceof PipelineNode) {
content = tkncli.getPipelineYAML(namespace, node.getName());
kind = KIND_PIPELINES;
} else if (node instanceof ResourceNode) {
content = tkncli.getResourceYAML(namespace, node.getName());
kind = KIND_RESOURCES;
} else if (node instanceof TaskNode) {
content = tkncli.getTaskYAML(namespace, node.getName());
kind = KIND_TASKS;
} else if (node instanceof ClusterTaskNode) {
content = tkncli.getClusterTaskYAML(node.getName());
kind = KIND_CLUSTERTASKS;
} else if (node instanceof ConditionNode) {
content = tkncli.getConditionYAML(namespace, node.getName());
kind = KIND_CONDITIONS;
} else if (node instanceof TriggerTemplateNode) {
content = tkncli.getTriggerTemplateYAML(namespace, node.getName());
kind = KIND_TRIGGERTEMPLATES;
} else if (node instanceof TriggerBindingNode) {
content = tkncli.getTriggerBindingYAML(namespace, node.getName());
kind = KIND_TRIGGERBINDINGS;
} else if (node instanceof ClusterTriggerBindingNode) {
content = tkncli.getClusterTriggerBindingYAML(node.getName());
kind = KIND_CLUSTERTRIGGERBINDINGS;
} else if (node instanceof EventListenerNode) {
content = tkncli.getEventListenerYAML(namespace, node.getName());
kind = KIND_EVENTLISTENERS;
} else if (node instanceof TaskRunNode) {
content = tkncli.getTaskRunYAML(namespace, node.getName());
kind = KIND_TASKRUN;
} else if (node instanceof PipelineRunNode) {
content = tkncli.getPipelineRunYAML(namespace, node.getName());
kind = KIND_PIPELINERUN;
}
yamlAndKind = Pair.create(content, kind);
} catch (IOException e) {
UIHelper.executeInUI(() -> Messages.showErrorDialog("Error: " + e.getLocalizedMessage(), "Error"));
}
return yamlAndKind;
}
use of com.redhat.devtools.intellij.tektoncd.tkn.Tkn in project intellij-tekton by redhat-developer.
the class ConditionCompletionProvider method getConditionsLookups.
private List<LookupElementBuilder> getConditionsLookups(Project project, String namespace) {
Tkn tkn = TreeHelper.getTkn(project);
List<LookupElementBuilder> lookups = Collections.emptyList();
try {
lookups = tkn.getConditions(namespace).stream().map(condition -> LookupElementBuilder.create(condition).withPresentableText(condition.getMetadata().getName()).withLookupString(condition.getMetadata().getName()).withInsertHandler(new ConditionAutoInsertHandler())).collect(Collectors.toList());
} catch (IOException e) {
logger.warn("Error: " + e.getLocalizedMessage(), e);
}
return lookups;
}
use of com.redhat.devtools.intellij.tektoncd.tkn.Tkn in project intellij-tekton by redhat-developer.
the class SingleInputInTaskCompletionProvider method getLookupsPipeline.
private List<LookupElementBuilder> getLookupsPipeline(CompletionParameters parameters) {
Project project = parameters.getEditor().getProject();
String currentInputType = parameters.getPosition().getParent().getParent().getParent().getParent().getParent().getParent().getNode().getFirstChildNode().getText();
JsonNode currentTaskNode = getCurrentTaskRefNameInPipeline(parameters, parameters.getPosition());
Tkn tkn = TreeHelper.getTkn(project);
String ns = parameters.getOriginalFile().getVirtualFile().getUserData(NAMESPACE);
try {
JsonNode taskRef = currentTaskNode.get("taskRef");
if (taskRef == null) {
return Collections.emptyList();
}
String nameTask = taskRef.has("name") ? taskRef.get("name").asText("") : "";
if (nameTask.isEmpty()) {
return Collections.emptyList();
}
String kind = taskRef.has("kind") ? taskRef.get("kind").asText(KIND_TASK) : KIND_TASK;
Optional<Task> task = Optional.empty();
Optional<ClusterTask> cTask = Optional.empty();
if (kind.equalsIgnoreCase(KIND_TASK)) {
task = tkn.getTasks(ns).stream().filter(t -> t.getMetadata().getName().equalsIgnoreCase(nameTask)).findFirst();
} else if (kind.equalsIgnoreCase(KIND_CLUSTERTASK)) {
cTask = tkn.getClusterTasks().stream().filter(t -> t.getMetadata().getName().equalsIgnoreCase(nameTask)).findFirst();
}
TaskSpec spec = task.isPresent() ? task.get().getSpec() : cTask.isPresent() ? cTask.get().getSpec() : null;
if (spec != null) {
switch(currentInputType.toLowerCase()) {
case "params":
{
return getParamsLookups(spec, currentTaskNode);
}
case "inputs":
{
return getInputResourcesLookups(spec, currentTaskNode);
}
case "outputs":
{
return getOutputResourcesLookups(spec, currentTaskNode);
}
case "workspaces":
{
return getWorkspacesLookups(spec, currentTaskNode);
}
}
}
} catch (IOException e) {
logger.warn(e.getLocalizedMessage(), e);
}
return Collections.emptyList();
}
use of com.redhat.devtools.intellij.tektoncd.tkn.Tkn in project intellij-tekton by redhat-developer.
the class TaskReferencesInspector method getTasksOnCluster.
private List<String> getTasksOnCluster(Project project, String namespace) {
if (project == null) {
return Collections.emptyList();
}
List<String> tasks = new ArrayList<>();
try {
Tkn tkn = TreeHelper.getTkn(project);
if (tkn != null) {
tkn.getTasks(namespace).forEach(task -> tasks.add(task.getMetadata().getName()));
tkn.getClusterTasks().forEach(ctask -> tasks.add(ctask.getMetadata().getName()));
}
} catch (IOException e) {
logger.warn(e.getLocalizedMessage(), e);
}
return tasks;
}
use of com.redhat.devtools.intellij.tektoncd.tkn.Tkn in project intellij-tekton by redhat-developer.
the class TektonTreeStructure method getConditions.
private Object[] getConditions(ConditionsNode element) {
List<Object> conditions = new ArrayList<>();
try {
Tkn tkn = element.getRoot().getTkn();
tkn.getConditions(element.getParent().getName()).forEach(condition -> conditions.add(new ConditionNode(element.getRoot(), element, condition)));
} catch (IOException e) {
conditions.add(new MessageNode(element.getRoot(), element, "Failed to load conditions"));
}
return conditions.toArray(new Object[conditions.size()]);
}
Aggregations