From 5c8457d7e0ca068c70062aa6baaaa072808cd62c Mon Sep 17 00:00:00 2001 From: Petr Blaho Date: Wed, 25 Mar 2015 17:08:06 +0100 Subject: [PATCH] Adds RESTlike methods to Plan of Planning service Adds destroy, save, create and update methods to Plan model of OpenStack Planning service. --- lib/fog/openstack/models/planning/plan.rb | 23 +++++++++++++++++++ tests/openstack/models/planning/plan_tests.rb | 16 +++++++++++++ 2 files changed, 39 insertions(+) diff --git a/lib/fog/openstack/models/planning/plan.rb b/lib/fog/openstack/models/planning/plan.rb index 60057f5f7..9ffec3cb1 100644 --- a/lib/fog/openstack/models/planning/plan.rb +++ b/lib/fog/openstack/models/planning/plan.rb @@ -52,6 +52,29 @@ module Fog def remove_role(role_uuid) service.remove_role_from_plan(uuid, role_uuid) end + + def destroy + requires :uuid + service.delete_plan(uuid) + true + end + + def save + requires :name + identity ? update : create + end + + def create + requires :name + merge_attributes(service.create_plan(self.attributes).body) + self + end + + def update(parameters=nil) + requires :uuid + merge_attributes(service.patch_plan(uuid, parameters).body) + self + end end end end diff --git a/tests/openstack/models/planning/plan_tests.rb b/tests/openstack/models/planning/plan_tests.rb index f4ff3455a..bca079f7d 100644 --- a/tests/openstack/models/planning/plan_tests.rb +++ b/tests/openstack/models/planning/plan_tests.rb @@ -31,5 +31,21 @@ Shindo.tests("Fog::Openstack[:planning] | plan", ['openstack']) do tests('#remove_role').succeeds do @instance.remove_role(@role['uuid']) end + + tests('#save').succeeds do + @instance.save + end + + tests('#update').succeeds do + @instance.update + end + + tests('#destroy').succeeds do + @instance.destroy + end + + tests('#create').succeeds do + @instance.create + end end end