Project

General

Profile

1
package eu.dnetlib.msro.openaireplus.workflows.nodes.hadoop;
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
}
(1-1/6)