to record important measures about releases of the version of the LHCb software” • Current version (V1): https://lhcb- pr.web.cern.ch/lhcb-pr/ 2015-05-19 5th LHCb Computing Workshop 3
backend Automatic admin site scaffolding is not usable for creating a new job description – too many unobvious steps. A wizard for such task is neede to be written 2015-05-19
handlers and analysis development • Lack of python and javascript libraries for common LHCbPR programming tasks. A lot of copy-paste code. • Unreadable raw sql in the source code. To get a readable code we need to use standard Django database model classes 2015-05-19
program for understanding the real needs for regression analysis. • We have collected a list of features that hard to implement in V1 (thresholds, attributes management, separate versions and applications,…). • We need to have a common javascript libraries and components specific for LHCbPR that can be shared among developers (now we have a spaghetti code) • Decouple data access application and presentation sites. • Avoid using raw SQL. 5th LHCb Computing Workshop 7 2015-05-19
application and its version entities. Has timestamp field that is inserted from its first job data, so we can arrange releases’ and nightly builds’ versions. • Nightly slots table – store name of nightly slot (“lhcb-head”, “lhcb- gaudi-head”,…). Versions table can have a link to this table. • Thresholds table for attributes – we can check attributes ranges • Attributes’ group table – attribute can belong to several groups We have a tool that import data from V1 database. 5th LHCb Computing Workshop 8 2015-05-19
Separate data access and data representation. Interoperate using JSON format – Web site is only one of the clients of the service – Easy to write command line scripts (for nightlies, reports,…) 9 2015-05-19 5th LHCb Computing Workshop
CRUD operations (create, read, update, delete) • Can output arbitrary JSON (examples later) • Authentication plugins: e.g. shibboleth for web and tokens for console applications • Output pagination, throttling and requests’ cache allow to avoid service overloading. 5th LHCb Computing Workshop 12 2015-05-19
/jobs/178 – We can expand any object’s relationships. • Nested requests - /jobs/178/results/ – Output job attributes’ values • Output filtering - /compare/?ids=32,33&contains=Event – Show and group attributes of jobs with id 32 and 32. Attribute name should contain “Event” string 5th LHCb Computing Workshop 13 2015-05-19
– client’s custom callback function that get search form results: ids of application, options, Versions More components in development 2015-05-19 5th LHCb Computing Workshop
JavaScript components that simplifies work with REST service and introduce common UI elements for LHCbPR • Well organized modules’ directory structure 5th LHCb Computing Workshop 17 2015-05-19
of application versions, build slots, thresholds, attribute groups. Import script from V1 database – Ready for production RESTful service that can be used from any application (currently in readonly mode) – https://github.com/LHCbDev/lhcbpr-api • Frontend – Fixed a structure of modules in web frontend – Prepared a set of web components and services. – Compare jobs’ results module. Framework is ready for developing (migration) of the rest of analysis modules. – https://github.com/LHCbDev/lhcbpr-www 5th LHCb Computing Workshop 19 2015-05-19