You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cloudstack.apache.org by chris <cd...@gmail.com> on 2014/06/13 01:19:47 UTC

Possible to upload/download a VM?

I'm trying to figure out a way to programmatically upload and download VM
images, and I haven't yet found anything in the docs or playing around in
the UI that jumps out at me.

To download from OpenStack, the story I would follow is
1) Snapshot a VM. This would create an image (or set of images) that I
could easily download from glance (the image storage service)
2) Download the resulting image(s).

Uploading is just as straightforward:
1) Upload to glance
2) Create an instance.

I can see from what I've looked at so far that CloudStack does things a bit
differently. Is there a path to what I want to accomplish? Templates &
Volumes don't look to have quite what I want, but I could be wrong. Looking
at the UI, I couldn't even figure out how to upload local files, only files
being served up via HTTP or FTP.

I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to say, as
SDKs go, this one has been pretty great to work with. I'm just stumped by
this task.

Thanks,
Chris

Re: Possible to upload/download a VM?

Posted by Amogh Vasekar <am...@citrix.com>.
Correct :)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Role+of+realhostip+i
n+CloudStack
In case you are more interested.

Thanks,
Amogh

On 6/13/14 3:34 PM, "chris" <cd...@gmail.com> wrote:

>The URL itself contains 10-50-66-41.realhostip.com. I assume I'm supposed
>to convert that to 10.50.66.41?


Re: Possible to upload/download a VM?

Posted by chris <cd...@gmail.com>.
Update:

As it's an asynchronous job, I just wasn't waiting long enough for it to
give me a useful result. Once I did that, the jobresult from
queryAsyncJobResult contained the URL along with some other useful info.
Thanks all for the input. It was helpful.

The URL itself contains 10-50-66-41.realhostip.com. I assume I'm supposed
to convert that to 10.50.66.41?


On Fri, Jun 13, 2014 at 4:41 PM, chris <cd...@gmail.com> wrote:

