You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2019/01/24 12:48:42 UTC

[brooklyn-server] branch master updated (070d362 -> 27f1160)

This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git.


    from 070d362  Merge pull request #1028 from duncangrant/add-cxf-commands-dep
     new 524106b  BROOKLYN-607: prefer vanilla CentOS image on azure
     new 1964e02  Image choice: prefer ubuntu most recent LTS
     new 4548f99  This closes #1030
     new 27f1160  add comments for choosing images

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../location/jclouds/BrooklynImageChooser.java     | 32 ++++++++++++--
 .../location/jclouds/BrooklynImageChooserTest.java | 51 +++++++++++++++++++++-
 2 files changed, 78 insertions(+), 5 deletions(-)


[brooklyn-server] 03/04: This closes #1030

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 4548f9947e1999011b2ae9c92802926e35df00b8
Merge: 070d362 1964e02
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Thu Jan 24 12:45:58 2019 +0000

    This closes #1030

 .../location/jclouds/BrooklynImageChooser.java     | 25 ++++++++++-
 .../location/jclouds/BrooklynImageChooserTest.java | 51 +++++++++++++++++++++-
 2 files changed, 72 insertions(+), 4 deletions(-)


[brooklyn-server] 04/04: add comments for choosing images

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 27f11605f54e492f015692d4c1f054d7b0174aeb
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Thu Jan 24 12:47:49 2019 +0000

    add comments for choosing images
---
 .../org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
index 4433e81..0a21a19 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
@@ -341,7 +341,12 @@ public class BrooklynImageChooser implements Cloneable {
                 return ComparisonChain.start()
                     .compare(left, right, primaryOrdering)
                     // fall back to default strategy otherwise, except preferring *non*-null values
-                    // TODO use AlphaNum string comparator
+                    // TODO suggest to use NaturalOrderComparator (so 10>9) then order by:
+                    // 1) `name.replaceAll("([^0-9]+)", " ")` 
+                    // 2) shortest non-empty name
+                    // 3) version (NaturalOrderComparator, prefer last)
+                    // 4) name (NaturalOrderComparator, prefer last)
+                    // 5) other fields (NaturalOrderComparator, prefer last)
                     .compare(left.getName(), right.getName(), Ordering.<String> natural().nullsFirst())
                     .compare(left.getVersion(), right.getVersion(), Ordering.<String> natural().nullsFirst())
                     .compare(left.getDescription(), right.getDescription(), Ordering.<String> natural().nullsFirst())


[brooklyn-server] 01/04: BROOKLYN-607: prefer vanilla CentOS image on azure

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 524106bef020dcf25f82c304ba02a9c6f20f6abe
Author: Aled Sage <al...@gmail.com>
AuthorDate: Thu Jan 24 12:28:29 2019 +0000

    BROOKLYN-607: prefer vanilla CentOS image on azure
---
 .../location/jclouds/BrooklynImageChooser.java     | 19 +++++++++
 .../location/jclouds/BrooklynImageChooserTest.java | 45 ++++++++++++++++++++++
 2 files changed, 64 insertions(+)

diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
index 701528a..53102b8 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
@@ -167,8 +167,27 @@ public class BrooklynImageChooser implements Cloneable {
                         score += 0.5;
                 }
             }
+            
             // prefer 64-bit
             if (os.is64Bit()) score += 0.5;
+
+            // prefer 'normal' releases of the OS, especially on Azure for 'OpenLogic' images.
+            // See https://issues.apache.org/jira/browse/BROOKLYN-607
+            // e.g. {id=northeurope/OpenLogic/CentOS-HPC/7.4, providerId=OpenLogic, name=CentOS-HPC, location={scope=REGION, id=northeurope, description=North Europe, parent=azurecompute-arm, iso3166Codes=[IE]}, os={family=centos, version=7.4, description=7.4, is64Bit=true}, description=7.4, version=7.4, status=AVAILABLE, loginUser=jclouds}
+            //      {id=northeurope/OpenLogic/CentOS-SRIOV/7.3-SRIOV, providerId=OpenLogic, name=CentOS-SRIOV, location={scope=REGION, id=northeurope, description=North Europe, parent=azurecompute-arm, iso3166Codes=[IE]}, os={family=centos, version=7.3-SRIOV, description=7.3-SRIOV, is64Bit=true}, description=7.3-SRIOV, version=7.3-SRIOV, status=AVAILABLE, loginUser=jclouds}
+            //      {id=northeurope/OpenLogic/CentOS/7.6, providerId=OpenLogic, name=CentOS, location={scope=REGION, id=northeurope, description=North Europe, parent=azurecompute-arm, iso3166Codes=[IE]}, os={family=centos, version=7.6, description=7.6, is64Bit=true}, description=7.6, version=7.6, status=AVAILABLE, loginUser=jclouds}
+            if (img.getName() != null) {
+                String name = img.getName();
+                if (name.contains("-SRIOV")) {
+                    score -= 0.05;
+                } else if (name.contains("-CI")) {
+                    score -= 0.05;
+                } else if (name.contains("-HPC")) {
+                    score -= 0.05;
+                } else if (name.contains("-LVM")) {
+                    score -= 0.05;
+                }
+            }
         }
 
         // TODO prefer known providerIds
