@@ -123,43 +123,6 @@ type Model struct {
123123 // SSM session state
124124 selectedInstance * awsservice.EC2Instance
125125
126- // VPC browser state
127- vpcs []awsservice.VPC
128- filteredVPCs []awsservice.VPC
129- vpcIdx int
130- subnets []awsservice.Subnet
131- filteredSubnets []awsservice.Subnet
132- subnetIdx int
133- selectedVPC * awsservice.VPC
134- selectedSubnet * awsservice.Subnet
135- availableIPs []string
136- filteredIPs []string
137- ipScrollOffset int
138- ipFilter string
139- ipFilterActive bool
140- reachabilityRegions []string
141- filteredReachabilityRegions []string
142- reachabilityRegion string
143- reachabilityRegionIdx int
144- reachabilityRegionFilter string
145- reachabilityRegionFiltering bool
146- reachabilityTargets []awsservice.ReachabilityTarget
147- filteredReachabilityTargets []awsservice.ReachabilityTarget
148- reachabilitySourceTypes []string
149- reachabilitySourceTypeIdx int
150- reachabilityDestTypes []string
151- reachabilityDestTypeIdx int
152- reachabilityIdx int
153- reachabilityFilter string
154- reachabilityFilterActive bool
155- reachabilitySource * awsservice.ReachabilityTarget
156- reachabilityDestination * awsservice.ReachabilityTarget
157- reachabilityDestinationIP string
158- reachabilityProtocolIdx int
159- reachabilityPortInput string
160- reachabilityConfigField int
161- reachabilityResult * awsservice.ReachabilityAnalysisResult
162- reachabilityScrollOffset int
163126 // Security Group browser state
164127 securityGroups []awsservice.SecurityGroup
165128 filteredSecurityGroups []awsservice.SecurityGroup
@@ -207,16 +170,18 @@ type Model struct {
207170 eksNodeGroupScroll int
208171
209172 // Feature submodels
210- ec2Browser ec2InstanceBrowserModel
211- cwMetrics cloudWatchMetricsModel
212- cwLogs cloudWatchLogsModel
213- rds rdsModel
214- route53 route53Model
215- iam iamModel
216- bedrock bedrockModel
217- secrets secretsModel
218- s3 s3Model
219- lambda lambdaModel
173+ ec2Browser ec2InstanceBrowserModel
174+ vpc vpcModel
175+ reachability reachabilityModel
176+ cwMetrics cloudWatchMetricsModel
177+ cwLogs cloudWatchLogsModel
178+ rds rdsModel
179+ route53 route53Model
180+ iam iamModel
181+ bedrock bedrockModel
182+ secrets secretsModel
183+ s3 s3Model
184+ lambda lambdaModel
220185
221186 // Inspector browser state
222187 inspectorWorkflows []inspector.Workflow
@@ -316,6 +281,8 @@ func New(cfg *config.Config, configPath string, version string, checklistPath ..
316281 contextTable : newContextTable (),
317282 }
318283 model .ec2Browser = newEC2InstanceBrowserModel ()
284+ model .vpc = newVPCModel ()
285+ model .reachability = newReachabilityModel ()
319286 model .cwMetrics = newCloudWatchMetricsModel ()
320287 model .cwLogs = newCloudWatchLogsModel ()
321288 model .rds = newRDSModel ()
@@ -491,22 +458,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
491458 return m .updateFeatureList (msg )
492459 case screenInstanceList :
493460 return m .updateInstanceList (msg )
494- case screenVPCList :
495- return m .updateVPCList (msg )
496- case screenSubnetList :
497- return m .updateSubnetList (msg )
498- case screenSubnetDetail :
499- return m .updateSubnetDetail (msg )
500- case screenReachabilityRegionList :
501- return m .updateReachabilityRegionList (msg )
502- case screenReachabilitySourceList :
503- return m .updateReachabilitySourceList (msg )
504- case screenReachabilityDestinationList :
505- return m .updateReachabilityDestinationList (msg )
506- case screenReachabilityConfig :
507- return m .updateReachabilityConfig (msg )
508- case screenReachabilityResult :
509- return m .updateReachabilityResult (msg )
510461 case screenInspectorHome :
511462 return m .updateInspectorHome (msg )
512463 case screenInspectorWorkflowPlaceholder :
@@ -624,27 +575,9 @@ func (m Model) updateFeatureList(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
624575 case domain .FeatureEC2InstanceBrowser :
625576 return m .ec2Browser .Start (& m )
626577 case domain .FeatureVPCBrowser :
627- return m .startLoading ( m . loadVPCs () )
578+ return m .vpc . Start ( & m )
628579 case domain .FeatureReachabilityAnalyzer :
629- m .reachabilityRegions = availableReachabilityRegions (m .cfg .Region )
630- m .filteredReachabilityRegions = m .reachabilityRegions
631- m .reachabilityRegion = m .cfg .Region
632- m .reachabilityRegionIdx = indexOfString (m .reachabilityRegions , m .reachabilityRegion )
633- if m .reachabilityRegionIdx < 0 {
634- m .reachabilityRegionIdx = 0
635- }
636- m .reachabilityRegionFilter = ""
637- m .reachabilityRegionFiltering = false
638- m .reachabilityTargets = nil
639- m .filteredReachabilityTargets = nil
640- m .reachabilitySource = nil
641- m .reachabilityDestination = nil
642- m .reachabilityDestinationIP = ""
643- m .reachabilityResult = nil
644- m .reachabilityScrollOffset = 0
645- m .awsRepo = nil
646- m .screen = screenReachabilityRegionList
647- return m , nil
580+ return m .reachability .Start (& m )
648581 case domain .FeatureRDSBrowser :
649582 return m .rds .Start (& m )
650583 case domain .FeatureRoute53Browser :
@@ -713,22 +646,6 @@ func (m Model) View() string {
713646 v = m .viewFeatureList ()
714647 case screenInstanceList :
715648 v = m .viewInstanceList ()
716- case screenVPCList :
717- v = m .viewVPCList ()
718- case screenSubnetList :
719- v = m .viewSubnetList ()
720- case screenSubnetDetail :
721- v = m .viewSubnetDetail ()
722- case screenReachabilityRegionList :
723- v = m .viewReachabilityRegionList ()
724- case screenReachabilitySourceList :
725- v = m .viewReachabilitySourceList ()
726- case screenReachabilityDestinationList :
727- v = m .viewReachabilityDestinationList ()
728- case screenReachabilityConfig :
729- v = m .viewReachabilityConfig ()
730- case screenReachabilityResult :
731- v = m .viewReachabilityResult ()
732649 case screenInspectorHome :
733650 v = m .viewInspectorHome ()
734651 case screenInspectorWorkflowPlaceholder :
0 commit comments