Skip to content

Lookup

This page gives an overview of the Lookup service, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.

Service Description

Lookup provides an directory of University staff, institutions and groups available via LDAP (Uni only) or a web API.

Service Status

Lookup is currently live.

Contact

Technical queries and support should be directed to servicedesk@uis.cam.ac.uk and will be picked up by a member of the team working on the service. To ensure that you receive a response, always direct requests to servicedesk@uis.cam.ac.uk rather than reaching out to team members directly.

Queries regarding correctness or completeness of data should be sent to servicedesk@uis.cam.ac.uk.

Issues discovered in the service or new feature requests should be opened as GitLab issues here.

Environments

Lookup is currently deployed to the following environments:

Name URL Supporting VMs
Production https://www.lookup.cam.ac.uk lookup-live1.srv.uis.cam.ac.uk
lookup-live2.srv.uis.cam.ac.uk
https://ldap.lookup.cam.ac.uk (live LDAP endpoint)
ldap{1,2}.lookup.cam.ac.uk (HA LDAP endpoints)
lookup-live1.srv.uis.cam.ac.uk
lookup-live2.srv.uis.cam.ac.uk
Database lookup-live-db.srv.uis.cam.ac.uk
Staging https://lookup-test.srv.uis.cam.ac.uk lookup-test1.srv.uis.cam.ac.uk
lookup-test2.srv.uis.cam.ac.uk
lookup-test.srv.uis.cam.ac.uk (test LDAP endpoint) lookup-test1.srv.uis.cam.ac.uk
lookup-test2.srv.uis.cam.ac.uk
Database devgroup-test-db.srv.uis.cam.ac.uk

Source code

The source code for Lookup is spread over the following repositories:

Repository Description
Application Server The source code for the main application server
Lookup API Client API Client

Technologies used

The following gives an overview of the technologies Lookup is built on.

Category Language Framework(s)
Server Java + Groovy Grails 1.3.10
DB Postgres Moa

Operational documentation

The following gives an overview of how Lookup is deployed and maintained.

How and where Lookup is deployed

Lookup is deployed to a pair of servers which use keepalived to manage a VIP.

Lookup block diagram

Deploying a new release

New releases are deployed via Ansible. Each server should be set to maintenance mode then the run-ansible-playbook.sh should be run limited to the node in maintenance mode. e.g.

# On lookup-live1
touch /maintenance_mode

# On client machine
./run-ansible-playbook.sh -i ibis-production ibis-playbook.yml --diff --limit lookup-live1

# On lookup-live1
rm /maintenance_mode

# On lookup-live2
touch /maintenance_mode

# On client machine
./run-ansible-playbook.sh -i ibis-production ibis-playbook.yml --diff --limit lookup-live2

# On lookup-live2
rm /maintenance_mode

Other documentation

Monitoring

Lookup is monitored by nagios:

Backups

See legacy application backups

Debugging

The Lookup server readme contains details on running a local copy for debugging.

Resetting the LDAP databases

A well known error state of lookup is for the LDAP database not to be synchronized with the Postgresql database correctly. To resolve this the following commands should be run:

# Take node out of service
touch /maintenance_mode

# Run ibis-ldap-sync
cd /usr/share/ibis/bin
./ibis-ldap-import

# Put node back in to service
rm /maintenance_mode

Service Management and tech lead

The service owner for Lookup is currently unknown. See the associated GitLab issue.

The service manager for Lookup is Dr Я Charles.

The tech lead for Lookup is Robin Goodall.

The following engineers have operational experience with Lookup and are able to respond to support requests or incidents: