Somewhat working
This commit is contained in:
parent
e4d0e8c695
commit
85dadb1428
142
main.py
142
main.py
|
@ -1,4 +1,4 @@
|
||||||
import os, sys
|
import os, sys,time
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), "lib"))
|
sys.path.append(os.path.join(os.path.dirname(__file__), "lib"))
|
||||||
from myOpenstackApp.logger import log
|
from myOpenstackApp.logger import log
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ testProjectExists=False
|
||||||
testProject=""
|
testProject=""
|
||||||
testNetwork=""
|
testNetwork=""
|
||||||
testSubnet=""
|
testSubnet=""
|
||||||
|
timingText=""
|
||||||
|
|
||||||
cleanupResourcesOnCompletion=True
|
cleanupResourcesOnCompletion=True
|
||||||
|
|
||||||
|
@ -17,65 +18,20 @@ y.initalise()
|
||||||
y.ks.getCatalog()
|
y.ks.getCatalog()
|
||||||
# print(y.something())
|
# print(y.something())
|
||||||
# print(y._keystone)
|
# print(y._keystone)
|
||||||
|
|
||||||
log.info("Starting")
|
log.info("Starting")
|
||||||
|
|
||||||
|
tic = time.perf_counter()
|
||||||
|
|
||||||
|
|
||||||
allProjects=y.ks.getAllProjects()
|
allProjects=y.ks.getAllProjects()
|
||||||
|
toc = time.perf_counter()
|
||||||
|
timingText +=(f"Queried keystone in {toc - tic:0.4f} seconds\n")
|
||||||
|
|
||||||
|
def sendFailureNotice(e,timingText):
|
||||||
|
log.error("JOB FAILED\n\n" + str(e))
|
||||||
|
log.error(timingText)
|
||||||
|
exit()
|
||||||
|
|
||||||
#Does my test project ID already exist?
|
|
||||||
for _project in allProjects['projects']:
|
|
||||||
if _project['name']==testProjectName:
|
|
||||||
testProject=_project
|
|
||||||
testProjectExists=True
|
|
||||||
|
|
||||||
if testProjectExists:
|
|
||||||
log.error("Test project already exists with ID " + testProject['id'])
|
|
||||||
|
|
||||||
else:
|
|
||||||
# Create test project
|
|
||||||
log.info("{} project does not exist, creating".format(testProjectName))
|
|
||||||
testProject=y.ks.createProject(testProjectName,"Description goes here")['project']
|
|
||||||
log.info("Test project created with ID " + testProject['id'])
|
|
||||||
|
|
||||||
#Does my test network exist?
|
|
||||||
allNetworks=y.neutron.getAllNetworks(testProject['id'])
|
|
||||||
log.info(allNetworks)
|
|
||||||
|
|
||||||
#Does my test network ID already exist?
|
|
||||||
for _network in allNetworks['networks']:
|
|
||||||
if _network['name']==testProjectName+"_network":
|
|
||||||
testNetwork=_network
|
|
||||||
|
|
||||||
if testNetwork != "":
|
|
||||||
log.info("Test network already exists with ID " + testNetwork['id'])
|
|
||||||
|
|
||||||
else:
|
|
||||||
# Create test network
|
|
||||||
log.info("{} network does not exist, creating".format(testProjectName))
|
|
||||||
testNetwork=y.neutron.createNetwork(testProjectName+"_network",testProject['id'],"Test network description")['network']
|
|
||||||
log.info("Test network created with ID " + testNetwork['id'])
|
|
||||||
|
|
||||||
#Create subnet
|
|
||||||
log.info("Creating new subnet")
|
|
||||||
testSubnet=y.neutron.createSubnet(testProjectName + "_subnet",testNetwork['id'])
|
|
||||||
log.debug(testSubnet)
|
|
||||||
|
|
||||||
#Create a test router
|
|
||||||
log.info("Creating new router")
|
|
||||||
testRouter=y.neutron.createRouter(testProjectName + "_router",os.getenv("EXTERNAL_NETWORK_ID"))
|
|
||||||
log.debug(testRouter)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Create
|
|
||||||
#Project
|
|
||||||
#Network
|
|
||||||
#Subnet
|
|
||||||
#Router
|
|
||||||
#bind router to network
|
|
||||||
#Volume from image
|
|
||||||
#Vm from volume
|
|
||||||
|
|
||||||
def cleanUp():
|
def cleanUp():
|
||||||
log.info("Cleaning up")
|
log.info("Cleaning up")
|
||||||
|
@ -87,6 +43,82 @@ def cleanUp():
|
||||||
#Delete project
|
#Delete project
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
#Does my test project ID already exist?
|
||||||
|
for _project in allProjects['projects']:
|
||||||
|
if _project['name']==testProjectName:
|
||||||
|
testProject=_project
|
||||||
|
testProjectExists=True
|
||||||
|
|
||||||
|
if testProjectExists:
|
||||||
|
log.error("Test project already exists with ID " + testProject['id'])
|
||||||
|
|
||||||
|
else:
|
||||||
|
# Create test project
|
||||||
|
log.info("{} project does not exist, creating".format(testProjectName))
|
||||||
|
testProject=y.ks.createProject(testProjectName,"Description goes here")['project']
|
||||||
|
log.info("Test project created with ID " + testProject['id'])
|
||||||
|
|
||||||
|
|
||||||
|
toc = time.perf_counter()
|
||||||
|
timingText +=(f"Queried projects in {toc - tic:0.4f} seconds\n")
|
||||||
|
except Exception as e:
|
||||||
|
log.error("Error managing project" + str(e))
|
||||||
|
cleanUp()
|
||||||
|
sendFailureNotice(e,timingText)
|
||||||
|
|
||||||
|
try:
|
||||||
|
#Does my test network exist?
|
||||||
|
allNetworks=y.neutron.getAllNetworks(testProject['id'])
|
||||||
|
log.info(allNetworks)
|
||||||
|
|
||||||
|
#Does my test network ID already exist?
|
||||||
|
for _network in allNetworks['networks']:
|
||||||
|
if _network['name']==testProjectName+"_network":
|
||||||
|
testNetwork=_network
|
||||||
|
|
||||||
|
if testNetwork != "":
|
||||||
|
log.info("Test network already exists with ID " + testNetwork['id'])
|
||||||
|
|
||||||
|
else:
|
||||||
|
# Create test network
|
||||||
|
log.info("{} network does not exist, creating".format(testProjectName))
|
||||||
|
testNetwork=y.neutron.createNetwork(testProjectName+"_network",testProject['id'],"Test network description")['network']
|
||||||
|
log.info("Test network created with ID " + testNetwork['id'])
|
||||||
|
|
||||||
|
#Create subnet
|
||||||
|
log.info("Creating new subnet")
|
||||||
|
testSubnet=y.neutron.createSubnet(testProjectName + "_subnet",testNetwork['id'])
|
||||||
|
log.debug(testSubnet)
|
||||||
|
|
||||||
|
#Create a test router
|
||||||
|
log.info("Creating new router")
|
||||||
|
testRouter=y.neutron.createRouter(testProjectName + "_router",os.getenv("EXTERNAL_NETWORK_ID"))
|
||||||
|
log.debug(testRouter)
|
||||||
|
toc = time.perf_counter()
|
||||||
|
timingText +=(f"Queried neutron in {toc - tic:0.4f} seconds")
|
||||||
|
except Exception as e:
|
||||||
|
log.error("Error managing network" + str(e))
|
||||||
|
toc = time.perf_counter()
|
||||||
|
timingText +=(f"Neutron failed after {toc - tic:0.4f} seconds\n")
|
||||||
|
|
||||||
|
cleanUp()
|
||||||
|
sendFailureNotice(e,timingText)
|
||||||
|
|
||||||
|
#Create
|
||||||
|
#Project
|
||||||
|
#Network
|
||||||
|
#Subnet
|
||||||
|
#Router
|
||||||
|
#bind router to network
|
||||||
|
#Volume from image
|
||||||
|
#Vm from volume
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if cleanupResourcesOnCompletion:
|
if cleanupResourcesOnCompletion:
|
||||||
cleanUp()
|
cleanUp()
|
||||||
|
|
||||||
|
toc = time.perf_counter()
|
||||||
|
log.info(f"Total runtime {toc - tic:0.4f} seconds")
|
|
@ -35,7 +35,7 @@ class OpenStackConnection_x:
|
||||||
self.ks=myopenstack_keystone(self)
|
self.ks=myopenstack_keystone(self)
|
||||||
self.nova=myopenstack_nova(self)
|
self.nova=myopenstack_nova(self)
|
||||||
self.neutron=myopenstack_neutron(self)
|
self.neutron=myopenstack_neutron(self)
|
||||||
self.cinder-myopenstack_cinder(self)
|
self.cinder=myopenstack_cinder(self)
|
||||||
|
|
||||||
self.interface=os.getenv("OS_INTERFACE")
|
self.interface=os.getenv("OS_INTERFACE")
|
||||||
|
|
||||||
|
@ -71,11 +71,11 @@ class OpenStackConnection_x:
|
||||||
url = apiEndpoint + "/" + url
|
url = apiEndpoint + "/" + url
|
||||||
|
|
||||||
if getPost=="GET":
|
if getPost=="GET":
|
||||||
response = requests.get(url, headers=headers)
|
response = requests.get(url, headers=headers,timeout=15)
|
||||||
elif getPost=="POST":
|
elif getPost=="POST":
|
||||||
response = requests.post(url, data=data_json, headers=headers)
|
response = requests.post(url, data=data_json, headers=headers,timeout=15)
|
||||||
elif getPost=="DELETE":
|
elif getPost=="DELETE":
|
||||||
response = requests.delete(url, headers=headers)
|
response = requests.delete(url, headers=headers,timeout=15)
|
||||||
else:
|
else:
|
||||||
raise ValueError("Unknown request type")
|
raise ValueError("Unknown request type")
|
||||||
|
|
||||||
|
@ -118,12 +118,12 @@ class OpenStackConnection_x:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
response = requests.post(url)
|
# response = requests.post(url)
|
||||||
headers = {'Content-type': 'application/json'}
|
headers = {'Content-type': 'application/json'}
|
||||||
response = requests.post(url, headers=headers,
|
response = requests.post(url, headers=headers,
|
||||||
data=json.dumps(xdata),
|
data=json.dumps(xdata),
|
||||||
verify=False,
|
verify=False,
|
||||||
timeout=4)
|
timeout=15)
|
||||||
|
|
||||||
if response.status_code == 201:
|
if response.status_code == 201:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
import time
|
||||||
|
timingText=""
|
||||||
|
tic = time.perf_counter()
|
||||||
|
|
||||||
|
import requests
|
||||||
|
|
||||||
|
toc = time.perf_counter()
|
||||||
|
timingText +=(f"Queried projects in {toc - tic:0.4f} seconds\n")
|
||||||
|
x=requests.get("http://google.com")
|
||||||
|
|
||||||
|
toc = time.perf_counter()
|
||||||
|
time.sleep(1)
|
||||||
|
timingText +=(f"Queried projects in {toc - tic:0.4f} seconds\n")
|
||||||
|
toc = time.perf_counter()
|
||||||
|
timingText +=(f"Queried projects in {toc - tic:0.4f} seconds\n")
|
||||||
|
print(timingText)
|
Loading…
Reference in New Issue