diff --git a/main.py b/main.py index efb5c1b..53a9de1 100644 --- a/main.py +++ b/main.py @@ -7,25 +7,25 @@ import json from ng_openstack.logger import log log.info("Starting") -x=ng_openstack.OpenstackConnection("Fido",10) -# x.keystone.getAllProjects() -x.keystone.getCatalog() +myOpenstack=ng_openstack.OpenstackConnection() +myOpenstack.keystone.getCatalog() -# print (x.keystone.catalogData) -# neutronService=x.keystone.getServicebyName("Neutron") -# print(neutronService) -# neutronURL=x.keystone.getEndpointByNameIDAndInterface("NeuTrOn","internal")['url'] -# print(neutronURL) -projects=x.keystone.getAllProjects() -print(projects) +allProjects=myOpenstack.keystone.getAllProjects() testProjectName="SmokeTest" +testProjectExists=False #Does my test project ID already exist? -if testProjectName in projects['projects']: +for _project in allProjects['projects']: + if _project['name']==testProjectName: + testProjectExists=True + + + +if testProjectExists: log.error("Project already exists") - log.error(projects['projects'][testProjectName]) else: + # Create test project log.info("{} project does not exist, creating".format(testProjectName)) - x.keystone.createProject(testProjectName,"Description goes here") -#create test project + myOpenstack.keystone.createProject(testProjectName,"Description goes here") + diff --git a/ng_openstack/__init__.py b/ng_openstack/__init__.py index 40ae5c3..69bd8ad 100644 --- a/ng_openstack/__init__.py +++ b/ng_openstack/__init__.py @@ -10,11 +10,10 @@ class OpenstackConnection(): keystone=Openstack_Keystone(requestor) - def __init__(self, name, age): - self.name = name - self.age = age - self.speed = 0 - self.moving = False + def __init__(self, someVar="", someotherVar=""): + self.someotherVar = someotherVar + self.someVar = someVar + @property def human_age(self): @@ -33,28 +32,4 @@ class OpenstackConnection(): return self.name == other.name and self.age == other.age def make_sound(self): - print(self.SOUND) - - def bark(self): - self.make_sound() - - def walk(self, speed, distance): - self._set_speed(speed) - self._move(distance) - - @classmethod - def can_woof(cls, animal): - return animal.SOUND == cls.SOUND - - @staticmethod - def is_dog(animal): - return animal.can_woof() - - def _set_speed(self, speed): - self.speed = speed - - def _move(self, distance): - self.moving = True - for _ in range(distance): - print('.', end='') - print('') \ No newline at end of file + print(self.SOUND) \ No newline at end of file diff --git a/ng_openstack/neutron.py b/ng_openstack/neutron.py index 0b71008..5ab8f11 100644 --- a/ng_openstack/neutron.py +++ b/ng_openstack/neutron.py @@ -9,3 +9,15 @@ def listAllFloatingIPsByProject(projectID): def ipInSubnet(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 diff --git a/ng_openstack/openstackRequest.py b/ng_openstack/openstackRequest.py index eb77eac..b9e0ddb 100644 --- a/ng_openstack/openstackRequest.py +++ b/ng_openstack/openstackRequest.py @@ -49,28 +49,28 @@ class Openstack_Request: url = os.getenv("OS_AUTH_URL") + '/auth/tokens' xdata = { "auth": { - "scope": { - "project": { - "domain": { - "name": scopeDomain - }, - "id": scopeProject - } - }, - "identity": { - "password": { - "user": { + "scope": { + "project": { "domain": { - "name": authDomain + "name": scopeDomain }, - "password": password, - "name": username + "id": scopeProject } }, - "methods": [ - "password" - ] - } + "identity": { + "password": { + "user": { + "domain": { + "name": authDomain + }, + "password": password, + "name": username + } + }, + "methods": [ + "password" + ] + } } }