KT-Proxy Stuff (RISE TI-Gateway)

work in progress

Lose Sammlung von Snippets und Ideen zum TI-Gateway von RISE und dem TI-Client

Die nachstehenden Snippets sind für DevOps gedacht, die die Auswirkung der ausgeführten Befehle verstehen und deren Folgen einschätzen können. Einfaches Copy & Paste führt mit Sicherheit zur Zerstörung vorhandener Daten!
/opt/rise/tic*/config/stores/cardterminal_proxies.json
{
    "proxies": [
        {
            "id": "09178083-c453-4c5c-911e-45cf49f2ee4f",
            "name": "KT Aufnahme 01",
            "wireguardIp": "172.16.55.29",
            "incomingIp": "10.255.200.166",
            "incomingPort": 8101,
            "outgoingIp": "10.255.200.165",
            "outgoingPort": 8101,
            "cardTerminalIp": "10.200.149.78",
            "cardTerminalPort": 4742
        }
    ]
}

Massengenerierung von KT-Proxies

Aufruf der Rails-Konsole
podman exec -it cocard bin/rails console
Auswahl des Konnektors
conn = Connector.where(short_name: 'K26').first
conn.card_terminals.count
Cleanup von nicht aktiven KTs
# Je Konnektor
conn.card_terminals.where(condition: Cocard::States::NOTHING).update_all(connector_id: nil)
# alternativ alle
CardTerminal.where(condition: Cocard::States::NOTHING).update_all(connector_id: nil)
Auswahl des TI-Clients
tic = TIClient.where("name like ?", '%05%').first
KTProxies generieren
conn.card_terminals.each do |ct|
  attribs = Cocard::NewKTProxy.new(card_terminal: ct).attributes
  tic.kt_proxies.create(attribs.merge(ti_client_id: tic.id))
end

Analysis

ok_terminals = CardTerminal
               .where(condition: Cocard::States::OK)
               .where("last_check > ?", 1.hour.before(Time.current))
cts_with_missing_proxies = ok_terminals.where.missing(:kt_proxy)

connectors = cts_with_missing_proxies.join(:connector).distinct
connectors.pluck(:short_name)

Kartenterminals aus KT-Proxy am Konnektor hinzufügen

tic = TIClient.where("name like ?", "%02-BNA%").first
rtic = RISE::TIClient::Konnektor::Terminals.new(ti_client: tic)
tic.kt_proxies.each do |ktp|
  rtic.add(ktp) do |result|
    result.on_success do |message, value|
      puts message
    end
    result.on_failure do |message|
      puts message
    end
  end
end; nil

Sequenzdiagramm

work in progress

Voraussetzungen
  • Konnektor ProductType == vKon

kt proxy
Figure 1. Sequenzdiagramm