1. 17 Jan, 2024 9 commits
    • Kirill Smelkov's avatar
      . · 7ad73e79
      Kirill Smelkov authored
      7ad73e79
    • Kirill Smelkov's avatar
      . · ebe4f612
      Kirill Smelkov authored
      ebe4f612
    • Kirill Smelkov's avatar
      . · b8ffa4c9
      Kirill Smelkov authored
      b8ffa4c9
    • Kirill Smelkov's avatar
      . · eea23a21
      Kirill Smelkov authored
      eea23a21
    • Kirill Smelkov's avatar
      89562bce
    • Kirill Smelkov's avatar
      . · af7e946d
      Kirill Smelkov authored
      af7e946d
    • Kirill Smelkov's avatar
      X Do not recreate slaptapX-* on every idempotent `slapos node instance` run · e7066823
      Kirill Smelkov authored
      To run tapsplit we use plone.recipe.command with both command and
      update-command set to `tapsplit ...`. But tapsplit, when run, fully
      recreates and reinitializes subtap interfaces, which leads to
      interfering with running enb because subtap interfaces, that enb
      started to use, are removed. This is not desirable behaviour.
      
      What we need:
      
      1) create subtap interfaces only once and keep them stable
      2) until configuration changes which should lead to
         * subtaps recreated, and
         * enb restarted
      
      Carefully reading plone.recipe.command documentation shows:
      
        command
          Command to run when the buildout part is installed.
      
        update-command
          Command to run when the buildout part is updated. This happens when
          buildout is run BUT THE CONFIGURATION FOR THIS BUILDOUT PART HAS NOT
          CHANGED.
      
        (emphasis mine)
      
      So the fix looks to be to make update-command noop - this fulfills
      requirement "1". For "2" - I've verified that when configuration
      changes, e.g. number of RU changes, buildout reinstalls [vtap] section
      from scratch, and it also should restart enb, because generated enb.cfg
      changes.
      
      So the fix is fully correct because it satifies all needed requirements.
      e7066823
    • Kirill Smelkov's avatar
      . · 67ca4532
      Kirill Smelkov authored
      67ca4532
    • Kirill Smelkov's avatar
      X Do not give RU more than /64 · 0ee13826
      Kirill Smelkov authored
      Dnsmasq insists on dhcp-range's prefixlen to be at most 64, which
      triggers the following error if original slaptap is wider than that:
      
          dnsmasq: prefix length must be at least 64 at line 5 of /srv/slapgrid/slappart6/etc/dnsmasq.cfg
      
      -> Fix it by capping provided range to /64
      
      /reported-by @lu.xu
      0ee13826
  2. 16 Jan, 2024 13 commits
    • Kirill Smelkov's avatar
      X restore promises · bf6b2ef3
      Kirill Smelkov authored
      After escaping strings with dumps (to avoid buildout breakage and code
      injection on "tricky" references, e.g. with spaces), promises started to be
      generated with !py! prefix in their filenames, e.g. as
      
          '!py!'\''RU1-sdr-busy.py'\'''
      
      instead of just
      
          RU1-sdr-busy.py
      
      The issue here is that our code set
      
          name = !py!'RU1-sdr-busy.py'
      
      and then monitor-promise-base from stack/monitor does
      
          output = ${directory:plugins}/${:name}
      
      which, I though, would be expanded to .../etc/plugin/RU1-sdr-busy.py but it did
      not deserialized the :name upon expansion.
      
      I feel like it is maybe a bug in nexedi/slapos.buildout@4e13dcb9 , but I'm not sure.
      
      Anyway, workaround the problem by generating :output ourselve also via escaped way.
      bf6b2ef3
    • Kirill Smelkov's avatar
      . · ad2199b1
      Kirill Smelkov authored
      ad2199b1
    • Kirill Smelkov's avatar
      . · eb4d8241
      Kirill Smelkov authored
      eb4d8241
    • Kirill Smelkov's avatar
      . · 338b3295
      Kirill Smelkov authored
      338b3295
    • Kirill Smelkov's avatar
      . · f397d899
      Kirill Smelkov authored
      f397d899
    • Kirill Smelkov's avatar
      . · 6dc18e15
      Kirill Smelkov authored
      6dc18e15
    • Kirill Smelkov's avatar
      . · 1d61ee4d
      Kirill Smelkov authored
      1d61ee4d
    • Kirill Smelkov's avatar
      . · f4ee602d
      Kirill Smelkov authored
      f4ee602d
    • Kirill Smelkov's avatar
      X Fix hostport splitting during gtp_addr calculation · 414079a6
      Kirill Smelkov authored
      urlparse does not handle raw IPv6 address the way I though it does - extracted
      hostname is not the whole address, but only the first part of it:
      
          In [3]: urllib.parse.urlparse('z://2a11:9ac1:6::5')
          Out[3]: ParseResult(scheme='z', netloc='2a11:9ac1:6::5', path='', params='', query='', fragment='')
      
          In [4]: _.hostname
          Out[4]: '2a11'
      
      Tests did not noticed this because previouslt we had e.g 4321::1 in the
      address, and netaddr thinks 4321 is valid ipv4 address:
      
          In [6]: netaddr.IPAddress('4321')
          Out[6]: IPAddress('0.0.16.225')
      
      However changing IPv6 addresses to use hex letter trigger the bug with e.g.
      
             raise AddrFormatError('failed to detect a valid IP ' \
          netaddr.core.AddrFormatError: failed to detect a valid IP address from '2a11'
      
      -> Fix it by avoiding urlparse and doing ip/port splitting ourselves by hand.
      
      /reported-by @lu.xu
      414079a6
    • Kirill Smelkov's avatar
      . · 3a279a19
      Kirill Smelkov authored
      3a279a19
    • Kirill Smelkov's avatar
      . · 3a6b4d48
      Kirill Smelkov authored
      3a6b4d48
    • Kirill Smelkov's avatar
      X remove software-tdd-ors.cfg bw compat · 3b92f134
      Kirill Smelkov authored
      when serving symlinks via raw, lab returns link content (= readlink),
      not content of the target.
      3b92f134
    • Kirill Smelkov's avatar
      X meas_config is TODO for generic · a6e3d92b
      Kirill Smelkov authored
      a6e3d92b
  3. 15 Jan, 2024 4 commits
  4. 12 Jan, 2024 4 commits
  5. 11 Jan, 2024 10 commits