Removing instead of deprecating Namespace attr
- Per discussion, there is no reason to deal with the complexity of backwards compatibility with the Namespace attribute on the Restore domain. - Also noticed there was an error on the validation of the BackupController where the message would actually just be the index of the error and not the contents of the message itself. Signed-off-by: Justin Nauman <justin.r.nauman@gmail.com>pull/59/head
parent
b50a046370
commit
2457d8f116
|
@ -24,11 +24,6 @@ type RestoreSpec struct {
|
|||
// from.
|
||||
BackupName string `json:"backupName"`
|
||||
|
||||
// NOTE: This is deprecated. IncludedNamespaces and ExcludedNamespaces
|
||||
// should be used instead
|
||||
// Namespaces is a slice of namespaces in the Ark backup to restore.
|
||||
Namespaces []string `json:"namespaces"`
|
||||
|
||||
// IncludedNamespaces is a slice of namespace names to include objects
|
||||
// from. If empty, all namespaces are included.
|
||||
IncludedNamespaces []string `json:"includedNamespaces"`
|
||||
|
|
|
@ -292,11 +292,11 @@ func cloneBackup(in interface{}) (*api.Backup, error) {
|
|||
func (controller *backupController) getValidationErrors(itm *api.Backup) []string {
|
||||
var validationErrors []string
|
||||
|
||||
for err := range collections.ValidateIncludesExcludes(itm.Spec.IncludedResources, itm.Spec.ExcludedResources) {
|
||||
for _, err := range collections.ValidateIncludesExcludes(itm.Spec.IncludedResources, itm.Spec.ExcludedResources) {
|
||||
validationErrors = append(validationErrors, fmt.Sprintf("Invalid included/excluded resource lists: %v", err))
|
||||
}
|
||||
|
||||
for err := range collections.ValidateIncludesExcludes(itm.Spec.IncludedNamespaces, itm.Spec.ExcludedNamespaces) {
|
||||
for _, err := range collections.ValidateIncludesExcludes(itm.Spec.IncludedNamespaces, itm.Spec.ExcludedNamespaces) {
|
||||
validationErrors = append(validationErrors, fmt.Sprintf("Invalid included/excluded namespace lists: %v", err))
|
||||
}
|
||||
|
||||
|
|
|
@ -220,22 +220,15 @@ func (controller *restoreController) processRestore(key string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if len(restore.Spec.IncludedNamespaces) == 0 {
|
||||
restore.Spec.IncludedNamespaces = []string{"*"}
|
||||
}
|
||||
|
||||
// validation
|
||||
if restore.Status.ValidationErrors = controller.getValidationErrors(restore); len(restore.Status.ValidationErrors) > 0 {
|
||||
restore.Status.Phase = api.RestorePhaseFailedValidation
|
||||
} else {
|
||||
restore.Status.Phase = api.RestorePhaseInProgress
|
||||
|
||||
if len(restore.Spec.Namespaces) != 0 {
|
||||
glog.V(4).Info("the restore.Spec.Namespaces field has been deprecated. Please use the IncludedNamespaces and ExcludedNamespaces feature instead")
|
||||
|
||||
restore.Spec.IncludedNamespaces = restore.Spec.Namespaces
|
||||
restore.Spec.Namespaces = nil
|
||||
}
|
||||
|
||||
if len(restore.Spec.IncludedNamespaces) == 0 {
|
||||
restore.Spec.IncludedNamespaces = []string{"*"}
|
||||
}
|
||||
}
|
||||
|
||||
// update status
|
||||
|
@ -286,11 +279,7 @@ func (controller *restoreController) getValidationErrors(itm *api.Restore) []str
|
|||
validationErrors = append(validationErrors, "BackupName must be non-empty and correspond to the name of a backup in object storage.")
|
||||
}
|
||||
|
||||
if len(itm.Spec.Namespaces) > 0 && len(itm.Spec.IncludedNamespaces) > 0 {
|
||||
validationErrors = append(validationErrors, "Namespaces and IncludedNamespaces can not both be defined on the backup spec.")
|
||||
}
|
||||
|
||||
for err := range collections.ValidateIncludesExcludes(itm.Spec.IncludedNamespaces, itm.Spec.ExcludedNamespaces) {
|
||||
for _, err := range collections.ValidateIncludesExcludes(itm.Spec.IncludedNamespaces, itm.Spec.ExcludedNamespaces) {
|
||||
validationErrors = append(validationErrors, fmt.Sprintf("Invalid included/excluded namespace lists: %v", err))
|
||||
}
|
||||
|
||||
|
|
|
@ -73,16 +73,16 @@ func TestProcessRestore(t *testing.T) {
|
|||
expectedErr: false,
|
||||
},
|
||||
{
|
||||
name: "restore with both namespaces and includedNamespaces fails validation",
|
||||
restore: NewTestRestore("foo", "bar", api.RestorePhaseNew).WithBackup("backup-1").WithNamespace("ns-1").WithIncludedNamespace("another-1").Restore,
|
||||
name: "restore with both namespace in both includedNamespaces and excludedNamespaces fails validation",
|
||||
restore: NewTestRestore("foo", "bar", api.RestorePhaseNew).WithBackup("backup-1").WithIncludedNamespace("another-1").WithExcludedNamespace("another-1").Restore,
|
||||
backup: NewTestBackup().WithName("backup-1").Backup,
|
||||
expectedErr: false,
|
||||
expectedRestoreUpdates: []*api.Restore{
|
||||
NewTestRestore("foo", "bar", api.RestorePhaseFailedValidation).
|
||||
WithBackup("backup-1").
|
||||
WithNamespace("ns-1").
|
||||
WithIncludedNamespace("another-1").
|
||||
WithValidationError("Namespace and ItemNamespaces can not both be defined on the backup spec.").Restore,
|
||||
WithExcludedNamespace("another-1").
|
||||
WithValidationError("Invalid included/excluded namespace lists: excludes list cannot contain an item in the includes list: another-1").Restore,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
@ -45,12 +45,6 @@ func NewDefaultTestRestore() *TestRestore {
|
|||
return NewTestRestore(api.DefaultNamespace, "", api.RestorePhase(""))
|
||||
}
|
||||
|
||||
|
||||
func (r *TestRestore) WithNamespace(name string) *TestRestore {
|
||||
r.Spec.Namespaces = append(r.Spec.Namespaces, name)
|
||||
return r
|
||||
}
|
||||
|
||||
func (r *TestRestore) WithIncludedNamespace(name string) *TestRestore {
|
||||
r.Spec.IncludedNamespaces = append(r.Spec.IncludedNamespaces, name)
|
||||
return r
|
||||
|
|
Loading…
Reference in New Issue