summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/layerindexlib/plugin.py
blob: cadda36c748841a1690a97e0b041df715904db28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Copyright (C) 2016-2018 Wind River Systems, Inc.
#
# SPDX-License-Identifier: GPL-2.0-only
#
# The file contains:
#   LayerIndex exceptions
#   Plugin base class
#   Utility Functions for working on layerindex data

import logging

logger = logging.getLogger('BitBake.layerindexlib.plugin')

class LayerIndexPluginException(Exception):
    """LayerIndex Generic Exception"""
    def __init__(self, message):
         self.msg = message
         Exception.__init__(self, message)

    def __str__(self):
         return self.msg

class LayerIndexPluginUrlError(LayerIndexPluginException):
    """Exception raised when a plugin does not support a given URL type"""
    def __init__(self, plugin, url):
        msg = "%s does not support %s:" % (plugin, url)
        self.plugin = plugin
        self.url = url
        LayerIndexPluginException.__init__(self, msg)

class IndexPlugin():
    def __init__(self):
        self.type = None

    def init(self, layerindex):
        self.layerindex = layerindex

    def plugin_type(self):
        return self.type

    def load_index(self, uri):
        raise NotImplementedError('load_index is not implemented')

    def store_index(self, uri, index):
        raise NotImplementedError('store_index is not implemented')