2022-11-20 10:57:48 +00:00
|
|
|
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):
|
2022-11-20 11:41:29 +00:00
|
|
|
result_Data=_self.conn.make_request("GET", "v2.0/networks?project_id="+projectID, "",
|
2022-11-20 10:57:48 +00:00
|
|
|
_self.conn.ks.getEndpointByNameAndInterface("neutron",_self.conn.interface)["url"]).json()
|
|
|
|
return result_Data
|
|
|
|
|
|
|
|
def listAllFloatingIPsByProject(_self,projectID):
|
2022-11-20 11:41:29 +00:00
|
|
|
result_Data=_self.conn.make_request("GET", "v2.0/floatingips?project_id="+projectID, "",
|
2022-11-20 10:57:48 +00:00
|
|
|
_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,
|
2022-11-20 11:41:29 +00:00
|
|
|
"admin_state_up": True,
|
2022-11-20 10:57:48 +00:00
|
|
|
"tenant_id": project_id,
|
|
|
|
"description": description
|
|
|
|
}
|
|
|
|
}
|
2022-11-20 11:41:29 +00:00
|
|
|
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
|