Skip to content

Commit 9ea5268

Browse files
committed
update user metadata table name
1 parent f360de1 commit 9ea5268

File tree

2 files changed

+37
-27
lines changed

2 files changed

+37
-27
lines changed

lib/pbench/server/api/resources/metadata_api.py

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from flask_restful import Resource, abort
22
from flask import request, make_response, jsonify
3-
from pbench.server.database.models.metadata import Metadata
3+
from pbench.server.database.models.metadata import UserMetadata
44
from pbench.server.api.auth import Auth
55

66

@@ -46,25 +46,31 @@ def post(self):
4646
self.logger.warning("Invalid json object: {}", request.url)
4747
abort(400, message="Invalid json object in request")
4848

49+
current_user = self.auth.token_auth.current_user()
50+
if current_user:
51+
current_user_id = current_user.id
52+
else:
53+
current_user_id = None
54+
4955
value = post_data.get("value")
5056
if value is None:
51-
self.logger.warning("Value not provided during metadata creation.")
57+
self.logger.warning(
58+
"Value not provided during metadata creation. User_id: {}",
59+
current_user_id,
60+
)
5261
abort(400, message="Value field missing")
5362

5463
metadata_key = post_data.get("key")
5564
if metadata_key is None:
56-
self.logger.warning("Key not provided during metadata creation.")
65+
self.logger.warning(
66+
"Key not provided during metadata creation. User_id: {}",
67+
current_user_id,
68+
)
5769
abort(400, message="Key field missing")
5870

