示例#1
0
 def get_sys(x):
     systems = System.all(identity.current.user). \
               filter(System.groups.contains(x)). \
               filter(System.status != SystemStatus.removed).all()
     if len(systems):
         return make_link('systems?group_id=%s' % x.group_id,
                          u'System count: %s' % len(systems))
     else:
         return 'System count: 0'
示例#2
0
 def query(cls):
     for system in System.all(identity.current.user):
         for exclude in (ExcludeOSMajor.query.join('system')
                                             .yield_per(10000)
                                             .filter(System.id == system.id)):
             yield CSV_Exclude(exclude)
         for exclude in (ExcludeOSVersion.query.join('system')
                                               .yield_per(10000)
                                               .filter(System.id == system.id)):
             yield CSV_Exclude(exclude)
示例#3
0
 def query(cls):
     for system in System.all(identity.current.user):
         for key_int in (Key_Value_Int.query.join('system')
                                            .yield_per(10000)
                                            .filter(System.id == system.id)):
             yield CSV_KeyValue(key_int)
         for key_string in (Key_Value_String.query.join('system')
                                            .yield_per(10000)
                                            .filter(System.id == system.id)):
             yield CSV_KeyValue(key_string)
示例#4
0
    def systems(self,group_id=None,*args,**kw):
        try:
            group = Group.by_id(group_id)
        except NoResultFound:
            log.exception('Group id %s is not a valid group id' % group_id)
            flash(_(u'Need a valid group to search on'))
            redirect('../groups/mine')

        systems = System.all(identity.current.user).filter(System.groups.contains(group))
        title = 'Systems in Group %s' % group.group_name
        from bkr.server.controllers import Root
        return Root()._systems(systems,title, group_id = group_id,**kw)
示例#5
0
    def get_group_systems(self, group_id=None, *args, **kw):
        try:
            group = Group.by_id(group_id)
        except DatabaseLookupError:
            log.exception('Group id %s is not a valid group id' % group_id)
            response.status = 403
            return ['Invalid Group Id']

        systems = System.all(identity.current.user).filter(System.groups.contains(group)). \
                  filter(System.status != SystemStatus.removed)

        return [(system.id, system.fqdn) for system in systems]
示例#6
0
 def reserve(self, action='.', *args, **kw):
     from bkr.server.controllers import Root
     default_columns = ('System/Name',
                        'System/Reserved',
                        'System/User',
                        'System/Pools',
                        'System/LoanedTo',)
     return Root()._systems(systems=System.all(identity.current.user)
                            .join('open_reservation')
                            .options(contains_eager(System.open_reservation)),
                            title=u'Reserve Report',
                            default_result_columns=default_columns,
                            *args, **kw)
示例#7
0
    def systems(self, group_id=None, *args, **kw):
        try:
            group = Group.by_id(group_id)
        except DatabaseLookupError:
            log.exception('Group id %s is not a valid group id' % group_id)
            flash(_(u'Need a valid group to search on'))
            redirect('../groups/mine')

        systems = System.all(identity.current.user). \
                  filter(System.groups.contains(group)). \
                  filter(System.status != SystemStatus.removed)
        title = 'Systems in Group %s' % group.group_name
        from bkr.server.controllers import Root
        return Root()._systems(systems, title, group_id=group_id, **kw)
示例#8
0
文件: reports.py 项目: qhsong/beaker
 def reserve(self, action='.', *args, **kw):
     from bkr.server.controllers import Root
     default_columns = (
         'System/Name',
         'System/Reserved',
         'System/User',
         'System/Pools',
         'System/LoanedTo',
     )
     return Root()._systems(systems=System.all(
         identity.current.user).join('open_reservation').options(
             contains_eager(System.open_reservation)),
                            title=u'Reserve Report',
                            default_result_columns=default_columns,
                            *args,
                            **kw)
示例#9
0
    def reserve(self, action='.', *args, **kw): 
        searchvalue = None 
        reserves = System.all(identity.current.user).join('open_reservation')\
                .options(contains_eager(System.open_reservation))
        reserves_return = self._reserves(reserves, **kw)
        search_options = {}
        if reserves_return:
            if 'reserves_found' in reserves_return:
                reserves = reserves_return['reserves_found']
            if 'searchvalue' in reserves_return:
                searchvalue = reserves_return['searchvalue']
            if 'simplesearch' in reserves_return:
                search_options['simplesearch'] = reserves_return['simplesearch']

        search_bar = SearchBar(name='reservesearch',
                               label=_(u'Reserve Search'),
                               table = search_utility.SystemReserve.search.create_search_table(),
                               complete_data=search_utility.SystemReserve.search.create_complete_search_table(),
                               search_controller=url("./get_search_options_reserve"),
                               )
        reservations = [system.open_reservation for system in reserves]
                               
        reserve_grid = myPaginateDataGrid(fields=[
                                  widgets.PaginateDataGrid.Column(name='system.fqdn', getter=lambda x: make_link(url  = '/view/%s' % x.system.fqdn, text = x.system), title=u'System', options=dict(sortable=True)),
                                  widgets.PaginateDataGrid.Column(name='start_time',
                                    getter=lambda x: x.start_time,
                                    title=u'Reserved Since',
                                    options=dict(sortable=True, datetime=True)),
                                  widgets.PaginateDataGrid.Column(name='user', getter=lambda x: x.user, title=u'Current User', options=dict(sortable=True)),
                              ])

        return dict(title=u"Reserve Report",
                    grid = reserve_grid,
                    search_bar = search_bar,
                    options = search_options,
                    action=action, 
                    searchvalue = searchvalue,
                    object_count=len(reservations),
                    list=reservations)
