aboutsummaryrefslogtreecommitdiffstats
path: root/models/error.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/error.go')
-rw-r--r--models/error.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/models/error.go b/models/error.go
index 83354ff173..7f1eda1b14 100644
--- a/models/error.go
+++ b/models/error.go
@@ -1019,6 +1019,29 @@ func IsErrWontSign(err error) bool {
return ok
}
+// ErrMigrationNotAllowed explains why a migration from an url is not allowed
+type ErrMigrationNotAllowed struct {
+ Host string
+ NotResolvedIP bool
+ PrivateNet string
+}
+
+func (e *ErrMigrationNotAllowed) Error() string {
+ if e.NotResolvedIP {
+ return fmt.Sprintf("migrate from '%s' is not allowed: unknown hostname", e.Host)
+ }
+ if len(e.PrivateNet) != 0 {
+ return fmt.Sprintf("migrate from '%s' is not allowed: the host resolve to a private ip address '%s'", e.Host, e.PrivateNet)
+ }
+ return fmt.Sprintf("migrate from '%s is not allowed'", e.Host)
+}
+
+// IsErrMigrationNotAllowed checks if an error is a ErrMigrationNotAllowed
+func IsErrMigrationNotAllowed(err error) bool {
+ _, ok := err.(*ErrMigrationNotAllowed)
+ return ok
+}
+
// __________ .__
// \______ \____________ ____ ____ | |__
// | | _/\_ __ \__ \ / \_/ ___\| | \