Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite563228

Browse files
committed
Add endpoint support for cloud services with detailed redis and MySQL handling
1 parent7c11aa1 commite563228

File tree

2 files changed

+42
-6
lines changed

2 files changed

+42
-6
lines changed

‎commands/init_templating.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func createRequiredFilesProject(product upsun.CloudProduct, rootDirectory, proje
7070
}
7171
phpExts:=append(phpExtensions(rootDirectory),"apcu","mbstring","sodium","xsl","blackfire")
7272
for_,service:=rangecloudServices {
73-
ifv,ok:=availablePHPExtensions[service.Type];ok {
73+
ifv,ok:=availablePHPExtensions[service.Endpoint];ok {
7474
phpExts=append(phpExts,v...)
7575
}
7676
}

‎commands/local_new.go‎

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,24 @@ import (
4444
)
4545

4646
typeCloudServicestruct {
47-
Namestring
48-
Typestring
49-
Versionstring
47+
Namestring
48+
Typestring
49+
Endpointstring
50+
Versionstring
51+
}
52+
53+
// SetEndpoint validates and sets the endpoint based on the service type.
54+
// It handles special type mappings (e.g., redis-persistent -> redis, oracle-mysql -> mysql)
55+
// and defaults to using the type as the endpoint for standard services.
56+
func (s*CloudService)SetEndpoint() {
57+
switchs.Type {
58+
case"redis-persistent":
59+
s.Endpoint="redis"
60+
case"oracle-mysql":
61+
s.Endpoint="mysql"
62+
default:
63+
s.Endpoint=s.Type
64+
}
5065
}
5166

5267
varlocalNewCmd=&console.Command{
@@ -284,14 +299,23 @@ func parseCLIServices(services []string) ([]*CloudService, error) {
284299
parts:=strings.Split(config,":")
285300
iflen(parts)==1 {
286301
// service == name
287-
service=&CloudService{Name:parts[0],Type:parts[0],Version:upsun.ServiceLastVersion(parts[1])}
302+
service=&CloudService{Name:parts[0],Type:parts[0],Version:upsun.ServiceLastVersion(parts[0])}
288303
}elseiflen(parts)==2 {
289304
service=&CloudService{Name:parts[0],Type:parts[1],Version:upsun.ServiceLastVersion(parts[1])}
290305
}elseiflen(parts)==3 {
291306
service=&CloudService{Name:parts[0],Type:parts[1],Version:parts[2]}
292307
}else {
293308
returnnil,errors.Errorf("unable to parse service\"%s\"",config)
294309
}
310+
311+
// Set endpoint based on type, handling special cases
312+
service.SetEndpoint()
313+
314+
// For redis-persistent, update version based on the endpoint
315+
ifservice.Type=="redis-persistent" {
316+
service.Version=upsun.ServiceLastVersion(service.Endpoint)
317+
}
318+
295319
cloudServices=append(cloudServices,service)
296320
}
297321
returncloudServices,nil
@@ -315,7 +339,15 @@ func parseDockerComposeServices(dir string) []*CloudService {
315339
vars*CloudService
316340
switchport.Target {
317341
case3306:
318-
s=&CloudService{Type:"mysql"}
342+
// Distinguish between MySQL and MariaDB based on image name
343+
dbType:="mysql"
344+
ifstrings.Contains(strings.ToLower(service.Image),"mariadb") {
345+
dbType="mariadb"
346+
}elseifstrings.Contains(strings.ToLower(service.Image),"mysql") {
347+
dbType="oracle-mysql"
348+
}
349+
350+
s=&CloudService{Type:dbType}
319351
case5432:
320352
s=&CloudService{Type:"postgresql"}
321353
case6379:
@@ -335,6 +367,10 @@ func parseDockerComposeServices(dir string) []*CloudService {
335367
ifs!=nil&&!done {
336368
seen[service.Name]=true
337369
s.Name=service.Name
370+
371+
// Set endpoint based on type
372+
s.SetEndpoint()
373+
338374
parts:=strings.Split(service.Image,":")
339375
s.Version=regexp.MustCompile(`\d+(\.\d+)?`).FindString(parts[len(parts)-1])
340376
serviceLastVersion:=upsun.ServiceLastVersion(s.Type)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp