示例#1
0
    def _validate_request(self, storage, request):
        """Validate a snapshot request.

        :param storage: an instance of Blivet
        :param request: a snapshot request
        :raise: KickstartParseError if not valid
        """
        # Try to create the model of the device.
        get_snapshot_device(request, storage.devicetree)
    def get_snapshot_device_test(self, device_class):
        """Test the snapshot device."""
        device = Mock()
        device_class.return_value = device

        devicetree = Mock()
        devicetree.get_device_by_name.side_effect = [Mock(), None]

        request = Mock(name="post-snapshot", origin="fedora/root")
        self.assertEqual(get_snapshot_device(request, devicetree), device)
示例#3
0
    def verify_requests(self, storage, constraints, report_error, report_warning):
        """Verify the validity of snapshot requests for the given storage.

        This is a callback for the storage checker.

        :param storage: a storage to check
        :param constraints: a dictionary of constraints
        :param report_error: a function for error reporting
        :param report_warning: a function for warning reporting
        """
        # We can verify only the post-install snapshot requests.
        requests = self.get_requests(SNAPSHOT_WHEN_POST_INSTALL)

        for request in requests:
            log.debug("Validating the snapshot request for: %s", request.name)
            try:
                get_snapshot_device(request, storage.devicetree)
            except KickstartParseError as e:
                report_error(str(e))
示例#4
0
    def get_snapshot_device_test(self, device_class):
        """Test the snapshot device."""
        device = Mock()
        device_class.return_value = device

        devicetree = Mock()
        devicetree.get_device_by_name.side_effect = [Mock(), None]

        request = Mock(name="post-snapshot", origin="fedora/root")
        self.assertEqual(get_snapshot_device(request, devicetree), device)
示例#5
0
    def _create_snapshot(self, storage, request):
        """Create the ThinLV snapshot.

        :param storage: an instance of Blivet
        :param request: a snapshot request
        """
        log.debug("Snapshot: creating snapshot %s", request.name)
        device = get_snapshot_device(request, storage.devicetree)
        device.create()

        if isinstance(device.format, XFS):
            log.debug("Generating new UUID for XFS snapshot")
            device.format.reset_uuid()
 def get_snapshot_device_fail_test(self):
     """Test the snapshot device."""
     with self.assertRaises(KickstartParseError):
         get_snapshot_device(
             Mock(name="post-snapshot", origin="fedora/root"), Mock())
示例#7
0
 def test_get_snapshot_device_fail(self):
     """Test the snapshot device."""
     with pytest.raises(StorageError):
         get_snapshot_device(
             Mock(name="post-snapshot", origin="fedora/root"), Mock())
示例#8
0
 def get_snapshot_device_fail_test(self):
     """Test the snapshot device."""
     with self.assertRaises(KickstartParseError):
         get_snapshot_device(Mock(name="post-snapshot", origin="fedora/root"), Mock())