> I did look at that. Unfortunately, I don't see a way to get the file URL
> from the job info.
>
> For this task, I'm just going to try using RestSharp to manually create
> REST requests to the API instead of trying to use the SDK.
>
>
> On Fri, Jun 13, 2014 at 4:08 PM, Amogh Vasekar <am...@citrix.com>
> wrote:
>
>> Many of the jobs in CloudStack are Async jobs. You can query the status /
>> progress of the job using this API
>>
>>
>> http://cloudstack.apache.org/docs/api/apidocs-4.2/root_admin/queryAsyncJobR
>> esult.html
>> <http://cloudstack.apache.org/docs/api/apidocs-4.2/root_admin/queryAsyncJobResult.html>
>>
>> Additionally, you can create VM snapshots in CloudStack too.
>>
>> All the admin APIs are listed on :
>> http://cloudstack.apache.org/docs/api/apidocs-4.2/TOC_Root_Admin.html
>>
>> Thanks,
>> Amogh
>>
>> On 6/13/14 1:16 PM, "chris" <cd...@gmail.com> wrote:
>>
>> >So if I understand correctly, what I want to do is something like
>> >extractVolume, then download the resulting file from the URL in the
>> >response. It looks like Templates have similar functionality, although
>> I'm
>> >not sure why I'd use them instead of Volumes.
>> >
>> >However, here is my current issue with the .Net SDK: it doesn't have an
>> >extractVolume command. When I create a custom APIRequest with a command
>> >parameter of extractVolume (and the other required parameters), the
>> >response that comes back is an XDocument (not an APIResponse as is stated
>> >in the design docs), the only element of which is a jobid. I don't see a
>> >way to query the jobid to get the information that I need.
>> >
>> >Any insight would be greatly appreciated.
>> >
>> >
>> >On Fri, Jun 13, 2014 at 11:42 AM, Pierre-Luc Dion <pd...@cloudops.com>
>> >wrote:
>> >
>> >> Chris,
>> >>
>> >> I had to do something similar in Ruby, here is the code:
>> >> https://gist.github.com/pdion891/793b7d4d1380e3f45c9e
>> >>
>> >> This create defined templates from json file in cloudstack which will
>> >> download it from the URL.
>> >>
>> >>
>> >>
>> >> Pierre-Luc Dion
>> >> Architecte de Solution Cloud | Cloud Solutions Architect
>> >> 855-OK-CLOUD (855-652-5683) x1101
>> >> - - -
>> >>
>> >> *CloudOps*420 rue Guy
>> >> Montréal QC  H3J 1S6
>> >> www.cloudops.com
>> >> @CloudOps_
>> >>
>> >>
>> >> On Fri, Jun 13, 2014 at 12:24 PM, chris <cd...@gmail.com> wrote:
>> >>
>> >> > Cloudmonkey isn't really an option in my case.
>> >> >
>> >> > I wasn't aware that extractVolume could be applied to VMs in anyway.
>> >>I'll
>> >> > look into it.
>> >> >
>> >> >
>> >> > On Fri, Jun 13, 2014 at 5:28 AM, Nux! <nu...@li.nux.ro> wrote:
>> >> >
>> >> > > Hi,
>> >> > >
>> >> > > You can either use the API directly (look at extractVolume) or
>> >>through
>> >> > > Cloudmonkey.
>> >> > > This is how I would use Cloudmonkey to retrieve a volume:
>> >> > >
>> >> > > "extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
>> >> > > zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD"
>> >>which
>> >> > will
>> >> > > return:
>> >> > >
>> >> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
>> >> > > cmd =
>> org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
>> >> > > created = 2014-06-13T11:24:24+0100
>> >> > > jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
>> >> > > jobprocstatus = 0
>> >> > > jobresult:
>> >> > > volume:
>> >> > > name = ROOT-7
>> >> > > id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
>> >> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
>> >> > > extractMode = HTTP_DOWNLOAD
>> >> > > state = DOWNLOAD_URL_CREATED
>> >> > > url =
>> >> > >
>> >> >
>> >>
>> >>
>> https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e
>> >>973.qcow2
>> >> > > zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
>> >> > > zonename = advsg
>> >> > > jobresultcode = 0
>> >> > > jobresulttype = object
>> >> > > jobstatus = 1
>> >> > > userid = 2c4cc626-ab73-11e3-b654-9660573836d5
>> >> > >
>> >> > > It's the URL field that you are interested in, you can retrieve
>> that
>> >> > > freely. I do not know if there is an expiry time for it, there
>> might
>> >> be.
>> >> > > You can extract templates, snapshots of the volumes of stopped VMs.
>> >> > >
>> >> > > HTH
>> >> > > Lucian
>> >> > >
>> >> > >
>> >> > > --
>> >> > > Sent from the Delta quadrant using Borg technology!
>> >> > >
>> >> > > Nux!
>> >> > > www.nux.ro
>> >> > >
>> >> > >
>> >> > > ----- Original Message -----
>> >> > > From: "chris" <cd...@gmail.com>
>> >> > > To: users@cloudstack.apache.org
>> >> > > Sent: Friday, 13 June, 2014 12:19:47 AM
>> >> > > Subject: Possible to upload/download a VM?
>> >> > >
>> >> > > I'm trying to figure out a way to programmatically upload and
>> >>download
>> >> VM
>> >> > > images, and I haven't yet found anything in the docs or playing
>> >>around
>> >> in
>> >> > > the UI that jumps out at me.
>> >> > >
>> >> > > To download from OpenStack, the story I would follow is
>> >> > > 1) Snapshot a VM. This would create an image (or set of images)
>> >>that I
>> >> > > could easily download from glance (the image storage service)
>> >> > > 2) Download the resulting image(s).
>> >> > >
>> >> > > Uploading is just as straightforward:
>> >> > > 1) Upload to glance
>> >> > > 2) Create an instance.
>> >> > >
>> >> > > I can see from what I've looked at so far that CloudStack does
>> >>things a
>> >> > bit
>> >> > > differently. Is there a path to what I want to accomplish?
>> >>Templates &
>> >> > > Volumes don't look to have quite what I want, but I could be wrong.
>> >> > Looking
>> >> > > at the UI, I couldn't even figure out how to upload local files,
>> >>only
>> >> > files
>> >> > > being served up via HTTP or FTP.
>> >> > >
>> >> > > I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to
>> >>say,
>> >> > as
>> >> > > SDKs go, this one has been pretty great to work with. I'm just
>> >>stumped
>> >> by
>> >> > > this task.
>> >> > >
>> >> > > Thanks,
>> >> > > Chris
>> >> > >
>> >> >
>> >>
>>
>>
>

