예제 #1
0
    def createZones(self, zones):
        for zone in zones:
            createzone = createZone.createZoneCmd()
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.networktype = zone.networktype
            createzone.guestcidraddress = zone.guestcidraddress

            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            phynetwrk = self.createPhysicalNetwork(zone.name + "-pnet", \
                                                   zoneId)

            self.configureProviders(phynetwrk, zone)
            self.updatePhysicalNetwork(phynetwrk.id, "Enabled", vlan=zone.vlan)

            if zone.networktype == "Basic":
                self.addTrafficTypes(phynetwrk.id, ["Guest", "Management"])
                
                listnetworkoffering = \
                listNetworkOfferings.listNetworkOfferingsCmd()

                if zone.securitygroupenabled:
                    listnetworkoffering.name = \
                    "DefaultSharedNetworkOfferingWithSGService"
                else:
                    # need both name and display text for single result
                    listnetworkoffering.name = \
                    "DefaultSharedNetworkOffering"
                    listnetworkoffering.displaytext = \
                    "Offering for Shared networks"

                listnetworkofferingresponse = \
                self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = \
                        listnetworkofferingresponse[0].id
                networkid = self.createnetworks([guestntwrk], zoneId, zone.networktype)
                self.createpods(zone.pods, zone, zoneId, networkid)

            if zone.networktype == "Advanced":
                self.createpods(zone.pods, zone, zoneId)
                self.addTrafficTypes(phynetwrk.id, ["Guest", "Public", \
                                                    "Management"])
                self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId)

            self.createSecondaryStorages(zone.secondaryStorages, zoneId)
            self.enableZone(zoneId, "Enabled")
        return
 def createZones(self, zones):
     try:
         for zone in zones:
             zonecmd = createZone.createZoneCmd()
             zonecmd.dns1 = zone.dns1
             zonecmd.dns2 = zone.dns2
             zonecmd.internaldns1 = zone.internaldns1
             zonecmd.internaldns2 = zone.internaldns2
             zonecmd.name = zone.name
             zonecmd.localstorageenabled = zone.localstorageenabled
             zonecmd.networktype = zone.networktype
             zonecmd.domain = zone.domain
             zonecmd.guestcidraddress = zone.guestcidraddress
             zoneId = self.createZone(zonecmd)
             if zoneId == FAILED:
                 self.__logger.error("=== Zone: %s Creation Failed. So Exiting ===" % str(zone.name))
                 self.__cleanAndExit()
             for pnet in zone.physical_networks:
                 phynetwrk = self.createPhysicalNetwork(pnet, zoneId)
                 self.configureProviders(phynetwrk, pnet.providers)
                 self.updatePhysicalNetwork(phynetwrk.id, "Enabled", vlan=pnet.vlan)
             if zone.networktype == "Basic":
                 listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                 if len(filter(lambda x: x.typ == 'Public', zone.physical_networks[0].traffictypes)) > 0:
                     listnetworkoffering.name = "DefaultSharedNetscalerEIPandELBNetworkOffering"
                 else:
                     listnetworkoffering.name = "DefaultSharedNetworkOfferingWithSGService"
                 if zone.networkofferingname is not None:
                     listnetworkoffering.name = zone.networkofferingname
                 listnetworkofferingresponse = self.__apiClient.listNetworkOfferings(listnetworkoffering)
                 guestntwrk = configGenerator.network()
                 guestntwrk.displaytext = "guestNetworkForBasicZone"
                 guestntwrk.name = "guestNetworkForBasicZone"
                 guestntwrk.zoneid = zoneId
                 guestntwrk.networkofferingid = listnetworkofferingresponse[0].id
                 networkid = self.createNetworks([guestntwrk], zoneId)
                 self.createPods(zone.pods, zoneId, networkid)
                 if self.isEipElbZone(zone):
                     self.createVlanIpRanges(zone.networktype, zone.ipranges, zoneId, forvirtualnetwork=True)
             isPureAdvancedZone = zone.networktype == "Advanced"
             if isPureAdvancedZone:
                 self.createPods(zone.pods, zoneId)
                 self.createVlanIpRanges(zone.networktype, zone.ipranges, zoneId)
             '''Note: Swift needs cache storage first'''
             self.createCacheStorages(zone.cacheStorages, zoneId)
             self.createSecondaryStorages(zone.secondaryStorages, zoneId)
             if zone.primaryStorages:
                 self.createPrimaryStorages(zone.primaryStorages, zoneId)
             enabled = getattr(zone, 'enabled', 'True')
             if enabled == 'True' or enabled is None:
                 self.enableZone(zoneId, "Enabled")
             details = getattr(zone, 'details')
             if details is not None:
                 det = [d.__dict__ for d in details]
                 self.updateZoneDetails(zoneId, det)
         return
     except Exception as e:
         self.__logger.exception("=== Create Zones Failed: %e ===" % e)
