instead of adding zone wide primary storage in the cluster block,
added it in the zone block.
CLOUDSTACK-8229
Testing: tested with KVM and zone deployment was fine.

In the config file, zone wide primary storage details looks like this:
  "primaryStorages": [
        {
          "url": "nfs://10.147.28.7/export/home/talluri/primary1",
          "XRT_PriStorageType": "NFS",
          "name": "XenRT-Zone-0-Pod-0-Cluster-0-Primary-Store-0",
          "hypervisor": "KVM",
          "scope" : "zone"
        }
      ],

reviewed-by: talluri


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

Branch: refs/heads/hotfix/scp-exception
Commit: 9c381a21c4346e778fb36250fd76fb3f5eacdbdb
Parents: 446e08d
Author: SrikanteswaraRao Talluri <tall...@apache.org>
Authored: Wed Feb 18 19:26:49 2015 +0530
Committer: SrikanteswaraRao Talluri <tall...@apache.org>
Committed: Wed Feb 18 19:30:15 2015 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/deployDataCenter.py | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9c381a21/tools/marvin/marvin/deployDataCenter.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/deployDataCenter.py 
b/tools/marvin/marvin/deployDataCenter.py
index d705330..4fcd696 100644
--- a/tools/marvin/marvin/deployDataCenter.py
+++ b/tools/marvin/marvin/deployDataCenter.py
@@ -196,8 +196,7 @@ class DeployDataCenters(object):
                 self.createPrimaryStorages(cluster.primaryStorages,
                                            zoneId,
                                            podId,
-                                           clusterId,
-                                           cluster.hypervisor)
+                                           clusterId)
         except Exception as e:
             print "Exception Occurred %s" % GetDetailExceptionInfo(e)
             self.__tcRunLogger.exception("====Cluster %s Creation Failed"
@@ -230,9 +229,8 @@ class DeployDataCenters(object):
     def createPrimaryStorages(self,
                               primaryStorages,
                               zoneId,
-                              podId,
-                              clusterId,
-                              hypervisor):
+                              podId=None,
+                              clusterId=None):
         try:
             if primaryStorages is None:
                 return
@@ -242,13 +240,14 @@ class DeployDataCenters(object):
                     for key, value in vars(primary.details).iteritems():
                         primarycmd.details.append({ key: value})
                 primarycmd.name = primary.name
-                primarycmd.podid = podId
+
                 primarycmd.tags = primary.tags
                 primarycmd.url = primary.url
                 if primary.scope == 'zone':
                     primarycmd.scope = primary.scope
-                    primarycmd.hypervisor = hypervisor
+                    primarycmd.hypervisor = primary.hypervisor
                 else:
+                    primarycmd.podid = podId
                     primarycmd.clusterid = clusterId
                 primarycmd.zoneid = zoneId
 
@@ -786,6 +785,11 @@ class DeployDataCenters(object):
                 '''Note: Swift needs cache storage first'''
                 self.createCacheStorages(zone.cacheStorages, zoneId)
                 self.createSecondaryStorages(zone.secondaryStorages, zoneId)
+                #add zone wide primary storages if any
+                if zone.primaryStorages:
+                    self.createPrimaryStorages(zone.primaryStorages,
+                                               zoneId,
+                                               )
                 enabled = getattr(zone, 'enabled', 'True')
                 if enabled == 'True' or enabled is None:
                     self.enableZone(zoneId, "Enabled")

Reply via email to