@@ -36,16 +36,29 @@ public void validate(StackGresDbOpsReview review) throws ValidationFailed {
3636 switch (review .getRequest ().getOperation ()) {
3737 case CREATE :
3838 StackGresDbOps dbOps = review .getRequest ().getObject ();
39- if (dbOps .getSpec ().isOpSecurityUpgrade ()) {
40- Optional <StackGresCluster > cluster = clusterFinder .findByNameAndNamespace (
41- dbOps .getSpec ().getSgCluster (), dbOps .getMetadata ().getNamespace ());
42- if (cluster .map (c -> getPostgresFlavorComponent (c ).get (c ).streamOrderedVersions ()
43- .noneMatch (c .getSpec ().getPostgres ().getVersion ()::equals ))
44- .orElse (false )) {
45- fail ("Major version upgrade must be performed on SGCluster before performing"
46- + " the upgrade since Postgres version " + cluster .get ().getSpec ().getPostgres ()
47- .getVersion () + " will not be supported after the upgrade is completed" );
48- }
39+ if (!dbOps .getSpec ().isOpSecurityUpgrade ()) {
40+ return ;
41+ }
42+ Optional <StackGresCluster > foundCluster = clusterFinder .findByNameAndNamespace (
43+ dbOps .getSpec ().getSgCluster (), dbOps .getMetadata ().getNamespace ());
44+ if (foundCluster .isEmpty ()) {
45+ return ;
46+ }
47+ StackGresCluster cluster = foundCluster .get ();
48+ Optional <String > foundVersion = getPostgresFlavorComponent (cluster )
49+ .get (cluster )
50+ .findVersion (cluster .getSpec ().getPostgres ().getVersion ());
51+ if (foundVersion .isEmpty ()) {
52+ return ;
53+ }
54+ String version = foundVersion .get ();
55+ if (getPostgresFlavorComponent (cluster )
56+ .get (cluster )
57+ .streamOrderedVersions ()
58+ .noneMatch (version ::equals )) {
59+ fail ("Major version upgrade must be performed on SGCluster before performing"
60+ + " the upgrade since Postgres version " + version
61+ + " will not be supported after the upgrade is completed" );
4962 }
5063 break ;
5164 default :
0 commit comments