2017-03-03 19:10:02 +01:00
|
|
|
package org.gcube.dataanalysis.dataminer.poolmanager.ansiblebridge.template;
|
|
|
|
|
|
|
|
import java.util.Collection;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.NoSuchElementException;
|
|
|
|
import java.util.Vector;
|
|
|
|
|
|
|
|
import org.gcube.dataanalysis.dataminer.poolmanager.ansible.model.Role;
|
|
|
|
import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Dependency;
|
2023-01-18 17:33:11 +01:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
2017-03-03 19:10:02 +01:00
|
|
|
|
|
|
|
public class DependencyPackage {
|
|
|
|
|
2023-01-18 17:33:11 +01:00
|
|
|
private Logger logger;
|
2017-12-20 12:01:01 +01:00
|
|
|
|
2017-03-03 19:10:02 +01:00
|
|
|
private Dependency dependency;
|
|
|
|
|
2017-12-20 12:01:01 +01:00
|
|
|
public DependencyPackage(Dependency dependency) {
|
|
|
|
this.dependency = dependency;
|
|
|
|
this.logger = LoggerFactory.getLogger(DependencyPackage.class);
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|
2017-03-03 19:10:02 +01:00
|
|
|
|
|
|
|
protected Map<String, String> getDictionary(Dependency d) {
|
|
|
|
Map<String, String> out = new HashMap<String, String>();
|
|
|
|
out.put("name", d.getName());
|
|
|
|
out.put("type", d.getType());
|
|
|
|
return out;
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|
2017-03-03 19:10:02 +01:00
|
|
|
|
|
|
|
protected Dependency getDependency() {
|
|
|
|
return this.dependency;
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|
2017-03-03 19:10:02 +01:00
|
|
|
|
|
|
|
public Collection<Role> getRoles(TemplateManager tm) {
|
|
|
|
Collection<Role> out = new Vector<>();
|
2023-01-18 17:33:11 +01:00
|
|
|
for(String mode:new String[]{"add"}) { // "remove", "update"
|
2017-03-03 19:10:02 +01:00
|
|
|
String roleName = this.getDependency().getType()+"-"+this.getDependency().getName().replaceAll("/", "-")+("add".equals(mode) ? "" : "-"+mode);
|
|
|
|
try {
|
2023-01-18 17:33:11 +01:00
|
|
|
// find template
|
2017-03-03 19:10:02 +01:00
|
|
|
Role template = tm.getRoleTemplate(this.getDependency().getType()+"-package-"+mode);
|
2023-01-18 17:33:11 +01:00
|
|
|
//
|
2017-03-03 19:10:02 +01:00
|
|
|
if(template!=null) {
|
|
|
|
Map<String, String> dictionary = this.getDictionary(this.getDependency());
|
|
|
|
Role r = tm.fillRoleTemplate(template, dictionary);
|
|
|
|
r.setName(roleName);
|
|
|
|
out.add(r);
|
2023-01-18 17:33:11 +01:00
|
|
|
} else {
|
2017-12-20 12:01:01 +01:00
|
|
|
this.logger.warn("WARNING: template is null");
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|
|
|
|
} catch (NoSuchElementException e) {
|
|
|
|
// e.printStackTrace();
|
2017-12-20 12:01:01 +01:00
|
|
|
this.logger.warn("WARNING: no template found for " + roleName);
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|
|
|
|
}
|
2017-03-03 19:10:02 +01:00
|
|
|
return out;
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|
2017-03-03 19:10:02 +01:00
|
|
|
|
2023-01-18 17:33:11 +01:00
|
|
|
}
|