Re: Possible to upload/download a VM?

Posted by chris <cd...@gmail.com>.
I did look at that. Unfortunately, I don't see a way to get the file URL
from the job info.

For this task, I'm just going to try using RestSharp to manually create
REST requests to the API instead of trying to use the SDK.


On Fri, Jun 13, 2014 at 4:08 PM, Amogh Vasekar <am...@citrix.com>
wrote:

> Many of the jobs in CloudStack are Async jobs. You can query the status /
> progress of the job using this API
>
> http://cloudstack.apache.org/docs/api/apidocs-4.2/root_admin/queryAsyncJobR
> esult.html
>
> Additionally, you can create VM snapshots in CloudStack too.
>
> All the admin APIs are listed on :
> http://cloudstack.apache.org/docs/api/apidocs-4.2/TOC_Root_Admin.html
>
> Thanks,
> Amogh
>
> On 6/13/14 1:16 PM, "chris" <cd...@gmail.com> wrote:
>
> >So if I understand correctly, what I want to do is something like
> >extractVolume, then download the resulting file from the URL in the
> >response. It looks like Templates have similar functionality, although I'm
> >not sure why I'd use them instead of Volumes.
> >
> >However, here is my current issue with the .Net SDK: it doesn't have an
> >extractVolume command. When I create a custom APIRequest with a command
> >parameter of extractVolume (and the other required parameters), the
> >response that comes back is an XDocument (not an APIResponse as is stated
> >in the design docs), the only element of which is a jobid. I don't see a
> >way to query the jobid to get the information that I need.
> >
> >Any insight would be greatly appreciated.
> >
> >
> >On Fri, Jun 13, 2014 at 11:42 AM, Pierre-Luc Dion <pd...@cloudops.com>
> >wrote:
> >
> >> Chris,
> >>
> >> I had to do something similar in Ruby, here is the code:
> >> https://gist.github.com/pdion891/793b7d4d1380e3f45c9e
> >>
> >> This create defined templates from json file in cloudstack which will
> >> download it from the URL.
> >>
> >>
> >>
> >> Pierre-Luc Dion
> >> Architecte de Solution Cloud | Cloud Solutions Architect
> >> 855-OK-CLOUD (855-652-5683) x1101
> >> - - -
> >>
> >> *CloudOps*420 rue Guy
> >> Montréal QC  H3J 1S6
> >> www.cloudops.com
> >> @CloudOps_
> >>
> >>
> >> On Fri, Jun 13, 2014 at 12:24 PM, chris <cd...@gmail.com> wrote:
> >>
> >> > Cloudmonkey isn't really an option in my case.
> >> >
> >> > I wasn't aware that extractVolume could be applied to VMs in anyway.
> >>I'll
> >> > look into it.
> >> >
> >> >
> >> > On Fri, Jun 13, 2014 at 5:28 AM, Nux! <nu...@li.nux.ro> wrote:
> >> >
> >> > > Hi,
> >> > >
> >> > > You can either use the API directly (look at extractVolume) or
> >>through
> >> > > Cloudmonkey.
> >> > > This is how I would use Cloudmonkey to retrieve a volume:
> >> > >
> >> > > "extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> >> > > zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD"
> >>which
> >> > will
> >> > > return:
> >> > >
> >> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> >> > > cmd = org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
> >> > > created = 2014-06-13T11:24:24+0100
> >> > > jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
> >> > > jobprocstatus = 0
> >> > > jobresult:
> >> > > volume:
> >> > > name = ROOT-7
> >> > > id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> >> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> >> > > extractMode = HTTP_DOWNLOAD
> >> > > state = DOWNLOAD_URL_CREATED
> >> > > url =
> >> > >
> >> >
> >>
> >>
> https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e
> >>973.qcow2
> >> > > zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
> >> > > zonename = advsg
> >> > > jobresultcode = 0
> >> > > jobresulttype = object
> >> > > jobstatus = 1
> >> > > userid = 2c4cc626-ab73-11e3-b654-9660573836d5
> >> > >
> >> > > It's the URL field that you are interested in, you can retrieve that
> >> > > freely. I do not know if there is an expiry time for it, there might
> >> be.
> >> > > You can extract templates, snapshots of the volumes of stopped VMs.
> >> > >
> >> > > HTH
> >> > > Lucian
> >> > >
> >> > >
> >> > > --
> >> > > Sent from the Delta quadrant using Borg technology!
> >> > >
> >> > > Nux!
> >> > > www.nux.ro
> >> > >
> >> > >
> >> > > ----- Original Message -----
> >> > > From: "chris" <cd...@gmail.com>
> >> > > To: users@cloudstack.apache.org
> >> > > Sent: Friday, 13 June, 2014 12:19:47 AM
> >> > > Subject: Possible to upload/download a VM?
> >> > >
> >> > > I'm trying to figure out a way to programmatically upload and
> >>download
> >> VM
> >> > > images, and I haven't yet found anything in the docs or playing
> >>around
> >> in
> >> > > the UI that jumps out at me.
> >> > >
> >> > > To download from OpenStack, the story I would follow is
> >> > > 1) Snapshot a VM. This would create an image (or set of images)
> >>that I
> >> > > could easily download from glance (the image storage service)
> >> > > 2) Download the resulting image(s).
> >> > >
> >> > > Uploading is just as straightforward:
> >> > > 1) Upload to glance
> >> > > 2) Create an instance.
> >> > >
> >> > > I can see from what I've looked at so far that CloudStack does
> >>things a
> >> > bit
> >> > > differently. Is there a path to what I want to accomplish?
> >>Templates &
> >> > > Volumes don't look to have quite what I want, but I could be wrong.
> >> > Looking
> >> > > at the UI, I couldn't even figure out how to upload local files,
> >>only
> >> > files
> >> > > being served up via HTTP or FTP.
> >> > >
> >> > > I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to
> >>say,
> >> > as
> >> > > SDKs go, this one has been pretty great to work with. I'm just
> >>stumped
> >> by
> >> > > this task.
> >> > >
> >> > > Thanks,
> >> > > Chris
> >> > >
> >> >
> >>
>
>

