User Tools

Site Tools


Writing /app/www/public/data/meta/development/applications/rightofway.meta failed
development:applications:rightofway

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
development:applications:rightofway [2018/02/23 15:38] bcoffeydevelopment:applications:rightofway [2021/06/25 10:09] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +======= Right of Way Project =======
 +
 +
 +===== Project Overview =====
 +There are following google drive documents, which describe the whole project in a detail: [[https://docs.google.com/document/d/1k8siXuiU1BHotAmW2vGQiSh_HQ1cmxgej781VvAqeNc/edit|Right of Way - Requirements & Analysis]].
 +[[https://docs.google.com/document/d/1tfsq_VaXnNj9skNcKUyVrtFxSOBeulopau8JGzAYDrI/edit#heading=h.78kwfptkz7j7|Right of Way Architecture/Design]]
 +
 +Right of Way is an online form which will be completed by Sprint Cell Site Technicians when requesting right of way access to a site from ExteNet. This form will notify the NOC via email of the request.
 +
 +===== Operations =====
 +==== Deployment ====
 +Right of Way is deployed from [[http://10.91.100.112:8080/job/right-of-way/|Jenkins]] - you have to pick one of the deploy jobs for the desired branch and choose the environment when running the build. You can then watch the build logs to see the deployment progress (should take approx. 2 minutes).
 +
 +==== Application Service ====
 +Right of Way is installed as an init.d service in linux:
 +<code>
 +[scotty@blade12(sfqaapps1) ~]$ls -la /etc/init.d/ | grep right
 +lrwxrwxrwx.  1 scotty root    46 Jan 31 05:11 right-of-way -> /var/spring-boot/right-of-way/right-of-way.war
 +</code>
 +
 +This means there is no startup/shutdown script and it can be stopped/started/restarted using the standard service command:
 +<code>
 +[scotty@blade12(sfqaapps1) ~]$service right-of-way stop
 +Stopped [22697]
 +[scotty@blade12(sfqaapps1) ~]$service right-of-way start
 +Started [20705]
 +[scotty@blade12(sfqaapps1) ~]$service right-of-way restart
 +Stopped [20705]
 +Started [7755]
 +</code>
 +
 +Please check the right-of-way.conf below to see how to set the JAVA_OPTS like heap etc.
 +
 +==== Server folder structure ====
 +All the applications artefacts reside in the ///var/spring-boot/right-of-way/// folder.
 +<code>
 +[scotty@blade12(sfqaapps1) ~]$ls -la /var/spring-boot/right-of-way/
 +total 45720
 +drwxr-xr-x. 2 scotty root       4096 Feb 22 08:43 .
 +drwxr-xr-x. 5 scotty root       4096 Jan 31 05:02 ..
 +-rw-r--r--. 1 scotty root       2338 Feb 16 01:44 application.properties
 +-rw-r--r--. 1 scotty root        356 Jan 31 05:16 right-of-way.conf
 +-rw-r--r--. 1 scotty scotty        0 Jan 31 05:17 right-of-way-json.log
 +-rw-r--r--. 1 scotty root    3684685 Feb 23 06:53 right-of-way.log
 +-rw-r--r--. 1 scotty root          5 Feb 22 08:43 right-of-way.pid
 +-rwxr--r--. 1 scotty root   43105543 Feb 22 08:43 right-of-way.war
 +</code>
 +=== right-of-way.conf ===
 +The right-of-way.conf contains the basic java options for the application (location of the java, JAVA_OPTS, heap, etc.). Please check [[https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html|Spring Documentation]] for more details on these options.
 +
 +=== application.properties ===
 +This is equivalent to our Groovy.configs - all the DB connection string, URLs and other settings are there.
 +
 +The application needs to be restarted in order to any changes to this config take effect.
 +
 +
 +===== Methodology =====
 +==== Tools ====
 +Following table describes specific tools used on Right of Way project. It doesn't cover the standard Errigal tooling (IDE, BitBucket, Gradle, etc.).
 +
 +| ^ Purpose ^ Additional Information ^
 +^ SonarLint | Static code analysis tool | IDEA Plugin capable of performing code quality checks. It can be integrated to existing SonarQube server to delegate the analysis to it. |
 +^ SonarQube | Static code analysis server | More info at [[https://www.sonarqube.org/|sonarqube.org]]. Errigal installation runs at [[http://10.91.100.110:9000/sonar/|http://10.91.100.110:9000/sonar/]] (the login is as usual :)). |
 +^ Jenkins 2 | Build Server | More info at [[https://jenkins.io/|jenkins.io]]. Errigal installation runs at [[http://10.91.100.112:8080/job/right-of-way/|http://10.91.100.112:8080/job/right-of-way/]] (usual credentials as well) |
 +
 +==== Before every Push ====
 +  - Make sure the commits are cohesive and with good commit message
 +  - Run SonarLint to reveal any code quality issues in your commits and try to fix them
 +  - Run/Fix Unit Tests
 +  - Run/Fix Integration Tests
 +
 +==== After Push ====
 +  - Try to check the Jenkins pipeline if it ran well (Jenkins will be configured to send e-mail notifications soon)
 +
 +==== Logging ====
 +  * Avoid using println and use //@Slf4j// where possible
 +  * Use the log levels appropriately
 +  * It is good to make the values in logs easy to parse (e.g. RequestIds, request params, etc.)
 +
 +===== Jurisdiction Rules =====
 +As part of right of way a new feature was required in the SNMP Manager to facilitate to association of Jurisdiction Rule(s) to Network Element. These are essentially string values of rules or statements which are required to be known prior to getting access eg. "Only accessible 9-5 Monday to Friday", "Main street closure required". These rules are loaded using excel load sheet which are imported to to the excel loader. An example load is shown below:
 +
 +{{:development:applications:screen_shot_2018-02-23_at_14.57.20.png?640|}}
 +
 +An existing rule can be edited using this or new ones can also be added by populating a new row with the required rule and leaving the ID blank.
 +These rules can then be assigned to a network element 2 ways:
 +  - Manually using the join table in the database (network_element_jurisdiction_rule)
 +  - Using the new widget which is displayed on the System Info page of child right of way elements. This widget is shown in the image below:
 +
 +{{:development:applications:screen_shot_2018-02-23_at_15.02.10.png?1280|}}
 +
 +