示例#10
0
    def reserve(self, action='.', *args, **kw): 
        searchvalue = None 
        reserves = System.all(identity.current.user).join('open_reservation')\
                .options(contains_eager(System.open_reservation))
        reserves_return = self._reserves(reserves, **kw)
        search_options = {}
        if reserves_return:
            if 'reserves_found' in reserves_return:
                reserves = reserves_return['reserves_found']
            if 'searchvalue' in reserves_return:
                searchvalue = reserves_return['searchvalue']
            if 'simplesearch' in reserves_return:
                search_options['simplesearch'] = reserves_return['simplesearch']

        search_bar = SearchBar(name='reservesearch',
                               label=_(u'Reserve Search'),
                               table = search_utility.SystemReserve.search.create_complete_search_table(),
                               search_controller=url("./get_search_options_reserve"),
                               )
        reservations = [system.open_reservation for system in reserves]
                               
        reserve_grid = myPaginateDataGrid(fields=[
                                  widgets.PaginateDataGrid.Column(name='system.fqdn', getter=lambda x: make_link(url  = '/view/%s' % x.system.fqdn, text = x.system), title=u'System', options=dict(sortable=True)),
                                  widgets.PaginateDataGrid.Column(name='start_time',
                                    getter=lambda x: x.start_time,
                                    title=u'Reserved Since',
                                    options=dict(sortable=True, datetime=True)),
                                  widgets.PaginateDataGrid.Column(name='user', getter=lambda x: x.user, title=u'Current User', options=dict(sortable=True)),
                              ])

        return dict(title=u"Reserve Report",
                    grid = reserve_grid,
                    search_bar = search_bar,
                    options = search_options,
                    action=action, 
                    searchvalue = searchvalue,
                    list=reservations)
示例#11
0
 def query(cls):
     for system in System.all(identity.current.user):
         for group in system.groups:
             yield CSV_GroupSystem(system, group)
示例#12
0
 def query(cls):
     for system in System.all(identity.current.user):
         for key_int in system.key_values_int:
             yield CSV_KeyValue(key_int)
         for key_string in system.key_values_string:
             yield CSV_KeyValue(key_string)
示例#13
0
 def query(cls):
     for system in System.all(identity.current.user):
         for install in system.provisions.itervalues():
             yield CSV_Install(install)
示例#14
0
 def query(cls):
     for system in System.all(identity.current.user):
         for exclude in system.excluded_osmajor:
             yield CSV_Exclude(exclude)
         for exclude in system.excluded_osversion:
             yield CSV_Exclude(exclude)
示例#15
0
 def query(cls):
     for system in System.all(identity.current.user).join(System.labinfo):
         yield CSV_LabInfo(system.labinfo)
示例#16
0
 def query(cls):
     query = System.all(identity.current.user)\
         .filter(System.can_view_power(identity.current.user))\
         .join(System.power)
     for system in query:
         yield CSV_Power(system.power)
示例#17
0
 def query(cls):
     for system in System.all(identity.current.user):
         yield CSV_System_id(system)
示例#18
0
 def query(cls):
     for system in System.all(identity.current.user):
         for pool in system.pools:
             yield CSV_SystemPool(system, pool)
示例#19
0
 def query(cls):
     for system in System.all(identity.current.user):
         for pool in system.pools:
             yield CSV_SystemPool(system, pool)
示例#20
0
 def query(cls):
     for system in System.all(identity.current.user):
         for group in system.groups:
             yield CSV_GroupSystem(system, group)
示例#21
0
 def query(cls):
     for system in System.all(identity.current.user):
         for install in system.provisions.itervalues():
             yield CSV_Install(install)
示例#22
0
 def query(cls):
     for system in System.all(identity.current.user):
         for exclude in system.excluded_osmajor:
             yield CSV_Exclude(exclude)
         for exclude in system.excluded_osversion:
             yield CSV_Exclude(exclude)
示例#23
0
 def query(cls):
     for system in System.all(identity.current.user).join(System.labinfo):
         yield CSV_LabInfo(system.labinfo)
示例#24
0
 def query(cls):
     query = System.all(identity.current.user)\
         .filter(System.can_view_power(identity.current.user))\
         .join(System.power)
     for system in query:
         yield CSV_Power(system.power)
示例#25
0
 def query(cls):
     for system in System.all(identity.current.user):
         for key_int in system.key_values_int:
             yield CSV_KeyValue(key_int)
         for key_string in system.key_values_string:
             yield CSV_KeyValue(key_string)
示例#26
0
 def query(cls):
     for system in System.all(identity.current.user):
         yield CSV_System_id(system)