Re: Possible to upload/download a VM?

Posted by Amogh Vasekar <am...@citrix.com>.
Many of the jobs in CloudStack are Async jobs. You can query the status /
progress of the job using this API

http://cloudstack.apache.org/docs/api/apidocs-4.2/root_admin/queryAsyncJobR
esult.html

Additionally, you can create VM snapshots in CloudStack too.

All the admin APIs are listed on :
http://cloudstack.apache.org/docs/api/apidocs-4.2/TOC_Root_Admin.html

Thanks,
Amogh

On 6/13/14 1:16 PM, "chris" <cd...@gmail.com> wrote:

>So if I understand correctly, what I want to do is something like
>extractVolume, then download the resulting file from the URL in the
>response. It looks like Templates have similar functionality, although I'm
>not sure why I'd use them instead of Volumes.
>
>However, here is my current issue with the .Net SDK: it doesn't have an
>extractVolume command. When I create a custom APIRequest with a command
>parameter of extractVolume (and the other required parameters), the
>response that comes back is an XDocument (not an APIResponse as is stated
>in the design docs), the only element of which is a jobid. I don't see a
>way to query the jobid to get the information that I need.
>
>Any insight would be greatly appreciated.
>
>
>On Fri, Jun 13, 2014 at 11:42 AM, Pierre-Luc Dion <pd...@cloudops.com>
>wrote:
>
>> Chris,
>>
>> I had to do something similar in Ruby, here is the code:
>> https://gist.github.com/pdion891/793b7d4d1380e3f45c9e
>>
>> This create defined templates from json file in cloudstack which will
>> download it from the URL.
>>
>>
>>
>> Pierre-Luc Dion
>> Architecte de Solution Cloud | Cloud Solutions Architect
>> 855-OK-CLOUD (855-652-5683) x1101
>> - - -
>>
>> *CloudOps*420 rue Guy
>> Montréal QC  H3J 1S6
>> www.cloudops.com
>> @CloudOps_
>>
>>
>> On Fri, Jun 13, 2014 at 12:24 PM, chris <cd...@gmail.com> wrote:
>>
>> > Cloudmonkey isn't really an option in my case.
>> >
>> > I wasn't aware that extractVolume could be applied to VMs in anyway.
>>I'll
>> > look into it.
>> >
>> >
>> > On Fri, Jun 13, 2014 at 5:28 AM, Nux! <nu...@li.nux.ro> wrote:
>> >
>> > > Hi,
>> > >
>> > > You can either use the API directly (look at extractVolume) or
>>through
>> > > Cloudmonkey.
>> > > This is how I would use Cloudmonkey to retrieve a volume:
>> > >
>> > > "extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
>> > > zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD"
>>which
>> > will
>> > > return:
>> > >
>> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
>> > > cmd = org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
>> > > created = 2014-06-13T11:24:24+0100
>> > > jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
>> > > jobprocstatus = 0
>> > > jobresult:
>> > > volume:
>> > > name = ROOT-7
>> > > id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
>> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
>> > > extractMode = HTTP_DOWNLOAD
>> > > state = DOWNLOAD_URL_CREATED
>> > > url =
>> > >
>> >
>> 
>>https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e
>>973.qcow2
>> > > zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
>> > > zonename = advsg
>> > > jobresultcode = 0
>> > > jobresulttype = object
>> > > jobstatus = 1
>> > > userid = 2c4cc626-ab73-11e3-b654-9660573836d5
>> > >
>> > > It's the URL field that you are interested in, you can retrieve that
>> > > freely. I do not know if there is an expiry time for it, there might
>> be.
>> > > You can extract templates, snapshots of the volumes of stopped VMs.
>> > >
>> > > HTH
>> > > Lucian
>> > >
>> > >
>> > > --
>> > > Sent from the Delta quadrant using Borg technology!
>> > >
>> > > Nux!
>> > > www.nux.ro
>> > >
>> > >
>> > > ----- Original Message -----
>> > > From: "chris" <cd...@gmail.com>
>> > > To: users@cloudstack.apache.org
>> > > Sent: Friday, 13 June, 2014 12:19:47 AM
>> > > Subject: Possible to upload/download a VM?
>> > >
>> > > I'm trying to figure out a way to programmatically upload and
>>download
>> VM
>> > > images, and I haven't yet found anything in the docs or playing
>>around
>> in
>> > > the UI that jumps out at me.
>> > >
>> > > To download from OpenStack, the story I would follow is
>> > > 1) Snapshot a VM. This would create an image (or set of images)
>>that I
>> > > could easily download from glance (the image storage service)
>> > > 2) Download the resulting image(s).
>> > >
>> > > Uploading is just as straightforward:
>> > > 1) Upload to glance
>> > > 2) Create an instance.
>> > >
>> > > I can see from what I've looked at so far that CloudStack does
>>things a
>> > bit
>> > > differently. Is there a path to what I want to accomplish?
>>Templates &
>> > > Volumes don't look to have quite what I want, but I could be wrong.
>> > Looking
>> > > at the UI, I couldn't even figure out how to upload local files,
>>only
>> > files
>> > > being served up via HTTP or FTP.
>> > >
>> > > I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to
>>say,
>> > as
>> > > SDKs go, this one has been pretty great to work with. I'm just
>>stumped
>> by
>> > > this task.
>> > >
>> > > Thanks,
>> > > Chris
>> > >
>> >
>>


