On 02/13/2014 10:07 PM, Aline Manera wrote:
From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
Define PackageUpdate resource features according to API.md
Activate auth support to new resource
Signed-off-by: Paulo Vital <pvital(a)linux.vnet.ibm.com>
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
Signed-off-by: Aline Manera <alinefm(a)br.ibm.com>
---
src/kimchi/control/host.py | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/src/kimchi/control/host.py b/src/kimchi/control/host.py
index 053c822..b4dd544 100644
--- a/src/kimchi/control/host.py
+++ b/src/kimchi/control/host.py
@@ -23,8 +23,12 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+import cherrypy
+
from kimchi.control.base import Collection, Resource
from kimchi.control.utils import UrlSubNode
+from kimchi.exception import OperationFailed
+from kimchi.template import render
@UrlSubNode("host", True)
@@ -36,6 +40,7 @@ class Host(Resource):
self.shutdown = self.generate_action_handler('shutdown')
self.stats = HostStats(self.model)
self.partitions = Partitions(self.model)
+ self.packagesupdate = PackagesUpdate(self.model)
@property
def data(self):
@@ -61,3 +66,27 @@ class Partition(Resource):
@property
def data(self):
return self.info
+
+
+class PackagesUpdate(Collection):
+ def __init__(self, model):
+ super(PackagesUpdate, self).__init__(model)
+ self.resource = PackageUpdate
+
+ @cherrypy.expose
Oh, from your document,
+**Actions (POST):**
+
+* update: Start the update of packages in background and return a Task
resource
+ * task resource. * See Resource: Task *
This should be a POST method.
Now it support all method: DELETE,POST,PUT,GET.
you can have a try
# curl -u <user> -H 'Content-type: application/json' -H 'Accept:
application/json'
http://localhost:8000/host/packagesupdate/update -x DELETE
+ def update(self):
+ try:
+ task = self.model.packagesupdate_update()
+ cherrypy.response.status = 202
+ return render("Task", task)
+ except OperationFailed, e:
+ raise cherrypy.HTTPError(500, e.message)
+
+
+class PackageUpdate(Resource):
+ def __init__(self, model, id=None):
+ super(PackageUpdate, self).__init__(model, id)
+
+ @property
+ def data(self):
+ return self.info
--
Thanks and best regards!
Sheldon Feng(冯少合)<shaohef(a)linux.vnet.ibm.com>
IBM Linux Technology Center