in software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java [190:235]
private String getYumRepository(String version, String majorMinorVersion, String shortVersion) {
// postgres becomes available if you add the repos using an RPM such as
// http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm
// fedora, rhel, sl, and centos supported for RPM's
OsDetails osDetails = getMachine().getMachineDetails().getOsDetails();
String arch = osDetails.getArch();
String osMajorVersion = osDetails.getVersion();
String osName = osDetails.getName();
log.debug("postgres detecting yum information for "+getEntity()+" at "+getMachine()+": "+osName+", "+osMajorVersion+", "+arch);
if (osName==null) osName = ""; else osName = osName.toLowerCase();
if (osName.equals("ubuntu")) return "echo skipping yum repo setup as this is not an rpm environment";
if (osName.equals("rhel") || osName.contains("red hat")) osName = "redhat";
else if (osName.equals("centos")) osName = "centos";
else if (osName.equals("sl") || osName.startsWith("scientific")) osName = "sl";
else if (osName.equals("fedora")) osName = "fedora";
else {
log.debug("insufficient OS family information '"+osName+"' for "+getMachine()+" when installing "+getEntity()+" (yum repos); treating as centos");
osName = "centos";
}
if (Strings.isBlank(arch)) {
log.warn("Insuffient architecture information '"+arch+"' for "+getMachine()+"when installing "+getEntity()+"; treating as x86_64");
arch = "x86_64";
}
if (Strings.isBlank(osMajorVersion)) {
if (osName.equals("fedora")) osMajorVersion = "20";
else osMajorVersion = "7";
log.warn("Insuffient OS version information '"+getMachine().getOsDetails().getVersion()+"' for "+getMachine()+"when installing "+getEntity()+" (yum repos); treating as "+osMajorVersion);
} else {
if (osMajorVersion.indexOf(".")>0)
osMajorVersion = osMajorVersion.substring(0, osMajorVersion.indexOf('.'));
}
return chainGroup(
sudo(commandToDownloadUrlAs(
format("https://download.postgresql.org/pub/repos/yum/%s/redhat/rhel-%s-%s/pgdg-centos%s.noarch.rpm", shortVersion, osMajorVersion, arch, version),
"pgrepo.rpm")),
sudo("rpm -Uvh pgrepo.rpm")
);
}