RollbackerFor returns an implementation of Rollbacker interface for the given schema kind
(kind schema.GroupKind, c kubernetes.Interface)
| 74 | |
| 75 | // RollbackerFor returns an implementation of Rollbacker interface for the given schema kind |
| 76 | func RollbackerFor(kind schema.GroupKind, c kubernetes.Interface) (Rollbacker, error) { |
| 77 | elem := apps.GroupKindElement(kind) |
| 78 | visitor := &RollbackVisitor{ |
| 79 | clientset: c, |
| 80 | } |
| 81 | |
| 82 | err := elem.Accept(visitor) |
| 83 | |
| 84 | if err != nil { |
| 85 | return nil, fmt.Errorf("error retrieving rollbacker for %q, %v", kind.String(), err) |
| 86 | } |
| 87 | |
| 88 | if visitor.result == nil { |
| 89 | return nil, fmt.Errorf("no rollbacker has been implemented for %q", kind) |
| 90 | } |
| 91 | |
| 92 | return visitor.result, nil |
| 93 | } |
| 94 | |
| 95 | type DeploymentRollbacker struct { |
| 96 | c kubernetes.Interface |
searching dependent graphs…