Skip to content

Commit 1a9e013

Browse files
committed
feat(patterns): start models for patterns
1 parent b0e9b25 commit 1a9e013

File tree

8 files changed

+183
-1
lines changed

8 files changed

+183
-1
lines changed

pom.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
<groupId>io.quarkus</groupId>
5757
<artifactId>quarkus-arc</artifactId>
5858
</dependency>
59-
6059
<dependency>
6160
<groupId>io.quarkus</groupId>
6261
<artifactId>quarkus-kubernetes-client</artifactId>
@@ -65,6 +64,14 @@
6564
<groupId>io.quarkiverse.operatorsdk</groupId>
6665
<artifactId>quarkus-operator-sdk</artifactId>
6766
</dependency>
67+
<dependency>
68+
<groupId>com.fasterxml.jackson.dataformat</groupId>
69+
<artifactId>jackson-dataformat-yaml</artifactId>
70+
</dependency>
71+
<dependency>
72+
<groupId>com.fasterxml.jackson.core</groupId>
73+
<artifactId>jackson-databind</artifactId>
74+
</dependency>
6875

6976
<dependency>
7077
<groupId>io.quarkus</groupId>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import io.quarkus.runtime.annotations.RegisterForReflection;
6+
7+
import java.util.List;
8+
9+
@RegisterForReflection
10+
public class ContextExtraction {
11+
@JsonProperty("lines_before")
12+
private int linesBefore;
13+
@JsonProperty("lines_after")
14+
private int linesAfter;
15+
@JsonProperty("include_stack_trace")
16+
private boolean includeStackTrace;
17+
@JsonProperty("highlight_keywords")
18+
private List<String> highlightKeywords;
19+
20+
public int getLinesBefore() { return linesBefore; }
21+
public void setLinesBefore(int linesBefore) { this.linesBefore = linesBefore; }
22+
public int getLinesAfter() { return linesAfter; }
23+
public void setLinesAfter(int linesAfter) { this.linesAfter = linesAfter; }
24+
public boolean isIncludeStackTrace() { return includeStackTrace; }
25+
public void setIncludeStackTrace(boolean includeStackTrace) { this.includeStackTrace = includeStackTrace; }
26+
public List<String> getHighlightKeywords() { return highlightKeywords; }
27+
public void setHighlightKeywords(List<String> highlightKeywords) { this.highlightKeywords = highlightKeywords; }
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import io.quarkus.runtime.annotations.RegisterForReflection;
6+
7+
import java.util.List;
8+
9+
@RegisterForReflection
10+
public class Metadata {
11+
@JsonProperty("library_id")
12+
private String libraryId;
13+
private String version;
14+
private String maintainer;
15+
private List<String> compatibility;
16+
private List<String> dependencies;
17+
18+
public String getLibraryId() { return libraryId; }
19+
public void setLibraryId(String libraryId) { this.libraryId = libraryId; }
20+
public String getVersion() { return version; }
21+
public void setVersion(String version) { this.version = version; }
22+
public String getMaintainer() { return maintainer; }
23+
public void setMaintainer(String maintainer) { this.maintainer = maintainer; }
24+
public List<String> getCompatibility() { return compatibility; }
25+
public void setCompatibility(List<String> compatibility) { this.compatibility = compatibility; }
26+
public List<String> getDependencies() { return dependencies; }
27+
public void setDependencies(List<String> dependencies) { this.dependencies = dependencies; }
28+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import io.quarkus.runtime.annotations.RegisterForReflection;
6+
7+
import java.util.List;
8+
9+
@RegisterForReflection
10+
public class Pattern {
11+
private String id;
12+
private String name;
13+
@JsonProperty("primary_pattern")
14+
private PrimaryPattern primaryPattern;
15+
@JsonProperty("secondary_patterns")
16+
private List<SecondaryPattern> secondaryPatterns;
17+
private String severity;
18+
private List<String> category;
19+
private Remediation remediation;
20+
@JsonProperty("related_patterns")
21+
private List<String> relatedPatterns;
22+
@JsonProperty("context_extraction")
23+
private ContextExtraction contextExtraction;
24+
25+
public String getId() { return id; }
26+
public void setId(String id) { this.id = id; }
27+
public String getName() { return name; }
28+
public void setName(String name) { this.name = name; }
29+
public PrimaryPattern getPrimaryPattern() { return primaryPattern; }
30+
public void setPrimaryPattern(PrimaryPattern primaryPattern) { this.primaryPattern = primaryPattern; }
31+
public List<SecondaryPattern> getSecondaryPatterns() { return secondaryPatterns; }
32+
public void setSecondaryPatterns(List<SecondaryPattern> secondaryPatterns) { this.secondaryPatterns = secondaryPatterns; }
33+
public String getSeverity() { return severity; }
34+
public void setSeverity(String severity) { this.severity = severity; }
35+
public List<String> getCategory() { return category; }
36+
public void setCategory(List<String> category) { this.category = category; }
37+
public Remediation getRemediation() { return remediation; }
38+
public void setRemediation(Remediation remediation) { this.remediation = remediation; }
39+
public List<String> getRelatedPatterns() { return relatedPatterns; }
40+
public void setRelatedPatterns(List<String> relatedPatterns) { this.relatedPatterns = relatedPatterns; }
41+
public ContextExtraction getContextExtraction() { return contextExtraction; }
42+
public void setContextExtraction(ContextExtraction contextExtraction) { this.contextExtraction = contextExtraction; }
43+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import io.quarkus.runtime.annotations.RegisterForReflection;
4+
5+
import java.util.List;
6+
7+
@RegisterForReflection
8+
public class PatternSet {
9+
private Metadata metadata;
10+
private List<String> categories;
11+
private List<Pattern> patterns;
12+
13+
public Metadata getMetadata() { return metadata; }
14+
public void setMetadata(Metadata metadata) { this.metadata = metadata; }
15+
public List<String> getCategories() { return categories; }
16+
public void setCategories(List<String> categories) { this.categories = categories; }
17+
public List<Pattern> getPatterns() { return patterns; }
18+
public void setPatterns(List<Pattern> patterns) { this.patterns = patterns; }
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import io.quarkus.runtime.annotations.RegisterForReflection;
4+
5+
@RegisterForReflection
6+
public class PrimaryPattern {
7+
private String regex;
8+
private double confidence;
9+
10+
public String getRegex() { return regex; }
11+
public void setRegex(String regex) { this.regex = regex; }
12+
public double getConfidence() { return confidence; }
13+
public void setConfidence(double confidence) { this.confidence = confidence; }
14+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import java.util.List;
5+
6+
public class Remediation {
7+
private String description;
8+
@JsonProperty("common_causes")
9+
private List<String> commonCauses;
10+
@JsonProperty("suggested_commands")
11+
private List<String> suggestedCommands;
12+
@JsonProperty("documentation_links")
13+
private List<String> documentationLinks;
14+
15+
public String getDescription() { return description; }
16+
public void setDescription(String description) { this.description = description; }
17+
public List<String> getCommonCauses() { return commonCauses; }
18+
public void setCommonCauses(List<String> commonCauses) { this.commonCauses = commonCauses; }
19+
public List<String> getSuggestedCommands() { return suggestedCommands; }
20+
public void setSuggestedCommands(List<String> suggestedCommands) { this.suggestedCommands = suggestedCommands; }
21+
public List<String> getDocumentationLinks() { return documentationLinks; }
22+
public void setDocumentationLinks(List<String> documentationLinks) { this.documentationLinks = documentationLinks; }
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.redhat.podmortem.common.model.pattern;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import io.quarkus.runtime.annotations.RegisterForReflection;
6+
7+
@RegisterForReflection
8+
public class SecondaryPattern {
9+
private String regex;
10+
private double weight;
11+
@JsonProperty("proximity_window")
12+
private int proximityWindow;
13+
14+
public String getRegex() { return regex; }
15+
public void setRegex(String regex) { this.regex = regex; }
16+
public double getWeight() { return weight; }
17+
public void setWeight(double weight) { this.weight = weight; }
18+
public int getProximityWindow() { return proximityWindow; }
19+
public void setProximityWindow(int proximityWindow) { this.proximityWindow = proximityWindow; }
20+
}

0 commit comments

Comments
 (0)