Skip to content

Commit bb370f0

Browse files
authored
refactor: make remaining rules implement rule interface (#131)
## Description Forgot two of the four rules when doing #130. This does the rest. Signed-off-by: Matt Welke <[email protected]>
1 parent 259508a commit bb370f0

7 files changed

+42
-12
lines changed

api/v1alpha1/maasvalidator_types.go

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,22 +121,50 @@ type DNSRecord struct {
121121

122122
// UpstreamDNSRule provides rules for validating the external DNS server
123123
type UpstreamDNSRule struct {
124+
validationrule.ManuallyNamed `json:"-"`
125+
124126
// Unique name for the rule
125-
Name string `json:"name" yaml:"name"`
127+
RuleName string `json:"name" yaml:"name"`
126128
// The minimum expected number of upstream DNS servers
127129
NumDNSServers int `json:"numDNSServers" yaml:"numDNSServers"`
128130
}
129131

132+
var _ validationrule.Interface = (*UpstreamDNSRule)(nil)
133+
134+
// Name returns the name of the UpstreamDNSRule.
135+
func (r UpstreamDNSRule) Name() string {
136+
return r.RuleName
137+
}
138+
139+
// SetName sets the name of the UpstreamDNSRule.
140+
func (r *UpstreamDNSRule) SetName(name string) {
141+
r.RuleName = name
142+
}
143+
130144
// ResourceAvailabilityRule provides rules for validating resource availability
131145
type ResourceAvailabilityRule struct {
146+
validationrule.ManuallyNamed `json:"-"`
147+
132148
// Unique name for the rule
133-
Name string `json:"name" yaml:"name"`
149+
RuleName string `json:"name" yaml:"name"`
134150
// The availability zone to validate
135151
AZ string `json:"az" yaml:"az"`
136152
// The list of resources to validate
137153
Resources []Resource `json:"resources" yaml:"resources"`
138154
}
139155

156+
var _ validationrule.Interface = (*ResourceAvailabilityRule)(nil)
157+
158+
// Name returns the name of the RBAC rule.
159+
func (r ResourceAvailabilityRule) Name() string {
160+
return r.RuleName
161+
}
162+
163+
// SetName sets the name of the RBAC rule.
164+
func (r *ResourceAvailabilityRule) SetName(name string) {
165+
r.RuleName = name
166+
}
167+
140168
// Resource defines a compute resource
141169
type Resource struct {
142170
// Minimum desired number of machines

api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/controller/maasvalidator_controller_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ var _ = Describe("MaaSValidator controller", Ordered, func() {
123123
}},
124124
},
125125
UpstreamDNSRules: []v1alpha1.UpstreamDNSRule{
126-
{Name: "Upstream DNS", NumDNSServers: 1},
126+
{RuleName: "Upstream DNS", NumDNSServers: 1},
127127
},
128128
ResourceAvailabilityRules: []v1alpha1.ResourceAvailabilityRule{
129-
{Name: "az1 2 machines", AZ: "az1", Resources: []v1alpha1.Resource{
129+
{RuleName: "az1 2 machines", AZ: "az1", Resources: []v1alpha1.Resource{
130130
{NumMachines: 2, NumCPU: 2, Disk: 20, RAM: 4},
131131
}},
132132
},

pkg/validators/dns/upstream_dns_validator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func NewUpstreamDNSRulesService(log logr.Logger, api api.MAASServer) *UpstreamDN
3131
// ReconcileMaasInstanceUpstreamDNSRule reconciles a MAAS instance upstream DNS rule
3232
func (s *UpstreamDNSRulesService) ReconcileMaasInstanceUpstreamDNSRule(rule v1alpha1.UpstreamDNSRule) (*types.ValidationRuleResult, error) {
3333

34-
vr := utils.BuildValidationResult(rule.Name, constants.ValidationTypeUDNS)
34+
vr := utils.BuildValidationResult(rule.Name(), constants.ValidationTypeUDNS)
3535

3636
details, errs := s.findDNSServers(rule.NumDNSServers)
3737

pkg/validators/dns/upstream_dns_validator_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func TestReconcileMaasInstanceUpstreamDNSRule(t *testing.T) {
3737
},
3838
),
3939
upstreamDNSRules: []v1alpha1.UpstreamDNSRule{
40-
{Name: "Upstream DNS rule 1", NumDNSServers: 1},
40+
{RuleName: "Upstream DNS rule 1", NumDNSServers: 1},
4141
},
4242
errors: nil,
4343
details: []string{"Found 1 DNS server(s)"},
@@ -50,7 +50,7 @@ func TestReconcileMaasInstanceUpstreamDNSRule(t *testing.T) {
5050
upstreamDNS: "8.8.8.8",
5151
}),
5252
upstreamDNSRules: []v1alpha1.UpstreamDNSRule{
53-
{Name: "Upstream DNS rule 2", NumDNSServers: 2},
53+
{RuleName: "Upstream DNS rule 2", NumDNSServers: 2},
5454
},
5555
errors: []string{"expected 2 DNS server(s), got 1"},
5656
details: nil,
@@ -63,7 +63,7 @@ func TestReconcileMaasInstanceUpstreamDNSRule(t *testing.T) {
6363
upstreamDNS: "",
6464
}),
6565
upstreamDNSRules: []v1alpha1.UpstreamDNSRule{
66-
{Name: "Upstream DNS rule 3", NumDNSServers: 1},
66+
{RuleName: "Upstream DNS rule 3", NumDNSServers: 1},
6767
},
6868
errors: []string{"expected 1 DNS server(s), got 0"},
6969
details: nil,

pkg/validators/res/resource_validator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func (s *ResourceRulesService) ReconcileMaasInstanceResourceRule(rule v1alpha1.R
4343
errs := make([]error, 0)
4444
details := make([]string, 0)
4545

46-
vr := utils.BuildValidationResult(rule.Name, constants.ValidationTypeResource)
46+
vr := utils.BuildValidationResult(rule.Name(), constants.ValidationTypeResource)
4747

4848
// do not process an AZ more than once
4949
if seen[rule.AZ] {

pkg/validators/res/resource_validator_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestReconcileMaasInstanceImageRule(t *testing.T) {
4343
},
4444
),
4545
resources: []v1alpha1.ResourceAvailabilityRule{
46-
{Name: "AZ1 rule 1", AZ: "az1", Resources: []v1alpha1.Resource{
46+
{RuleName: "AZ1 rule 1", AZ: "az1", Resources: []v1alpha1.Resource{
4747
{NumMachines: 3, NumCPU: 16, RAM: 16, Disk: 100, Pool: "pool1", Tags: []string{"tag1", "tag2"}},
4848
},
4949
},
@@ -63,7 +63,7 @@ func TestReconcileMaasInstanceImageRule(t *testing.T) {
6363
},
6464
}),
6565
resources: []v1alpha1.ResourceAvailabilityRule{
66-
{Name: "AZ1 rule 2", AZ: "az1", Resources: []v1alpha1.Resource{
66+
{RuleName: "AZ1 rule 2", AZ: "az1", Resources: []v1alpha1.Resource{
6767
{NumMachines: 2, NumCPU: 16, RAM: 16, Disk: 100, Pool: "pool1", Tags: []string{"tag1", "tag2"}},
6868
}},
6969
},
@@ -78,7 +78,7 @@ func TestReconcileMaasInstanceImageRule(t *testing.T) {
7878
MachinesList: []entity.Machine{},
7979
}),
8080
resources: []v1alpha1.ResourceAvailabilityRule{
81-
{Name: "AZ1 rule 2", AZ: "az1", Resources: []v1alpha1.Resource{
81+
{RuleName: "AZ1 rule 2", AZ: "az1", Resources: []v1alpha1.Resource{
8282
{NumMachines: 1, NumCPU: 16, RAM: 16, Disk: 100, Pool: "pool1", Tags: []string{"tag1", "tag2"}},
8383
}},
8484
},

0 commit comments

Comments
 (0)