59-
current_user = self.auth.token_auth.current_user()
60-
if current_user:
61-
current_user_id = current_user.id
62-
else:
63-
current_user_id = None
64-
6571
try:
6672
# Create a new metadata object
67-
metadata_object = Metadata(
73+
metadata_object = UserMetadata(
6874
value=value, key=metadata_key.lower(), user_id=current_user_id
6975
)
7076
# insert the metadata object for a user
@@ -125,7 +131,9 @@ def get(self, key):
125131
current_user_id = None
126132
try:
127133
# Query the metadata object with a given key
128-
metadata_objects = Metadata.query(user_id=current_user_id, key=key.lower())
134+
metadata_objects = UserMetadata.query(
135+
user_id=current_user_id, key=key.lower()
136+
)
129137
data = [
130138
metadata.get_json(include=["id", "created", "updated", "value"])
131139
for metadata in metadata_objects
@@ -173,7 +181,7 @@ def verify_metadata(self, metadata):
173181
return True
174182

175183
@Auth.token_auth.login_required(optional=True)
176-
def get(self, id=None):
184+
def get(self, id):
177185
"""
178186
Get request for querying a metadata object of a user given a metadata id.
179187
This requires a Pbench auth token in the header field if the metadata object is private to a user
@@ -201,7 +209,7 @@ def get(self, id=None):
201209

202210
try:
203211
# Fetch the metadata object
204-
metadata_objects = Metadata.query(id=id)
212+
metadata_objects = UserMetadata.query(id=id)
205213
except Exception:
206214
self.logger.exception(
207215
"Exception occurred in the GET request while querying the Metadata model, id: {}",
@@ -226,7 +234,7 @@ def get(self, id=None):
226234
return make_response(jsonify(response_object), 200)
227235

228236
@Auth.token_auth.login_required(optional=True)
229-
def put(self, id=None):
237+
def put(self, id):
230238
"""
231239
Put request for updating a metadata object of a user given a metadata id.
232240
This requires a Pbench auth token in the header field
@@ -255,15 +263,15 @@ def put(self, id=None):
255263
"""
256264
if id is None:
257265
self.logger.warning("Metadata id not provided during metadata query")
258-
abort(400, message="Please provide a metadata id to query")
266+
abort(400, message="Missing metadata id in the URI for update operation")
259267

260268
post_data = request.get_json()
261269
if not post_data:
262270
self.logger.warning("Invalid json object: {}", request.url)
263271
abort(400, message="Invalid json object in request")
264272

265273
try:
266-
metadata_objects = Metadata.query(id=id)
274+
metadata_objects = UserMetadata.query(id=id)
267275
except Exception:
268276
self.logger.exception(
269277
"Exception occurred in the PUT request while querying the Metadata model, id: {}",
@@ -284,15 +292,17 @@ def put(self, id=None):
284292
# not present in the metadata db. If any key in the payload does not match
285293
# with the column name we will abort the update request.
286294
non_existent = set(post_data.keys()).difference(
287-
set(Metadata.__table__.columns.keys())
295+
set(UserMetadata.__table__.columns.keys())
288296
)
289297
if non_existent:
290298
self.logger.warning(
291299
"User trying to update fields that are not present in the metadata database. Fields: {}",
292300
non_existent,
293301
)
294302
abort(400, message="Invalid fields in update request payload")
295-
protected = set(post_data.keys()).intersection(set(Metadata.get_protected()))
303+
protected = set(post_data.keys()).intersection(
304+
set(UserMetadata.get_protected())
305+
)
296306
for field in protected:
297307
if getattr(metadata_object, field) != post_data[field]:
298308
self.logger.warning(
@@ -314,7 +324,7 @@ def put(self, id=None):
314324
return make_response(jsonify(response_object), 200)
315325

316326
@Auth.token_auth.login_required(optional=True)
317-
def delete(self, id=None):
327+
def delete(self, id):
318328
"""
319329
Delete request for deleting a metadata object of a user given a metadata id.
320330
This requires a Pbench auth token in the header field
@@ -331,11 +341,11 @@ def delete(self, id=None):
331341
"""
332342
if id is None:
333343
self.logger.warning("Metadata id not provided during metadata query")
334-
abort(400, message="Please provide a metadata id to query")
344+
abort(400, message="Missing metadata id in the URI for delete operation")
335345

336346
try:
337347
# Fetch the metadata object
338-
metadata_objects = Metadata.query(id=id)
348+
metadata_objects = UserMetadata.query(id=id)
339349
except Exception:
340350
self.logger.exception(
341351
"Exception occurred in the Delete request while querying the Metadata model, id: {}",
@@ -354,7 +364,7 @@ def delete(self, id=None):
354364

355365
try:
356366
# Delete the metadata object
357-
Metadata.delete(id=id)
367+
UserMetadata.delete(id=id)
358368
except Exception:
359369
self.logger.exception(
360370
"Exception occurred in the while deleting the metadata entry, id: {}",

lib/pbench/server/database/models/metadata.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Text
44

55

6-
class Metadata(Database.Base):
6+
class UserMetadata(Database.Base):
77
""" Metadata Model for storing user metadata details """
88

99
# TODO: Think about the better name
10-
__tablename__ = "metadata"
10+
__tablename__ = "user_metadata"
1111

1212
id = Column(Integer, primary_key=True, autoincrement=True)
1313
created = Column(DateTime, nullable=False, default=datetime.datetime.now())
@@ -28,9 +28,9 @@ def get_protected():
2828

2929
@staticmethod
3030
def query(**kwargs):
31-
query = Database.db_session.query(Metadata)
31+
query = Database.db_session.query(UserMetadata)
3232
for attr, value in kwargs.items():
33-
query = query.filter(getattr(Metadata, attr) == value)
33+
query = query.filter(getattr(UserMetadata, attr) == value)
3434
return query.all()
3535

3636
def add(self):
@@ -64,7 +64,7 @@ def delete(id):
6464
:return:
6565
"""
6666
try:
67-
metadata_query = Database.db_session.query(Metadata).filter_by(id=id)
67+
metadata_query = Database.db_session.query(UserMetadata).filter_by(id=id)
6868
metadata_query.delete()
6969
Database.db_session.commit()
7070
return True

0 commit comments

Comments
 (0)