Re: Possible to upload/download a VM?

Posted by chris <cd...@gmail.com>.
So if I understand correctly, what I want to do is something like
extractVolume, then download the resulting file from the URL in the
response. It looks like Templates have similar functionality, although I'm
not sure why I'd use them instead of Volumes.

However, here is my current issue with the .Net SDK: it doesn't have an
extractVolume command. When I create a custom APIRequest with a command
parameter of extractVolume (and the other required parameters), the
response that comes back is an XDocument (not an APIResponse as is stated
in the design docs), the only element of which is a jobid. I don't see a
way to query the jobid to get the information that I need.

Any insight would be greatly appreciated.


On Fri, Jun 13, 2014 at 11:42 AM, Pierre-Luc Dion <pd...@cloudops.com>
wrote:

> Chris,
>
> I had to do something similar in Ruby, here is the code:
> https://gist.github.com/pdion891/793b7d4d1380e3f45c9e
>
> This create defined templates from json file in cloudstack which will
> download it from the URL.
>
>
>
> Pierre-Luc Dion
> Architecte de Solution Cloud | Cloud Solutions Architect
> 855-OK-CLOUD (855-652-5683) x1101
> - - -
>
> *CloudOps*420 rue Guy
> Montréal QC  H3J 1S6
> www.cloudops.com
> @CloudOps_
>
>
> On Fri, Jun 13, 2014 at 12:24 PM, chris <cd...@gmail.com> wrote:
>
> > Cloudmonkey isn't really an option in my case.
> >
> > I wasn't aware that extractVolume could be applied to VMs in anyway. I'll
> > look into it.
> >
> >
> > On Fri, Jun 13, 2014 at 5:28 AM, Nux! <nu...@li.nux.ro> wrote:
> >
> > > Hi,
> > >
> > > You can either use the API directly (look at extractVolume) or through
> > > Cloudmonkey.
> > > This is how I would use Cloudmonkey to retrieve a volume:
> > >
> > > "extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> > > zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD" which
> > will
> > > return:
> > >
> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> > > cmd = org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
> > > created = 2014-06-13T11:24:24+0100
> > > jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
> > > jobprocstatus = 0
> > > jobresult:
> > > volume:
> > > name = ROOT-7
> > > id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> > > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> > > extractMode = HTTP_DOWNLOAD
> > > state = DOWNLOAD_URL_CREATED
> > > url =
> > >
> >
> https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e973.qcow2
> > > zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
> > > zonename = advsg
> > > jobresultcode = 0
> > > jobresulttype = object
> > > jobstatus = 1
> > > userid = 2c4cc626-ab73-11e3-b654-9660573836d5
> > >
> > > It's the URL field that you are interested in, you can retrieve that
> > > freely. I do not know if there is an expiry time for it, there might
> be.
> > > You can extract templates, snapshots of the volumes of stopped VMs.
> > >
> > > HTH
> > > Lucian
> > >
> > >
> > > --
> > > Sent from the Delta quadrant using Borg technology!
> > >
> > > Nux!
> > > www.nux.ro
> > >
> > >
> > > ----- Original Message -----
> > > From: "chris" <cd...@gmail.com>
> > > To: users@cloudstack.apache.org
> > > Sent: Friday, 13 June, 2014 12:19:47 AM
> > > Subject: Possible to upload/download a VM?
> > >
> > > I'm trying to figure out a way to programmatically upload and download
> VM
> > > images, and I haven't yet found anything in the docs or playing around
> in
> > > the UI that jumps out at me.
> > >
> > > To download from OpenStack, the story I would follow is
> > > 1) Snapshot a VM. This would create an image (or set of images) that I
> > > could easily download from glance (the image storage service)
> > > 2) Download the resulting image(s).
> > >
> > > Uploading is just as straightforward:
> > > 1) Upload to glance
> > > 2) Create an instance.
> > >
> > > I can see from what I've looked at so far that CloudStack does things a
> > bit
> > > differently. Is there a path to what I want to accomplish? Templates &
> > > Volumes don't look to have quite what I want, but I could be wrong.
> > Looking
> > > at the UI, I couldn't even figure out how to upload local files, only
> > files
> > > being served up via HTTP or FTP.
> > >
> > > I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to say,
> > as
> > > SDKs go, this one has been pretty great to work with. I'm just stumped
> by
> > > this task.
> > >
> > > Thanks,
> > > Chris
> > >
> >
>

