Project

General

Profile

1 57299 sandro.lab
package eu.dnetlib.msro.openaireplus.workflows.nodes.dhp;
2
3
import java.net.URI;
4
import java.util.HashMap;
5
import java.util.Map;
6
7
import org.apache.commons.logging.Log;
8
import org.apache.commons.logging.LogFactory;
9
import org.springframework.beans.factory.annotation.Required;
10
import org.springframework.web.client.RestTemplate;
11
import org.springframework.web.util.UriComponentsBuilder;
12
13
import com.googlecode.sarasvati.Arc;
14
import com.googlecode.sarasvati.NodeToken;
15
16
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
17
18
public class AbortMDStoreVersionJobNode extends SimpleJobNode {
19
20
    private static final Log log = LogFactory.getLog(AbortMDStoreVersionJobNode.class);
21
22
    /* Spring managed params */
23
    private String mdStoreManagerUrl;
24
25
    @Override
26
    protected String execute(final NodeToken token) throws Exception {
27
        final String url = getMdStoreManagerUrl() + "/version/{versionId}?force=true";
28
29
        final Map<String, Object> params = new HashMap<>();
30
        params.put("versionId", token.getEnv().getAttribute("versionId"));
31
32
        final URI uri = UriComponentsBuilder.fromUriString(url)
33
                .buildAndExpand(params)
34
                .toUri();
35
36
        final RestTemplate restTemplate = new RestTemplate();
37
        restTemplate.delete(uri);
38
39
        log.info("mdstore version deleted ");
40
        return Arc.DEFAULT_ARC;
41
    }
42
43
    public String getMdStoreManagerUrl() {
44
        return mdStoreManagerUrl;
45
    }
46
47
    @Required
48
    public void setMdStoreManagerUrl(final String mdStoreManagerUrl) {
49
        this.mdStoreManagerUrl = mdStoreManagerUrl;
50
    }
51
52
}