You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/11/15 21:03:09 UTC

[24/50] git commit: updated refs/heads/ui-restyle to 06ccb84

CLOUDSTACK-999: hyper-V: UI > zone wizard > Add Secondary Storage step > add "SMB/cifs" option in Provider dropdown >  When Provider is selected as SMB/cifs, show SMB username/password/domain fields and send their values into url parameter of addImageStore API.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/253da8f6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/253da8f6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/253da8f6

Branch: refs/heads/ui-restyle
Commit: 253da8f6ba5c88f684cfd154a0baa48c3268a6d8
Parents: 4a8e9f8
Author: Jessica Wang <je...@apache.org>
Authored: Wed Nov 13 15:01:32 2013 -0800
Committer: Jessica Wang <je...@apache.org>
Committed: Wed Nov 13 15:01:59 2013 -0800

----------------------------------------------------------------------
 ui/scripts/zoneWizard.js | 120 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 113 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/253da8f6/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index d8ee41f..c5db0f9 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -1832,7 +1832,9 @@
                     provider: {
                         label: 'Provider',
                         select: function(args) {
-                        	var storageproviders = [];      
+                        	var storageproviders = [];  
+                        	storageproviders.push({ id: '', description: ''});                         	
+                        	
                         	$.ajax({
                         		url: createURL('listImageStores'),
                         		data: {
@@ -1842,7 +1844,7 @@
                         		success: function(json) {                        			
                         			var s3stores = json.listimagestoresresponse.imagestore;
                         			if(s3stores != null && s3stores.length > 0) {                        				
-                        				storageproviders.push({ id: 'S3', description: 'S3'});
+                        				storageproviders.push({ id: 'S3', description: 'S3'}); //if (region-wide) S3 store exists already, only "S3" option should be included here. Any other type of store is not allowed to be created since cloudstack doesn't support multiple types of store at this point. 
                         			} else {
                         				$.ajax({
                                             url: createURL('listStorageProviders'),
@@ -1851,8 +1853,7 @@
                                             },
                                             async: false,
                                             success: function(json) {
-                                                var objs = json.liststorageprovidersresponse.dataStoreProvider;
-                                                storageproviders.push({ id: '', description: ''}); 
+                                                var objs = json.liststorageprovidersresponse.dataStoreProvider;                                                
                                                 if (objs != null) {
                                                     for (var i = 0; i < objs.length; i++) {    
                                                     	storageproviders.push({
@@ -1863,6 +1864,7 @@
                                                 }                                    
                                             }
                                         });
+                        				storageproviders.push({ id: 'SMB', description: 'SMB/cifs'}); //temporary, before Rajesh adds 'SMB' to listStorageProviders API response.                                        
                         			}                        		                    			
                                     args.response.success({
                                         data: storageproviders
@@ -1880,6 +1882,11 @@
                                             $fields.filter('[rel=nfsServer]').hide();
                                             $fields.filter('[rel=path]').hide();
 
+                                            //SMB
+                                            $fields.filter('[rel=smbUsername]').hide();
+                                            $fields.filter('[rel=smbPassword]').hide();
+                                            $fields.filter('[rel=smbDomain]').hide();
+                                            
                                             //S3
                                             $fields.filter('[rel=accesskey]').hide();
                                             $fields.filter('[rel=secretkey]').hide();
@@ -1908,6 +1915,44 @@
                                             $fields.filter('[rel=nfsServer]').css('display', 'inline-block');
                                             $fields.filter('[rel=path]').css('display', 'inline-block');
 
+                                            //SMB
+                                            $fields.filter('[rel=smbUsername]').hide();
+                                            $fields.filter('[rel=smbPassword]').hide();
+                                            $fields.filter('[rel=smbDomain]').hide();
+                                            
+                                            //S3
+                                            $fields.filter('[rel=accesskey]').hide();
+                                            $fields.filter('[rel=secretkey]').hide();
+                                            $fields.filter('[rel=bucket]').hide();
+                                            $fields.filter('[rel=endpoint]').hide();
+                                            $fields.filter('[rel=usehttps]').hide();
+                                            $fields.filter('[rel=connectiontimeout]').hide();
+                                            $fields.filter('[rel=maxerrorretry]').hide();
+                                            $fields.filter('[rel=sockettimeout]').hide();
+
+                                            $fields.filter('[rel=createNfsCache]').hide();
+                                            $fields.filter('[rel=createNfsCache]').find('input').removeAttr('checked');
+                                            $fields.filter('[rel=nfsCacheNfsServer]').hide();
+                                            $fields.filter('[rel=nfsCachePath]').hide();
+
+                                            //Swift
+                                            $fields.filter('[rel=url]').hide();
+                                            $fields.filter('[rel=account]').hide();
+                                            $fields.filter('[rel=username]').hide();
+                                            $fields.filter('[rel=key]').hide();
+                                        } else if ($(this).val() == "SMB") {
+                                        	$fields.filter('[rel=name]').css('display', 'inline-block');
+                                        	
+                                        	//NFS
+                                            $fields.filter('[rel=zoneid]').css('display', 'inline-block');
+                                            $fields.filter('[rel=nfsServer]').css('display', 'inline-block');
+                                            $fields.filter('[rel=path]').css('display', 'inline-block');
+
+                                            //SMB
+                                            $fields.filter('[rel=smbUsername]').css('display', 'inline-block');
+                                            $fields.filter('[rel=smbPassword]').css('display', 'inline-block');
+                                            $fields.filter('[rel=smbDomain]').css('display', 'inline-block');
+                                            
                                             //S3
                                             $fields.filter('[rel=accesskey]').hide();
                                             $fields.filter('[rel=secretkey]').hide();
@@ -1944,6 +1989,11 @@
                                             $fields.filter('[rel=nfsServer]').hide();
                                             $fields.filter('[rel=path]').hide();
 
+                                            //SMB
+                                            $fields.filter('[rel=smbUsername]').hide();
+                                            $fields.filter('[rel=smbPassword]').hide();
+                                            $fields.filter('[rel=smbDomain]').hide();
+                                            
                                             //S3
                                             if(s3stores != null && s3stores.length > 0) {
                                             	 $fields.filter('[rel=accesskey]').hide();
@@ -1983,6 +2033,11 @@
                                             $fields.filter('[rel=nfsServer]').hide();
                                             $fields.filter('[rel=path]').hide();
 
+                                            //SMB
+                                            $fields.filter('[rel=smbUsername]').hide();
+                                            $fields.filter('[rel=smbPassword]').hide();
+                                            $fields.filter('[rel=smbDomain]').hide();
+                                            
                                             //S3
                                             $fields.filter('[rel=accesskey]').hide();
                                             $fields.filter('[rel=secretkey]').hide();
@@ -2016,7 +2071,7 @@
                         isHidden: true
                     },
                     
-                    //NFS (begin)
+                    //NFS, SMB (begin)
                     nfsServer: {
                         label: 'label.nfs.server',
                         validation: {
@@ -2031,9 +2086,31 @@
                         },
                         isHidden: true
                     },
-                    //NFS (end)
+                    //NFS, SMB (end)
 
 
+                    //SMB (begin)                                            
+                    smbUsername: {
+                    	label: 'SMB Username',
+                    	validation: {
+                            required: true
+                        }
+                    },
+                    smbPassword: {
+                    	label: 'SMB Password',
+                    	isPassword: true,
+                    	validation: {
+                            required: true
+                        }
+                    },
+                    smbDomain: {
+                    	label: 'SMB Domain',
+                    	validation: {
+                            required: true
+                        }
+                    },
+                    //SMB (end)
+                    
                     //S3 (begin)
                     accesskey: {
                         label: 'label.s3.access_key',
@@ -4152,7 +4229,36 @@
                         var url = nfsURL(nfs_server, path);
 
                         $.extend(data, {
-                            provider: 'NFS',
+                            provider: args.data.secondaryStorage.provider,
+                            zoneid: args.data.returnedZone.id,
+                            url: url
+                        });
+
+                        $.ajax({
+                            url: createURL('addImageStore'),
+                            data: data,
+                            success: function(json) {
+                                complete({
+                                    data: $.extend(args.data, {
+                                        returnedSecondaryStorage: json.addimagestoreresponse.secondarystorage
+                                    })
+                                });
+                            },
+                            error: function(XMLHttpResponse) {
+                                var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+                                error('addSecondaryStorage', errorMsg, {
+                                    fn: 'addSecondaryStorage',
+                                    args: args
+                                });
+                            }
+                        });
+                    } else if (args.data.secondaryStorage.provider == 'SMB') {
+                        var nfs_server = args.data.secondaryStorage.nfsServer;
+                        var path = args.data.secondaryStorage.path;
+                        var url = smbURL(nfs_server, path, args.data.secondaryStorage.smbUsername, args.data.secondaryStorage.smbPassword, args.data.secondaryStorage.smbDomain);
+
+                        $.extend(data, {
+                            provider: args.data.secondaryStorage.provider,
                             zoneid: args.data.returnedZone.id,
                             url: url
                         });