@@ -15,6 +15,7 @@ import (
15
15
"github.com/nais/cloudsql-migrator/internal/pkg/promote"
16
16
"github.com/nais/cloudsql-migrator/internal/pkg/resolved"
17
17
"github.com/sethvargo/go-envconfig"
18
+ "k8s.io/apimachinery/pkg/api/errors"
18
19
)
19
20
20
21
func main () {
@@ -70,56 +71,56 @@ func main() {
70
71
71
72
mgr .Logger .Info ("getting helper application" , "name" , helperName )
72
73
helperApp , err := mgr .AppClient .Get (ctx , helperName )
73
- if err != nil {
74
+ if err == nil {
75
+ target , err := resolved .ResolveInstance (ctx , helperApp , mgr )
76
+ if err != nil {
77
+ mgr .Logger .Error ("failed to resolve target" , "error" , err )
78
+ os .Exit (8 )
79
+ }
80
+
81
+ err = promote .CheckReadyForPromotion (ctx , source , target , gcpProject , mgr )
82
+ if err != nil {
83
+ mgr .Logger .Error ("migration is not ready for promotion" , "error" , err )
84
+ os .Exit (9 )
85
+ }
86
+
87
+ err = application .ScaleApplication (ctx , cfg , mgr , 0 )
88
+ if err != nil {
89
+ mgr .Logger .Error ("failed to scale application" , "error" , err )
90
+ os .Exit (10 )
91
+ }
92
+
93
+ err = promote .Promote (ctx , source , target , gcpProject , mgr )
94
+ if err != nil {
95
+ mgr .Logger .Error ("failed to promote" , "error" , err )
96
+ os .Exit (11 )
97
+ }
98
+
99
+ certPaths , err := database .PrepareTargetDatabase (ctx , cfg , target , gcpProject , mgr )
100
+ if err != nil {
101
+ mgr .Logger .Error ("failed to prepare target database" , "error" , err )
102
+ os .Exit (12 )
103
+ }
104
+
105
+ err = database .ChangeOwnership (ctx , mgr , target , config .PostgresDatabaseName , certPaths )
106
+ if err != nil {
107
+ mgr .Logger .Error ("failed to change ownership for database" , "databaseName" , config .PostgresDatabaseName , "error" , err )
108
+ os .Exit (13 )
109
+ }
110
+
111
+ err = database .ChangeOwnership (ctx , mgr , target , databaseName , certPaths )
112
+ if err != nil {
113
+ mgr .Logger .Error ("failed to change ownership for database" , "databaseName" , databaseName , "error" , err )
114
+ os .Exit (14 )
115
+ }
116
+
117
+ err = application .DeleteHelperApplication (ctx , cfg , mgr )
118
+ if err != nil {
119
+ mgr .Logger .Error ("failed to delete helper application" , "error" , err )
120
+ os .Exit (15 )
121
+ }
122
+ } else if ! errors .IsNotFound (err ) {
74
123
mgr .Logger .Error ("failed to get helper application" , "error" , err )
75
- os .Exit (8 )
76
- }
77
-
78
- target , err := resolved .ResolveInstance (ctx , helperApp , mgr )
79
- if err != nil {
80
- mgr .Logger .Error ("failed to resolve target" , "error" , err )
81
- os .Exit (9 )
82
- }
83
-
84
- err = promote .CheckReadyForPromotion (ctx , source , target , gcpProject , mgr )
85
- if err != nil {
86
- mgr .Logger .Error ("migration is not ready for promotion" , "error" , err )
87
- os .Exit (10 )
88
- }
89
-
90
- err = application .ScaleApplication (ctx , cfg , mgr , 0 )
91
- if err != nil {
92
- mgr .Logger .Error ("failed to scale application" , "error" , err )
93
- os .Exit (11 )
94
- }
95
-
96
- err = promote .Promote (ctx , source , target , gcpProject , mgr )
97
- if err != nil {
98
- mgr .Logger .Error ("failed to promote" , "error" , err )
99
- os .Exit (12 )
100
- }
101
-
102
- certPaths , err := database .PrepareTargetDatabase (ctx , cfg , target , gcpProject , mgr )
103
- if err != nil {
104
- mgr .Logger .Error ("failed to prepare target database" , "error" , err )
105
- os .Exit (13 )
106
- }
107
-
108
- err = database .ChangeOwnership (ctx , mgr , target , config .PostgresDatabaseName , certPaths )
109
- if err != nil {
110
- mgr .Logger .Error ("failed to change ownership for database" , "databaseName" , config .PostgresDatabaseName , "error" , err )
111
- os .Exit (14 )
112
- }
113
-
114
- err = database .ChangeOwnership (ctx , mgr , target , databaseName , certPaths )
115
- if err != nil {
116
- mgr .Logger .Error ("failed to change ownership for database" , "databaseName" , databaseName , "error" , err )
117
- os .Exit (15 )
118
- }
119
-
120
- err = application .DeleteHelperApplication (ctx , cfg , mgr )
121
- if err != nil {
122
- mgr .Logger .Error ("failed to delete helper application" , "error" , err )
123
124
os .Exit (16 )
124
125
}
125
126
@@ -141,7 +142,7 @@ func main() {
141
142
os .Exit (19 )
142
143
}
143
144
144
- target , err = resolved .ResolveInstance (ctx , app , mgr )
145
+ target , err : = resolved .ResolveInstance (ctx , app , mgr )
145
146
if err != nil {
146
147
mgr .Logger .Error ("failed to resolve updated target" , "error" , err )
147
148
os .Exit (20 )
0 commit comments