Skip to content

Commit 5947991

Browse files
Adrinlolvitabaks
authored andcommitted
feat(ui): update Generic Postgres tag, use same JSON structure as se-images https://gitlab.com/postgres-ai/database-lab/-/issues/544#note_1544266933
1 parent 4097da3 commit 5947991

File tree

2 files changed

+91
-26
lines changed

2 files changed

+91
-26
lines changed

Diff for: ui/packages/shared/pages/Configuration/index.tsx

+35-26
Original file line numberDiff line numberDiff line change
@@ -449,27 +449,30 @@ export const Configuration = observer(
449449
e: React.ChangeEvent<HTMLInputElement>,
450450
) => {
451451
if (e.target.value === 'Generic Postgres') {
452-
const currentDockerImage =
453-
genericDockerImages[genericDockerImages.length - 1]
452+
const genericImageVersions = genericDockerImages
453+
.map((image) => image.pg_major_version)
454+
.filter((value, index, self) => self.indexOf(value) === index)
455+
.sort((a, b) => Number(a) - Number(b))
456+
const currentDockerImage = genericImageVersions.slice(-1)[0]
457+
454458
setDockerState({
455459
...dockerState,
456-
images: genericDockerImages.map((image) => image.pg_major_version),
457460
tags: genericDockerImages
458-
.filter((image) =>
459-
image.tag.startsWith(currentDockerImage.pg_major_version),
460-
)
461-
.map((image) => image.tag),
461+
.map((image) => image.tag)
462+
.filter((tag) => tag.startsWith(currentDockerImage)),
463+
locations: genericDockerImages
464+
.map((image) => image.location)
465+
.filter((location) => location?.includes(currentDockerImage)),
466+
images: genericImageVersions,
462467
data: genericDockerImages,
463468
})
464469

465470
formik.setValues({
466471
...formik.values,
467-
dockerImage: currentDockerImage.pg_major_version,
468-
dockerPath: currentDockerImage.location,
472+
dockerImage: currentDockerImage,
469473
dockerImageType: e.target.value,
470-
dockerTag: genericDockerImages.filter((image) =>
471-
image.tag.startsWith(currentDockerImage.pg_major_version),
472-
)[0].tag,
474+
dockerTag: genericDockerImages.map((image) => image.tag)[0],
475+
dockerPath: genericDockerImages.map((image) => image.location)[0],
473476
sharedPreloadLibraries:
474477
'pg_stat_statements,pg_stat_kcache,pg_cron,pgaudit,anon',
475478
})
@@ -542,27 +545,33 @@ export const Configuration = observer(
542545

543546
if (customOrGenericImage(configData?.dockerImageType)) {
544547
if (configData?.dockerImageType === 'Generic Postgres') {
545-
const dockerObject = genericDockerImages.filter(
546-
(image) => image.location === configData.dockerPath,
547-
)[0]
548+
const genericImageVersions = genericDockerImages
549+
.map((image) => image.pg_major_version)
550+
.filter((value, index, self) => self.indexOf(value) === index)
551+
.sort((a, b) => Number(a) - Number(b))
552+
const currentDockerImage =
553+
genericDockerImages.filter(
554+
(image) => image.location === configData?.dockerPath,
555+
)[0] ||
556+
genericDockerImages.filter((image) =>
557+
configData?.dockerPath?.includes(image.pg_major_version),
558+
)[0]
548559

549560
setDockerState({
550561
...dockerState,
551-
images: genericDockerImages.map(
552-
(image) => image.pg_major_version,
553-
),
554562
tags: genericDockerImages
555-
.filter((image) =>
556-
image.tag.startsWith(dockerObject?.pg_major_version),
557-
)
558-
.map((image) => image.tag),
563+
.map((image) => image.tag)
564+
.filter((tag) =>
565+
tag.startsWith(currentDockerImage.pg_major_version),
566+
),
567+
images: genericImageVersions,
559568
data: genericDockerImages,
560569
})
561570

562-
formik.setFieldValue('dockerTag', dockerObject?.tag)
571+
formik.setFieldValue('dockerTag', currentDockerImage?.tag)
563572
formik.setFieldValue(
564573
'dockerImage',
565-
dockerObject?.pg_major_version,
574+
currentDockerImage.pg_major_version,
566575
)
567576
} else {
568577
formik.setFieldValue('dockerImage', configData?.dockerPath)
@@ -812,8 +821,8 @@ export const Configuration = observer(
812821
className={classes.grayText}
813822
style={{ margin: '0.5rem 0 1rem 0', display: 'block' }}
814823
>
815-
DBLab manages various database containers, such as clones. This
816-
section defines default container settings.
824+
DBLab manages various database containers, such as clones.
825+
This section defines default container settings.
817826
</span>
818827
<div>
819828
<SelectWithTooltip

Diff for: ui/packages/shared/pages/Configuration/utils/index.ts

+56
Original file line numberDiff line numberDiff line change
@@ -39,49 +39,105 @@ export const postUniqueDatabases = (values: string) => {
3939
return values.length !== 0 ? nonEmptyDatabase : null
4040
}
4141

42+
43+
// using the same json data structue as se-images
4244
export const genericDockerImages = [
45+
{
46+
package_group: 'postgresai',
47+
pg_major_version: '9.6',
48+
tag: '9.6-0.4.1',
49+
location: `${genericImagePrefix}:9.6-0.4.1`,
50+
},
4351
{
4452
package_group: 'postgresai',
4553
pg_major_version: '9.6',
4654
tag: '9.6-0.3.0',
4755
location: `${genericImagePrefix}:9.6-0.3.0`,
4856
},
57+
{
58+
package_group: 'postgresai',
59+
pg_major_version: '10',
60+
tag: '10-0.4.1',
61+
location: `${genericImagePrefix}:10-0.4.1`,
62+
},
4963
{
5064
package_group: 'postgresai',
5165
pg_major_version: '10',
5266
tag: '10-0.3.0',
5367
location: `${genericImagePrefix}:10-0.3.0`,
5468
},
69+
{
70+
package_group: 'postgresai',
71+
pg_major_version: '11',
72+
tag: '11-0.4.1',
73+
location: `${genericImagePrefix}:11-0.4.1`,
74+
},
5575
{
5676
package_group: 'postgresai',
5777
pg_major_version: '11',
5878
tag: '11-0.3.0',
5979
location: `${genericImagePrefix}:11-0.3.0`,
6080
},
81+
{
82+
package_group: 'postgresai',
83+
pg_major_version: '12',
84+
tag: '12-0.4.1',
85+
location: `${genericImagePrefix}:12-0.4.1`,
86+
},
6187
{
6288
package_group: 'postgresai',
6389
pg_major_version: '12',
6490
tag: '12-0.3.0',
6591
location: `${genericImagePrefix}:12-0.3.0`,
6692
},
93+
{
94+
package_group: 'postgresai',
95+
pg_major_version: '13',
96+
tag: '13-0.4.1',
97+
location: `${genericImagePrefix}:13-0.4.1`,
98+
},
6799
{
68100
package_group: 'postgresai',
69101
pg_major_version: '13',
70102
tag: '13-0.3.0',
71103
location: `${genericImagePrefix}:13-0.3.0`,
72104
},
105+
{
106+
package_group: 'postgresai',
107+
pg_major_version: '14',
108+
tag: '14-0.4.1',
109+
location: `${genericImagePrefix}:14-0.4.1`,
110+
},
73111
{
74112
package_group: 'postgresai',
75113
pg_major_version: '14',
76114
tag: '14-0.3.0',
77115
location: `${genericImagePrefix}:14-0.3.0`,
78116
},
117+
{
118+
package_group: 'postgresai',
119+
pg_major_version: '15',
120+
tag: '15-0.4.1',
121+
location: `${genericImagePrefix}:15-0.4.1`,
122+
},
79123
{
80124
package_group: 'postgresai',
81125
pg_major_version: '15',
82126
tag: '15-0.3.0',
83127
location: `${genericImagePrefix}:15-0.3.0`,
84128
},
129+
{
130+
package_group: 'postgresai',
131+
pg_major_version: '16',
132+
tag: '16rc1-0.4.1',
133+
location: `${genericImagePrefix}:16rc1-0.4.1`,
134+
},
135+
{
136+
package_group: 'postgresai',
137+
pg_major_version: '16',
138+
tag: '16-0.3.0',
139+
location: `${genericImagePrefix}:16-0.3.0`,
140+
},
85141
]
86142

87143
export const isSeDockerImage = (dockerImage: string | undefined) => {

0 commit comments

Comments
 (0)