2022-07-26 12:33:44 +00:00
|
|
|
import os
|
|
|
|
import subprocess
|
|
|
|
|
|
|
|
from selfprivacy_api.migrations.migration import Migration
|
|
|
|
from selfprivacy_api.utils import ReadUserData, WriteUserData
|
|
|
|
from selfprivacy_api.utils.block_devices import BlockDevices
|
|
|
|
|
2022-07-30 14:48:33 +00:00
|
|
|
|
2022-07-26 12:33:44 +00:00
|
|
|
class MountVolume(Migration):
|
|
|
|
"""Mount volume."""
|
|
|
|
|
|
|
|
def get_migration_name(self):
|
|
|
|
return "mount_volume"
|
|
|
|
|
|
|
|
def get_migration_description(self):
|
|
|
|
return "Mount volume if it is not mounted."
|
|
|
|
|
|
|
|
def is_migration_needed(self):
|
|
|
|
try:
|
|
|
|
with ReadUserData() as userdata:
|
|
|
|
return "volumes" not in userdata
|
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
return False
|
|
|
|
|
|
|
|
def migrate(self):
|
|
|
|
# Get info about existing volumes
|
|
|
|
# Write info about volumes to userdata.json
|
|
|
|
try:
|
|
|
|
volumes = BlockDevices().get_block_devices()
|
|
|
|
# If there is an unmounted volume sdb,
|
|
|
|
# Write it to userdata.json
|
|
|
|
is_there_a_volume = False
|
|
|
|
for volume in volumes:
|
|
|
|
if volume.name == "sdb":
|
|
|
|
is_there_a_volume = True
|
|
|
|
break
|
|
|
|
with WriteUserData() as userdata:
|
|
|
|
userdata["volumes"] = []
|
|
|
|
if is_there_a_volume:
|
2022-07-30 14:48:33 +00:00
|
|
|
userdata["volumes"].append(
|
|
|
|
{
|
|
|
|
"device": "/dev/sdb",
|
|
|
|
"mountPoint": "/volumes/sdb",
|
|
|
|
"fsType": "ext4",
|
|
|
|
}
|
|
|
|
)
|
2022-07-26 12:33:44 +00:00
|
|
|
print("Done")
|
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
print("Error mounting volume")
|