Skip to content

Commit 55a0fd4

Browse files
authored
Merge pull request #191 from DevopsArtFactory/refactor/107-ecs-submodel
refactor: extract ECS TUI submodel
2 parents 5dee188 + 856a760 commit 55a0fd4

5 files changed

Lines changed: 247 additions & 218 deletions

File tree

internal/app/app.go

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -137,26 +137,6 @@ type Model struct {
137137
sgAddInput string // current field text input
138138
sgAddSelectIdx int // index for select-type fields (direction, protocol)
139139

140-
// ECS browser state
141-
ecsClusters []awsservice.ECSCluster
142-
filteredECSClusters []awsservice.ECSCluster
143-
ecsClusterIdx int
144-
selectedECSCluster *awsservice.ECSCluster
145-
146-
ecsServices []awsservice.ECSService
147-
filteredECSServices []awsservice.ECSService
148-
ecsServiceIdx int
149-
selectedECSService *awsservice.ECSService
150-
selectedECSDetail *awsservice.ECSServiceDetail
151-
ecsDetailScroll int
152-
153-
ecsTasks []awsservice.ECSTask
154-
ecsTaskIdx int
155-
selectedECSTask *awsservice.ECSTask
156-
157-
ecsContainers []awsservice.ECSContainer
158-
ecsContainerIdx int
159-
160140
// EKS browser state
161141
eksClusters []awsservice.EKSCluster
162142
filteredEKSClusters []awsservice.EKSCluster
@@ -171,6 +151,7 @@ type Model struct {
171151

172152
// Feature submodels
173153
ec2Browser ec2InstanceBrowserModel
154+
ecs ecsModel
174155
vpc vpcModel
175156
reachability reachabilityModel
176157
cwMetrics cloudWatchMetricsModel
@@ -281,6 +262,7 @@ func New(cfg *config.Config, configPath string, version string, checklistPath ..
281262
contextTable: newContextTable(),
282263
}
283264
model.ec2Browser = newEC2InstanceBrowserModel()
265+
model.ecs = newECSModel()
284266
model.vpc = newVPCModel()
285267
model.reachability = newReachabilityModel()
286268
model.cwMetrics = newCloudWatchMetricsModel()
@@ -389,7 +371,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
389371
for _, h := range []func(tea.Msg) (tea.Model, tea.Cmd, bool){
390372
m.handleEC2VPCMsg,
391373
m.handleSecurityGroupMsg,
392-
m.handleECSMsg,
393374
m.handleEKSMsg,
394375
m.handleInspectorMsg,
395376
m.handleContextMsg,
@@ -480,16 +461,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
480461
return m.updateSecurityGroupAddRule(msg)
481462
case screenSecurityGroupDeleteConfirm:
482463
return m.updateSecurityGroupDeleteConfirm(msg)
483-
case screenECSClusterList:
484-
return m.updateECSClusterList(msg)
485-
case screenECSServiceList:
486-
return m.updateECSServiceList(msg)
487-
case screenECSServiceDetail:
488-
return m.updateECSServiceDetail(msg)
489-
case screenECSTaskList:
490-
return m.updateECSTaskList(msg)
491-
case screenECSContainerList:
492-
return m.updateECSContainerList(msg)
493464
case screenEKSClusterList:
494465
return m.updateEKSClusterList(msg)
495466
case screenEKSNodeGroupList:
@@ -599,7 +570,7 @@ func (m Model) updateFeatureList(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
599570
case domain.FeatureRotateAccessKey:
600571
return m.iam.StartKeys(&m, true)
601572
case domain.FeatureECSExec:
602-
return m.startLoading(m.loadECSClusters())
573+
return m.ecs.Start(&m)
603574
case domain.FeatureEKSBrowser:
604575
return m.startLoading(m.loadEKSClusters())
605576
case domain.FeatureLambdaBrowser:
@@ -670,16 +641,6 @@ func (m Model) View() string {
670641
v = m.viewSecurityGroupAddRule()
671642
case screenSecurityGroupDeleteConfirm:
672643
v = m.viewSecurityGroupDeleteConfirm()
673-
case screenECSClusterList:
674-
v = m.viewECSClusterList()
675-
case screenECSServiceList:
676-
v = m.viewECSServiceList()
677-
case screenECSServiceDetail:
678-
v = m.viewECSServiceDetail()
679-
case screenECSTaskList:
680-
v = m.viewECSTaskList()
681-
case screenECSContainerList:
682-
v = m.viewECSContainerList()
683644
case screenEKSClusterList:
684645
v = m.viewEKSClusterList()
685646
case screenEKSNodeGroupList:

internal/app/feature_submodel.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ type featureSubmodel interface {
1010
}
1111

1212
func (m *Model) featureSubmodels() []featureSubmodel {
13-
return []featureSubmodel{&m.ec2Browser, &m.vpc, &m.reachability, &m.cwMetrics, &m.cwLogs, &m.rds, &m.route53, &m.iam, &m.bedrock, &m.secrets, &m.s3, &m.lambda}
13+
return []featureSubmodel{&m.ec2Browser, &m.ecs, &m.vpc, &m.reachability, &m.cwMetrics, &m.cwLogs, &m.rds, &m.route53, &m.iam, &m.bedrock, &m.secrets, &m.s3, &m.lambda}
1414
}

internal/app/filter.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,6 @@ func (m *Model) applyFilterTarget(target filterTarget) {
168168
case filterSecurityGroups:
169169
m.filteredSecurityGroups = applyFilter(m.securityGroups, m.filterValue(target))
170170
m.sgIdx = 0
171-
case filterECSClusters:
172-
m.filteredECSClusters = applyFilter(m.ecsClusters, m.filterValue(target))
173-
m.ecsClusterIdx = 0
174-
case filterECSServices:
175-
m.filteredECSServices = applyFilter(m.ecsServices, m.filterValue(target))
176-
m.ecsServiceIdx = 0
177171
case filterEKSClusters:
178172
m.filteredEKSClusters = applyFilter(m.eksClusters, m.filterValue(target))
179173
m.eksClusterIdx = 0

0 commit comments

Comments
 (0)