From f4789375e9dd18fcece69d64570d92853f642904 Mon Sep 17 00:00:00 2001 From: Cory Hawkless Date: Mon, 14 Nov 2022 12:28:08 +1030 Subject: [PATCH] Project Cleanup --- main.py | 6 ++--- myOpenstackApp/OpenStackConnection.py | 3 +++ myOpenstackApp/neutron.py | 33 +++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 myOpenstackApp/neutron.py diff --git a/main.py b/main.py index f1365cb..b9d80b7 100644 --- a/main.py +++ b/main.py @@ -26,8 +26,6 @@ for _project in allProjects['projects']: testProject=_project testProjectExists=True - - if testProjectExists: log.error("Project already exists") log.info(testProject['id']) @@ -38,7 +36,9 @@ else: testProject=y.ks.createProject(testProjectName,"Description goes here")['project'] log.info(testProject['id']) - +#Does my test network exist? +allNetworks=y.neutron.getAllNetworks(testProject['id']) +log.info(allNetworks) def cleanUp(): diff --git a/myOpenstackApp/OpenStackConnection.py b/myOpenstackApp/OpenStackConnection.py index cbf5401..376942c 100644 --- a/myOpenstackApp/OpenStackConnection.py +++ b/myOpenstackApp/OpenStackConnection.py @@ -10,6 +10,7 @@ class OpenStackConnection_x: someProp=0 ks=False nova=False + neutron=False catalogData="" novaURL="" @@ -27,9 +28,11 @@ class OpenStackConnection_x: log.info("Initalising connection") from myOpenstackApp.keystone import myopenstack_keystone from myOpenstackApp.nova import myopenstack_nova + from myOpenstackApp.neutron import myopenstack_neutron self.ks=myopenstack_keystone(self) self.nova=myopenstack_nova(self) + self.neutron=myopenstack_neutron(self) self.interface=os.getenv("OS_INTERFACE") diff --git a/myOpenstackApp/neutron.py b/myOpenstackApp/neutron.py new file mode 100644 index 0000000..ad60f11 --- /dev/null +++ b/myOpenstackApp/neutron.py @@ -0,0 +1,33 @@ +import imp +import json +import myOpenstackApp.OpenStackConnection + +class myopenstack_neutron(): + def __init__(self,conn: myOpenstackApp.OpenStackConnection.OpenStackConnection_x ) -> None: + self.conn=conn + + def getAllNetworks(_self, projectID): + result_Data=_self.conn.make_request("GET", "networks?project_id="+projectID, "", + _self.conn.ks.getEndpointByNameAndInterface("neutron",_self.conn.interface)["url"]).json() + return result_Data + + def listAllFloatingIPsByProject(_self,projectID): + result_Data=_self.conn.make_request("GET", "floatingips?project_id="+projectID, "", + _self.conn.ks.getEndpointByNameAndInterface("neutron",_self.conn.interface)["url"]).json() + return result_Data + + def ipInSubnet(_self,network,netmask,ip): + #Network, netmask and ip must be supplied in integer form + return (ip & netmask) == network + + def createNetwork(_self,name,project_id,description=""): + data={ + "network": { + "name": name, + "admin_state_up": true, + "tenant_id": project_id, + "description": description + } + } + newNetwork=_self.requestor.make_request("POST", "projects", data, ) + return newNetwork \ No newline at end of file