| import json |
| import os |
| import random |
| import sys |
| |
| class ZoneCreator: |
| """Creates a zone (and a pod and cluster for now)""" |
| def __init__(self, api, zonenum, dns1='192.168.10.254', |
| dns2='192.168.10.253', internaldns='192.168.10.254'): |
| self._api = api |
| self._zonenum = zonenum |
| self._zonename = "ZONE%04d"%zonenum |
| self._dns1 = dns1 |
| self._dns2 = dns2 |
| self._internaldns = internaldns |
| |
| def create(self): |
| jsonresult = self._api.GET({'command': 'createZone', 'networktype':'Basic', |
| 'name':self._zonename, 'dns1':self._dns1, 'dns2':self._dns2, |
| 'internaldns1':self._internaldns}) |
| if jsonresult is None: |
| print "Failed to create zone" |
| return 0 |
| jsonobj = json.loads(jsonresult) |
| self._zoneid = jsonobj['createzoneresponse']['zone']['id'] |
| self._zonetoken = jsonobj['createzoneresponse']['zone']['zonetoken'] |
| print "Zone %s is created"%self._zonename |
| print "zone=%s"%self._zonetoken |
| #self.createPod() |
| return self._zoneid |
| |
| |
| def createPod(self): |
| self._podname = "POD%04d"%self._zonenum |
| self._clustername = "CLUSTER%04d"%self._zonenum |
| jsonresult = self._api.GET({'command': 'createPod', 'zoneId':self._zoneid, |
| 'name':self._podname, 'gateway':'192.168.1.1', 'netmask':'255.255.255.0', |
| 'startIp':'192.168.1.100', 'endIp':'192.168.1.150'}) |
| if jsonresult is None: |
| print "Failed to create pod" |
| return 2 |
| jsonobj = json.loads(jsonresult) |
| podid = jsonobj['createpodresponse']['pod']['id'] |
| jsonresult = self._api.GET({'command': 'addCluster', 'zoneId':self._zoneid, |
| 'clustername':self._clustername, 'podId':podid, 'hypervisor':'KVM', |
| 'clustertype':'CloudManaged'}) |
| if jsonresult is None: |
| print "Failed to create cluster" |
| return 3 |
| jsonobj = json.loads(jsonresult) |
| clusterid = jsonobj['addclusterresponse']['cluster'][0]['id'] |
| print "pod=%s"%podid |
| print "cluster=%s"%clusterid |
| |