示例#1
0
    def restore(self, basedir):
        """run restore on the snapfile"""
        # if files record file isn't found, simply return
        if not os.path.isfile(basedir + "/services.xml"):
            return

        record = ServicesRecordFile(basedir + "/services.xml")
        services = record.read()

        for sservice in services:
            if snap.config.options.log_level_at_least('verbose'):
                snap.callback.snapcallback.message("Restoring service " +
                                                   sservice.name)
            service_instance = self.load_service(sservice.name)
            # install the prerequisites if the services is not available
            if not service_instance.is_available():
                service_instance.install_prereqs()

            if service_instance.is_available():
                service_instance.restore(basedir)

            # if service is still not available, log this and skip it
            elif snap.config.options.log_level_at_least('normal'):
                snap.callback.snapcallback.message("Could not restore " +
                                                   sservice.name + " service")
示例#2
0
    def testDispatcherBackup(self):
        snap.backends.services.adapters.mock.Mock.mock_is_available = True
        snap.backends.services.adapters.mock.Mock.is_available_called = False
        snap.backends.services.adapters.mock.Mock.backup_called = False

        dispatcher = snap.backends.services.dispatcher.Dispatcher()
        dispatcher.backup(self.basedir, include=["mock"])

        self.assertTrue(snap.backends.services.adapters.mock.Mock.is_available_called)
        self.assertTrue(snap.backends.services.adapters.mock.Mock.backup_called)
        self.assertTrue(os.path.isfile(os.path.join(self.basedir, "services.xml")))

        record = ServicesRecordFile(os.path.join(self.basedir, "services.xml"))
        services = record.read()
        service_names = []
        for service in services:
            service_names.append(service.name)
        self.assertIn("mock", service_names)
示例#3
0
    def testDispatcherBackup(self):
        snap.backends.services.adapters.mock.Mock.mock_is_available = True
        snap.backends.services.adapters.mock.Mock.is_available_called = False
        snap.backends.services.adapters.mock.Mock.backup_called = False

        dispatcher = snap.backends.services.dispatcher.Dispatcher()
        dispatcher.backup(self.basedir, include=['mock'])

        self.assertTrue(
            snap.backends.services.adapters.mock.Mock.is_available_called)
        self.assertTrue(
            snap.backends.services.adapters.mock.Mock.backup_called)
        self.assertTrue(
            os.path.isfile(os.path.join(self.basedir, "services.xml")))

        record = ServicesRecordFile(os.path.join(self.basedir, "services.xml"))
        services = record.read()
        service_names = []
        for service in services:
            service_names.append(service.name)
        self.assertIn("mock", service_names)
示例#4
0
    def restore(self, basedir):
        """run restore on the snapfile"""
        # if files record file isn't found, simply return
        if not os.path.isfile(basedir + "/services.xml"):
            return

        record = ServicesRecordFile(basedir + "/services.xml")
        services = record.read()

        for sservice in services:
            if snap.config.options.log_level_at_least('verbose'):
                snap.callback.snapcallback.message("Restoring service " + sservice.name);
            service_instance = self.load_service(sservice.name)
            # install the prerequisites if the services is not available
            if not service_instance.is_available():
                service_instance.install_prereqs()
            
            if service_instance.is_available():
                service_instance.restore(basedir)
                
            # if service is still not available, log this and skip it    
            elif snap.config.options.log_level_at_least('normal'):
                snap.callback.snapcallback.message("Could not restore " + sservice.name + " service")