mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
72 lines
3.0 KiB
Python
72 lines
3.0 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
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
|
|
|