go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/libraries/etcdctl.py (about)

     1  import json
     2  
     3  
     4  def create_interfaces_json_from_list(interfaces):
     5      ints_json = ""
     6      for interface in interfaces:
     7          if interface[:4] == 'bvi_':
     8              ints_json += '{ "name": "' + interface + '", "bridged_virtual_interface": true },'
     9          else:
    10              ints_json += '{ "name": "' + interface + '" },'
    11      ints_json = ints_json[:-1]
    12      return ints_json
    13  
    14  
    15  def remove_empty_lines(lines):
    16      out_lines = ""
    17      for line in lines:
    18          if line.strip():
    19              out_lines += line
    20      return out_lines
    21  
    22  
    23  def remove_keys(lines):
    24      out_lines = ""
    25      for line in lines:
    26          if line[0] != '/':
    27              out_lines += line + '\n'
    28      return out_lines
    29  
    30  
    31  # input - etcd dump
    32  # output - etcd dump converted to json + key, node, name, type atributes
    33  def convert_etcd_dump_to_json(dump):
    34      etcd_json = '['
    35      key = ''
    36      data = ''
    37      firstline = True
    38      for line in dump.splitlines():
    39          if line.strip() != '':
    40              if line[0] == '/':
    41                  if not firstline:
    42                      etcd_json += '{"key":"'+key+'","node":"'+node+'","name":"'+name+'","type":"'+type+'","data":'+data+'},'
    43                  key = line
    44                  node = key.split('/')[2]
    45                  name = key.split('/')[-1]
    46                  type = key.split('/')[4]
    47                  data = ''
    48                  firstline = False
    49              else:
    50                  if line == "null":
    51                      line = '{"error":"null"}'
    52                  data += line
    53      if not firstline:
    54          etcd_json += '{"key":"'+key+'","node":"'+node+'","name":"'+name+'","type":"'+type+'","data":'+data+'}'
    55      etcd_json += ']'
    56      return etcd_json