Add UUID in API model

The only way we have currently to find the id of a ressource when
querying the API (for instance GET /v1/plans) is to parse the uri
field of the json object we get as a result

This patch simply add the uuid field to the api model.

It also disable the possibility for someone to specify its own
uuid when creating an object and fix a bug in fakes.py (comma at
the end of line) that was causing tests failures in this patch

Change-Id: Ie38fc2646b2d7e2cc146dc34382c2c841af0fa33
This commit is contained in:
Julien Vey
2014-02-28 17:33:15 +01:00
parent ca9bb8ee2d
commit c1e770d776
12 changed files with 24 additions and 11 deletions

View File

@@ -24,6 +24,9 @@ class Base(wtypes.Base):
uri = common_types.Uri
"URI to the resource."
uuid = wtypes.text
"Unique Identifier of the resource"
name = wtypes.text
"Name of the resource."

View File

@@ -47,8 +47,8 @@ class AssemblyHandler(handler.Handler):
def create(self, data):
"""Create a new resource."""
db_obj = objects.registry.Assembly()
db_obj.uuid = str(uuid.uuid4())
self._update_db_object(db_obj, data)
db_obj.uuid = str(uuid.uuid4())
db_obj.create(None)
return db_obj

View File

@@ -48,8 +48,8 @@ class ExtensionHandler(handler.Handler):
def create(self, data):
"""Create a new extension."""
db_obj = objects.registry.Extension()
db_obj.uuid = str(uuid.uuid4())
self._update_db_object(db_obj, data)
db_obj.uuid = str(uuid.uuid4())
db_obj.create()
return db_obj

View File

@@ -52,8 +52,8 @@ class PlanHandler(handler.Handler):
def create(self, data):
"""Create a new resource."""
db_obj = objects.registry.Plan()
db_obj.uuid = str(uuid.uuid4())
self._update_db_object(db_obj, data)
db_obj.uuid = str(uuid.uuid4())
db_obj.create(None)
return db_obj

View File

@@ -48,8 +48,8 @@ class SensorHandler(handler.Handler):
def create(self, data):
"""Create a new sensor."""
db_obj = objects.registry.Sensor()
db_obj.uuid = str(uuid.uuid4())
self._update_db_object(db_obj, data)
db_obj.uuid = str(uuid.uuid4())
db_obj.create()
return db_obj

View File

@@ -47,8 +47,8 @@ class ServiceHandler(handler.Handler):
def create(self, data):
"""Create a new resource."""
db_obj = objects.registry.Service()
db_obj.uuid = str(uuid.uuid4())
self._update_db_object(db_obj, data)
db_obj.uuid = str(uuid.uuid4())
db_obj.create(None)
return db_obj

View File

@@ -48,10 +48,12 @@ class TestAssemblyHandler(base.BaseTestCase):
'test_id')
def test_create(self, mock_registry):
data = {'user_id': 'new_user_id'}
data = {'user_id': 'new_user_id',
'uuid': 'input_uuid'}
handler = assembly_handler.AssemblyHandler()
res = handler.create(data)
self.assertEqual('new_user_id', res.user_id)
self.assertNotEqual('uuid', res.uuid)
def test_delete(self, mock_registry):
db_obj = fakes.FakeAssembly()

View File

@@ -55,10 +55,12 @@ class TestExtensionHandler(base.BaseTestCase):
'test_id')
def test_extension_create(self, mock_registry):
data = {'user_id': 'new_user_id'}
data = {'user_id': 'new_user_id',
'uuid': 'input_uuid'}
handler = extension.ExtensionHandler()
res = handler.create(data)
self.assertEqual('new_user_id', res.user_id)
self.assertNotEqual('uuid', res.uuid)
def test_extension_delete(self, mock_registry):
db_obj = fakes.FakeExtension()

View File

@@ -48,10 +48,12 @@ class TestPlanHandler(base.BaseTestCase):
'test_id')
def test_plan_create(self, mock_registry):
data = {'user_id': 'new_user_id'}
data = {'user_id': 'new_user_id',
'uuid': 'input_uuid'}
handler = plan_handler.PlanHandler()
res = handler.create(data)
self.assertEqual('new_user_id', res.user_id)
self.assertNotEqual('uuid', res.uuid)
def test_plan_delete(self, mock_registry):
db_obj = fakes.FakePlan()

View File

@@ -56,10 +56,12 @@ class TestSensorHandler(base.BaseTestCase):
'test_id')
def test_sensor_create(self, mock_registry):
data = {'user_id': 'new_user_id'}
data = {'user_id': 'new_user_id',
'uuid': 'input_uuid'}
handler = sensor.SensorHandler()
res = handler.create(data)
self.assertEqual('new_user_id', res.user_id)
self.assertNotEqual('uuid', res.uuid)
def test_sensor_delete(self, mock_registry):
db_obj = fakes.FakeSensor()

View File

@@ -48,10 +48,12 @@ class TestServiceHandler(base.BaseTestCase):
'test_id')
def test_create(self, mock_registry):
data = {'user_id': 'new_user_id'}
data = {'user_id': 'new_user_id',
'uuid': 'input_uuid'}
handler = service_handler.ServiceHandler()
res = handler.create(data)
self.assertEqual('new_user_id', res.user_id)
self.assertNotEqual('uuid', res.uuid)
def test_delete(self, mock_registry):
db_obj = fakes.FakeService()

View File

@@ -111,7 +111,7 @@ class FakeExtension(mock.Mock):
self.__resource__ = 'extension'
self.user_id = 'user_id'
self.project_id = 'test_id'
self.uuid = '44du3dx',
self.uuid = '44du3dx'
self.documentation = 'http://test_documentation.com'
self.description = 'test_desc'
self.id = 'test_id'