use of com.redhat.devtools.intellij.tektoncd.tree.PipelinesNode in project intellij-tekton by redhat-developer.
the class WatchNodes method setWatchByNode.
public void setWatchByNode(ParentableNode<?> element) {
String namespace = element.getNamespace();
String watchId = getWatchId(element);
Watch watch = null;
WatchNodes wn = null;
// (e.g a taskRuns watcher, when a change happens, could update multiple nodes such as a single Task node and the TaskRuns node)
if (this.watches.containsKey(watchId)) {
wn = this.watches.get(watchId);
if (wn.getNodes().stream().noneMatch(item -> item.getName().equalsIgnoreCase(element.getName()) && ((ParentableNode) item.getParent()).getName().equalsIgnoreCase(((ParentableNode) element.getParent()).getName()))) {
wn.getNodes().add(element);
}
return;
}
Watcher watcher = getWatcher(watchId, element.getRoot().getProject());
try {
if (element instanceof PipelinesNode) {
watch = tkn.watchPipelines(namespace, watcher);
} else if (element instanceof PipelineNode) {
// we are expanding a single pipeline node and we want it to refresh if its children (pipelineruns) change
watch = tkn.watchPipelineRuns(namespace, watcher);
} else if (element instanceof PipelineRunsNode) {
watch = tkn.watchPipelineRuns(namespace, watcher);
} else if (element instanceof PipelineRunNode) {
// we are expanding a single pipelinerun node and we want it to refresh if its children (taskruns) change
watch = tkn.watchTaskRuns(namespace, watcher);
} else if (element instanceof ResourcesNode) {
watch = tkn.watchPipelineResources(namespace, watcher);
} else if (element instanceof TasksNode) {
watch = tkn.watchTasks(namespace, watcher);
} else if (element instanceof TaskNode) {
// we are expanding a single task node and we want it to refresh if its children (taskruns) change
watch = tkn.watchTaskRuns(namespace, watcher);
} else if (element instanceof TaskRunsNode) {
watch = tkn.watchTaskRuns(namespace, watcher);
} else if (element instanceof ClusterTasksNode) {
watch = tkn.watchClusterTasks(watcher);
} else if (element instanceof ConditionsNode) {
watch = tkn.watchConditions(namespace, watcher);
} else if (element instanceof TriggerTemplatesNode) {
watch = tkn.watchTriggerTemplates(namespace, watcher);
} else if (element instanceof TriggerBindingsNode) {
watch = tkn.watchTriggerBindings(namespace, watcher);
} else if (element instanceof ClusterTriggerBindingsNode) {
watch = tkn.watchClusterTriggerBindings(watcher);
} else if (element instanceof EventListenersNode) {
watch = tkn.watchEventListeners(namespace, watcher);
}
wn = new WatchNodes(watch, element);
} catch (IOException e) {
logger.warn("Error: " + e.getLocalizedMessage(), e);
}
if (wn != null) {
watches.put(watchId, wn);
}
}
use of com.redhat.devtools.intellij.tektoncd.tree.PipelinesNode in project intellij-tekton by redhat-developer.
the class HubModelTest method setUp.
@Before
public void setUp() throws Exception {
super.setUp();
watch = mock(Watch.class);
when(tkn.getNamespace()).thenReturn("namespace");
when(tkn.watchPipelines(anyString(), any())).thenReturn(watch);
when(tkn.watchTasks(anyString(), any())).thenReturn(watch);
when(tkn.watchClusterTasks(any())).thenReturn(watch);
pipelinesNode = mock(PipelinesNode.class);
clusterTasksNode = mock(ClusterTasksNode.class);
recognizerFactory = mock(RecognizerFactory.class);
languageRecognizer = mock(LanguageRecognizer.class);
when(recognizerFactory.createLanguageRecognizer()).thenReturn(languageRecognizer);
languageJAVA = new Language("java", Collections.emptyList(), 1.0, true);
languageUnknown = new Language("Unknown", Collections.emptyList(), 1.0, false);
resourceApi = mock(ResourceApi.class);
resourceDataJAVA = mock(ResourceData.class);
resourceVersionDataJAVA = mock(ResourceVersionData.class);
when(resourceDataJAVA.getName()).thenReturn("java");
when(resourceDataJAVA.getKind()).thenReturn(KIND_TASK);
when(resourceDataJAVA.getLatestVersion()).thenReturn(resourceVersionDataJAVA);
when(resourceVersionDataJAVA.getVersion()).thenReturn("v1");
resourceDataGO = mock(ResourceData.class);
resourceVersionDataGO = mock(ResourceVersionData.class);
when(resourceDataGO.getName()).thenReturn("go");
when(resourceDataGO.getKind()).thenReturn(KIND_TASK);
when(resourceDataGO.getLatestVersion()).thenReturn(resourceVersionDataGO);
when(resourceVersionDataGO.getVersion()).thenReturn("v1");
resourceDataNET = mock(ResourceData.class);
resourceVersionDataNET = mock(ResourceVersionData.class);
when(resourceDataNET.getName()).thenReturn("net");
when(resourceDataNET.getKind()).thenReturn(KIND_PIPELINE);
when(resourceDataNET.getLatestVersion()).thenReturn(resourceVersionDataNET);
when(resourceVersionDataNET.getVersion()).thenReturn("v1");
when(project.getBasePath()).thenReturn(".");
resources = new Resources();
resources.addDataItem(resourceDataJAVA);
resources.addDataItem(resourceDataGO);
}
use of com.redhat.devtools.intellij.tektoncd.tree.PipelinesNode in project intellij-tekton by redhat-developer.
the class CreatePipelineAction method actionPerformed.
@Override
public void actionPerformed(AnActionEvent anActionEvent, TreePath path, Object selected, Tkn tkncli) {
ActionMessage telemetry = TelemetryService.instance().action(NAME_PREFIX_CRUD + "create pipeline").property(PROP_RESOURCE_KIND, KIND_PIPELINE);
PipelinesNode item = getElement(selected);
String namespace = item.getParent().getName();
String content = getSnippet("Tekton: Pipeline");
if (Strings.isNullOrEmpty(content)) {
telemetry.error("snippet content empty").send();
} else {
String name = namespace + "-newpipeline.yaml";
try {
VirtualFileHelper.createAndOpenVirtualFile(anActionEvent.getProject(), namespace, name, content, KIND_PIPELINES, item);
telemetry.send();
} catch (IOException e) {
telemetry.error(anonymizeResource(name, namespace, e.getMessage())).send();
logger.warn("Could not create resource: " + e.getLocalizedMessage(), e);
}
}
}
Aggregations