This commit is contained in:
2026-04-04 00:09:02 +08:00
commit 38e896363e
117 changed files with 119311 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
package main
import (
"context"
"fmt"
"os"
"regexp"
"github.com/moby/moby/client"
)
func isDciPlatform() (bool, []error) {
var result bool
var errors []error
// наличие сервиса dci
units, err := os.ReadDir("/run/systemd/units")
dciService := false
if err != nil {
err = fmt.Errorf("Ошибка доступа к директории systemd units: %s", err)
errors = append(errors, err)
err = nil
dciService = false
} else {
for _, unit := range units {
matched, _ := regexp.Match("dci.service", []byte(unit.Name()))
if matched {
dciService = true
}
}
}
// наличие config.json
configJson := false
files, err := os.ReadDir("/opt/ispsystem/dci/")
if err != nil {
err = fmt.Errorf("Ошибка при чтении директории opt ispsystem dci")
errors = append(errors, err)
err = nil
configJson = false
} else {
for _, file := range files {
matched, _ := regexp.Match("config.json", []byte(file.Name()))
if matched {
configJson = true
}
}
}
// запущенный контейнер dci_back
dciBack := false
apiClient, err := client.New(client.FromEnv)
if err != nil {
err = fmt.Errorf("Ошибка при создании docker клиента %s", err)
errors = append(errors, err)
err = nil
} else {
defer apiClient.Close()
containers, err := apiClient.ContainerList(context.Background(), client.ContainerListOptions{All: true})
if err != nil {
err = fmt.Errorf("Ошибка получения списка контейнеров : %s", err)
errors = append(errors, err)
err = nil
} else {
for _, ctr := range containers.Items {
if ctr.Names[0] == "/dci_back" {
dciBack = true
}
}
}
}
if dciService {
result = true
} else if configJson {
result = true
} else if dciBack {
result = true
} else {
result = false
}
return result, errors
}