Re: Possible to upload/download a VM?

Posted by Pierre-Luc Dion <pd...@cloudops.com>.
Chris,

I had to do something similar in Ruby, here is the code:
https://gist.github.com/pdion891/793b7d4d1380e3f45c9e

This create defined templates from json file in cloudstack which will
download it from the URL.



Pierre-Luc Dion
Architecte de Solution Cloud | Cloud Solutions Architect
855-OK-CLOUD (855-652-5683) x1101
- - -

*CloudOps*420 rue Guy
Montréal QC  H3J 1S6
www.cloudops.com
@CloudOps_


On Fri, Jun 13, 2014 at 12:24 PM, chris <cd...@gmail.com> wrote:

> Cloudmonkey isn't really an option in my case.
>
> I wasn't aware that extractVolume could be applied to VMs in anyway. I'll
> look into it.
>
>
> On Fri, Jun 13, 2014 at 5:28 AM, Nux! <nu...@li.nux.ro> wrote:
>
> > Hi,
> >
> > You can either use the API directly (look at extractVolume) or through
> > Cloudmonkey.
> > This is how I would use Cloudmonkey to retrieve a volume:
> >
> > "extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> > zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD" which
> will
> > return:
> >
> > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> > cmd = org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
> > created = 2014-06-13T11:24:24+0100
> > jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
> > jobprocstatus = 0
> > jobresult:
> > volume:
> > name = ROOT-7
> > id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> > accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> > extractMode = HTTP_DOWNLOAD
> > state = DOWNLOAD_URL_CREATED
> > url =
> >
> https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e973.qcow2
> > zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
> > zonename = advsg
> > jobresultcode = 0
> > jobresulttype = object
> > jobstatus = 1
> > userid = 2c4cc626-ab73-11e3-b654-9660573836d5
> >
> > It's the URL field that you are interested in, you can retrieve that
> > freely. I do not know if there is an expiry time for it, there might be.
> > You can extract templates, snapshots of the volumes of stopped VMs.
> >
> > HTH
> > Lucian
> >
> >
> > --
> > Sent from the Delta quadrant using Borg technology!
> >
> > Nux!
> > www.nux.ro
> >
> >
> > ----- Original Message -----
> > From: "chris" <cd...@gmail.com>
> > To: users@cloudstack.apache.org
> > Sent: Friday, 13 June, 2014 12:19:47 AM
> > Subject: Possible to upload/download a VM?
> >
> > I'm trying to figure out a way to programmatically upload and download VM
> > images, and I haven't yet found anything in the docs or playing around in
> > the UI that jumps out at me.
> >
> > To download from OpenStack, the story I would follow is
> > 1) Snapshot a VM. This would create an image (or set of images) that I
> > could easily download from glance (the image storage service)
> > 2) Download the resulting image(s).
> >
> > Uploading is just as straightforward:
> > 1) Upload to glance
> > 2) Create an instance.
> >
> > I can see from what I've looked at so far that CloudStack does things a
> bit
> > differently. Is there a path to what I want to accomplish? Templates &
> > Volumes don't look to have quite what I want, but I could be wrong.
> Looking
> > at the UI, I couldn't even figure out how to upload local files, only
> files
> > being served up via HTTP or FTP.
> >
> > I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to say,
> as
> > SDKs go, this one has been pretty great to work with. I'm just stumped by
> > this task.
> >
> > Thanks,
> > Chris
> >
>

