Commit Graph

75 Commits

Author SHA1 Message Date
Nicolas Vazquez e86bb41e0e CLOUDSTACK-10146: Bypass Secondary Storage for KVM templates (#2379)
This feature allows using templates and ISOs avoiding secondary storage as intermediate cache on KVM. The virtual machine deployment process is enhanced to supported bypassed registered templates and ISOs, delegating the work of downloading them to primary storage to the KVM agent instead of the SSVM agent.

Template and ISO registration:
- When hypervisor is KVM, a checkbox is displayed with 'Direct Download' label.
- API methods registerTemplate and registerISO are both extended with this new parameter directdownload.
- On template or ISO registration, no download job is sent to SSVM agent, CloudStack would only persist an entry on template_store_ref indicating that template or ISO has been marked as 'Direct Download' (bypassing Secondary Storage). These entries are persisted as:
template_id = Template or ISO id on vm_template table
store_id NULL
download_state = BYPASSED
state = Ready
(Note: these entries allow users to deploy virtual machine from registered templates or ISOs)
- An URL validation command is sent to a random KVM host to check if template/ISO location can be reached. Metalink are also supported by this feature. In case of a metalink, it is fetched and URL check is performed on each of its URLs.
- Checksum should be provided as indicated on #2246: {ALGORITHM}CHKSUMHASH
- After template or ISO is registered, it would be displayed in the UI

Virtual machine deployment:
When a 'Direct Download' template is selected for deployment, CloudStack would delegate template downloading to destination storage pool via destination host by a new pluggable download manager.
Download manager would handle template downloading depending on URL protocol. In case of HTTP, request headers can be set by the user via vm_template_details. Those details should be persisted as:
Key: HTTP_HEADER
Value: HEADERNAME:HEADERVALUE

In case of HTTPS, a new API method is added uploadTemplateDirectDownloadCertificate to allow user importing a client certificate into all KVM hosts' keystore before deployment.
After template or ISO is downloaded to primary storage, usual entry would be persisted on template_spool_ref indicating the mapping between template/ISO and storage pool.
2018-01-09 12:22:18 +05:30
rashmidixit 49a862b223 CLOUDSTACK-9700: Allow user to Register/Copy templates to multiple zones at the same time 2017-05-15 14:07:22 +05:30
jeff 7aec943ef8 Emit template UUID and class type over event bus when deleting templates.
The behavior is now consistent with template creation. This commit
also adds a unit test for this functionality to make sure that it will
always happen.
2016-05-26 11:20:39 +00:00
cirstofolini 1a64c247ad Removed unnecessary @Local annotations and their respective imports from the ComponentLifecycleBase class and its subclasses. 2015-11-21 18:31:11 -02:00
Rajani Karuturi 8bc0294014 Revert "Merge pull request #714 from rafaelweingartner/master-lrg-cs-hackday-003"
This reverts commit cd7218e241, reversing
changes made to f5a7395cc2.

Reason for Revert:

noredist build failed with the below error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project cloud-plugin-hypervisor-vmware: Compilation failure
[ERROR] /home/jenkins/acs/workspace/build-master-noredist/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java:[484,12] error: non-static variable logger cannot be referenced from a static context
[ERROR] -> [Help 1]

even the normal build is broken as reported by @koushik-das on dev list
http://markmail.org/message/nngimssuzkj5gpbz
2015-08-31 11:27:57 +05:30
Rafael Weingartner 3818257a68 Solved jira ticket: CLOUDSTACK-8750 2015-08-28 22:35:08 -03:00
Rajani Karuturi e0721fe976 volume upload: when create template fails, rolling back transaction 2015-05-04 15:15:33 +05:30
Rajani Karuturi 0b8355920e Merge branch 'volume-upload' into master
This closes #206
2015-04-29 11:12:53 +05:30
Rajani Karuturi 75ae90b073 volume-upload: added account level secondary storage resource limit checks 2015-04-24 15:48:44 +05:30
Sanjay Tripathi 30604e973a CLOUDSTACK-8386: CS is returning sec. storage even if it is full and there are other sec. storage with free space. 2015-04-14 16:10:40 +05:30
Rajani Karuturi c32a6695dc wrapped create template in db transaction
Template entry created in DB even though GetUpload* API fails with "No
ssvm present" error
2015-03-23 11:19:21 +05:30
Rajani Karuturi 3de5d9db5f volume upload: Restart of MS leads to loss of browser uploaded templates
on restart of management server, template sync runs. It checks for
templates in ssvm using the uniquename. If it doesnt find any, cleans
the directory. In case of uploaded templates, these are getting saved
using name instead on uniquename and hence template sync cant find them
and does cleanup. Using uniquename in template.properties now.
2015-03-16 12:45:24 +05:30
Rajani Karuturi b16520bcec volume upload: added max size check for temaplte/volume post upload
used the existing configuration variables max.template.iso.size and
storage.max.volume.upload.size for templates and volumes respectively.
2015-03-03 17:27:40 +05:30
Koushik Das 6ff8752fd0 volume-upload: gc thread to clean partially uploaded files
Fixed multiple issues in the template code path
2015-01-31 17:25:19 +05:30
Rajani Karuturi 15ae33a5b6 volume upload: refactored post upload command and used it during template registration 2015-01-20 09:24:14 +05:30
Rajani Karuturi f70a2a1486 volume upload: renamed command classes to follow the naming convention 2014-12-16 12:48:37 +05:30
Rajani Karuturi 7e030ee72d volume upload: persisting the template metadata
on calling GetUploadParamsForTemplate, persisting the metadata to db
validating the account limits and incrementing the appropriate limits
encoded the metadata on management server using preshared key
2014-12-16 11:52:09 +05:30
Laszlo Hornyak 3577423da9 removed executable flags from java classes
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:49:01 +01:00
Bharat Kumar cab2b12d7d CLOUDSTACK-7155 Re-copying templates to other zones doesn't work 2014-08-21 09:50:54 +05:30
Min Chen e3564658be CLOUDSTACK-6940, CLOUDSTACK-7312, CLOUDSTACK-5512: Template/ISO/Volume
upload rejects some valid URL formats. Also consolidate URL format check
into one util routine.
2014-08-12 11:43:08 -07:00
Min Chen 83bd4d60f1 Revert "CLOUDSTACK-7312:ISOs cannot be downloaded from URLs without matching"
This reverts commit 737f76df8c.
2014-08-12 11:43:08 -07:00
Min Chen a8316de725 Revert "CLOUDSTACK-6940:Templates cannot be downloaded from URLs without"
This reverts commit 569e94908b.
2014-08-12 11:43:08 -07:00
Min Chen 737f76df8c CLOUDSTACK-7312:ISOs cannot be downloaded from URLs without matching
file extensions.
2014-08-11 15:00:32 -07:00
Min Chen 569e94908b CLOUDSTACK-6940:Templates cannot be downloaded from URLs without
matching file extensions.
2014-06-18 16:13:49 -07:00
edison 5bfef62ab0 CLOUDSTACK-5607: Don't delete the template if its stored in other zones. 2014-03-28 16:22:57 -07:00
Min Chen ae1d6a771b Remove IAMEntityType to use existing VO interface class to annotate
entityType.
2014-03-17 17:19:55 -07:00
Min Chen 48e08fe676 Merge branch 'master' into rbac. 2014-03-06 14:02:20 -08:00
Nitin Mehta 5360ab3d43 CLOUDSTACK-6186:
Unable to register private template across all Zones - crosszones flag no longer works.
This was because the code skipped the loop after the first download initiation. Introduced a set so that if it is already downloaded to the same zone then skip it for private template.
2014-02-27 18:29:58 -08:00
Prachi Damle f41604fc6c Renaming AclEntityType --> IAMEntityType 2014-02-25 16:43:17 -08:00
Prachi Damle f84375442e Merge branch 'master' into rbac
Conflicts:
	api/src/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java
	api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
	plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/api/query/QueryManagerImpl.java
	server/src/com/cloud/template/TemplateAdapterBase.java
	setup/db/db/schema-430to440.sql
	tools/apidoc/gen_toc.py
2014-02-04 12:07:32 -08:00
Nitin Mehta 0e2e6995b7 CLOUDSTACK-5997:
Template state changes side affects
2014-01-30 17:59:55 -08:00
Min Chen 0063b60701 Remove ACL permission for a particular entity when it is deleted. The
hook is currently only done for deleteTemplateCmd.
2014-01-28 18:17:01 -08:00
Min Chen 72812cdf22 Grant public template permission to domain admin and normal user policy. 2014-01-28 17:41:27 -08:00
Marcus Sorensen 95364a4022 CLOUDSTACK-5531
Initial support for vhd, raw, vmdk image formats on KVM. Tested all formats with local and CLVM.
2013-12-16 14:32:51 -07:00
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
lafferty d2bf5c9d5e bug CLOUDSTACK-5339 2013-12-03 15:56:00 +05:30
Alex Huang d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang 8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Harikrishna Patnala 53b0bf6733 Template/ISO download fails cause the object to disappear from UI in 4.2
Signed-off-by: Koushik Das <koushik@apache.org>
2013-11-11 10:58:43 +05:30
Min Chen 6be228a438 CLOUDSTACK-4024:Provide a way to upgrade from existing NFS secondary
storage to S3.
2013-10-28 21:01:31 -07:00
Min Chen ebdc5786bf CLOUDSTACK-4250: [Object_store_refactor] Register ISO fails in multizone
environment if downloading to one of the zone fails.
2013-08-12 11:26:26 -07:00
Anthony Xu 36d7b49d5f CLOUDSTACK-4210
delete templateVO entry when there is no image store having this template
2013-08-09 12:08:00 -07:00
Nitin Mehta f28a28dc77 CLOUDSTACK-3913
Private templates would now get copied to only one of image  storage chosen randamly as was the case earlier. Dont throw an exception for uploading volumes when there are multiple image stores, instead choose one of them randomly
Signed off by : nitin mehta<nitin.mehta@citrix.com>
2013-08-05 17:43:57 +05:30
Min Chen 622a9e1b95 CLOUDSTACK-3949:[Object_Store_Refactor][Usage] No usage event is
generated for registered ISO.
2013-07-30 18:08:05 -07:00
Min Chen c2192808aa CLOUDSTACK-3686: Registering a template does not generate a usage event. 2013-07-30 17:35:12 -07:00
Edison Su f486d36f88 CLOUDSTACK-3908: fix extract path 2013-07-29 16:58:51 -07:00
Prachi Damle dc66b6baa6 CLOUDSTACK-3821 RegisterTemplate URL validation issue
Changes:
- Added validation for the url path
2013-07-25 15:57:57 -07:00
Edison Su 0c1ae20e77 add inital swift support
Conflicts:

	server/src/com/cloud/resource/ResourceManagerImpl.java
	server/test/com/cloud/resource/MockResourceManagerImpl.java
2013-07-13 02:07:03 -07:00
Alena Prokharchyk 833c83d7f7 CLOUDSTACK-3387: deleteTemplate - log the exception message when delete command fails 2013-07-08 15:44:03 -07:00
Prasanna Santhanam de38cd815f Fix typo in class name
AsyncRpcConext -> AsyncRpcContext

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-06-29 13:50:25 +05:30