فهرست منبع

[metastore] Switch alter column API to get column name from POST data

This is more ajax friendly
Romain Rigaux 10 سال پیش
والد
کامیت
b1528b5
3فایلهای تغییر یافته به همراه7 افزوده شده و 6 حذف شده
  1. 4 4
      apps/metastore/src/metastore/tests.py
  2. 1 1
      apps/metastore/src/metastore/urls.py
  3. 2 1
      apps/metastore/src/metastore/views.py

+ 4 - 4
apps/metastore/src/metastore/tests.py

@@ -362,8 +362,8 @@ class TestMetastoreWithHadoop(BeeswaxSampleProvider):
 
     # Alter name, type and comment
     resp = self.client.post(reverse("metastore:alter_column",
-                                    kwargs={'database': self.db_name, 'table': 'test_alter_column', 'column': 'before_alter'}),
-                            {'new_column_name': 'after_alter', 'new_column_type': 'string', 'comment': 'alter comment'})
+                                    kwargs={'database': self.db_name, 'table': 'test_alter_column'}),
+                            {'column': 'before_alter', 'new_column_name': 'after_alter', 'new_column_type': 'string', 'comment': 'alter comment'})
     json_resp = json.loads(resp.content)
     assert_equal('after_alter', json_resp['data']['name'], json_resp)
     assert_equal('string', json_resp['data']['type'], json_resp)
@@ -371,8 +371,8 @@ class TestMetastoreWithHadoop(BeeswaxSampleProvider):
 
     # Invalid column type returns error response
     resp = self.client.post(reverse("metastore:alter_column",
-                                    kwargs={'database': self.db_name, 'table': 'test_alter_column', 'column': 'before_alter'}),
-                            {'new_column_name': 'foo'})
+                                    kwargs={'database': self.db_name, 'table': 'test_alter_column'}),
+                            {'column': 'before_alter', 'new_column_name': 'foo'})
     json_resp = json.loads(resp.content)
     assert_equal(1, json_resp['status'], json_resp)
     assert_true('Failed to alter column' in json_resp['data'], json_resp)

+ 1 - 1
apps/metastore/src/metastore/urls.py

@@ -35,5 +35,5 @@ urlpatterns = patterns('metastore.views',
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/(?P<partition_spec>.+?)/read$', 'read_partition', name='read_partition'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/(?P<partition_spec>.+?)/browse$', 'browse_partition', name='browse_partition'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/drop$', 'drop_partition', name='drop_partition'),
-  url(r'^table/(?P<database>\w+)/(?P<table>\w+)/(?P<column>\w+)/alter', 'alter_column', name='alter_column'),
+  url(r'^table/(?P<database>\w+)/(?P<table>\w+)/alter_column', 'alter_column', name='alter_column'),
 )

+ 2 - 1
apps/metastore/src/metastore/views.py

@@ -263,10 +263,11 @@ def describe_table(request, database, table):
 
 @check_has_write_access_permission
 @require_http_methods(["POST"])
-def alter_column(request, database, table, column):
+def alter_column(request, database, table):
   db = dbms.get(request.user)
   response = {'status': -1, 'data': ''}
   try:
+    column = request.POST.get('column')
     col = db.get_column(database, table, column)
     if col:
       new_column_name = request.POST.get('new_column_name', col.name)