Merge pull request #5752 from vadasambar/fix/5704/fix-status-cm-nil-ptr-err
fix: empty status configmap leads to nil ptr error
This commit is contained in:
commit
8d64f00d77
|
|
@ -91,6 +91,9 @@ func WriteStatusConfigMap(kubeClient kube_client.Interface, namespace string, ms
|
|||
maps := kubeClient.CoreV1().ConfigMaps(namespace)
|
||||
configMap, getStatusError = maps.Get(context.TODO(), statusConfigMapName, metav1.GetOptions{})
|
||||
if getStatusError == nil {
|
||||
if configMap.Data == nil {
|
||||
configMap.Data = make(map[string]string)
|
||||
}
|
||||
configMap.Data["status"] = statusMsg
|
||||
if configMap.ObjectMeta.Annotations == nil {
|
||||
configMap.ObjectMeta.Annotations = make(map[string]string)
|
||||
|
|
|
|||
|
|
@ -95,6 +95,17 @@ func TestWriteStatusConfigMapExisting(t *testing.T) {
|
|||
assert.True(t, ti.getCalled)
|
||||
assert.True(t, ti.updateCalled)
|
||||
assert.False(t, ti.createCalled)
|
||||
|
||||
// to test the case where configmap is empty
|
||||
ti.configMap.Data = nil
|
||||
result, err = WriteStatusConfigMap(ti.client, ti.namespace, "TEST_MSG", nil, "my-cool-configmap")
|
||||
assert.Equal(t, ti.configMap, result)
|
||||
assert.Contains(t, result.Data["status"], "TEST_MSG")
|
||||
assert.Contains(t, result.ObjectMeta.Annotations, ConfigMapLastUpdatedKey)
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, ti.getCalled)
|
||||
assert.True(t, ti.updateCalled)
|
||||
assert.False(t, ti.createCalled)
|
||||
}
|
||||
|
||||
func TestWriteStatusConfigMapCreate(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue