Skip to content

Commit ffec849

Browse files
committed
clean query logic
1 parent e81a0e4 commit ffec849

File tree

3 files changed

+38
-53
lines changed

3 files changed

+38
-53
lines changed

cms_release_info.json

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
{
2-
"2010": {
1+
[
2+
{
33
"year": 2010,
44
"lumi_uncertainty": 11,
55
"luminosity_reference": "https://cds.cern.ch/record/1279145",
@@ -22,7 +22,7 @@
2222
"image_gitlab": "gitlab-registry.cern.ch/cms-cloud/cmssw-docker-opendata/cmssw_4_2_8-slc5_amd64_gcc434",
2323
"image_dockerhub": "cmsopendata/cmssw_4_2_8-slc5_amd64_gcc434"
2424
},
25-
"2011": {
25+
{
2626
"year": 2011,
2727
"lumi_uncertainty": 2.2,
2828
"luminosity_reference": "https://cds.cern.ch/record/1434360",
@@ -45,7 +45,7 @@
4545
"image_gitlab": "gitlab-registry.cern.ch/cms-cloud/cmssw-docker-opendata/cmssw_5_3_32-slc6_amd64_gcc472",
4646
"image_dockerhub": "cmsopendata/cmssw_5_3_32-slc6_amd64_gcc472"
4747
},
48-
"2012": {
48+
{
4949
"year": 2012,
5050
"lumi_uncertainty": 2.6,
5151
"luminosity_reference": "https://cds.cern.ch/record/1598864",
@@ -68,7 +68,7 @@
6868
"image_gitlab": "gitlab-registry.cern.ch/cms-cloud/cmssw-docker-opendata/cmssw_5_3_32-slc6_amd64_gcc472",
6969
"image_dockerhub": "cmsopendata/cmssw_5_3_32-slc6_amd64_gcc472"
7070
},
71-
"2015": {
71+
{
7272
"year": 2015,
7373
"lumi_uncertainty": 1.6,
7474
"luminosity_reference": "https://cds.cern.ch/record/2759951",
@@ -91,7 +91,7 @@
9191
"image_gitlab": "gitlab-registry.cern.ch/cms-cloud/cmssw-docker-opendata/cmssw_7_6_7-slc6_amd64_gcc493",
9292
"image_dockerhub": "cmsopendata/cmssw_7_6_7-slc6_amd64_gcc493"
9393
},
94-
"2016": {
94+
{
9595
"year": 2016,
9696
"lumi_uncertainty": 1.2,
9797
"luminosity_reference": "https://cds.cern.ch/record/2759951",
@@ -114,7 +114,7 @@
114114
"image_gitlab": "",
115115
"image_dockerhub": ""
116116
},
117-
"2017": {
117+
{
118118
"year": 2017,
119119
"lumi_uncertainty": 2.3,
120120
"luminosity_reference": "https://cds.cern.ch/record/2621960",
@@ -137,7 +137,7 @@
137137
"image_gitlab": "",
138138
"image_dockerhub": ""
139139
},
140-
"2018": {
140+
{
141141
"year": 2018,
142142
"lumi_uncertainty": 2.5,
143143
"luminosity_reference": " https://cds.cern.ch/record/2676164",
@@ -160,4 +160,4 @@
160160
"image_gitlab": "",
161161
"image_dockerhub": ""
162162
}
163-
}
163+
]

index.js

+28-43
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var years=JSON.parse(data);
44
var data2=fs.readFileSync('run_ranges.json');
55
var run_eras=JSON.parse(data2);
66
const express = require("express");
7-
const url = require('url');
7+
88
var favicon = require('serve-favicon');
99
var path = require('path');
1010

@@ -28,48 +28,52 @@ app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')))
2828
app.get('/',welcome);
2929
function welcome(request,response)
3030
{
31+
let hostname=request.get('Host')
3132
console.log(request.get('Host'));
3233
var reply={
33-
usage: "Add a path, available paths: /years and /runeras",
34-
years: "use: /years/<YYYY> to get a specific year or: /years/<YYYY>/<key> for a specific value within a year",
35-
runeras: "use: /runeras/<RunYYYYN> to get a specific run era or: /runeras/<RunYYYYN>/<key> for a specific value within a run era",
36-
or: "or use: /runeras/<YYYY> to get run eras of a year or: /runeras/<YYYY>/<key> to get specific values for run eras within a year",
37-
queries: "for runeras, pass a query with: /runeras?<akey>=<avalue> or after <YYYY> and <key> paths"
34+
usage: "Add a path, available paths: http://"+hostname+"/years and http://"+hostname+"/runeras",
35+
years: "use: /years/ to get all year infor or: /years/<key> for a specific value",
36+
runeras: "use: /runeras/ to get all run era info or: /runeras/<key> for a specific value",
37+
queries: "Pass a query with: ?<akey>=<avalue>",
38+
example: "http://"+hostname+"/runeras/run_era?year=2015"
3839
}
3940
response.send(reply);
4041
}
4142

4243

43-
app.get('/years/:year?/:mykey?',searchYear);
44+
app.get('/years/:mykey?',searchYear);
4445
function searchYear(request,response)
4546
{
46-
var year=request.params.year;
4747
var key=request.params.mykey;
48+
var filters=request.query;
49+
var filtered_years = years;
50+
51+
for (var reqkey in filters) {
52+
filtered_years = filtered_years.filter(a_year => a_year[reqkey] == filters[reqkey]);
53+
}
54+
4855
var reply;
4956

50-
if(years[year])
57+
if (key)
5158
{
52-
if (key)
53-
{
54-
reply=String(years[year][key]);
55-
}
56-
else
57-
{
58-
reply=years[year];
59-
}
59+
// note that year.key won't work
60+
let keyvalues = filtered_years.map(year => year[key]);
61+
reply = keyvalues;
6062
}
6163
else
6264
{
63-
reply=years;
65+
reply=filtered_years;
6466
}
67+
6568
console.log(reply);
69+
if (reply.length == 1) reply = String(reply[0]);
70+
6671
response.send(reply);
6772
}
6873

69-
app.get('/runeras/:era?/:mykey?',searchEra);
74+
app.get('/runeras/:mykey?',searchEra);
7075
function searchEra(request,response)
7176
{
72-
var era=request.params.era;
7377
var key=request.params.mykey;
7478
var filters=request.query;
7579
var filtered_eras = run_eras;
@@ -80,30 +84,11 @@ function searchEra(request,response)
8084

8185
var reply;
8286

83-
if (era)
87+
if (key)
8488
{
85-
if (era.includes("Run"))
86-
{
87-
const this_era = filtered_eras.filter(an_era => an_era.run_era == era);
88-
reply=this_era[0];
89-
if (key)
90-
{
91-
reply=String(this_era[0][key]);
92-
}
93-
}
94-
else
95-
{
96-
console.log("No 'Run' in era, consider it as year");
97-
var year = era;
98-
const these_eras = filtered_eras.filter(an_era => an_era.year == year);
99-
reply=these_eras;
100-
if (key)
101-
{
102-
// note that era.key won't work
103-
let keyvalues = these_eras.map(era => era[key]);
104-
reply = keyvalues;
105-
}
106-
}
89+
// note that era.key won't work
90+
let keyvalues = filtered_eras.map(era => era[key]);
91+
reply = keyvalues;
10792
}
10893
else
10994
{

manifests/deployment.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ spec:
1818
app: info-server
1919
spec:
2020
containers:
21-
- image: katilp/cms-info-server:v1.1.0
21+
- image: katilp/cms-info-server:v1.1.1
2222
name: cms-info-server
2323
resources: {}
2424
status: {}

0 commit comments

Comments
 (0)