Re: Possible to upload/download a VM?

Posted by chris <cd...@gmail.com>.
Cloudmonkey isn't really an option in my case.

I wasn't aware that extractVolume could be applied to VMs in anyway. I'll
look into it.


On Fri, Jun 13, 2014 at 5:28 AM, Nux! <nu...@li.nux.ro> wrote:

> Hi,
>
> You can either use the API directly (look at extractVolume) or through
> Cloudmonkey.
> This is how I would use Cloudmonkey to retrieve a volume:
>
> "extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD" which will
> return:
>
> accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> cmd = org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
> created = 2014-06-13T11:24:24+0100
> jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
> jobprocstatus = 0
> jobresult:
> volume:
> name = ROOT-7
> id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
> accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
> extractMode = HTTP_DOWNLOAD
> state = DOWNLOAD_URL_CREATED
> url =
> https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e973.qcow2
> zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
> zonename = advsg
> jobresultcode = 0
> jobresulttype = object
> jobstatus = 1
> userid = 2c4cc626-ab73-11e3-b654-9660573836d5
>
> It's the URL field that you are interested in, you can retrieve that
> freely. I do not know if there is an expiry time for it, there might be.
> You can extract templates, snapshots of the volumes of stopped VMs.
>
> HTH
> Lucian
>
>
> --
> Sent from the Delta quadrant using Borg technology!
>
> Nux!
> www.nux.ro
>
>
> ----- Original Message -----
> From: "chris" <cd...@gmail.com>
> To: users@cloudstack.apache.org
> Sent: Friday, 13 June, 2014 12:19:47 AM
> Subject: Possible to upload/download a VM?
>
> I'm trying to figure out a way to programmatically upload and download VM
> images, and I haven't yet found anything in the docs or playing around in
> the UI that jumps out at me.
>
> To download from OpenStack, the story I would follow is
> 1) Snapshot a VM. This would create an image (or set of images) that I
> could easily download from glance (the image storage service)
> 2) Download the resulting image(s).
>
> Uploading is just as straightforward:
> 1) Upload to glance
> 2) Create an instance.
>
> I can see from what I've looked at so far that CloudStack does things a bit
> differently. Is there a path to what I want to accomplish? Templates &
> Volumes don't look to have quite what I want, but I could be wrong. Looking
> at the UI, I couldn't even figure out how to upload local files, only files
> being served up via HTTP or FTP.
>
> I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to say, as
> SDKs go, this one has been pretty great to work with. I'm just stumped by
> this task.
>
> Thanks,
> Chris
>

