Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


This page shall provide a guide for updating systems after a new release (merge in master) was made.

Testsystem Testflow

this should be done on the test environment before we merge dev/release into master and update our live systems

...

languagebash
titleTestflow

...

Tests before Merging new Pull Requests / Demosystem Test

The following most important things should always be tested in GUI/Browser before changes will be merged (as they are currently not tested via unit testing). After the changes are merged it's recommended to check them with live data on a demosystem (if available).

  1. Provisioning -> Contract -> Modem/CPE/MTA Analysis page
  2. Networks -> Topography & Entity Diagramm
  3. HFC -> NetElement -> Controlling View (e.g. CMTS)
  4. Billing -> SettlementRun -> Create (or via Cmdline: php artisan billing:accounting) 

After Upgrade Tests

Code Block
languagebash
# check daily conversions
php artisan nms:contract daily
php artisan provvoip:phonenumber

# Checkcheck Modemactive Analysisstates Pagesin forDB
Errors!mysql #-u Checkroot ERD-p & Topography for Networks!
<psw> db_lara
# show all contracts that have network_access=0 or contract-/modem-network-access/phonenumber-active differs
[db_lara]> select c.id, c.firstname, c.lastname, c.network_access as Cnw_access, m.network_access as Mnw_access, p.username, p.active from contract c, modem m, mta mta, phonenumber p where c.id=m.contract_id and p.mta_id=mta.id and mta.modem_id=m.id and c.deleted_at is null and m.deleted_at is null and mta.deleted_at is null and p.deleted_at is null and (c.network_access!=m.network_access or c.network_access!=p.active or m.network_access!=p.active or c.network_access=0);

# check if all configfiles have Datarate assigned - both outputs should be the same
# ls -l /tftpboot/cm/ | awk 'END {print NR/2}'
ls -l /tftpboot/cm/*.cfg | wc -l								 				# Nr Configfiles
grep MaxRateSustained  /tftpboot/cm/*.conf | wc -l | awk '{print $1/2}'  		# Nr Configfiles with Datarate assigned

 

 

Live System Update

Provisional Restarts

Code Block
languagebash
systemctl restart nmsd

Check before

check cron jobs in app/Console/Kernel.php if sth new can happen over night

Test & Execute directly after

Code Block
languagebash
# dump database before!
mysqldump

composer update
php artisan migrate
php artisan module:migrate
php artisan nms:auth
php artisan route:cache

# check daily conversions
php artisan nms:contract daily
php artisan provvoip:phonenumber
# check active states in DB
mysql -u root -p <psw> db_lara
# show all contracts that have network_access=0 or contract-/modem-network-access/phonenumber-active differs
[db_lara]> select c.id, c.firstname, c.lastname, c.network_access as Cnw_access, m.network_access as Mnw_access, p.username, p.active from contract c, modem m, mta mta, phonenumber p where c.id=m.contract_id and p.mta_id=mta.id and mta.modem_id=m.id and c.deleted_at is null and m.deleted_at is null and mta.deleted_at is null and p.deleted_at is null and (c.network_access!=m.network_access or c.network_access!=p.active or m.network_access!=p.active or c.network_access=0);

Import

Code Block
languagebash
titleTest SQL Commands
# Check if there are MTA's/Phonenumbers with no SIP Password assigned -> still MGCP
[db_lara]> select c.number2, c.firstname, c.lastname, c.street, c.zip, c.city, p.id, p.country_code, p.prefix_number, p.number, m.mac, p.password from phonenumber p, mta mta, modem m, contract c where p.mta_id=mta.id and mta.modem_id=m.id and m.contract_id=c.id and (p.password is null or p.password='') and number2!='';

# check if there are modems with no proper qos_id assigned
select c.id, c.firstname, c.lastname, c.created_at, c.qos_id, m.qos_id from modem m, contract c where m.contract_id=c.id and c.qos_id!=m.qos_id;
# in emergency case update manually: update modem m join contract c on m.contract_id=c.id set m.qos_id=c.qos_id;