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
...
language | bash |
---|
title | Testflow |
---|
...
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).
Provisioning -> Contract -> Modem/CPE/MTA Analysis page
Networks -> Topography & Entity Diagramm
HFC -> NetElement -> Controlling View (e.g. CMTS)
Billing -> SettlementRun -> Create (or via Cmdline: php artisan billing:accounting)
After Upgrade Tests
Code Block |
---|
|
# 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 |
---|
|
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 |
---|
|
# 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 |
---|
language | bash |
---|
title | Test 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; |