User Tools

Site Tools


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

Right of Way Project

Project Overview

There are following google drive documents, which describe the whole project in a detail: Right of Way - Requirements & Analysis. 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 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:

[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

This means there is no startup/shutdown script and it can be stopped/started/restarted using the standard service command:

[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]

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.

[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

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 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 sonarqube.org. Errigal installation runs at http://10.91.100.110:9000/sonar/ (the login is as usual :)).
Jenkins 2 Build Server More info at jenkins.io. Errigal installation runs at http://10.91.100.112:8080/job/right-of-way/ (usual credentials as well)

Before every Push

  1. Make sure the commits are cohesive and with good commit message
  2. Run SonarLint to reveal any code quality issues in your commits and try to fix them
  3. Run/Fix Unit Tests
  4. Run/Fix Integration Tests

After Push

  1. 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:

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:

  1. Manually using the join table in the database (network_element_jurisdiction_rule)
  2. 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/rightofway.txt · Last modified: 2021/06/25 10:09 (external edit)