Esempio n. 1
0
    def parse_content(self, content):
        if (not content) or (not self.file_path):
            raise SkipException("No Contents")

        self._config_name = self.file_path.rsplit("/")[-1]
        lines = [l for l in content if not l.strip().startswith('#')]
        self.update(split_kv_pairs(lines, ordered=True))
    def parse_content(self, content):
        if not content:
            raise SkipException("No data.")

        self.status = {'peers': 0, 'hosts': []}
        self.status['peers'] = int(content[0].split(':')[-1].strip())
        for group in list(
                self._grouper(list(filter(lambda x: x != '', content[2:])),
                              3)):
            self.status['hosts'].append(split_kv_pairs(group, split_on=':'))
Esempio n. 3
0
    def parse_content(self, content):
        mdadm_dev = "/mdadm_-E_.dev."
        if mdadm_dev in self.file_path:
            self.device = '/dev/' + self.file_path.split(mdadm_dev)[1].strip()
        else:
            raise SkipException('Cannot parse device name from path {p}'.format(p=self.file_path))

        for key, val in split_kv_pairs(content, split_on=':').items():
            if val.isdigit():
                val = int(val)

            self[key] = val
def test_split_kv_pairs():
    kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines())
    assert len(kv_pairs) == 2
    assert kv_pairs == {
        'keyword1': 'value1',
        'keyword2': 'value2a=True, value2b=100M'
    }

    kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines(),
                              filter_string='value2')
    assert len(kv_pairs) == 1
    assert kv_pairs == {'keyword2': 'value2a=True, value2b=100M'}

    kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines(), use_partition=True)
    assert len(kv_pairs) == 3
    assert kv_pairs == {
        'keyword1': 'value1',
        'keyword2': 'value2a=True, value2b=100M',
        'keyword3': ''
    }

    kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines(),
                              use_partition=True,
                              ordered=True)
    assert len(kv_pairs) == 3
    assert kv_pairs == SPLIT_TEST_1_OD

    kv_pairs = split_kv_pairs(SPLIT_TEST_2.splitlines(),
                              comment_char='@',
                              split_on=':')
    assert len(kv_pairs) == 2
    assert kv_pairs == {
        'keyword1': 'value1',
        'keyword2': 'value2a=True, value2b=100M'
    }

    kv_pairs = split_kv_pairs(SPLIT_TEST_2.splitlines(),
                              comment_char='@',
                              split_on=':',
                              filter_string='value2')
    assert len(kv_pairs) == 1
    assert kv_pairs == {'keyword2': 'value2a=True, value2b=100M'}

    kv_pairs = split_kv_pairs(SPLIT_TEST_2.splitlines(),
                              comment_char='@',
                              split_on=':',
                              use_partition=True)
    assert len(kv_pairs) == 3
    assert kv_pairs == {
        'keyword1': 'value1',
        'keyword2': 'value2a=True, value2b=100M',
        'keyword3': ''
    }
Esempio n. 5
0
    def parse_content(self, content):
        if not content:
            raise SkipException

        sidx = 0
        idx_list = []
        for i, l in enumerate(content):
            if l.strip() == '':
                idx_list.append((sidx, i))
                sidx = i + 1
        idx_list.append((sidx, len(content)))
        for s, e in idx_list:
            data = split_kv_pairs(content[s:e], use_partition=False)
            name = data.get('Names', data.get('Id'))
            if not name:
                raise ParseException('"Names" or "Id" not found!')
            self[name] = dict((k, v) for k, v in data.items() if v)

        if len(self) == 0:
            raise SkipException
    def parse_content(self, content):
        if not content:
            raise SkipException("Empty Content!")

        self._bridges = []

        # Extract the bridge name
        try:
            self._bridge_name = self.file_path.split(
                "ovs-ofctl_dump-flows_")[1]
        except:
            raise SkipException("Invalid Path!")

        for line in content:
            line = line.split(',')
            flow_list = split_kv_pairs(line, split_on='=')
            if flow_list:
                self._bridges.append(flow_list)
        if not self._bridges:
            raise SkipException("Invalid Content!")
Esempio n. 7
0
 def parse_content(self, content):
     self.data = split_kv_pairs(get_active_lines(content))
Esempio n. 8
0
 def parse_content(self, content):
     _content = split_kv_pairs(content)
     self.data = {
         'product': _content['DISTRIB_ID'],
         'version': _content['DISTRIB_RELEASE']
     }
Esempio n. 9
0
 def parse_content(self, content):
     data = split_kv_pairs(content, use_partition=False)
     """Remove empty key"""
     self.update(dict((k, v) for k, v in data.items() if not v == ''))
Esempio n. 10
0
 def parse_content(self, content):
     self.update(split_kv_pairs(content, use_partition=False))
     if not self:
         raise SkipException("empty content")
 def parse_content(self, content):
     if not content:
         raise SkipException("Empty content.")
     self.data = split_kv_pairs(content, split_on=":", use_partition=True)
Esempio n. 12
0
 def parse_content(self, content):
     # Valid comments are both # and ; so remove one locally,
     # other comments and blank lines are removed by split_kv_pairs.
     lines = [l for l in content if not l.strip().startswith(';')]
     self.update(split_kv_pairs(lines, ordered=True))
Esempio n. 13
0
    def parse_content(self, content):
        _content = get_active_lines(content)
        if not _content:
            raise SkipException("Empty content.")

        self.data = split_kv_pairs(_content)