Exemplo n.º 1
0
    def build_query(self):
        """Builds and returns query for the report without paging.

        :returns: Query object
        :rtype: ColumnQuery
        """
        q = ColumnQuery(self.data['model'])
        q.time(self.data['time'])
        for column in self.data['columns']:
            q.add_column(column['model'], column['prop'])
            q.orderby(column['prop'], 'ASC', label=column['model'])
        for f in self.data.get('filters', []):
            q.filter(f['prop'], f['operator'], f['value'], label=f['model'])
        return q
Exemplo n.º 2
0
    def run(self):

        q = ColumnQuery(self.data['model'])
        q.time(self.data['time'])
        for column in self.data['columns']:
            q.add_column(column['model'], column['prop'])
            q.orderby(column['prop'], 'ASC', label=column['model'])

        rows = []
        pagesize = 5000
        page = 1
        page_rows = q.page(page, pagesize)
        while (page_rows):
            rows += page_rows
            page += 1
            page_rows = q.page(page, pagesize)

        return rows
Exemplo n.º 3
0
    def git_urls(self):
        """Build list of selectable git urls.

        :returns: All git urls
        :rtype: list
        """
        q = ColumnQuery('GitUrl')
        q.add_column('GitUrl', 'url', 'url')
        q.orderby('url', 'ASC', label='GitUrl')
        urls = []

        page = 1
        pagesize = 1000
        page_rows = q.page(page, pagesize)
        while (page_rows):
            for row in page_rows:
                urls.append(row['url'])
            page += 1
            page_rows = q.page(page, pagesize)
        return urls
Exemplo n.º 4
0
 def test_query_format(self):
     """Test that query string matches formatting."""
     q = ColumnQuery('Host')
     q.add_column('Environment', 'account_number')
     q.add_column('Host', 'kernel', 'kernel')
     expected = (
         "MATCH (environment:Environment)-[r0:HAS_HOST]->(host:Host) "
         "\nMATCH (environment)-[r_environment_state:HAS_STATE]"
         "->(environment_state:EnvironmentState) "
         "\nMATCH (host)-[r_host_state:HAS_STATE]->(host_state:HostState) "
         "\nWHERE r0.from <= $time < r0.to AND "
         "r_environment_state.from <= $time < r_environment_state.to AND "
         "r_host_state.from <= $time < r_host_state.to"
         "\nRETURN environment.account_number AS"
         " `Environment.account_number`,"
         " host_state.kernel AS `kernel` "
         "\nORDER BY host.hostname_environment ASC")
     self.assertEquals(expected, str(q))
Exemplo n.º 5
0
 def test_adding_valid_column(self):
     """Test that adding a valid column works."""
     q = ColumnQuery('Environment')
     q.add_column('Environment', 'name')
     q.add_column('Environment', 'account_number', name='the_number')
Exemplo n.º 6
0
 def test_add_column_invalid_property(self):
     """Test that adding a column with invalid property fails."""
     q = ColumnQuery('Environment')
     with self.assertRaises(InvalidPropertyError):
         q.add_column('Environment', 'notaprop')
Exemplo n.º 7
0
 def test_add_column_model_not_in_datapath(self):
     """Test that adding a valid model that is not in the datapath fails"""
     q = ColumnQuery('Environment')
     with self.assertRaises(InvalidLabelError):
         q.add_column('AptPackage', 'name')
Exemplo n.º 8
0
 def test_add_column_invalid_model(self):
     """Test that adding a column with invalid model fails."""
     q = ColumnQuery('Environment')
     with self.assertRaises(InvalidLabelError):
         q.add_column('NotAModel', 'someprop')
    def build_query(self):
        """Build query for the report.

        :returns: Query object
        :rtype: ColumnQuery
        """
        q = ColumnQuery('Configfile')
        q.time(self.data['time'])
        for column in self._db_columns:
            q.add_column(column['model'], column['prop'])
            q.orderby(column['prop'], 'ASC', label=column['model'])
        q.filter('name', '=', 'cinder.conf', label='Configfile')
        for f in self.data.get('filters', []):
            q.filter(f['prop'], f['operator'], f['value'], label=f['model'])
        return q
Exemplo n.º 10
0
    def build_query(self):
        """Build the report query.

        :returns: Query object
        :rtype: ColumnQuery
        """
        q = ColumnQuery('GitUrl')
        q.time(self.data['time'])
        for column in self._columns:
            q.add_column(column['model'], column['prop'])
            q.orderby(column['prop'], 'ASC', label=column['model'])
        q.filter('url', '=', self.data['url'], label='GitUrl')
        for f in self.data.get('filters', []):
            q.filter(f['prop'], f['operator'], f['value'], label=f['model'])
        return q
    def run(self):
        """Run the report.

        :returns: List of report rows
        :rtype: List of ordereddicts
        """
        q = ColumnQuery('Configfile')
        q.time(self.data['time'])
        for column in self._db_columns:
            q.add_column(column['model'], column['prop'])
            q.orderby(column['prop'], 'ASC', label=column['model'])
        q.filter('name', '=', 'cinder.conf', label='Configfile')

        records = []
        pagesize = 500
        page = 1
        page_rows = q.page(page, pagesize)
        while (page_rows):
            for row in page_rows:
                for s, d in parse_contents(row['Configfile.contents']):
                    records.append(self._record_from_row(row, s, d))
            page += 1
            page_rows = q.page(page, pagesize)

        return records
Exemplo n.º 12
0
    def run(self):

        q = ColumnQuery('GitUrl')
        q.time(self.data['time'])
        for column in self._columns:
            q.add_column(column['model'], column['prop'])
            q.orderby(column['prop'], 'ASC', label=column['model'])
        q.filter('url', '=', self.data['url'], label='GitUrl')

        rows = []
        pagesize = 5000
        page = 1
        page_rows = q.page(page, pagesize)
        while (page_rows):
            rows += page_rows
            page += 1
            page_rows = q.page(page, pagesize)

        return rows