NOC:ctwug version

From CTWUG Wiki
Jump to: navigation, search

Purpose

  • Updates NOC with all of the rb's settings
  • Checks for an OSPF user
  • Checks the ctwug_init script permissions

Dependencies

http://noc.ctwug.za.net/web/api/update?id=".$fid."&serial=".$fserial."&update=2&version=".$fver."&cpu=".$fcpu."&freq=".$fcpufreq."&arch=".$farch."&board=".$fboard."&fw=".$ffw."&ip=".$fip."&ospf=".$fospf."&policy=".$fpolicy

Script

:local fid [/system identity get name]
:local fserial [/system routerboard get serial-number]
:local fver [/system resource get version]
:local fcpu [/system resource get cpu]
:local fcpufreq [/system resource get cpu-frequency]
:local farch [/system resource get architecture-name]
:local fboard [/system resource get board-name]
:local ffw [/system routerboard get current-firmware]
:local fip [/ip address get 0 address]
:local ffile "ctwug_version.rsc"
:local fpolicy 0

/user
:local fospf 0
:foreach id in [/user find name=ctwug_ospf] do={
  :set fospf 1
}

:if ([/system script find name=ctwug_init] != "" ) do={
  :local fpolicys [/system script get ctwug_init policy]
  :for i from=0 to=([:len $fpolicys] -1) do={
    :local fchar [:pick $fpolicys $i]
    :if ($fchar = "reboot") do={:set fpolicy ($fpolicy+1)}
    :if ($fchar = "read") do={:set fpolicy ($fpolicy+2)}
    :if ($fchar = "write") do={:set fpolicy ($fpolicy+4)}
    :if ($fchar = "policy") do={:set fpolicy ($fpolicy+8)}
    :if ($fchar = "test") do={:set fpolicy ($fpolicy+16)}
    :if ($fchar = "password") do={:set fpolicy ($fpolicy+32)}
    :if ($fchar = "sniff") do={:set fpolicy ($fpolicy+64)}
    :if ($fchar = "sensitive") do={:set fpolicy ($fpolicy+128)}
  }
}

:local fpath ("web/api/update? id=".$fid."&serial=".$fserial."&update=2&version=".$fver."&cpu=".$fcpu."&freq=".$fcpufreq."&arch=".$farch."&board=".$fboard."&fw=".$ffw."&ip=".$fip."&ospf=".$fospf."& policy=".$fpolicy) 
:local fpath2 $fpath
:local fpath ""
:for i from=0 to=( [:len $fpath2] - 1) do={
  :local fchar [:pick $fpath2 $i]
  :if ($fchar = " ") do={
    :set fchar "%20"
  }
  :set fpath ($fpath.$fchar)
}

/tool fetch host=noc.ctwug.za.net address=noc.ctwug.za.net src-path=$fpath dst-path=$ffile mode=http
:delay 1
:local temp [/file get $ffile size]
:if ( $temp > 2) do={
  /import $ffile
}