예제 #3
0
    def createZones(self, zones):
        for zone in zones:
            createzone = createZone.createZoneCmd()
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.localstorageenabled = zone.localstorageenabled
            createzone.networktype = zone.networktype
            createzone.guestcidraddress = zone.guestcidraddress

            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            for pnet in zone.physical_networks:
                phynetwrk = self.createPhysicalNetwork(pnet, zoneId)
                self.configureProviders(phynetwrk, pnet.providers)
                self.updatePhysicalNetwork(phynetwrk.id,
                                           "Enabled",
                                           vlan=pnet.vlan)

            if zone.networktype == "Basic":
                listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd(
                )

                listnetworkoffering.name = "DefaultSharedNetscalerEIPandELBNetworkOffering" \
                        if len(filter(lambda x : x.typ == 'Public', zone.physical_networks[0].traffictypes)) > 0 \
                        else "DefaultSharedNetworkOfferingWithSGService"

                listnetworkofferingresponse = \
                self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = \
                        listnetworkofferingresponse[0].id

                networkid = self.createnetworks([guestntwrk], zoneId)
                self.createpods(zone.pods, zoneId, networkid)
                if self.isEipElbZone(zone):
                    self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId, forvirtualnetwork=True)

            if zone.networktype == "Advanced":
                self.createpods(zone.pods, zoneId)
                self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId)

            self.createSecondaryStorages(zone.secondaryStorages, zoneId)
            self.enableZone(zoneId, "Enabled")
        return
    def createZones(self, zones):
        for zone in zones:
            createzone = createZone.createZoneCmd()
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.localstorageenabled = zone.localstorageenabled
            createzone.networktype = zone.networktype
            createzone.guestcidraddress = zone.guestcidraddress
            
            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            for pnet in zone.physical_networks:
                phynetwrk = self.createPhysicalNetwork(pnet, zoneId)
                self.configureProviders(phynetwrk, pnet.providers)
                self.updatePhysicalNetwork(phynetwrk.id, "Enabled", vlan=zone.vlan)

            if zone.networktype == "Basic":
                listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                
                listnetworkoffering.name = "DefaultSharedNetscalerEIPandELBNetworkOffering" \
                        if len(filter(lambda x : x.typ == 'Public', zone.physical_networks[0].traffictypes)) > 0 \
                        else "DefaultSharedNetworkOfferingWithSGService"

                listnetworkofferingresponse = \
                self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = \
                        listnetworkofferingresponse[0].id
                        
                networkid = self.createnetworks([guestntwrk], zoneId)
                self.createpods(zone.pods, zoneId, networkid)
                if self.isEipElbZone(zone):
                    self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId, forvirtualnetwork=True)

            if zone.networktype == "Advanced":
                self.createpods(zone.pods, zoneId)
                self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId)

            self.createSecondaryStorages(zone.secondaryStorages, zoneId)
            self.enableZone(zoneId, "Enabled")
        return
예제 #5
0
    def createZones(self, zones):
        for zone in zones:
            createzone = createZone.createZoneCmd()
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.networktype = zone.networktype
            createzone.guestcidraddress = zone.guestcidraddress

            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            phynetwrk = self.createPhysicalNetwork(zone.name + "-pnet", \
                                                   zoneId)

            self.addTrafficTypes(phynetwrk.id, ["Guest", "Public", \
                                                    "Management"])

            self.configureProviders(phynetwrk, zone)
            self.updatePhysicalNetwork(phynetwrk.id, "Enabled", vlan=zone.vlan)

            if zone.networktype == "Basic":
                listnetworkoffering = \
                listNetworkOfferings.listNetworkOfferingsCmd()

                listnetworkoffering.name = \
                "DefaultSharedNetworkOfferingWithSGService"

                listnetworkofferingresponse = \
                self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = \
                        listnetworkofferingresponse[0].id
                self.createnetworks([guestntwrk], zoneId, zone.networktype)

            self.createpods(zone.pods, zone, zoneId)

            if zone.networktype == "Advanced":
                self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId)

            self.createSecondaryStorages(zone.secondaryStorages, zoneId)
            self.enableZone(zoneId, "Enabled")
        return
