Ejemplo n.º 1
0
 def test_try_secure_erase_successful_nocryto_nvme(self):
     disk_name = factory.make_name("nvme").encode("ascii")
     sec_info = {
         "format_supported": True,
         "writez_supported": True,
         "crypto_format": False,
         "nsze": 0,
         "lbaf": 0,
         "ms": 0,
     }
     mock_check_output = self.patch(subprocess, "check_output")
     self.assertTrue(try_secure_erase(disk_name, sec_info))
     self.assertThat(
         mock_check_output,
         MockCalledOnceWith(
             [
                 "nvme",
                 "format",
                 "-s",
                 "1",
                 "-l",
                 "0",
                 "-m",
                 "0",
                 maas_wipe.DEV_PATH % disk_name,
             ]
         ),
     )
     self.assertThat(
         self.print_flush,
         MockCalledOnceWith(
             "Secure erase was successful on NVMe drive %s"
             % disk_name.decode("ascii")
         ),
     )
Ejemplo n.º 2
0
 def test_try_secure_erase_not_supported(self):
     disk_name = factory.make_name("disk").encode("ascii")
     disk_info = {
         b"supported": False,
         b"enabled": False,
         b"locked": False,
         b"frozen": False,
     }
     self.assertFalse(try_secure_erase(disk_name, disk_info))
     self.assertThat(
         self.print_flush,
         MockCalledOnceWith("%s: drive does not support secure erase." %
                            (disk_name.decode("ascii"))),
     )
Ejemplo n.º 3
0
 def test_try_secure_erase_locked(self):
     disk_name = factory.make_name("disk").encode("ascii")
     disk_info = {
         b"supported": True,
         b"enabled": False,
         b"locked": True,
         b"frozen": False,
     }
     self.assertFalse(try_secure_erase(disk_name, disk_info))
     self.assertThat(
         self.print_flush,
         MockCalledOnceWith(
             "%s: not using secure erase; drive is currently locked." % (
                 disk_name.decode("ascii"))))
Ejemplo n.º 4
0
 def test_try_secure_erase_successful_erase(self):
     disk_name = factory.make_name("disk").encode("ascii")
     disk_info = {
         b"supported": True,
         b"enabled": False,
         b"locked": False,
         b"frozen": False,
     }
     self.patch(maas_wipe, "secure_erase")
     self.assertTrue(try_secure_erase(disk_name, disk_info))
     self.assertThat(
         self.print_flush,
         MockCalledOnceWith("%s: successfully securely erased." %
                            (disk_name.decode("ascii"))),
     )
Ejemplo n.º 5
0
 def test_try_secure_erase_failed_erase(self):
     disk_name = factory.make_name("disk").encode("ascii")
     disk_info = {
         b"supported": True,
         b"enabled": False,
         b"locked": False,
         b"frozen": False,
     }
     exception = factory.make_exception()
     self.patch(maas_wipe, "secure_erase").side_effect = exception
     self.assertFalse(try_secure_erase(disk_name, disk_info))
     self.assertThat(
         self.print_flush,
         MockCalledOnceWith("%s: failed to be securely erased: %s" %
                            (disk_name.decode("ascii"), exception)),
     )
Ejemplo n.º 6
0
 def test_try_secure_erase_not_supported_nvme(self):
     disk_name = factory.make_name("nvme").encode("ascii")
     sec_info = {
         "format_supported": False,
         "writez_supported": True,
         "crypto_format": True,
         "nsze": 0,
         "lbaf": 0,
         "ms": 0,
     }
     self.assertFalse(try_secure_erase(disk_name, sec_info))
     self.assertThat(
         self.print_flush,
         MockCalledOnceWith("Device %s does not support formatting" %
                            disk_name.decode("ascii")),
     )
Ejemplo n.º 7
0
    def test_try_secure_erase_failed_nvme(self):
        disk_name = factory.make_name("nvme").encode("ascii")
        sec_info = {
            "format_supported": True,
            "writez_supported": True,
            "crypto_format": True,
            "nsze": 0,
            "lbaf": 0,
            "ms": 0,
        }
        mock_check_output = self.patch(subprocess, "check_output")
        mock_check_output.side_effect = subprocess.CalledProcessError(
            1, "nvme format")

        self.assertFalse(try_secure_erase(disk_name, sec_info))
        self.assertThat(
            self.print_flush,
            MockCalledOnceWith("Error with format command (%s)" % "1"),
        )