Re: Possible to upload/download a VM?

Posted by Nux! <nu...@li.nux.ro>.
Hi,

You can either use the API directly (look at extractVolume) or through Cloudmonkey.
This is how I would use Cloudmonkey to retrieve a volume:

"extract volume id=fe81e6ff-a08f-4601-b2b3-2e02ce2b6588 zoneid=19345de0-b40b-4cfa-83b6-6d821367afa8 mode=HTTP_DOWNLOAD" which will return:

accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
cmd = org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
created = 2014-06-13T11:24:24+0100
jobid = 69e6bf53-ab95-44ab-8efc-2f436dba9ecc
jobprocstatus = 0
jobresult:
volume:
name = ROOT-7
id = fe81e6ff-a08f-4601-b2b3-2e02ce2b6588
accountid = 2c4c9cd2-ab73-11e3-b654-9660573836d5
extractMode = HTTP_DOWNLOAD
state = DOWNLOAD_URL_CREATED
url = https://1-2-3-4.realhostip.com/userdata/32050352-899f-4f56-8e38-018110f8e973.qcow2
zoneid = 19345de0-b40b-4cfa-83b6-6d821367afa8
zonename = advsg
jobresultcode = 0
jobresulttype = object
jobstatus = 1
userid = 2c4cc626-ab73-11e3-b654-9660573836d5

It's the URL field that you are interested in, you can retrieve that freely. I do not know if there is an expiry time for it, there might be.
You can extract templates, snapshots of the volumes of stopped VMs.

HTH
Lucian


--
Sent from the Delta quadrant using Borg technology!

Nux!
www.nux.ro


----- Original Message -----
From: "chris" <cd...@gmail.com>
To: users@cloudstack.apache.org
Sent: Friday, 13 June, 2014 12:19:47 AM
Subject: Possible to upload/download a VM?

I'm trying to figure out a way to programmatically upload and download VM
images, and I haven't yet found anything in the docs or playing around in
the UI that jumps out at me.

To download from OpenStack, the story I would follow is
1) Snapshot a VM. This would create an image (or set of images) that I
could easily download from glance (the image storage service)
2) Download the resulting image(s).

Uploading is just as straightforward:
1) Upload to glance
2) Create an instance.

I can see from what I've looked at so far that CloudStack does things a bit
differently. Is there a path to what I want to accomplish? Templates &
Volumes don't look to have quite what I want, but I could be wrong. Looking
at the UI, I couldn't even figure out how to upload local files, only files
being served up via HTTP or FTP.

I'm currently using the .NET SDK and CloudStack 4.2.1. I've got to say, as
SDKs go, this one has been pretty great to work with. I'm just stumped by
this task.

Thanks,
Chris