@@ -129,43 +129,6 @@ type Model struct {
129129 // SSM session state
130130 selectedInstance * awsservice.EC2Instance
131131
132- // VPC browser state
133- vpcs []awsservice.VPC
134- filteredVPCs []awsservice.VPC
135- vpcIdx int
136- subnets []awsservice.Subnet
137- filteredSubnets []awsservice.Subnet
138- subnetIdx int
139- selectedVPC * awsservice.VPC
140- selectedSubnet * awsservice.Subnet
141- availableIPs []string
142- filteredIPs []string
143- ipScrollOffset int
144- ipFilter string
145- ipFilterActive bool
146- reachabilityRegions []string
147- filteredReachabilityRegions []string
148- reachabilityRegion string
149- reachabilityRegionIdx int
150- reachabilityRegionFilter string
151- reachabilityRegionFiltering bool
152- reachabilityTargets []awsservice.ReachabilityTarget
153- filteredReachabilityTargets []awsservice.ReachabilityTarget
154- reachabilitySourceTypes []string
155- reachabilitySourceTypeIdx int
156- reachabilityDestTypes []string
157- reachabilityDestTypeIdx int
158- reachabilityIdx int
159- reachabilityFilter string
160- reachabilityFilterActive bool
161- reachabilitySource * awsservice.ReachabilityTarget
162- reachabilityDestination * awsservice.ReachabilityTarget
163- reachabilityDestinationIP string
164- reachabilityProtocolIdx int
165- reachabilityPortInput string
166- reachabilityConfigField int
167- reachabilityResult * awsservice.ReachabilityAnalysisResult
168- reachabilityScrollOffset int
169132 // Security Group browser state
170133 securityGroups []awsservice.SecurityGroup
171134 filteredSecurityGroups []awsservice.SecurityGroup
@@ -230,16 +193,18 @@ type Model struct {
230193 ecrCopyMsg string
231194
232195 // Feature submodels
233- ec2Browser ec2InstanceBrowserModel
234- cwMetrics cloudWatchMetricsModel
235- cwLogs cloudWatchLogsModel
236- rds rdsModel
237- route53 route53Model
238- iam iamModel
239- bedrock bedrockModel
240- secrets secretsModel
241- s3 s3Model
242- lambda lambdaModel
196+ ec2Browser ec2InstanceBrowserModel
197+ vpc vpcModel
198+ reachability reachabilityModel
199+ cwMetrics cloudWatchMetricsModel
200+ cwLogs cloudWatchLogsModel
201+ rds rdsModel
202+ route53 route53Model
203+ iam iamModel
204+ bedrock bedrockModel
205+ secrets secretsModel
206+ s3 s3Model
207+ lambda lambdaModel
243208
244209 // Inspector browser state
245210 inspectorWorkflows []inspector.Workflow
@@ -339,6 +304,8 @@ func New(cfg *config.Config, configPath string, version string, checklistPath ..
339304 contextTable : newContextTable (),
340305 }
341306 model .ec2Browser = newEC2InstanceBrowserModel ()
307+ model .vpc = newVPCModel ()
308+ model .reachability = newReachabilityModel ()
342309 model .cwMetrics = newCloudWatchMetricsModel ()
343310 model .cwLogs = newCloudWatchLogsModel ()
344311 model .rds = newRDSModel ()
@@ -515,22 +482,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
515482 return m .updateFeatureList (msg )
516483 case screenInstanceList :
517484 return m .updateInstanceList (msg )
518- case screenVPCList :
519- return m .updateVPCList (msg )
520- case screenSubnetList :
521- return m .updateSubnetList (msg )
522- case screenSubnetDetail :
523- return m .updateSubnetDetail (msg )
524- case screenReachabilityRegionList :
525- return m .updateReachabilityRegionList (msg )
526- case screenReachabilitySourceList :
527- return m .updateReachabilitySourceList (msg )
528- case screenReachabilityDestinationList :
529- return m .updateReachabilityDestinationList (msg )
530- case screenReachabilityConfig :
531- return m .updateReachabilityConfig (msg )
532- case screenReachabilityResult :
533- return m .updateReachabilityResult (msg )
534485 case screenInspectorHome :
535486 return m .updateInspectorHome (msg )
536487 case screenInspectorWorkflowPlaceholder :
@@ -660,27 +611,9 @@ func (m Model) updateFeatureList(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
660611 case domain .FeatureEC2InstanceBrowser :
661612 return m .ec2Browser .Start (& m )
662613 case domain .FeatureVPCBrowser :
663- return m .startLoading ( m . loadVPCs () )
614+ return m .vpc . Start ( & m )
664615 case domain .FeatureReachabilityAnalyzer :
665- m .reachabilityRegions = availableReachabilityRegions (m .cfg .Region )
666- m .filteredReachabilityRegions = m .reachabilityRegions
667- m .reachabilityRegion = m .cfg .Region
668- m .reachabilityRegionIdx = indexOfString (m .reachabilityRegions , m .reachabilityRegion )
669- if m .reachabilityRegionIdx < 0 {
670- m .reachabilityRegionIdx = 0
671- }
672- m .reachabilityRegionFilter = ""
673- m .reachabilityRegionFiltering = false
674- m .reachabilityTargets = nil
675- m .filteredReachabilityTargets = nil
676- m .reachabilitySource = nil
677- m .reachabilityDestination = nil
678- m .reachabilityDestinationIP = ""
679- m .reachabilityResult = nil
680- m .reachabilityScrollOffset = 0
681- m .awsRepo = nil
682- m .screen = screenReachabilityRegionList
683- return m , nil
616+ return m .reachability .Start (& m )
684617 case domain .FeatureRDSBrowser :
685618 return m .rds .Start (& m )
686619 case domain .FeatureRoute53Browser :
@@ -751,22 +684,6 @@ func (m Model) View() string {
751684 v = m .viewFeatureList ()
752685 case screenInstanceList :
753686 v = m .viewInstanceList ()
754- case screenVPCList :
755- v = m .viewVPCList ()
756- case screenSubnetList :
757- v = m .viewSubnetList ()
758- case screenSubnetDetail :
759- v = m .viewSubnetDetail ()
760- case screenReachabilityRegionList :
761- v = m .viewReachabilityRegionList ()
762- case screenReachabilitySourceList :
763- v = m .viewReachabilitySourceList ()
764- case screenReachabilityDestinationList :
765- v = m .viewReachabilityDestinationList ()
766- case screenReachabilityConfig :
767- v = m .viewReachabilityConfig ()
768- case screenReachabilityResult :
769- v = m .viewReachabilityResult ()
770687 case screenInspectorHome :
771688 v = m .viewInspectorHome ()
772689 case screenInspectorWorkflowPlaceholder :
0 commit comments