@@ -31,13 +31,17 @@ import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.Persist
31
31
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForDaemonSet
32
32
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForDeployment
33
33
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForJob
34
+ import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForReplicaSet
35
+ import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForReplicationController
34
36
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForService
35
37
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.PodForStatefulSet
38
+ import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.ReplicaSetsOperator
36
39
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.SecretsOperator
37
40
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.ServicesOperator
38
41
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.StatefulSetsOperator
39
42
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.StorageClassesOperator
40
43
import com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.custom.CustomResourceDefinitionsOperator
44
+ import com.redhat.devtools.intellij.kubernetes.model.resource.openshift.ReplicationControllersOperator
41
45
import com.redhat.devtools.intellij.kubernetes.model.resourceName
42
46
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.CONFIGURATION
43
47
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.CONFIG_MAPS
@@ -54,6 +58,8 @@ import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.
54
58
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.PERSISTENT_VOLUMES
55
59
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.PERSISTENT_VOLUME_CLAIMS
56
60
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.PODS
61
+ import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.REPLICASETS
62
+ import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.REPLICATIONCONTROLLERS
57
63
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.SECRETS
58
64
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.SERVICES
59
65
import com.redhat.devtools.intellij.kubernetes.tree.KubernetesStructure.Folders.STATEFULSETS
@@ -67,32 +73,36 @@ import io.fabric8.kubernetes.api.model.HasMetadata
67
73
import io.fabric8.kubernetes.api.model.Namespace
68
74
import io.fabric8.kubernetes.api.model.Node
69
75
import io.fabric8.kubernetes.api.model.Pod
76
+ import io.fabric8.kubernetes.api.model.ReplicationController
70
77
import io.fabric8.kubernetes.api.model.Secret
71
78
import io.fabric8.kubernetes.api.model.Service
72
79
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition
73
80
import io.fabric8.kubernetes.api.model.apps.DaemonSet
74
81
import io.fabric8.kubernetes.api.model.apps.Deployment
82
+ import io.fabric8.kubernetes.api.model.apps.ReplicaSet
75
83
import io.fabric8.kubernetes.api.model.apps.StatefulSet
76
84
import io.fabric8.kubernetes.api.model.batch.v1.Job
77
85
import io.fabric8.kubernetes.api.model.discovery.v1beta1.Endpoint
78
86
import io.fabric8.kubernetes.api.model.storage.StorageClass
79
87
80
88
class KubernetesStructure (model : IResourceModel ) : AbstractTreeStructureContribution(model) {
81
89
object Folders {
82
- val NAMESPACES = NamespacesFolder (" Namespaces" )
83
- val NODES = Folder (" Nodes" , kind = NodesOperator .KIND )
84
- val WORKLOADS = Folder (" Workloads" , kind = null )
85
- val DEPLOYMENTS = Folder (" Deployments" , kind = DeploymentsOperator .KIND ) // Workloads / Deployments
86
- val STATEFULSETS = Folder (" StatefulSets" , kind = StatefulSetsOperator .KIND ) // Workloads / StatefulSets
87
- val DAEMONSETS = Folder (" DaemonSets" , kind = DaemonSetsOperator .KIND ) // Workloads / DaemonSets
88
- val JOBS = Folder (" Jobs" , kind = JobsOperator .KIND ) // Workloads / Jobs
89
- val CRONJOBS = Folder (" CronJobs" , kind = CronJobsOperator .KIND ) // Workloads / CronJobs
90
- val PODS = Folder (" Pods" , kind = NamespacedPodsOperator .KIND ) // Workloads / Pods
91
- val NETWORK = Folder (" Network" , kind = null )
92
- val SERVICES = Folder (" Services" , kind = ServicesOperator .KIND ) // Network / Services
93
- val ENDPOINTS = Folder (" Endpoints" , kind = EndpointsOperator .KIND ) // Network / Endpoints
90
+ val NAMESPACES = NamespacesFolder (" Namespaces" )
91
+ val NODES = Folder (" Nodes" , kind = NodesOperator .KIND )
92
+ val WORKLOADS = Folder (" Workloads" , kind = null )
93
+ val DEPLOYMENTS = Folder (" Deployments" , kind = DeploymentsOperator .KIND ) // Workloads / Deployments
94
+ val STATEFULSETS = Folder (" Stateful Sets" , kind = StatefulSetsOperator .KIND ) // Workloads / StatefulSets
95
+ val DAEMONSETS = Folder (" Daemon Sets" , kind = DaemonSetsOperator .KIND ) // Workloads / DaemonSets
96
+ val JOBS = Folder (" Jobs" , kind = JobsOperator .KIND ) // Workloads / Jobs
97
+ val CRONJOBS = Folder (" Cron Jobs" , kind = CronJobsOperator .KIND ) // Workloads / CronJobs
98
+ val PODS = Folder (" Pods" , kind = NamespacedPodsOperator .KIND ) // Workloads / Pods
99
+ val REPLICASETS = Folder (" Replica Sets" , kind = ReplicaSetsOperator .KIND ) // Workloads / ReplicaSets
100
+ val REPLICATIONCONTROLLERS = Folder (" Replication Controllers" , kind = ReplicationControllersOperator .KIND ) // Workloads / ReplicationControllers
101
+ val NETWORK = Folder (" Network" , kind = null )
102
+ val SERVICES = Folder (" Services" , kind = ServicesOperator .KIND ) // Network / Services
103
+ val ENDPOINTS = Folder (" Endpoints" , kind = EndpointsOperator .KIND ) // Network / Endpoints
94
104
val INGRESS = Folder (" Ingress" , kind = IngressOperator .KIND ) // Network / Ingress
95
- val STORAGE = Folder (" Storage" , kind = null )
105
+ val STORAGE = Folder (" Storage" , kind = null )
96
106
val PERSISTENT_VOLUMES = Folder (" Persistent Volumes" , kind = PersistentVolumesOperator .KIND ) // Storage / Persistent Volumes
97
107
val PERSISTENT_VOLUME_CLAIMS = Folder (" Persistent Volume Claims" , kind = PersistentVolumeClaimsOperator .KIND ) // Storage / Persistent Volume Claims
98
108
val STORAGE_CLASSES = Folder (" Storage Classes" , kind = StorageClassesOperator .KIND ) // Storage / Storage Classes
@@ -192,7 +202,9 @@ class KubernetesStructure(model: IResourceModel) : AbstractTreeStructureContribu
192
202
DAEMONSETS ,
193
203
JOBS ,
194
204
CRONJOBS ,
195
- PODS )
205
+ PODS ,
206
+ REPLICASETS ,
207
+ REPLICATIONCONTROLLERS )
196
208
}
197
209
},
198
210
element<Any > {
@@ -298,7 +310,49 @@ class KubernetesStructure(model: IResourceModel) : AbstractTreeStructureContribu
298
310
.list()
299
311
.sortedBy(resourceName)
300
312
}
301
- }
313
+ },
314
+ element<Any > {
315
+ applicableIf { it == REPLICASETS }
316
+ childrenKind { ReplicaSetsOperator .KIND }
317
+ children {
318
+ model.resources(ReplicaSetsOperator .KIND )
319
+ .inCurrentNamespace()
320
+ .list()
321
+ .sortedBy(resourceName)
322
+ }
323
+ },
324
+ element<ReplicaSet > {
325
+ applicableIf { it is ReplicaSet }
326
+ childrenKind { NamespacedPodsOperator .KIND }
327
+ children {
328
+ model.resources(NamespacedPodsOperator .KIND )
329
+ .inCurrentNamespace()
330
+ .filtered(PodForReplicaSet (it))
331
+ .list()
332
+ .sortedBy(resourceName)
333
+ }
334
+ },
335
+ element<Any > {
336
+ applicableIf { it == REPLICATIONCONTROLLERS }
337
+ childrenKind { ReplicationControllersOperator .KIND }
338
+ children {
339
+ model.resources(ReplicationControllersOperator .KIND )
340
+ .inCurrentNamespace()
341
+ .list()
342
+ .sortedBy(resourceName)
343
+ }
344
+ },
345
+ element<ReplicationController > {
346
+ applicableIf { it is ReplicationController }
347
+ childrenKind { NamespacedPodsOperator .KIND }
348
+ children {
349
+ model.resources(NamespacedPodsOperator .KIND )
350
+ .inCurrentNamespace()
351
+ .filtered(PodForReplicationController (it))
352
+ .list()
353
+ .sortedBy(resourceName)
354
+ }
355
+ },
302
356
)
303
357
}
304
358
0 commit comments