Ejemplo n.º 1
0
 def test_detach_2_repack(self):
     tiles = self.test_place_multiple()
     detach_tile(tiles[0])
     repack(tiles[0].owner_id, tiles[0].dashboard_id)
     detach_tile(tiles[1])
     repack(tiles[0].owner_id, tiles[0].dashboard_id)
     del tiles[0]
     del tiles[0]
     layout = Layout.select(tiles[0].owner_id, tiles[0].dashboard_id)
     self.assertDictEqual(
         self.ld_from_vos(
             tiles,
             {
                 u'width': 4,
                 u'height': 4,
                 u'x': 0,
                 u'y': 0
             },
             {
                 u'width': 5,
                 u'height': 1,
                 u'x': 0,
                 u'y': 4
             },
             {
                 u'width': 4,
                 u'height': 4,
                 u'x': 4,
                 u'y': 0
             },
         ), layout.layout_dict)
Ejemplo n.º 2
0
    def test_delete(self):
        tile_config = {
            'tw_type':
            'Range',
            'tags': ['ip:192.168.1.1'],
            'series_spec_list': [
                dataseries.SeriesSpec(2, 0, dict(op='eq', args=['monique'])),
            ],
            'tile_options': {
                'seconds_back':
                600,
                'tile_title':
                'Points by user',
                'sscs':
                dataseries.SeriesSpec(2, 0, dict(op='eq', args=['monique'])),
                'tpcreator_uispec':
                tpcreator.suggested_tpcreator_uispec(['ip:192.168.1.1'])
            }
        }
        owner_id = uuid.uuid1()
        report_id = report_data('points').report.report_id
        dashboard_id = report_data('points').dashboard_id
        tile = Tile.insert(owner_id, report_id, dashboard_id, tile_config)
        place_tile(tile)
        self.assertTrue(self._select_tpcreator_rows(tile))
        self.assertTrue(self._select_sscs_rows(tile))

        tile = tile.select(tile.dashboard_id, tile.tile_id)
        detach_tile(tile)
        deleted_tile = tile.select(tile.dashboard_id, tile.tile_id)
        self.assertIsNone(deleted_tile)
Ejemplo n.º 3
0
 def test_removing_tiles(self):
     rd, master_tile = self.test_handle_tpcreator()
     tiles = Tile.select_multi(rd.dashboard_id,
                               _select_tile_ids(rd.dashboard_id)).values()
     tpcreated_tile = util.first(t for t in tiles if t.get_master_tile_id())
     layouts.detach_tile(tpcreated_tile)
     self.assertEqual(1,
                      len(tpcreator.select_tpcreated_tile_ids(master_tile)))
Ejemplo n.º 4
0
    def test_get_dashboards_displaying_report(self):
        od = self.test_inserting()

        res = od.get_dashboards_displaying_report(uuid.uuid4())
        self.assertEqual([], res)

        r = Report.insert(od.owner_id, 'r')
        tile_config = {
            'series_spec_list': [
                dataseries.SeriesSpec(0, -1, dict(op='eq', args=['0'])),
            ],
        }

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual([], res)

        t1 = Tile.insert(od.owner_id, r.report_id, od.dashboards[3].dashboard_id, tile_config)
        place_tile(t1)

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual(1, len(res))
        self.assertEqual('Dash 4', res[0].dashboard_name)

        t2 = Tile.insert(od.owner_id, r.report_id, od.dashboards[1].dashboard_id, tile_config)
        place_tile(t2)

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual(2, len(res))
        self.assertEqual('Dash 2', res[0].dashboard_name)
        self.assertEqual('Dash 4', res[1].dashboard_name)

        t3 = Tile.insert(od.owner_id, r.report_id, od.dashboards[1].dashboard_id, tile_config)
        place_tile(t3)

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual(2, len(res))
        self.assertEqual('Dash 2', res[0].dashboard_name)
        self.assertEqual('Dash 4', res[1].dashboard_name)

        detach_tile(t3)

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual(2, len(res))
        self.assertEqual('Dash 2', res[0].dashboard_name)
        self.assertEqual('Dash 4', res[1].dashboard_name)

        detach_tile(t2)

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual(1, len(res))
        self.assertEqual('Dash 4', res[0].dashboard_name)

        od.dashboards[3].delete()

        res = od.get_dashboards_displaying_report(r.report_id)
        self.assertEqual(0, len(res))
Ejemplo n.º 5
0
    def test_detach_all_and_attach(self):
        tiles = self.test_place_multiple()
        dashboard_id = tiles[0].dashboard_id
        for t in tiles:
            detach_tile(t)

        tile = call(tiles_test.TileTest.test_insert, dashboard_id=dashboard_id)
        res = place_tile(tile)
        vo = {'width': 4, 'height': 4, 'x': 0, 'y': 0}
        self.assertEqual(vo, res.new_tiles[tile])

        layout = Layout.select(tile.owner_id, tile.dashboard_id)
        self.assertEqual(res.new_layout.layout_id, layout.layout_id)
        self.assertEqual({tile.tile_id: vo}, layout.layout_dict)