예제 #6
0
    def createZones(self, zones):
        for zone in zones:
            '''create a zone'''
            createzone = createZone.createZoneCmd()
            createzone.guestcidraddress = zone.guestcidraddress
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.networktype = zone.networktype
            
            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            '''enable physical networks and providers'''
            phynetwrk = self.enablePhysicalNetwork(zoneId, zone.vlan)
            self.configureProviders(phynetwrk, zone.providers, zone.networktype)

            if zone.networktype == "Basic":
                '''create the guest network from the sharednetworkoffering'''
                listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                listnetworkoffering.name = "DefaultSharedNetworkOfferingWithSGService"
                listnetworkofferingresponse = self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = listnetworkofferingresponse[0].id
                self.createnetworks([guestntwrk], zoneId, zone.networktype)
            
            '''create pods'''
            self.createpods(zone.pods, zone, zoneId)
            
            if zone.networktype == "Advanced":
                '''create pubic network'''
                self.createVlanIpRanges(zone.networktype, zone.ipranges, zoneId)
           
            '''create secondary storage'''
            self.createSecondaryStorages(zone.secondaryStorages, zoneId)
예제 #7
0
    def createZones(self, zones):
        for zone in zones:
            createzone = createZone.createZoneCmd()
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.localstorageenabled = zone.localstorageenabled
            createzone.networktype = zone.networktype
            if zone.securitygroupenabled != "true":
                createzone.guestcidraddress = zone.guestcidraddress
            
            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            for pnet in zone.physical_networks:
                phynetwrk = self.createPhysicalNetwork(pnet, zoneId)
                self.configureProviders(phynetwrk, pnet.providers)
                self.updatePhysicalNetwork(phynetwrk.id, "Enabled", vlan=pnet.vlan)

            if zone.networktype == "Basic":
                listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                listnetworkoffering.name = "DefaultSharedNetscalerEIPandELBNetworkOffering" \
                        if len(filter(lambda x : x.typ == 'Public', zone.physical_networks[0].traffictypes)) > 0 \
                        else "DefaultSharedNetworkOfferingWithSGService"
                if zone.networkofferingname  is not None:
                   listnetworkoffering.name = zone.networkofferingname 

                listnetworkofferingresponse = \
                self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = \
                        listnetworkofferingresponse[0].id
                        
                networkid = self.createnetworks([guestntwrk], zoneId)
                self.createpods(zone.pods, zoneId, networkid)
                if self.isEipElbZone(zone):
                    self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId, forvirtualnetwork=True)

            if zone.networktype == "Advanced" and zone.securitygroupenabled != "true":
                self.createpods(zone.pods, zoneId)
                self.createVlanIpRanges(zone.networktype, zone.ipranges, \
                                        zoneId)
            elif zone.networktype == "Advanced" and zone.securitygroupenabled == "true":
                listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                listnetworkoffering.name = "DefaultSharedNetworkOfferingWithSGService"
                if zone.networkofferingname  is not None:
                   listnetworkoffering.name = zone.networkofferingname

                listnetworkofferingresponse = \
                    self.apiClient.listNetworkOfferings(listnetworkoffering)

                networkcmd = createNetwork.createNetworkCmd()
                networkcmd.displaytext = "Shared SG enabled network"
                networkcmd.name = "Shared SG enabled network"
                networkcmd.networkofferingid = listnetworkofferingresponse[0].id
                networkcmd.zoneid = zoneId

                ipranges = zone.ipranges
                if ipranges:
                    iprange = ipranges.pop()
                    networkcmd.startip = iprange.startip
                    networkcmd.endip = iprange.endip
                    networkcmd.gateway = iprange.gateway
                    networkcmd.netmask = iprange.netmask
                    networkcmd.vlan = iprange.vlan

                networkcmdresponse = self.apiClient.createNetwork(networkcmd)
                networkId = networkcmdresponse.id
                self.createpods(zone.pods, zoneId, networkId)

            self.createSecondaryStorages(zone.secondaryStorages, zoneId)
            self.createCacheStorages(zone.cacheStorages, zoneId)            
            
            enabled = getattr(zone, 'enabled', 'True')
            if enabled == 'True' or enabled is None:
                self.enableZone(zoneId, "Enabled")
            details = getattr(zone, 'details')
            if details is not None:
                det = [d.__dict__ for d in details]
                self.updateZoneDetails(zoneId, det)

        return
