예제 #1
0
파일: payloads.py 프로젝트: yugart/anaconda
    def process_kickstart(self, data):
        """Process the kickstart data."""
        # Create a new payload module.
        payload_type = PayloadFactory.get_type_for_kickstart(data)

        if payload_type:
            payload_module = self.create_payload(payload_type)
            payload_module.process_kickstart(data)

            # FIXME: This is a temporary workaround.
            PayloadContainer.to_object_path(payload_module)
예제 #2
0
    def process_kickstart(self, data):
        """Process the kickstart data."""
        # Create a new payload module.
        payload_type = PayloadFactory.get_type_for_kickstart(data)

        if payload_type:
            payload_module = self.create_payload(payload_type)
            payload_module.process_kickstart(data)

            # FIXME: This is a temporary workaround.
            PayloadContainer.to_object_path(payload_module)

        # FIXME: Process packages in the DNF module.
        # The packages module should be replaces with a DBus structure.
        self._packages.process_kickstart(data)
예제 #3
0
    def process_kickstart(self, data):
        """Process the kickstart data."""
        log.debug("Processing kickstart data...")

        # create payload if no payload is set already
        if not self.is_payload_set():
            payload = PayloadFactory.create_from_ks_data(data)
            if not payload:
                log.warning("No payload was created. Kickstart data passed in are lost.")
                return

        payload.process_kickstart(data)

        self._packages.process_kickstart(data)

        self.set_payload(payload)
        PayloadContainer.to_object_path(payload)
예제 #4
0
    def ActivatePayload(self, payload: ObjPath):
        """Activate the payload.

        :param payload: a path to a payload
        """
        self.implementation.activate_payload(
            PayloadContainer.from_object_path(payload)
        )
예제 #5
0
    def CreatedPayloads(self) -> List[ObjPath]:
        """List of all created payload modules.

        :return: a list of DBus paths
        """
        return PayloadContainer.to_object_path_list(
            self.implementation.created_payloads
        )
예제 #6
0
    def GetActivePayload(self) -> ObjPath:
        """Get active payload.

        TODO: Do we need to think about ActivePayload? It would be easier to remove this concept.

        :raise: PayloadNotSetError if payload is not set
        """
        return PayloadContainer.to_object_path(
            self.implementation.get_active_payload())
예제 #7
0
 def create_live_image_payload_test(self, publisher):
     """Test creation and publishing of the Live image payload module."""
     payload_path = self.payload_interface.CreatePayload(
         PayloadType.LIVE_IMAGE.value)
     self.assertEqual(self.payload_interface.GetActivePayload(),
                      payload_path)
     self.assertIsInstance(PayloadContainer.from_object_path(payload_path),
                           LiveImageModule)
     publisher.assert_called_once()
예제 #8
0
 def create_dnf_payload_test(self, publisher):
     """Test creation and publishing of the DNF payload module."""
     payload_path = self.payload_interface.CreatePayload(
         PayloadType.DNF.value)
     self.assertEqual(self.payload_interface.GetActivePayload(),
                      payload_path)
     self.assertIsInstance(PayloadContainer.from_object_path(payload_path),
                           DNFModule)
     publisher.assert_called_once()
예제 #9
0
    def create_live_os_payload_test(self, publisher):
        """Test creation and publishing of the Live OS payload module."""
        payload_path = self.payload_interface.CreatePayload(PayloadType.LIVE_OS.value)
        self.assertEqual(self.payload_interface.CreatedPayloads, [payload_path])

        self.payload_interface.ActivatePayload(payload_path)
        self.assertEqual(self.payload_interface.ActivePayload, payload_path)

        self.assertIsInstance(PayloadContainer.from_object_path(payload_path), LiveOSModule)
        publisher.assert_called_once()
예제 #10
0
    def CreatePayload(self, payload_type: Str) -> ObjPath:
        """Create payload and publish it on DBus.

        payload_type could contain these values:
         - DNF
         - LIVE_OS
         - LIVE_IMAGE
        """
        return PayloadContainer.to_object_path(
            self.implementation.create_payload(PayloadType(payload_type)))
예제 #11
0
    def ActivePayload(self) -> Str:
        """The active payload.

        :return: a DBus path or an empty string
        """
        payload = self.implementation.active_payload

        if not payload:
            return ""

        return PayloadContainer.to_object_path(payload)
    def test_create_dnf_payload(self, publisher):
        """Test creation and publishing of the DNF payload module."""
        payload_path = self.payload_interface.CreatePayload(
            PayloadType.DNF.value)
        assert self.payload_interface.CreatedPayloads == [payload_path]

        self.payload_interface.ActivatePayload(payload_path)
        assert self.payload_interface.ActivePayload == payload_path

        assert isinstance(PayloadContainer.from_object_path(payload_path),
                          DNFModule)
        publisher.assert_called_once()
    def test_create_live_image_payload(self, publisher):
        """Test creation and publishing of the Live image payload module."""
        payload_path = self.payload_interface.CreatePayload(
            PayloadType.LIVE_IMAGE.value)
        assert self.payload_interface.CreatedPayloads == [payload_path]

        self.payload_interface.ActivatePayload(payload_path)
        assert self.payload_interface.ActivePayload == payload_path

        assert isinstance(PayloadContainer.from_object_path(payload_path),
                          LiveImageModule)
        publisher.assert_called_once()