Ejemplo n.º 6
0
    def test_deleting_layout_by_report_row(self):
        owner_id = uuid.uuid1()
        dashboard_id_1 = uuid.uuid1()
        r = reports.Report.insert(owner_id, 'r')
        tile_config = {
            'tw_type':
            'Single',
            'tags': ['p1:10'],
            'series_spec_list': [
                dataseries.SeriesSpec(0, -1, dict(op='eq', args=['0'])),
            ],
            'tile_options': {}
        }
        tile_config['tile_options'][
            'tpcreator_uispec'] = tpcreator.suggested_tpcreator_uispec(
                ['p1:10'])

        master_tile_1 = Tile.insert(owner_id, r.report_id, dashboard_id_1,
                                    tile_config)
        layouts.place_tile(master_tile_1)

        r.process_input('1', tags=['p1:11'])

        self.assertEqual(
            2,
            len(
                Layout.select(master_tile_1.owner_id,
                              master_tile_1.dashboard_id).layout_dict))

        rows = c.dao.LayoutDAO.select_layout_by_report_multi(
            master_tile_1.owner_id, master_tile_1.report_id, [], 'tpcreator',
            100)
        self.assertTrue(rows)

        layouts.detach_tile(master_tile_1)

        r.process_input('1', tags=['p1:12'])

        self.assertEqual(
            1,
            len(
                Layout.select(master_tile_1.owner_id,
                              master_tile_1.dashboard_id).layout_dict))

        rows = c.dao.LayoutDAO.select_layout_by_report_multi(
            master_tile_1.owner_id, master_tile_1.report_id, [], 'tpcreator',
            100)
        self.assertFalse(rows)
Ejemplo n.º 7
0
def move_tile():
    dashboard_id = request.get_json()['dashboard_id']
    tile_id = request.get_json()['tile_id']
    target_dashboard_id = request.get_json()['target_dashboard_id']
    for_layout_id = request.get_json()['for_layout_id']

    check_access(lambda: auth.access_dashboard(dashboard_id))
    check_access(lambda: auth.access_dashboard(target_dashboard_id))

    old_tile = tiles.Tile.select(dashboard_id, tile_id)
    if not old_tile:
        return error('Invalid source tile in move_tile %s %s' % (dashboard_id, tile_id))

    new_tile = old_tile.copy(target_dashboard_id)
    if not layouts.place_tile(new_tile):
        return error('Cannot copy the source file')

    mres = layouts.detach_tile(old_tile, for_layout_id=for_layout_id)
    if not mres:
        return error(message='Deletion of the source tile unsuccessful due to old page data')

    log.info('Moved tile tile_id=%s dashboard_id=%s to tile tile_id=%s dashboard_id=%s',
             tile_id, dashboard_id, new_tile.tile_id, target_dashboard_id)

    return success(result=dict(new_layout_id=mres.new_layout.layout_id))
Ejemplo n.º 8
0
    def test_deleting_layout_by_report_row(self):
        tile, report = self.test_sscs_virtual_column()
        report.process_input('3\n4\n5\n6')

        tile = Tile.select(tile.dashboard_id, Layout.select(tile.owner_id, tile.dashboard_id).layout_dict.keys()[0])
        self.assertEqual(4, len(tile.series_specs()))

        layouts.detach_tile(tile)

        rows = c.dao.LayoutDAO.select_layout_by_report_multi(tile.owner_id,
                                                             tile.report_id, [], 'sscs', 100)
        self.assertTrue(rows)

        report.process_input('3\n4\n5\n6')

        rows = c.dao.LayoutDAO.select_layout_by_report_multi(tile.owner_id,
                                                             tile.report_id, [], 'sscs', 100)
        self.assertFalse(rows)
Ejemplo n.º 9
0
def delete_tile():
    dashboard_id = request.get_json()['dashboard_id']
    tile_id = request.get_json()['tile_id']
    for_layout_id = request.get_json()['for_layout_id']

    check_access(lambda: auth.access_dashboard(dashboard_id))

    tile = tiles.Tile.select(dashboard_id, tile_id)
    if not tile:
        return error('Invalid tile')

    mres = layouts.detach_tile(tile, for_layout_id=for_layout_id)
    if not mres:
        return error(message='Could not delete the tile, a page refresh is needed')
    log.info('Deleted tile dashboard_id=%s tile_id=%s', dashboard_id, tile_id)

    return success(result=dict(new_layout_id=mres.new_layout.layout_id))