Project

General

Profile

1
package eu.dnetlib.uoaadmintools.controllers;
2

    
3
import com.mongodb.BasicDBObject;
4
import com.mongodb.CommandResult;
5
import com.mongodb.DBObject;
6
import eu.dnetlib.uoaadmintools.configuration.GlobalVars;
7
import eu.dnetlib.uoaadmintools.configuration.mongo.MongoConnection;
8
import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig;
9
import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig;
10
import org.apache.log4j.Logger;
11
import org.springframework.beans.factory.annotation.Autowired;
12
import org.springframework.data.mongodb.core.MongoTemplate;
13
import org.springframework.security.access.prepost.PreAuthorize;
14
import org.springframework.web.bind.annotation.CrossOrigin;
15
import org.springframework.web.bind.annotation.RequestMapping;
16
import org.springframework.web.bind.annotation.RequestMethod;
17
import org.springframework.web.bind.annotation.RestController;
18

    
19
import java.util.Date;
20
import java.util.HashMap;
21
import java.util.Map;
22

    
23
@RestController
24
@CrossOrigin(origins = "*")
25
public class AdminToolsCheckDeployController {
26
    private final Logger log = Logger.getLogger(this.getClass());
27

    
28
    @Autowired
29
    private MongoConnection mongoConnection;
30

    
31
    @Autowired
32
    private MongoConfig mongoConfig;
33

    
34
    @Autowired
35
    private ManagersApiConfig managersApiConfig;
36

    
37
    @Autowired
38
    private GlobalVars globalVars;
39

    
40
    @RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET)
41
    public String hello() {
42
        log.debug("Hello from uoa-admin-tools!");
43
        return "Hello from uoa-admin-tools!";
44
    }
45

    
46
    @PreAuthorize("hasAnyAuthority(@AuthorizationService.PORTAL_ADMIN)")
47
    @RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET)
48
    public Map<String, String> checkEverything() {
49
        Map<String, String> response = new HashMap<>();
50

    
51
        MongoTemplate mt = mongoConnection.getMongoTemplate();
52
        DBObject ping = new BasicDBObject("ping", "1");
53
        try {
54
            CommandResult answer = mt.getDb().command(ping);
55
            response.put("Mongo try: error", answer.getErrorMessage());
56
        } catch (Exception e) {
57
            response.put("Mongo catch: error", e.getMessage());
58
        }
59

    
60
        response.put("admintool.mongodb.database", mongoConfig.getDatabase());
61
        response.put("admintool.mongodb.host", mongoConfig.getHost());
62
        response.put("admintool.mongodb.port", mongoConfig.getPort()+"");
63
        response.put("admintool.mongodb.username", mongoConfig.getUsername() == null ? null : "[unexposed value]");
64
        response.put("admintool.mongodb.password", mongoConfig.getPassword() == null ? null : "[unexposed value]");
65
//        response.put("Define also", "admintool.mongodb.username, admintool.mongodb.password");
66

    
67
        response.put("admintool.managers.api.id", managersApiConfig.getId());
68
        response.put("admintool.managers.api.email", managersApiConfig.getEmail());
69

    
70
        if(globalVars.date != null) {
71
            response.put("Date of deploy", globalVars.date.toString());
72
        }
73
        if(globalVars.getBuildDate() != null) {
74
            response.put("Date of build", globalVars.getBuildDate());
75
        }
76
        if(globalVars.getVersion() != null) {
77
            response.put("Version", globalVars.getVersion());
78
        }
79

    
80
        return response;
81
    }
82
}
(1-1/12)