new-openstackcheck-mk2/myOpenstackApp/neutron.py

62 lines
2.7 KiB
Python

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