@@ -38,7 +38,41 @@ func (a *AnalyzeHostHTTP) Analyze(
3838 if hostAnalyzer .CollectorName != "" {
3939 name = filepath .Join ("host-collectors/http" , hostAnalyzer .CollectorName + ".json" )
4040 }
41- contents , err := getCollectedFileContents (name )
41+
42+ return analyzeHTTPResult (hostAnalyzer , name , getCollectedFileContents , a .Title ())
43+ }
44+
45+ func compareHostHTTPConditionalToActual (conditional string , result * httpResult ) (res bool , err error ) {
46+ if conditional == "error" {
47+ return result .Error != nil , nil
48+ }
49+
50+ parts := strings .Split (conditional , " " )
51+ if len (parts ) != 3 {
52+ return false , fmt .Errorf ("Failed to parse conditional: got %d parts" , len (parts ))
53+ }
54+
55+ if parts [0 ] != "statusCode" {
56+ return false , errors .New (`Conditional must begin with keyword "statusCode"` )
57+ }
58+
59+ if parts [1 ] != "=" && parts [1 ] != "==" && parts [1 ] != "===" {
60+ return false , errors .New (`Only supported operator is "=="` )
61+ }
62+
63+ i , err := strconv .Atoi (parts [2 ])
64+ if err != nil {
65+ return false , err
66+ }
67+
68+ if result .Response == nil {
69+ return false , err
70+ }
71+ return result .Response .Status == i , nil
72+ }
73+
74+ func analyzeHTTPResult (analyzer * troubleshootv1beta2.HTTPAnalyze , fileName string , getCollectedFileContents getCollectedFileContents , title string ) ([]* AnalyzeResult , error ) {
75+ contents , err := getCollectedFileContents (fileName )
4276 if err != nil {
4377 return nil , errors .Wrap (err , "failed to get collected file" )
4478 }
@@ -49,10 +83,10 @@ func (a *AnalyzeHostHTTP) Analyze(
4983 }
5084
5185 result := & AnalyzeResult {
52- Title : a . Title () ,
86+ Title : title ,
5387 }
5488
55- for _ , outcome := range hostAnalyzer .Outcomes {
89+ for _ , outcome := range analyzer .Outcomes {
5690 if outcome .Fail != nil {
5791 if outcome .Fail .When == "" {
5892 result .IsFail = true
@@ -122,32 +156,3 @@ func (a *AnalyzeHostHTTP) Analyze(
122156
123157 return []* AnalyzeResult {result }, nil
124158}
125-
126- func compareHostHTTPConditionalToActual (conditional string , result * httpResult ) (res bool , err error ) {
127- if conditional == "error" {
128- return result .Error != nil , nil
129- }
130-
131- parts := strings .Split (conditional , " " )
132- if len (parts ) != 3 {
133- return false , fmt .Errorf ("Failed to parse conditional: got %d parts" , len (parts ))
134- }
135-
136- if parts [0 ] != "statusCode" {
137- return false , errors .New (`Conditional must begin with keyword "statusCode"` )
138- }
139-
140- if parts [1 ] != "=" && parts [1 ] != "==" && parts [1 ] != "===" {
141- return false , errors .New (`Only supported operator is "=="` )
142- }
143-
144- i , err := strconv .Atoi (parts [2 ])
145- if err != nil {
146- return false , err
147- }
148-
149- if result .Response == nil {
150- return false , err
151- }
152- return result .Response .Status == i , nil
153- }
0 commit comments