예제 #8
0
 def createZones(self, zones):
     try:
         for zone in zones:
             zonecmd = createZone.createZoneCmd()
             zonecmd.dns1 = zone.dns1
             zonecmd.dns2 = zone.dns2
             zonecmd.internaldns1 = zone.internaldns1
             zonecmd.internaldns2 = zone.internaldns2
             zonecmd.name = zone.name
             zonecmd.securitygroupenabled = zone.securitygroupenabled
             zonecmd.localstorageenabled = zone.localstorageenabled
             zonecmd.networktype = zone.networktype
             zonecmd.domain = zone.domain
             if zone.securitygroupenabled != "true":
                 zonecmd.guestcidraddress = zone.guestcidraddress
             zoneId = self.createZone(zonecmd)
             if zoneId == FAILED:
                 self.__logger.error("=== Zone: %s Creation Failed. So Exiting ===" % str(zone.name))
                 self.__cleanAndExit()
             for pnet in zone.physical_networks:
                 phynetwrk = self.createPhysicalNetwork(pnet, zoneId)
                 self.configureProviders(phynetwrk, pnet.providers)
                 self.updatePhysicalNetwork(phynetwrk.id, "Enabled", vlan=pnet.vlan)
             if zone.networktype == "Basic":
                 listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                 if len(filter(lambda x: x.typ == 'Public', zone.physical_networks[0].traffictypes)) > 0:
                     listnetworkoffering.name = "DefaultSharedNetscalerEIPandELBNetworkOffering"
                 else:
                     listnetworkoffering.name = "DefaultSharedNetworkOfferingWithSGService"
                 if zone.networkofferingname is not None:
                     listnetworkoffering.name = zone.networkofferingname
                 listnetworkofferingresponse = self.__apiClient.listNetworkOfferings(listnetworkoffering)
                 guestntwrk = configGenerator.network()
                 guestntwrk.displaytext = "guestNetworkForBasicZone"
                 guestntwrk.name = "guestNetworkForBasicZone"
                 guestntwrk.zoneid = zoneId
                 guestntwrk.networkofferingid = listnetworkofferingresponse[0].id
                 networkid = self.createNetworks([guestntwrk], zoneId)
                 self.createPods(zone.pods, zoneId, networkid)
                 if self.isEipElbZone(zone):
                     self.createVlanIpRanges(zone.networktype, zone.ipranges, zoneId, forvirtualnetwork=True)
             isPureAdvancedZone = (zone.networktype == "Advanced" and zone.securitygroupenabled != "true")
             if isPureAdvancedZone:
                 self.createPods(zone.pods, zoneId)
                 self.createVlanIpRanges(zone.networktype, zone.ipranges, zoneId)
             elif zone.networktype == "Advanced" and zone.securitygroupenabled == "true":
                 listnetworkoffering = listNetworkOfferings.listNetworkOfferingsCmd()
                 listnetworkoffering.name = "DefaultSharedNetworkOfferingWithSGService"
                 if zone.networkofferingname is not None:
                     listnetworkoffering.name = zone.networkofferingname
                 listnetworkofferingresponse = self.__apiClient.listNetworkOfferings(listnetworkoffering)
                 networkcmd = createNetwork.createNetworkCmd()
                 networkcmd.displaytext = "Shared SG enabled network"
                 networkcmd.name = "Shared SG enabled network"
                 networkcmd.networkofferingid = listnetworkofferingresponse[0].id
                 networkcmd.zoneid = zoneId
                 ipranges = zone.ipranges
                 if ipranges:
                     iprange = ipranges.pop()
                     networkcmd.startip = iprange.startip
                     networkcmd.endip = iprange.endip
                     networkcmd.gateway = iprange.gateway
                     networkcmd.netmask = iprange.netmask
                     networkcmd.vlan = iprange.vlan
                 networkcmdresponse = self.__apiClient.createNetwork(networkcmd)
                 if networkcmdresponse.id:
                     self.__addToCleanUp("Network", networkcmdresponse.id)
                     self.__logger.debug("create Network Successful. NetworkId : %s " % str(networkcmdresponse.id))
                 self.createPods(zone.pods, zoneId, networkcmdresponse.id)
             '''Note: Swift needs cache storage first'''
             self.createCacheStorages(zone.cacheStorages, zoneId)
             self.createSecondaryStorages(zone.secondaryStorages, zoneId)
             if zone.primaryStorages:
                 self.createPrimaryStorages(zone.primaryStorages, zoneId)
             enabled = getattr(zone, 'enabled', 'True')
             if enabled == 'True' or enabled is None:
                 self.enableZone(zoneId, "Enabled")
             details = getattr(zone, 'details')
             if details is not None:
                 det = [d.__dict__ for d in details]
                 self.updateZoneDetails(zoneId, det)
         return
     except Exception as e:
         self.__logger.exception("=== Create Zones Failed: %e ===" % e)
