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", "v2.0/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", "v2.0/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 } } result_Data=_self.conn.make_request("POST", "v2.0/networks", data, _self.conn.ks.getEndpointByNameAndInterface("neutron",_self.conn.interface)["url"]).json() return result_Data def createSubnet(_self,name,network_id): data={ "subnet": { "name": name, "network_id": network_id, "ip_version": 4, "cidr": "192.168.199.0/24" } } result_Data=_self.conn.make_request("POST", "v2.0/subnets", data, _self.conn.ks.getEndpointByNameAndInterface("neutron",_self.conn.interface)["url"]).json() return result_Data def createRouter(_self,name,network_id): data={ "router": { "name": name, "external_gateway_info": { "network_id": network_id, "enable_snat": True, }, "admin_state_up": True } } result_Data=_self.conn.make_request("POST", "v2.0/routers", data, _self.conn.ks.getEndpointByNameAndInterface("neutron",_self.conn.interface)["url"]).json() return result_Data