Added the Linux distribution version in the HostingNode resource
This commit is contained in:
parent
0bf0708efd
commit
952703c780
|
@ -2,6 +2,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||||
|
|
||||||
# Changelog for Common Smartgears
|
# Changelog for Common Smartgears
|
||||||
|
|
||||||
|
## [v3.1.6-SNAPSHOT]
|
||||||
|
|
||||||
|
- Added Linux distribution version [#22933]
|
||||||
|
|
||||||
## [v3.1.5] - 2022-04-20
|
## [v3.1.5] - 2022-04-20
|
||||||
|
|
||||||
- Added roles to ExternalService Info on request handler verification
|
- Added roles to ExternalService Info on request handler verification
|
||||||
|
|
12
pom.xml
12
pom.xml
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<groupId>org.gcube.core</groupId>
|
<groupId>org.gcube.core</groupId>
|
||||||
<artifactId>common-smartgears</artifactId>
|
<artifactId>common-smartgears</artifactId>
|
||||||
<version>3.1.5</version>
|
<version>3.1.6-SNAPSHOT</version>
|
||||||
<name>SmartGears</name>
|
<name>SmartGears</name>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.distribution</groupId>
|
<groupId>org.gcube.distribution</groupId>
|
||||||
<artifactId>gcube-bom</artifactId>
|
<artifactId>gcube-bom</artifactId>
|
||||||
<version>2.0.1</version>
|
<version>2.1.0</version>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -116,6 +116,14 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Added to support Java 11 JDK -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<!-- END Added to support Java 11 JDK -->
|
||||||
|
|
||||||
|
|
||||||
<!-- ***************** test ******************* -->
|
<!-- ***************** test ******************* -->
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
package org.gcube.smartgears.handlers.container.lifecycle;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Luca Frosini (ISTI-CNR)
|
||||||
|
*/
|
||||||
|
public class LinuxDistributionInfo {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(LinuxDistributionInfo.class);
|
||||||
|
|
||||||
|
public static final String LSB_RELEASE_COMMAND = "lsb_release -a";
|
||||||
|
public static final String OS_RELEASE_FILE_PATH = "/etc/os-release";
|
||||||
|
|
||||||
|
protected Map<String, String> info;
|
||||||
|
|
||||||
|
protected Map<String, String> getInfoViaLsbReleaseCommand() throws IOException {
|
||||||
|
logger.trace("Going to exec {}", LSB_RELEASE_COMMAND);
|
||||||
|
Process process = Runtime.getRuntime().exec(LSB_RELEASE_COMMAND);
|
||||||
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||||
|
Map<String, String> map = parseBufferedReader(bufferedReader);
|
||||||
|
bufferedReader.close();
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> parseBufferedReader(BufferedReader bufferedReader) throws IOException {
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
String line = "";
|
||||||
|
while ((line = bufferedReader.readLine()) != null) {
|
||||||
|
String[] nameValue = parseLine(line);
|
||||||
|
map.put(nameValue[0], nameValue[1]);
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String[] parseLine(String line) {
|
||||||
|
String[] splitted = line.split("=");
|
||||||
|
if (splitted.length < 2) {
|
||||||
|
splitted = line.split(":");
|
||||||
|
}
|
||||||
|
String[] ret = new String[2];
|
||||||
|
ret[0] = splitted[0].trim();
|
||||||
|
ret[1] = splitted[1].trim().replace("\"", "");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> getInfoViaFile(File file) throws IOException {
|
||||||
|
logger.trace("Going to read file {}", file.getAbsolutePath());
|
||||||
|
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
|
||||||
|
Map<String, String> map = parseBufferedReader(bufferedReader);
|
||||||
|
bufferedReader.close();
|
||||||
|
return map;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Map<String, String> getInfoViaOsReleaseFile() throws IOException {
|
||||||
|
File osReleaseFile = new File(OS_RELEASE_FILE_PATH);
|
||||||
|
return getInfoViaFile(osReleaseFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> retriveInfo() {
|
||||||
|
try {
|
||||||
|
return getInfoViaLsbReleaseCommand();
|
||||||
|
} catch (IOException e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return getInfoViaOsReleaseFile();
|
||||||
|
}catch (IOException e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getInfo() {
|
||||||
|
if (info == null) {
|
||||||
|
info = retriveInfo();
|
||||||
|
}
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -282,6 +282,15 @@ public class ProfileBuilder {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
String osVersion = System.getProperty("os.name");
|
||||||
|
if(osVersion.compareToIgnoreCase("Linux")==0) {
|
||||||
|
LinuxDistributionInfo linuxDistributionInfo = new LinuxDistributionInfo();
|
||||||
|
Map<String,String> info = linuxDistributionInfo.getInfo();
|
||||||
|
for(String key : info.keySet()) {
|
||||||
|
variables.add().keyAndValue(key, info.get(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
variables.add().keyAndValue("Java", System.getProperty("java.version"));
|
variables.add().keyAndValue("Java", System.getProperty("java.version"));
|
||||||
|
|
||||||
SmartGearsConfiguration config = ProviderFactory.provider().smartgearsConfiguration();
|
SmartGearsConfiguration config = ProviderFactory.provider().smartgearsConfiguration();
|
||||||
|
|
Loading…
Reference in New Issue