Ejemplo n.º 1
0
 def get(self, dashboard_id):
     try:
         source = read_file(self._base_dir, dashboard_id)
         return Dashboard(source, dashboard_id)
     except DocumentNotFound:
         raise DocumentNotFound(
             "There is no such dashboard: {}".format(dashboard_id))
Ejemplo n.º 2
0
def mock_dashboard(id):
    source = dashboard_source([
        row_source("A", [panel_source(1, "AA"),
                         panel_source(2, "AB")]),
        row_source("B", [panel_source(3, "BA"),
                         panel_source(4, "BB")]),
    ])

    return Dashboard(source, id)
Ejemplo n.º 3
0
    def __init__(self):
        super().__init__()

        if DEFAULT not in self._resources.list():
            source = {
                'rows': [],
                'title': DEFAULT,
            }
            dashboard = Dashboard(source, DEFAULT)
            self._resources.save(dashboard, DEFAULT)
Ejemplo n.º 4
0
    def get(self, dashboard_id):
        try:
            source = self._call('GET', 'dashboards/db/{}'.format(dashboard_id))
        except requests.HTTPError as exc:
            if exc.response.status_code == 404:
                raise DocumentNotFound(
                    "There is no such dashboard: {}".format(dashboard_id))

            raise
        return Dashboard(source['dashboard'], dashboard_id)
Ejemplo n.º 5
0
    def get(self, dashboard_id):
        hits = self._search(doc_type=DASHBOARD_TYPE,
                            _source=["dashboard"],
                            body={'query': {
                                'match': {
                                    '_id': dashboard_id
                                }
                            }})

        if not hits:
            raise DocumentNotFound(
                "There is no such dashboard: {}".format(dashboard_id))

        source = json.loads(hits[0]['_source']['dashboard'])

        return Dashboard(source, dashboard_id)
Ejemplo n.º 6
0
    def get(self, dashboard_id):
        query = """SELECT data
                   FROM dashboard
                   WHERE slug = %(slug)s"""

        result = self._execute(query, slug=dashboard_id)
        if not result:
            raise DocumentNotFound(
                "There is no such dashboard: {}".format(dashboard_id))

        source = result[0][0]
        if isinstance(source, bytes):
            source = source.decode('utf-8')

        source = json.loads(source)

        return Dashboard(source, dashboard_id)
Ejemplo n.º 7
0
    def test_save_dashboard(self):
        res = DummyResources()
        dashboard = Dashboard(dashboard_source(), 'new_dashboard')

        # Add new dashboard
        res.save(dashboard)
        self.assertEqual(res._storage.dashboard_id, 'new_dashboard')
        self.assertEqual(res._storage.dashboard.id, 'new_dashboard')

        # Replace dashboard
        res.save(dashboard, 'any_dashboard')
        self.assertEqual(res._storage.dashboard_id, 'any_dashboard')
        self.assertEqual(res._storage.dashboard.id, 'any_dashboard')

        # Add new dashboard with custom name
        res._storage.get.side_effect = DocumentNotFound
        res.save(dashboard, 'custom_dashboard')
        self.assertEqual(res._storage.dashboard_id, 'custom_dashboard')
        self.assertEqual(res._storage.dashboard.id, 'custom_dashboard')