aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-01-22 14:22:19 +0800
committer苏向夜 <fu050409@163.com>2024-01-22 14:22:19 +0800
commit0edbdf019d7f1824ae78829b7b2472421ef0c377 (patch)
tree7571f12c033165d561297e9ea3b804d030aaf682
parente8952a23ba623f5bbf43b10d5a00ca94387d9c35 (diff)
downloadipm-0edbdf019d7f1824ae78829b7b2472421ef0c377.tar.gz
ipm-0edbdf019d7f1824ae78829b7b2472421ef0c377.zip
:sparkles: feat(lock): add uuid metadata
-rw-r--r--src/ipm/models/lock.py19
-rw-r--r--src/ipm/utils/uuid.py5
2 files changed, 22 insertions, 2 deletions
diff --git a/src/ipm/models/lock.py b/src/ipm/models/lock.py
index 9346848..1b6c96e 100644
--- a/src/ipm/models/lock.py
+++ b/src/ipm/models/lock.py
@@ -4,8 +4,10 @@ from . import ipk
from ..typing import Dict, List, StrPath, Any
from ..const import IPM_PATH, ATTENSION
from ..exceptions import SyntaxError
+from ..utils.uuid import generate_uuid
import toml
+import socket
class IpmLock(metaclass=ABCMeta):
@@ -21,15 +23,28 @@ class IpmLock(metaclass=ABCMeta):
def load(self):
if not self.source_path.exists():
- self.metadata = {}
+ self.metadata = {
+ "host": socket.gethostname(),
+ "uuid": generate_uuid(),
+ }
self.packages = []
self.storages = []
self.dumps()
else:
loaded_data = toml.load(self.source_path.open("r", encoding="utf-8"))
self.metadata = (
- loaded_data["metadata"] if "metadata" in loaded_data.keys() else {}
+ loaded_data["metadata"]
+ if "metadata" in loaded_data.keys()
+ else {
+ "host": socket.gethostname(),
+ "uuid": generate_uuid(),
+ }
)
+ if "uuid" not in self.metadata.keys():
+ self.metadata = {
+ "host": socket.gethostname(),
+ "uuid": generate_uuid(),
+ }
self.packages = (
loaded_data["packages"] if "packages" in loaded_data.keys() else []
)
diff --git a/src/ipm/utils/uuid.py b/src/ipm/utils/uuid.py
new file mode 100644
index 0000000..cda3973
--- /dev/null
+++ b/src/ipm/utils/uuid.py
@@ -0,0 +1,5 @@
+import uuid
+
+
+def generate_uuid() -> str:
+ return uuid.uuid4().hex