
From: Paulo Vital <pvital@linux.vnet.ibm.com>
Define PackageUpdate resource features according to API.md Activate auth support to new resource
Signed-off-by: Paulo Vital <pvital@linux.vnet.ibm.com> Signed-off-by: Ramon Medeiros <ramonn@linux.vnet.ibm.com> Signed-off-by: Aline Manera <alinefm@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):**
On 02/13/2014 10:07 PM, Aline Manera wrote: + +* 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@linux.vnet.ibm.com> IBM Linux Technology Center