You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jclouds.apache.org by Andrew Phillips <no...@github.com> on 2013/11/01 01:37:29 UTC

Re: [jclouds-labs] Added a method to retrieve the Virtual Machine a Volume is attached to (#31)

> +   /**
> +    * Retrieve the virtual machine this volume is attached to.
> +    * 
> +    * @return The virtual machine this volume is attached to, or null if it is
> +    * not attached.
> +    */
> +   public VirtualMachine getVirtualMachine() {
> +      checkState(ATTACHED == VolumeState.valueOf(target.getState()), "Volume is not attached to a VM");
> +      RESTLink vmLink = checkNotNull(target.searchLink(ParentLinkName.VIRTUAL_MACHINE),
> +            ValidationErrors.MISSING_REQUIRED_LINK + " " + ParentLinkName.VIRTUAL_MACHINE);
> +      vmLink.setType(VirtualMachineWithNodeExtendedDto.BASE_MEDIA_TYPE);
> +      HttpResponse response = context.getApi().get(vmLink);
> +
> +      ParseXMLWithJAXB<VirtualMachineWithNodeExtendedDto> parser = new ParseXMLWithJAXB<VirtualMachineWithNodeExtendedDto>(
> +            context.utils().xml(),
> +            TypeLiteral.get(VirtualMachineWithNodeExtendedDto.class));

> Personally, I think it is cleaner to use the method to get a generic link and manually call the parser to parse the result, than parsing 
> the URI of the link to call a concrete method of the specific api class

Makes sense to me...and certainly I'm not the expert on the Abiquo API who could have a firm opinion here ;-) But getting the parser from the injector rather than trying to construct it ourselves certainly seems like an improvement. 

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/31/files#r7361221