Skip to content

Commit 9bc422d

Browse files
aLekSermarkmandel
authored andcommitted
Add input parameters check on CRD loggers
Check nil pointer parameter to avoid possible panic. Updated Create Gameserver doc.
1 parent 1bdd5a5 commit 9bc422d

7 files changed

Lines changed: 33 additions & 7 deletions

File tree

‎pkg/fleetautoscalers/controller.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,11 @@ func (c *Controller) loggerForFleetAutoscalerKey(key string) *logrus.Entry {
126126
}
127127

128128
func (c *Controller) loggerForFleetAutoscaler(fas *v1alpha1.FleetAutoscaler) *logrus.Entry {
129-
return c.loggerForFleetAutoscalerKey(fas.Namespace+"/"+fas.Name).WithField("fas", fas)
129+
fasName := "NilFleetAutoScaler"
130+
if fas != nil {
131+
fasName = fas.Namespace + "/" + fas.Name
132+
}
133+
return c.loggerForFleetAutoscalerKey(fasName).WithField("fas", fas)
130134
}
131135

132136
// validationHandler will intercept when a FleetAutoscaler is created, and

‎pkg/fleets/controller.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,11 @@ func (c *Controller) loggerForFleetKey(key string) *logrus.Entry {
221221
}
222222

223223
func (c *Controller) loggerForFleet(f *v1alpha1.Fleet) *logrus.Entry {
224-
return c.loggerForFleetKey(f.Namespace+"/"+f.Name).WithField("fleet", f)
224+
fleetName := "NilFleet"
225+
if f != nil {
226+
fleetName = f.Namespace + "/" + f.Name
227+
}
228+
return c.loggerForFleetKey(fleetName).WithField("fleet", f)
225229
}
226230

227231
// gameServerSetEventHandler enqueues the owning Fleet for this GameServerSet,

‎pkg/gameserverallocations/controller.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,11 @@ func (c *Controller) loggerForGameServerAllocationKey(key string) *logrus.Entry
253253
}
254254

255255
func (c *Controller) loggerForGameServerAllocation(gsa *v1alpha1.GameServerAllocation) *logrus.Entry {
256-
return c.loggerForGameServerAllocationKey(gsa.Namespace+"/"+gsa.Name).WithField("gsa", gsa)
256+
gsaName := "NilGameServerAllocation"
257+
if gsa != nil {
258+
gsaName = gsa.Namespace + "/" + gsa.Name
259+
}
260+
return c.loggerForGameServerAllocationKey(gsaName).WithField("gsa", gsa)
257261
}
258262

259263
// creationMutationHandler will intercept when a GameServerAllocation is created, and allocate it a GameServer

‎pkg/gameservers/controller.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,11 @@ func (c *Controller) loggerForGameServerKey(key string) *logrus.Entry {
245245
}
246246

247247
func (c *Controller) loggerForGameServer(gs *v1alpha1.GameServer) *logrus.Entry {
248-
return c.loggerForGameServerKey(gs.Namespace+"/"+gs.Name).WithField("gs", gs)
248+
gsName := "NilGameServer"
249+
if gs != nil {
250+
gsName = gs.Namespace + "/" + gs.Name
251+
}
252+
return c.loggerForGameServerKey(gsName).WithField("gs", gs)
249253
}
250254

251255
// creationValidationHandler that validates a GameServer when it is created

‎pkg/gameservers/health.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,11 @@ func (hc *HealthController) loggerForGameServerKey(key string) *logrus.Entry {
130130
}
131131

132132
func (hc *HealthController) loggerForGameServer(gs *v1alpha1.GameServer) *logrus.Entry {
133-
return hc.loggerForGameServerKey(gs.Namespace+"/"+gs.Name).WithField("gs", gs)
133+
gsName := "NilGameServer"
134+
if gs != nil {
135+
gsName = gs.Namespace + "/" + gs.Name
136+
}
137+
return hc.loggerForGameServerKey(gsName).WithField("gs", gs)
134138
}
135139

136140
// syncGameServer sets the GameSerer to Unhealthy, if its state is Ready

‎pkg/gameserversets/controller.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,11 @@ func (c *Controller) loggerForGameServerSetKey(key string) *logrus.Entry {
268268
}
269269

270270
func (c *Controller) loggerForGameServerSet(gsSet *v1alpha1.GameServerSet) *logrus.Entry {
271-
return c.loggerForGameServerSetKey(gsSet.Namespace+"/"+gsSet.Name).WithField("gss", gsSet)
271+
gsSetName := "NilGameServerSet"
272+
if gsSet != nil {
273+
gsSetName = gsSet.Namespace + "/" + gsSet.Name
274+
}
275+
return c.loggerForGameServerSetKey(gsSetName).WithField("gss", gsSet)
272276
}
273277

274278
// syncGameServer synchronises the GameServers for the Set,

‎test/e2e/fleet_test.go‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,9 @@ func TestFleetNameValidation(t *testing.T) {
505505
flt.Name = string(bytes)
506506
_, err := alpha1.Fleets(defaultNs).Create(flt)
507507
assert.NotNil(t, err)
508-
statusErr := err.(*k8serrors.StatusError)
508+
statusErr, ok := err.(*k8serrors.StatusError)
509+
assert.True(t, ok)
510+
assert.True(t, len(statusErr.Status().Details.Causes) > 0)
509511
assert.Equal(t, statusErr.Status().Details.Causes[0].Type, metav1.CauseTypeFieldValueInvalid)
510512
goodFlt := defaultFleet()
511513
goodFlt.Name = string(bytes[0 : nameLen-1])

0 commit comments

Comments
 (0)