diff --git a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java
index f207c35..fbb488a 100644
--- a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java
+++ b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java
@@ -24,6 +24,8 @@ import java.util.Set;
 
 import org.jclouds.compute.domain.ComputeType;
 import org.jclouds.compute.domain.Image;
+import org.jclouds.compute.domain.Image.Status;
+import org.jclouds.compute.domain.ImageBuilder;
 import org.jclouds.compute.domain.OperatingSystem;
 import org.jclouds.compute.domain.OsFamily;
 import org.jclouds.domain.Location;
@@ -33,6 +35,7 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import com.google.common.base.Function;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -48,6 +51,48 @@ public class BrooklynImageChooserTest {
     }
 
     @Test
+    public void testPrefersAzureVanillaCentos() {
+        // See https://issues.apache.org/jira/browse/BROOKLYN-607
+        
+        // {id=northeurope/OpenLogic/CentOS/7.6, providerId=OpenLogic, name=CentOS, location={scope=REGION, id=northeurope, description=North Europe, parent=azurecompute-arm, iso3166Codes=[IE]},         os={family=centos, version=7.6, description=7.6, is64Bit=true}, description=7.6, version=7.6, status=AVAILABLE, loginUser=jclouds}
+        Image img1 = new ImageBuilder()
+                .id("northeurope/OpenLogic/CentOS/7.6")
+                .providerId("OpenLogic")
+                .name("CentOS")
+                .description("7.6")
+                .version("7.6")
+                .status(Status.AVAILABLE)
+                .operatingSystem(OperatingSystem.builder()
+                        .family(OsFamily.CENTOS)
+                        .version("7.6")
+                        .description("7.6")
+                        .is64Bit(true)
+                        .build())
+                .build();
+        
+        // {id=northeurope/OpenLogic/CentOS-SRIOV/7.3-SRIOV, providerId=OpenLogic, name=CentOS-SRIOV, location={scope=REGION, id=northeurope, description=North Europe, parent=azurecompute-arm,           iso3166Codes=[IE]}, os={family=centos, version=7.3-SRIOV, description=7.3-SRIOV, is64Bit=true}, description=7.3-SRIOV, version=7.3-SRIOV, status=AVAILABLE, loginUser=jclouds}
+        Image img2 = new ImageBuilder()
+            .id("northeurope/OpenLogic/CentOS-SRIOV/7.3-SRIOV")
+            .providerId("OpenLogic")
+            .name("CentOS-SRIOV")
+            .description("7.3-SRIOV")
+            .version("7.3-SRIOV")
+            .status(Status.AVAILABLE)
+            .operatingSystem(OperatingSystem.builder()
+                    .family(OsFamily.CENTOS)
+                    .version("7.3-SRIOV")
+                    .description("7.3-SRIOV")
+                    .is64Bit(true)
+                    .build())
+            .build();
+
+        Function<Iterable<? extends Image>, Image> func = brooklynImageChooser.chooser();
+        Image choice = func.apply(ImmutableList.of(img1, img2));
+        
+        Assert.assertEquals(choice, img1);
+    }
+
+    @Test
     public void testCentosOverUbuntu() {
         assertOrderOfPreference(
                 getScore(OsFamily.CENTOS, "7.0"),


[brooklyn-server] 02/04: Image choice: prefer ubuntu most recent LTS

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 1964e026f95fa2ebc85caa99b912b3c586641f92
Author: Aled Sage <al...@gmail.com>
AuthorDate: Thu Jan 24 12:29:09 2019 +0000

    Image choice: prefer ubuntu most recent LTS
---
 .../org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java  | 6 ++++--
 .../apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java  | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
index 53102b8..4433e81 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooser.java
@@ -142,9 +142,11 @@ public class BrooklynImageChooser implements Cloneable {
                     score += punishmentForOldOsVersions(img, OsFamily.UBUNTU, 12);
                     score += 2;
 
-                    // prefer these LTS releases slightly above others (including above CentOS)
+                    // prefer these LTS releases slightly above others
                     // (but note in AWS Virginia, at least, version is empty for the 14.04 images for some reason, as of Aug 2014)
-                    if ("14.04".equals(os.getVersion())) score += 0.2;
+                    if ("18.04".equals(os.getVersion())) score += 0.4;
+                    else if ("16.04".equals(os.getVersion())) score += 0.3;
+                    else if ("14.04".equals(os.getVersion())) score += 0.2;
                     else if ("12.04".equals(os.getVersion())) score += 0.1;
 
                     // NB some 13.10 images take 20m+ before they are sshable on AWS
diff --git a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java
index fbb488a..b30d34e 100644
--- a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java
+++ b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/BrooklynImageChooserTest.java
@@ -108,11 +108,13 @@ public class BrooklynImageChooserTest {
     }
 
     @Test
-    public void testUbuntu14then12then11() {
+    public void testUbuntuLts() {
         assertOrderOfPreference(
+                getScore(OsFamily.UBUNTU, "18.04"),
+                getScore(OsFamily.UBUNTU, "16.04"),
                 getScore(OsFamily.UBUNTU, "14.04"),
                 getScore(OsFamily.UBUNTU, "12.04"),
-                getScore(OsFamily.UBUNTU, "11.04"));
+                getScore(OsFamily.UBUNTU, "18.10"));
     }
 
     @Test