예제 #9
0
    def createZones(self, zones):
        for zone in zones:
            createzone = createZone.createZoneCmd()
            createzone.dns1 = zone.dns1
            createzone.dns2 = zone.dns2
            createzone.internaldns1 = zone.internaldns1
            createzone.internaldns2 = zone.internaldns2
            createzone.name = zone.name
            createzone.securitygroupenabled = zone.securitygroupenabled
            createzone.localstorageenabled = zone.localstorageenabled
            createzone.networktype = zone.networktype
            if zone.securitygroupenabled != "true":
                createzone.guestcidraddress = zone.guestcidraddress

            zoneresponse = self.apiClient.createZone(createzone)
            zoneId = zoneresponse.id

            for pnet in zone.physical_networks:
                phynetwrk = self.createPhysicalNetwork(pnet, zoneId)
                self.configureProviders(phynetwrk, pnet.providers)
                self.updatePhysicalNetwork(phynetwrk.id,
                                           "Enabled",
                                           vlan=pnet.vlan)

            if zone.networktype == "Basic":
                listnetworkoffering =\
                    listNetworkOfferings.listNetworkOfferingsCmd()
                listnetworkoffering.name =\
                    "DefaultSharedNetscalerEIPandELBNetworkOffering" \
                    if len(filter(lambda x:
                                  x.typ == 'Public',
                                  zone.physical_networks[0].
                                  traffictypes)) > 0 \
                    else "DefaultSharedNetworkOfferingWithSGService"
                if zone.networkofferingname is not None:
                    listnetworkoffering.name = zone.networkofferingname

                listnetworkofferingresponse = \
                    self.apiClient.listNetworkOfferings(listnetworkoffering)

                guestntwrk = configGenerator.network()
                guestntwrk.displaytext = "guestNetworkForBasicZone"
                guestntwrk.name = "guestNetworkForBasicZone"
                guestntwrk.zoneid = zoneId
                guestntwrk.networkofferingid = \
                    listnetworkofferingresponse[0].id

                networkid = self.createnetworks([guestntwrk], zoneId)
                self.createpods(zone.pods, zoneId, networkid)
                if self.isEipElbZone(zone):
                    self.createVlanIpRanges(zone.networktype,
                                            zone.ipranges,
                                            zoneId,
                                            forvirtualnetwork=True)

            isPureAdvancedZone = (zone.networktype == "Advanced"
                                  and zone.securitygroupenabled != "true")
            if isPureAdvancedZone:
                self.createpods(zone.pods, zoneId)
                self.createVlanIpRanges(zone.networktype, zone.ipranges,
                                        zoneId)
            elif (zone.networktype == "Advanced"
                  and zone.securitygroupenabled == "true"):
                listnetworkoffering =\
                    listNetworkOfferings.listNetworkOfferingsCmd()
                listnetworkoffering.name =\
                    "DefaultSharedNetworkOfferingWithSGService"
                if zone.networkofferingname is not None:
                    listnetworkoffering.name = zone.networkofferingname

                listnetworkofferingresponse = \
                    self.apiClient.listNetworkOfferings(listnetworkoffering)

                networkcmd = createNetwork.createNetworkCmd()
                networkcmd.displaytext = "Shared SG enabled network"
                networkcmd.name = "Shared SG enabled network"
                networkcmd.networkofferingid =\
                    listnetworkofferingresponse[0].id
                networkcmd.zoneid = zoneId

                ipranges = zone.ipranges
                if ipranges:
                    iprange = ipranges.pop()
                    networkcmd.startip = iprange.startip
                    networkcmd.endip = iprange.endip
                    networkcmd.gateway = iprange.gateway
                    networkcmd.netmask = iprange.netmask
                    networkcmd.vlan = iprange.vlan

                networkcmdresponse = self.apiClient.createNetwork(networkcmd)
                networkId = networkcmdresponse.id
                self.createpods(zone.pods, zoneId, networkId)
            '''Note: Swift needs cache storage first'''
            self.createCacheStorages(zone.cacheStorages, zoneId)
            self.createSecondaryStorages(zone.secondaryStorages, zoneId)

            enabled = getattr(zone, 'enabled', 'True')
            if enabled == 'True' or enabled is None:
                self.enableZone(zoneId, "Enabled")
            details = getattr(zone, 'details')
            if details is not None:
                det = [d.__dict__ for d in details]
                self.updateZoneDetails(zoneId, det)

        return