jclouds-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCLOUDS-1108) GCE support for shorten hardwareId
Date Thu, 22 Dec 2016 12:36:58 GMT

    [ https://issues.apache.org/jira/browse/JCLOUDS-1108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15769953#comment-15769953
] 

ASF GitHub Bot commented on JCLOUDS-1108:
-----------------------------------------

Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/501#discussion_r93615497
  
    --- Diff: locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
---
    @@ -1484,6 +1493,48 @@ public Template buildTemplate(ComputeService computeService, ConfigBag
config, C
             return template;
         }
     
    +
    +    /**
    +     * See {@link https://issues.apache.org/jira/browse/JCLOUDS-1108}.
    +     * 
    +     * In jclouds 1.9.x and 2.0.0, google-compute-engine hardwareId must be in the long
form. For 
    +     * example {@code https://www.googleapis.com/compute/v1/projects/jclouds-gce/zones/us-central1-a/machineTypes/n1-standard-1}.
    +     * It is much nicer to support the short-form (e.g. {@code n1-standard-1}), and to
construct 
    +     * the long-form from this.
    +     * 
    +     * The "zone" in the long-form needs to match the region (see {@link #getRegion()}).
    +     * 
    +     * The ideal would be for jclouds to do this. But that isn't available yet - in the
mean time,
    +     * we can make life easier for our users with the code below.
    +     * 
    +     * Second best would have been handling this in {@link TemplateBuilderCustomizers#hardwareId()}.

    +     * However, that code doesn't have enough context to know what to do (easily!). It
is passed
    +     * {@code apply(TemplateBuilder tb, ConfigBag props, Object v)}, so doesn't even
know which 
    +     * provider it is being called for (without doing ugly/brittle digging in the {@code
props}
    +     * that it is given).
    +     * 
    +     * Therefore we do the transform here.
    +     */
    +    private String transformHardwareId(String hardwareId, ConfigBag config) {
    +        String provider = getProvider();
    +        String region = getRegion();
    +        if (Strings.isBlank(region)) region = config.get(CLOUD_REGION_ID);
    +        
    +        if (!"google-compute-engine".equals(provider)) {
    +            return hardwareId;
    +        }
    +        if (hardwareId == null || hardwareId.toLowerCase().startsWith("http") || hardwareId.contains("/"))
{
    --- End diff --
    
    Agreed - given it's a private method, we can be stricter about what is passed in (e.g.
throw `NullPointerException` on null) particularly as the one caller guards the call with
`Strings.isNonBlank(config.get(HARDWARE_ID))`.


> GCE support for shorten hardwareId
> ----------------------------------
>
>                 Key: JCLOUDS-1108
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1108
>             Project: jclouds
>          Issue Type: Improvement
>            Reporter: Andrea Turli
>            Assignee: Andrea Turli
>
> I'd like to slightly change the MachineTypeToHardware to support hadwareId like `f1-micro`
instead of the entire URI.
> I've also noticed that location should not be mapped in the HardwareBuilder as it is
needed only when a the hardware is available only on a particular location.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message