podman

Форк
0
36 строк · 1004.0 Байт
1
package lock
2

3
import (
4
	"fmt"
5
	"path/filepath"
6

7
	"github.com/containers/podman/v5/pkg/machine/env"
8
	"github.com/containers/storage/pkg/lockfile"
9
)
10

11
func GetMachineLock(name string, machineConfigDir string) (*lockfile.LockFile, error) {
12
	lockPath := filepath.Join(machineConfigDir, name+".lock")
13
	lock, err := lockfile.GetLockFile(lockPath)
14
	if err != nil {
15
		return nil, fmt.Errorf("creating lockfile for VM: %w", err)
16
	}
17
	return lock, nil
18
}
19

20
const machineStartLockName = "machine-start.lock"
21

22
// GetMachineStartLock is a lock only used to prevent starting different machines at the same time,
23
// This is required as most provides support at max 1 running VM and to check this race free we
24
// cannot allows starting two machine.
25
func GetMachineStartLock() (*lockfile.LockFile, error) {
26
	lockDir, err := env.GetGlobalDataDir()
27
	if err != nil {
28
		return nil, err
29
	}
30

31
	lock, err := lockfile.GetLockFile(filepath.Join(lockDir, machineStartLockName))
32
	if err != nil {
33
		return nil, err
34
	}
35
	return lock, nil
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.