parent
7741c87fb8
commit
1069b6267a
|
@ -7,7 +7,7 @@
|
||||||
<?cs # TODO: add no-disks-available warning ?>
|
<?cs # TODO: add no-disks-available warning ?>
|
||||||
|
|
||||||
<?cs if:subcount(Data.Disks) == 0 ?>
|
<?cs if:subcount(Data.Disks) == 0 ?>
|
||||||
<?cs call:hint(Lang.Plugins.disks.Text.NoDisksAvailable) ?>
|
<?cs call:hint("Plugins.disks.NoDisksAvailable") ?>
|
||||||
<?cs else ?>
|
<?cs else ?>
|
||||||
<?cs # we use "loop" instead of "each" to keep the order of the disks ?>
|
<?cs # we use "loop" instead of "each" to keep the order of the disks ?>
|
||||||
<?cs loop: index = #0, subcount(Data.Disks)-1, #1 ?>
|
<?cs loop: index = #0, subcount(Data.Disks)-1, #1 ?>
|
||||||
|
|
|
@ -3,4 +3,8 @@ Link = Disks
|
||||||
|
|
||||||
Title.Disks = Available disks
|
Title.Disks = Available disks
|
||||||
|
|
||||||
Text.NoDisksAvailable = No available disks were found!
|
AdviceMessage {
|
||||||
|
NoDisksAvailable {
|
||||||
|
Text = No available disks were found!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
import cryptobox.plugins.base
|
|
||||||
from cryptobox.core.exceptions import *
|
|
||||||
|
|
||||||
class format_fs(cryptobox.plugins.base.CryptoBoxPlugin):
|
|
||||||
|
|
||||||
pluginCapabilities = [ "volume" ]
|
|
||||||
pluginVisibility = [ "volume" ]
|
|
||||||
requestAuth = True
|
|
||||||
rank = 60
|
|
||||||
|
|
||||||
## map filesystem types to the appropriate arguments for 'mkfs'
|
|
||||||
fsTypes = {
|
|
||||||
"windows": "vfat",
|
|
||||||
"linux": "ext3" }
|
|
||||||
|
|
||||||
containerTypes = [ "luks", "plain" ]
|
|
||||||
|
|
||||||
|
|
||||||
def doAction(self, store=None, fs_type="windows", container_type="luks", crypto_password=None, crypto_password2=None, confirm=None):
|
|
||||||
if not fs_type in self.fsTypes.keys():
|
|
||||||
self.cbox.info
|
|
||||||
return "format_volume"
|
|
||||||
self.hdf[self.hdf_prefix + "fs_type"] = fs_type
|
|
||||||
self.hdf[self.hdf_prefix + "container_type"] = container_type
|
|
||||||
for t in self.fsTypes.keys():
|
|
||||||
self.hdf[self.hdf_prefix + "fs_types." + t] = t
|
|
||||||
if store == "step1":
|
|
||||||
if not confirm:
|
|
||||||
self.cbox.log.warn("missing confirmation for formatting of filesystem: %s" % self.device)
|
|
||||||
self.hdf["Data.Warning"] = "Plugins.format_fs.FormatNotConfirmed"
|
|
||||||
return "volume_format"
|
|
||||||
if container_type == "luks":
|
|
||||||
return "volume_format_luks"
|
|
||||||
elif container_type == "plain":
|
|
||||||
return self.__format_plain(fs_type)
|
|
||||||
elif store == "step2":
|
|
||||||
if container_type == "luks":
|
|
||||||
return self.__format_luks(fs_type, crypto_password, crypto_password2)
|
|
||||||
else:
|
|
||||||
self.cbox.log.info("invalid input value for 'container_type': %s" % container_type)
|
|
||||||
return "volume_format"
|
|
||||||
elif store:
|
|
||||||
self.cbox.log.info("invalid input value for 'store': %s" % store)
|
|
||||||
return "volume_format"
|
|
||||||
else:
|
|
||||||
return "volume_format"
|
|
||||||
|
|
||||||
|
|
||||||
def getStatus(self):
|
|
||||||
return "no status"
|
|
||||||
|
|
||||||
|
|
||||||
def __format_plain(self, fsType):
|
|
||||||
try:
|
|
||||||
container = self.cbox.getContainer(self.device)
|
|
||||||
container.create(container.Types["plain"])
|
|
||||||
except CBVolumeIsActive:
|
|
||||||
self.hdf["Data.Warning"] = "VolumeMayNotBeMounted"
|
|
||||||
self.cbox.log.info("initialization is not possible as long as the device (%s) is mounted" % self.device)
|
|
||||||
return None
|
|
||||||
except CBContainerError, errMsg:
|
|
||||||
self.hdf["Data.Warning"] = "Plugins.format_fs.FormatFailed"
|
|
||||||
self.cbox.log.warn("initialization of device '%s' failed" % self.device)
|
|
||||||
self.cbox.log.warn("reason: %s" % errMsg)
|
|
||||||
return "volume_format"
|
|
||||||
else:
|
|
||||||
self.cbox.log.info("successfully initialized device '%s'" % self.device)
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def __format_luks(self, fsType, pw, pw2):
|
|
||||||
if not pw:
|
|
||||||
self.hdf["Data.Warning"] = "EmptyPassword"
|
|
||||||
self.cbox.log.warn("no crypto password was supplied for initialization of device '%s'" % self.device)
|
|
||||||
return "volume_format"
|
|
||||||
if pw != pw2:
|
|
||||||
self.hdf["Data.Warning"] = "DifferentPasswords"
|
|
||||||
self.cbox.log.warn("the crypto password was not repeated correctly for initialization of device '%s'" % self.device)
|
|
||||||
return "volume_format"
|
|
||||||
container = self.cbox.getContainer(self.device)
|
|
||||||
try:
|
|
||||||
container.create(container.Types["luks"], pw)
|
|
||||||
except CBVolumeIsActive:
|
|
||||||
self.hdf["Data.Warning"] = "VolumeMayNotBeMounted"
|
|
||||||
self.cbox.log.info("initialization is not possible as long as the device (%s) is mounted" % self.device)
|
|
||||||
return None
|
|
||||||
except CBContainerError, errMsg:
|
|
||||||
self.hdf["Data.Warning"] = "Plugins.format_fs.FormatFailed"
|
|
||||||
self.cbox.log.warn("initialization of device '%s' failed" % self.device)
|
|
||||||
self.cbox.log.warn("reason: %s" % errMsg)
|
|
||||||
return "volume_format"
|
|
||||||
else:
|
|
||||||
self.hdf["Data.Success"] = "Plugins.format_fs.FormatSuccess"
|
|
||||||
self.cbox.log.info("successfully initialized device '%s'" % self.device)
|
|
||||||
return None
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import cryptobox.plugins.base
|
import cryptobox.plugins.base
|
||||||
from cryptobox.core.exceptions import *
|
from cryptobox.core.exceptions import *
|
||||||
|
import cryptobox.core.container as cbxContainer
|
||||||
|
|
||||||
class volume_format_fs(cryptobox.plugins.base.CryptoBoxPlugin):
|
class volume_format_fs(cryptobox.plugins.base.CryptoBoxPlugin):
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ class volume_format_fs(cryptobox.plugins.base.CryptoBoxPlugin):
|
||||||
def __format_plain(self, fsType):
|
def __format_plain(self, fsType):
|
||||||
try:
|
try:
|
||||||
container = self.cbox.getContainer(self.device)
|
container = self.cbox.getContainer(self.device)
|
||||||
container.create(container.Types["plain"])
|
container.create(cbxContainer.ContainerTypes["plain"])
|
||||||
except CBVolumeIsActive:
|
except CBVolumeIsActive:
|
||||||
self.hdf["Data.Warning"] = "VolumeMayNotBeMounted"
|
self.hdf["Data.Warning"] = "VolumeMayNotBeMounted"
|
||||||
self.cbox.log.info("initialization is not possible as long as the device (%s) is mounted" % self.device)
|
self.cbox.log.info("initialization is not possible as long as the device (%s) is mounted" % self.device)
|
||||||
|
@ -79,7 +80,7 @@ class volume_format_fs(cryptobox.plugins.base.CryptoBoxPlugin):
|
||||||
return "volume_format"
|
return "volume_format"
|
||||||
container = self.cbox.getContainer(self.device)
|
container = self.cbox.getContainer(self.device)
|
||||||
try:
|
try:
|
||||||
container.create(container.Types["luks"], pw)
|
container.create(cbxContainer.ContainerTypes["luks"], pw)
|
||||||
except CBVolumeIsActive:
|
except CBVolumeIsActive:
|
||||||
self.hdf["Data.Warning"] = "VolumeMayNotBeMounted"
|
self.hdf["Data.Warning"] = "VolumeMayNotBeMounted"
|
||||||
self.cbox.log.info("initialization is not possible as long as the device (%s) is mounted" % self.device)
|
self.cbox.log.info("initialization is not possible as long as the device (%s) is mounted" % self.device)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import cryptobox.plugins.base
|
import cryptobox.plugins.base
|
||||||
from cryptobox.core.exceptions import *
|
from cryptobox.core.exceptions import *
|
||||||
|
import cryptobox.core.container as cbxContainer
|
||||||
|
|
||||||
|
|
||||||
class volume_mount(cryptobox.plugins.base.CryptoBoxPlugin):
|
class volume_mount(cryptobox.plugins.base.CryptoBoxPlugin):
|
||||||
|
@ -40,7 +41,7 @@ class volume_mount(cryptobox.plugins.base.CryptoBoxPlugin):
|
||||||
self.hdf["Data.Warning"] = "Plugins.volume_mount.IsAlreadyMounted"
|
self.hdf["Data.Warning"] = "Plugins.volume_mount.IsAlreadyMounted"
|
||||||
self.cbox.log.info("the device (%s) is already mounted" % self.device)
|
self.cbox.log.info("the device (%s) is already mounted" % self.device)
|
||||||
return "volume_status"
|
return "volume_status"
|
||||||
if self.container.getType() != self.container.Types["plain"]:
|
if self.container.getType() != cbxContainer.ContainerTypes["plain"]:
|
||||||
## not a plain container
|
## not a plain container
|
||||||
self.cbox.log.info("plugin 'volume_mount' - invalid container type")
|
self.cbox.log.info("plugin 'volume_mount' - invalid container type")
|
||||||
self.hdf["Data.Warning"] = "Plugins.volume_mount.InvalidContainerType"
|
self.hdf["Data.Warning"] = "Plugins.volume_mount.InvalidContainerType"
|
||||||
|
@ -69,7 +70,7 @@ class volume_mount(cryptobox.plugins.base.CryptoBoxPlugin):
|
||||||
self.dataset["Data.Warning"] = "EmptyPassword"
|
self.dataset["Data.Warning"] = "EmptyPassword"
|
||||||
self.log.info("no password was supplied for mounting of device: '%s'" % self.device)
|
self.log.info("no password was supplied for mounting of device: '%s'" % self.device)
|
||||||
return "volume_status"
|
return "volume_status"
|
||||||
if self.container.getType() != self.container.Types["luks"]:
|
if self.container.getType() != cbxContainer.ContainerTypes["luks"]:
|
||||||
## not a luks container - fail silently
|
## not a luks container - fail silently
|
||||||
self.cbox.log.info("plugin 'volume_mount' - invalid container type")
|
self.cbox.log.info("plugin 'volume_mount' - invalid container type")
|
||||||
return "volume_status"
|
return "volume_status"
|
||||||
|
|
Loading…
Reference in New Issue