You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/09 15:21:20 UTC

[43/50] [abbrv] git commit: updated refs/heads/marvin_refactor to 2a99064

actions on entity object require id for performing the action

For eg:
1. nf = NetworkOffering.create(apiClient, NetworkOfferingFactory())
2. nf.update(apiClient, state='Enabled')

Operation #2 requires that nf's id be supplied to enable the network
offering

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cef66347
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cef66347
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cef66347

Branch: refs/heads/marvin_refactor
Commit: cef66347af28e4558216c4518c8f5eaa79a5cb4c
Parents: be71fae
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Mar 31 19:23:49 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Mar 31 22:19:28 2013 +0530

----------------------------------------------------------------------
 .../marvin/marvin/integration/lib/base/Account.py  |   22 ++++--
 .../integration/lib/base/AccountFromProject.py     |    8 +-
 .../integration/lib/base/AccountToProject.py       |    8 +-
 tools/marvin/marvin/integration/lib/base/Alerts.py |    7 +-
 .../marvin/marvin/integration/lib/base/ApiLimit.py |   12 ++--
 tools/marvin/marvin/integration/lib/base/Apis.py   |    2 +-
 .../marvin/integration/lib/base/AsyncJobResult.py  |    8 +-
 .../marvin/integration/lib/base/AsyncJobs.py       |    2 +-
 .../integration/lib/base/AutoScalePolicies.py      |    2 +-
 .../marvin/integration/lib/base/AutoScalePolicy.py |    8 ++-
 .../integration/lib/base/AutoScaleVmGroup.py       |   18 +++-
 .../integration/lib/base/AutoScaleVmProfile.py     |   10 ++-
 .../integration/lib/base/BigSwitchVnsDevice.py     |   11 ++-
 .../marvin/integration/lib/base/Capabilities.py    |    2 +-
 .../marvin/marvin/integration/lib/base/Capacity.py |    2 +-
 .../marvin/integration/lib/base/CloudIdentifier.py |    8 +-
 .../marvin/marvin/integration/lib/base/Cluster.py  |   14 +++-
 .../marvin/integration/lib/base/Condition.py       |    6 +-
 tools/marvin/marvin/integration/lib/base/Config.py |    4 +-
 .../marvin/integration/lib/base/Configuration.py   |    6 +-
 .../marvin/marvin/integration/lib/base/Counter.py  |    6 +-
 .../integration/lib/base/CustomCertificate.py      |    8 +-
 .../lib/base/DefaultNicForVirtualMachine.py        |    5 +-
 .../integration/lib/base/DefaultZoneForAccount.py  |    8 +-
 .../marvin/integration/lib/base/DiskOffering.py    |   10 ++-
 tools/marvin/marvin/integration/lib/base/Domain.py |   10 ++-
 .../marvin/integration/lib/base/DomainChildren.py  |    2 +-
 .../integration/lib/base/EgressFirewallRule.py     |    7 +-
 .../marvin/integration/lib/base/EventTypes.py      |    2 +-
 tools/marvin/marvin/integration/lib/base/Events.py |    7 +-
 .../marvin/integration/lib/base/FirewallRule.py    |    6 +-
 .../lib/base/FromGlobalLoadBalancerRule.py         |   34 ++++++++
 .../integration/lib/base/FromLoadBalancerRule.py   |    8 +-
 .../integration/lib/base/GlobalLoadBalancerRule.py |   62 ++++++++++++++
 tools/marvin/marvin/integration/lib/base/Host.py   |   18 +++-
 .../integration/lib/base/HostForMaintenance.py     |    8 +-
 .../marvin/integration/lib/base/HostMaintenance.py |    8 +-
 .../marvin/integration/lib/base/HostPassword.py    |    8 +-
 .../integration/lib/base/HypervisorCapabilities.py |    6 +-
 .../marvin/integration/lib/base/Hypervisors.py     |    2 +-
 .../marvin/integration/lib/base/InstanceGroup.py   |   10 ++-
 .../marvin/integration/lib/base/IpAddress.py       |   12 ++--
 .../integration/lib/base/IpForwardingRule.py       |    6 +-
 .../marvin/integration/lib/base/IpFromNic.py       |    5 +-
 .../marvin/marvin/integration/lib/base/IpToNic.py  |    5 +-
 tools/marvin/marvin/integration/lib/base/Iso.py    |   30 +++++--
 .../marvin/integration/lib/base/IsoPermissions.py  |    6 +-
 .../integration/lib/base/LBHealthCheckPolicies.py  |   33 ++++++++
 .../integration/lib/base/LBHealthCheckPolicy.py    |   43 ++++++++++
 .../integration/lib/base/LBStickinessPolicies.py   |    2 +-
 .../integration/lib/base/LBStickinessPolicy.py     |    4 +-
 .../integration/lib/base/LoadBalancerRule.py       |   10 ++-
 .../lib/base/LoadBalancerRuleInstances.py          |    2 +-
 .../marvin/marvin/integration/lib/base/Network.py  |   14 +++-
 .../marvin/integration/lib/base/NetworkACL.py      |    6 +-
 .../marvin/integration/lib/base/NetworkDevice.py   |   10 ++-
 .../marvin/integration/lib/base/NetworkOffering.py |   10 ++-
 .../integration/lib/base/NetworkServiceProvider.py |   14 +++-
 .../integration/lib/base/NicFromVirtualMachine.py  |    5 +-
 .../integration/lib/base/NicToVirtualMachine.py    |    5 +-
 .../marvin/integration/lib/base/NiciraNvpDevice.py |   10 ++-
 .../lib/base/NiciraNvpDeviceNetworks.py            |    2 +-
 tools/marvin/marvin/integration/lib/base/Nics.py   |    3 +-
 .../marvin/integration/lib/base/OsCategories.py    |    2 +-
 .../marvin/marvin/integration/lib/base/OsTypes.py  |    2 +-
 .../lib/base/PasswordForVirtualMachine.py          |    8 +-
 .../marvin/integration/lib/base/PhysicalNetwork.py |   10 ++-
 tools/marvin/marvin/integration/lib/base/Pod.py    |   10 ++-
 .../integration/lib/base/PortForwardingRule.py     |   10 ++-
 .../marvin/integration/lib/base/PrivateGateway.py  |    6 +-
 .../marvin/marvin/integration/lib/base/Project.py  |   18 +++-
 .../marvin/integration/lib/base/ProjectAccounts.py |    2 +-
 .../integration/lib/base/ProjectInvitation.py      |   10 ++-
 .../integration/lib/base/PublicIpAddresses.py      |    2 +-
 tools/marvin/marvin/integration/lib/base/Region.py |   15 +++-
 .../marvin/integration/lib/base/RemoteAccessVpn.py |    6 +-
 tools/marvin/marvin/integration/lib/base/Remove.py |    4 +-
 .../marvin/integration/lib/base/ResourceCount.py   |    8 +-
 .../marvin/integration/lib/base/ResourceLimit.py   |    6 +-
 tools/marvin/marvin/integration/lib/base/Router.py |   18 +++-
 tools/marvin/marvin/integration/lib/base/S3.py     |    6 +-
 .../lib/base/SSHKeyForVirtualMachine.py            |    5 +-
 .../marvin/integration/lib/base/SSHKeyPair.py      |   10 ++-
 .../integration/lib/base/SecondaryStorage.py       |    8 +-
 .../marvin/integration/lib/base/SecurityGroup.py   |    6 +-
 .../integration/lib/base/SecurityGroupEgress.py    |   12 ++--
 .../integration/lib/base/SecurityGroupIngress.py   |   12 ++--
 .../integration/lib/base/ServiceForRouter.py       |    8 +-
 .../integration/lib/base/ServiceForSystemVm.py     |    8 +-
 .../lib/base/ServiceForVirtualMachine.py           |    8 +-
 .../marvin/integration/lib/base/ServiceOffering.py |   10 ++-
 .../marvin/integration/lib/base/Simulator.py       |    5 +-
 .../marvin/marvin/integration/lib/base/Snapshot.py |    6 +-
 .../integration/lib/base/SnapshotPolicies.py       |    6 +-
 .../marvin/integration/lib/base/StaticNat.py       |   12 ++--
 .../marvin/integration/lib/base/StaticRoute.py     |    6 +-
 .../integration/lib/base/StorageMaintenance.py     |   12 ++--
 .../integration/lib/base/StorageNetworkIpRange.py  |   10 ++-
 .../marvin/integration/lib/base/StoragePool.py     |   10 ++-
 .../integration/lib/base/StorageProviders.py       |   33 ++++++++
 .../lib/base/SupportedNetworkServices.py           |    2 +-
 tools/marvin/marvin/integration/lib/base/Swift.py  |    6 +-
 .../marvin/marvin/integration/lib/base/SystemVm.py |   22 ++++--
 tools/marvin/marvin/integration/lib/base/Tags.py   |    6 +-
 .../marvin/marvin/integration/lib/base/Template.py |   26 +++++--
 .../integration/lib/base/TemplatePermissions.py    |    6 +-
 .../lib/base/ToGlobalLoadBalancerRule.py           |   34 ++++++++
 .../integration/lib/base/ToLoadBalancerRule.py     |    8 +-
 .../marvin/integration/lib/base/TrafficMonitor.py  |   10 ++-
 .../marvin/integration/lib/base/TrafficType.py     |   14 +++-
 .../lib/base/TrafficTypeImplementors.py            |    2 +-
 .../marvin/integration/lib/base/UsageRecords.py    |    6 +-
 .../marvin/integration/lib/base/UsageTypes.py      |    2 +-
 tools/marvin/marvin/integration/lib/base/User.py   |   26 +++++--
 .../marvin/marvin/integration/lib/base/UserKeys.py |    8 +-
 .../marvin/integration/lib/base/VMPassword.py      |    8 +-
 .../marvin/integration/lib/base/VMSnapshot.py      |    7 +-
 tools/marvin/marvin/integration/lib/base/VPC.py    |   14 +++-
 .../marvin/integration/lib/base/VPCOffering.py     |   10 ++-
 .../marvin/integration/lib/base/VirtualMachine.py  |   45 ++++++++--
 .../integration/lib/base/VirtualRouterElement.py   |    6 +-
 .../marvin/integration/lib/base/VlanIpRange.py     |    6 +-
 tools/marvin/marvin/integration/lib/base/Volume.py |   26 +++++--
 .../marvin/integration/lib/base/VpnConnection.py   |   10 ++-
 .../integration/lib/base/VpnCustomerGateway.py     |   10 ++-
 .../marvin/integration/lib/base/VpnGateway.py      |    6 +-
 .../marvin/marvin/integration/lib/base/VpnUser.py  |   10 ++-
 tools/marvin/marvin/integration/lib/base/Zone.py   |   10 ++-
 .../integration/lib/factory/DiskOfferingFactory.py |    5 +-
 .../lib/factory/NetworkOfferingFactory.py          |   63 ++++++++++++++-
 .../integration/lib/factory/test/testFactories.py  |   29 ++++++-
 .../marvin/marvin/integration/lib/generateBase.py  |   10 ++-
 132 files changed, 1025 insertions(+), 390 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Account.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Account.py b/tools/marvin/marvin/integration/lib/base/Account.py
index c9698eb..7da8f9d 100644
--- a/tools/marvin/marvin/integration/lib/base/Account.py
+++ b/tools/marvin/marvin/integration/lib/base/Account.py
@@ -32,16 +32,20 @@ class Account(CloudStackEntity.CloudStackEntity):
 
     def enable(self, apiclient, **kwargs):
         cmd = enableAccount.enableAccountCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         account = apiclient.enableAccount(cmd)
+        return account
 
 
     def lock(self, apiclient, account, domainid, **kwargs):
         cmd = lockAccount.lockAccountCmd()
+        cmd.id = self.id
         cmd.account = account
         cmd.domainid = domainid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         account = apiclient.lockAccount(cmd)
+        return account
 
 
     @classmethod
@@ -56,28 +60,34 @@ class Account(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listAccounts.listAccountsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         account = apiclient.listAccounts(cmd)
         return map(lambda e: Account(e.__dict__), account)
 
 
     def update(self, apiclient, newname, **kwargs):
         cmd = updateAccount.updateAccountCmd()
+        cmd.id = self.id
         cmd.newname = newname
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         account = apiclient.updateAccount(cmd)
+        return account
 
 
     def disable(self, apiclient, lock, **kwargs):
         cmd = disableAccount.disableAccountCmd()
+        cmd.id = self.id
         cmd.lock = lock
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         account = apiclient.disableAccount(cmd)
+        return account
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteAccount.deleteAccountCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         account = apiclient.deleteAccount(cmd)
+        return account
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AccountFromProject.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AccountFromProject.py b/tools/marvin/marvin/integration/lib/base/AccountFromProject.py
index 092f5e2..de86c95 100644
--- a/tools/marvin/marvin/integration/lib/base/AccountFromProject.py
+++ b/tools/marvin/marvin/integration/lib/base/AccountFromProject.py
@@ -24,14 +24,12 @@ class AccountFromProject(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def delete(self, apiclient, projectid, account, **kwargs):
         cmd = deleteAccountFromProject.deleteAccountFromProjectCmd()
+        cmd.id = self.id
         cmd.account = account
         cmd.projectid = projectid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         accountfromproject = apiclient.deleteAccountFromProject(cmd)
+        return accountfromproject
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AccountToProject.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AccountToProject.py b/tools/marvin/marvin/integration/lib/base/AccountToProject.py
index a1bdccf..568464a 100644
--- a/tools/marvin/marvin/integration/lib/base/AccountToProject.py
+++ b/tools/marvin/marvin/integration/lib/base/AccountToProject.py
@@ -24,13 +24,11 @@ class AccountToProject(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def add(self, apiclient, projectid, **kwargs):
         cmd = addAccountToProject.addAccountToProjectCmd()
+        cmd.id = self.id
         cmd.projectid = projectid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         accounttoproject = apiclient.addAccountToProject(cmd)
+        return accounttoproject
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Alerts.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Alerts.py b/tools/marvin/marvin/integration/lib/base/Alerts.py
index e31451b..423aba8 100644
--- a/tools/marvin/marvin/integration/lib/base/Alerts.py
+++ b/tools/marvin/marvin/integration/lib/base/Alerts.py
@@ -28,12 +28,15 @@ class Alerts(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listAlerts.listAlertsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         alerts = apiclient.listAlerts(cmd)
         return map(lambda e: Alerts(e.__dict__), alerts)
 
 
     def delete(self, apiclient, **kwargs):
         cmd = deleteAlerts.deleteAlertsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         alerts = apiclient.deleteAlerts(cmd)
+        return alerts
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/ApiLimit.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/ApiLimit.py b/tools/marvin/marvin/integration/lib/base/ApiLimit.py
index 4a56df8..2e895c1 100644
--- a/tools/marvin/marvin/integration/lib/base/ApiLimit.py
+++ b/tools/marvin/marvin/integration/lib/base/ApiLimit.py
@@ -25,18 +25,18 @@ class ApiLimit(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def reset(self, apiclient, **kwargs):
         cmd = resetApiLimit.resetApiLimitCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         apilimit = apiclient.resetApiLimit(cmd)
+        return apilimit
 
 
     def get(self, apiclient, **kwargs):
         cmd = getApiLimit.getApiLimitCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         apilimit = apiclient.getApiLimit(cmd)
+        return apilimit
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Apis.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Apis.py b/tools/marvin/marvin/integration/lib/base/Apis.py
index f634781..f8bba1f 100644
--- a/tools/marvin/marvin/integration/lib/base/Apis.py
+++ b/tools/marvin/marvin/integration/lib/base/Apis.py
@@ -27,7 +27,7 @@ class Apis(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listApis.listApisCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         apis = apiclient.listApis(cmd)
         return map(lambda e: Apis(e.__dict__), apis)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py b/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py
index 5383684..674217c 100644
--- a/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py
+++ b/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py
@@ -24,13 +24,11 @@ class AsyncJobResult(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def query(self, apiclient, jobid, **kwargs):
         cmd = queryAsyncJobResult.queryAsyncJobResultCmd()
+        cmd.id = self.id
         cmd.jobid = jobid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         asyncjobresult = apiclient.queryAsyncJobResult(cmd)
+        return asyncjobresult
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AsyncJobs.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AsyncJobs.py b/tools/marvin/marvin/integration/lib/base/AsyncJobs.py
index 451bb7f..689e562 100644
--- a/tools/marvin/marvin/integration/lib/base/AsyncJobs.py
+++ b/tools/marvin/marvin/integration/lib/base/AsyncJobs.py
@@ -27,7 +27,7 @@ class AsyncJobs(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listAsyncJobs.listAsyncJobsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         asyncjobs = apiclient.listAsyncJobs(cmd)
         return map(lambda e: AsyncJobs(e.__dict__), asyncjobs)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py b/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py
index 5e5f3ed..2866887 100644
--- a/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py
+++ b/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py
@@ -27,7 +27,7 @@ class AutoScalePolicies(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listAutoScalePolicies.listAutoScalePoliciesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalepolicies = apiclient.listAutoScalePolicies(cmd)
         return map(lambda e: AutoScalePolicies(e.__dict__), autoscalepolicies)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py b/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py
index 7ffcd82..04411ad 100644
--- a/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py
+++ b/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py
@@ -37,14 +37,18 @@ class AutoScalePolicy(CloudStackEntity.CloudStackEntity):
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateAutoScalePolicy.updateAutoScalePolicyCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalepolicy = apiclient.updateAutoScalePolicy(cmd)
+        return autoscalepolicy
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteAutoScalePolicy.deleteAutoScalePolicyCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalepolicy = apiclient.deleteAutoScalePolicy(cmd)
+        return autoscalepolicy
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py b/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py
index fc48b61..30b2091 100644
--- a/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py
+++ b/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py
@@ -31,9 +31,11 @@ class AutoScaleVmGroup(CloudStackEntity.CloudStackEntity):
 
     def enable(self, apiclient, id, **kwargs):
         cmd = enableAutoScaleVmGroup.enableAutoScaleVmGroupCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmgroup = apiclient.enableAutoScaleVmGroup(cmd)
+        return autoscalevmgroup
 
 
     @classmethod
@@ -48,28 +50,34 @@ class AutoScaleVmGroup(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listAutoScaleVmGroups.listAutoScaleVmGroupsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmgroup = apiclient.listAutoScaleVmGroups(cmd)
         return map(lambda e: AutoScaleVmGroup(e.__dict__), autoscalevmgroup)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateAutoScaleVmGroup.updateAutoScaleVmGroupCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmgroup = apiclient.updateAutoScaleVmGroup(cmd)
+        return autoscalevmgroup
 
 
     def disable(self, apiclient, id, **kwargs):
         cmd = disableAutoScaleVmGroup.disableAutoScaleVmGroupCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmgroup = apiclient.disableAutoScaleVmGroup(cmd)
+        return autoscalevmgroup
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteAutoScaleVmGroup.deleteAutoScaleVmGroupCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmgroup = apiclient.deleteAutoScaleVmGroup(cmd)
+        return autoscalevmgroup
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py b/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py
index 59c1b9e..5c21c9b 100644
--- a/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py
+++ b/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py
@@ -39,21 +39,25 @@ class AutoScaleVmProfile(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listAutoScaleVmProfiles.listAutoScaleVmProfilesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmprofile = apiclient.listAutoScaleVmProfiles(cmd)
         return map(lambda e: AutoScaleVmProfile(e.__dict__), autoscalevmprofile)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateAutoScaleVmProfile.updateAutoScaleVmProfileCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmprofile = apiclient.updateAutoScaleVmProfile(cmd)
+        return autoscalevmprofile
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteAutoScaleVmProfile.deleteAutoScaleVmProfileCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         autoscalevmprofile = apiclient.deleteAutoScaleVmProfile(cmd)
+        return autoscalevmprofile
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py b/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py
index 67b7054..5013755 100644
--- a/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py
+++ b/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py
@@ -28,22 +28,27 @@ class BigSwitchVnsDevice(CloudStackEntity.CloudStackEntity):
 
     def add(self, apiclient, physicalnetworkid, hostname, **kwargs):
         cmd = addBigSwitchVnsDevice.addBigSwitchVnsDeviceCmd()
+        cmd.id = self.id
         cmd.hostname = hostname
         cmd.physicalnetworkid = physicalnetworkid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         bigswitchvnsdevice = apiclient.addBigSwitchVnsDevice(cmd)
+        return bigswitchvnsdevice
 
 
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listBigSwitchVnsDevices.listBigSwitchVnsDevicesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         bigswitchvnsdevice = apiclient.listBigSwitchVnsDevices(cmd)
         return map(lambda e: BigSwitchVnsDevice(e.__dict__), bigswitchvnsdevice)
 
 
     def delete(self, apiclient, vnsdeviceid, **kwargs):
         cmd = deleteBigSwitchVnsDevice.deleteBigSwitchVnsDeviceCmd()
+        cmd.id = self.id
         cmd.vnsdeviceid = vnsdeviceid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         bigswitchvnsdevice = apiclient.deleteBigSwitchVnsDevice(cmd)
+        return bigswitchvnsdevice
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Capabilities.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Capabilities.py b/tools/marvin/marvin/integration/lib/base/Capabilities.py
index 6c35852..c7d1cf5 100644
--- a/tools/marvin/marvin/integration/lib/base/Capabilities.py
+++ b/tools/marvin/marvin/integration/lib/base/Capabilities.py
@@ -27,7 +27,7 @@ class Capabilities(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listCapabilities.listCapabilitiesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         capabilities = apiclient.listCapabilities(cmd)
         return map(lambda e: Capabilities(e.__dict__), capabilities)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Capacity.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Capacity.py b/tools/marvin/marvin/integration/lib/base/Capacity.py
index a989766..507524b 100644
--- a/tools/marvin/marvin/integration/lib/base/Capacity.py
+++ b/tools/marvin/marvin/integration/lib/base/Capacity.py
@@ -27,7 +27,7 @@ class Capacity(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listCapacity.listCapacityCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         capacity = apiclient.listCapacity(cmd)
         return map(lambda e: Capacity(e.__dict__), capacity)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py b/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py
index ed2dd6e..827b6bf 100644
--- a/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py
+++ b/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py
@@ -24,13 +24,11 @@ class CloudIdentifier(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def get(self, apiclient, userid, **kwargs):
         cmd = getCloudIdentifier.getCloudIdentifierCmd()
+        cmd.id = self.id
         cmd.userid = userid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         cloudidentifier = apiclient.getCloudIdentifier(cmd)
+        return cloudidentifier
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Cluster.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Cluster.py b/tools/marvin/marvin/integration/lib/base/Cluster.py
index 5ffae21..3808bf8 100644
--- a/tools/marvin/marvin/integration/lib/base/Cluster.py
+++ b/tools/marvin/marvin/integration/lib/base/Cluster.py
@@ -29,33 +29,39 @@ class Cluster(CloudStackEntity.CloudStackEntity):
 
     def add(self, apiclient, clustername, hypervisor, zoneid, clustertype, podid, **kwargs):
         cmd = addCluster.addClusterCmd()
+        cmd.id = self.id
         cmd.clustername = clustername
         cmd.clustertype = clustertype
         cmd.hypervisor = hypervisor
         cmd.podid = podid
         cmd.zoneid = zoneid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         cluster = apiclient.addCluster(cmd)
+        return cluster
 
 
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listClusters.listClustersCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         cluster = apiclient.listClusters(cmd)
         return map(lambda e: Cluster(e.__dict__), cluster)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateCluster.updateClusterCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         cluster = apiclient.updateCluster(cmd)
+        return cluster
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteCluster.deleteClusterCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         cluster = apiclient.deleteCluster(cmd)
+        return cluster
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Condition.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Condition.py b/tools/marvin/marvin/integration/lib/base/Condition.py
index c3189be..8d841f8 100644
--- a/tools/marvin/marvin/integration/lib/base/Condition.py
+++ b/tools/marvin/marvin/integration/lib/base/Condition.py
@@ -38,14 +38,16 @@ class Condition(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listConditions.listConditionsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         condition = apiclient.listConditions(cmd)
         return map(lambda e: Condition(e.__dict__), condition)
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteCondition.deleteConditionCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         condition = apiclient.deleteCondition(cmd)
+        return condition
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Config.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Config.py b/tools/marvin/marvin/integration/lib/base/Config.py
index 304c4f9..11d3a7b 100644
--- a/tools/marvin/marvin/integration/lib/base/Config.py
+++ b/tools/marvin/marvin/integration/lib/base/Config.py
@@ -26,6 +26,8 @@ class Config(CloudStackEntity.CloudStackEntity):
 
     def ldap(self, apiclient, **kwargs):
         cmd = ldapConfig.ldapConfigCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         config = apiclient.ldapConfig(cmd)
+        return config
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Configuration.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Configuration.py b/tools/marvin/marvin/integration/lib/base/Configuration.py
index 090bbc0..3968e15 100644
--- a/tools/marvin/marvin/integration/lib/base/Configuration.py
+++ b/tools/marvin/marvin/integration/lib/base/Configuration.py
@@ -28,14 +28,16 @@ class Configuration(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listConfigurations.listConfigurationsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         configuration = apiclient.listConfigurations(cmd)
         return map(lambda e: Configuration(e.__dict__), configuration)
 
 
     def update(self, apiclient, name, **kwargs):
         cmd = updateConfiguration.updateConfigurationCmd()
+        cmd.id = self.id
         cmd.name = name
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         configuration = apiclient.updateConfiguration(cmd)
+        return configuration
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Counter.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Counter.py b/tools/marvin/marvin/integration/lib/base/Counter.py
index 698fc7f..932182f 100644
--- a/tools/marvin/marvin/integration/lib/base/Counter.py
+++ b/tools/marvin/marvin/integration/lib/base/Counter.py
@@ -38,14 +38,16 @@ class Counter(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listCounters.listCountersCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         counter = apiclient.listCounters(cmd)
         return map(lambda e: Counter(e.__dict__), counter)
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteCounter.deleteCounterCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         counter = apiclient.deleteCounter(cmd)
+        return counter
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/CustomCertificate.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/CustomCertificate.py b/tools/marvin/marvin/integration/lib/base/CustomCertificate.py
index c9a2dbf..6e56004 100644
--- a/tools/marvin/marvin/integration/lib/base/CustomCertificate.py
+++ b/tools/marvin/marvin/integration/lib/base/CustomCertificate.py
@@ -24,14 +24,12 @@ class CustomCertificate(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def upload(self, apiclient, domainsuffix, certificate, **kwargs):
         cmd = uploadCustomCertificate.uploadCustomCertificateCmd()
+        cmd.id = self.id
         cmd.certificate = certificate
         cmd.domainsuffix = domainsuffix
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         customcertificate = apiclient.uploadCustomCertificate(cmd)
+        return customcertificate
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py
index 2d85219..0d227c1 100644
--- a/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py
+++ b/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py
@@ -26,7 +26,10 @@ class DefaultNicForVirtualMachine(CloudStackEntity.CloudStackEntity):
 
     def update(self, apiclient, nicid, virtualmachineid, **kwargs):
         cmd = updateDefaultNicForVirtualMachine.updateDefaultNicForVirtualMachineCmd()
+        cmd.id = self.id
         cmd.nicid = nicid
         cmd.virtualmachineid = virtualmachineid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         defaultnicforvirtualmachine = apiclient.updateDefaultNicForVirtualMachine(cmd)
+        return defaultnicforvirtualmachine
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py b/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py
index 86e3469..f9f11ea 100644
--- a/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py
+++ b/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py
@@ -24,15 +24,13 @@ class DefaultZoneForAccount(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def mark(self, apiclient, account, domainid, zoneid, **kwargs):
         cmd = markDefaultZoneForAccount.markDefaultZoneForAccountCmd()
+        cmd.id = self.id
         cmd.account = account
         cmd.domainid = domainid
         cmd.zoneid = zoneid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         defaultzoneforaccount = apiclient.markDefaultZoneForAccount(cmd)
+        return defaultzoneforaccount
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/DiskOffering.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/DiskOffering.py b/tools/marvin/marvin/integration/lib/base/DiskOffering.py
index 8b3095c..91a5034 100644
--- a/tools/marvin/marvin/integration/lib/base/DiskOffering.py
+++ b/tools/marvin/marvin/integration/lib/base/DiskOffering.py
@@ -39,21 +39,25 @@ class DiskOffering(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listDiskOfferings.listDiskOfferingsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         diskoffering = apiclient.listDiskOfferings(cmd)
         return map(lambda e: DiskOffering(e.__dict__), diskoffering)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateDiskOffering.updateDiskOfferingCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         diskoffering = apiclient.updateDiskOffering(cmd)
+        return diskoffering
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteDiskOffering.deleteDiskOfferingCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         diskoffering = apiclient.deleteDiskOffering(cmd)
+        return diskoffering
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Domain.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Domain.py b/tools/marvin/marvin/integration/lib/base/Domain.py
index 708c1d4..fb9539b 100644
--- a/tools/marvin/marvin/integration/lib/base/Domain.py
+++ b/tools/marvin/marvin/integration/lib/base/Domain.py
@@ -39,21 +39,25 @@ class Domain(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listDomains.listDomainsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         domain = apiclient.listDomains(cmd)
         return map(lambda e: Domain(e.__dict__), domain)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateDomain.updateDomainCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         domain = apiclient.updateDomain(cmd)
+        return domain
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteDomain.deleteDomainCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         domain = apiclient.deleteDomain(cmd)
+        return domain
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/DomainChildren.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/DomainChildren.py b/tools/marvin/marvin/integration/lib/base/DomainChildren.py
index a27ec0a..de96b4c 100644
--- a/tools/marvin/marvin/integration/lib/base/DomainChildren.py
+++ b/tools/marvin/marvin/integration/lib/base/DomainChildren.py
@@ -27,7 +27,7 @@ class DomainChildren(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listDomainChildren.listDomainChildrenCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         domainchildren = apiclient.listDomainChildren(cmd)
         return map(lambda e: DomainChildren(e.__dict__), domainchildren)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py b/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py
index 998e0b4..4b37c14 100644
--- a/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py
+++ b/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py
@@ -38,13 +38,16 @@ class EgressFirewallRule(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listEgressFirewallRules.listEgressFirewallRulesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         egressfirewallrule = apiclient.listEgressFirewallRules(cmd)
         return map(lambda e: EgressFirewallRule(e.__dict__), egressfirewallrule)
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteEgressFirewallRule.deleteEgressFirewallRuleCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         egressfirewallrule = apiclient.deleteEgressFirewallRule(cmd)
+        return egressfirewallrule
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/EventTypes.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/EventTypes.py b/tools/marvin/marvin/integration/lib/base/EventTypes.py
index 4a9e7df..978d6e4 100644
--- a/tools/marvin/marvin/integration/lib/base/EventTypes.py
+++ b/tools/marvin/marvin/integration/lib/base/EventTypes.py
@@ -27,7 +27,7 @@ class EventTypes(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listEventTypes.listEventTypesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         eventtypes = apiclient.listEventTypes(cmd)
         return map(lambda e: EventTypes(e.__dict__), eventtypes)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Events.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Events.py b/tools/marvin/marvin/integration/lib/base/Events.py
index 935c6aa..c341838 100644
--- a/tools/marvin/marvin/integration/lib/base/Events.py
+++ b/tools/marvin/marvin/integration/lib/base/Events.py
@@ -28,12 +28,15 @@ class Events(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listEvents.listEventsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         events = apiclient.listEvents(cmd)
         return map(lambda e: Events(e.__dict__), events)
 
 
     def delete(self, apiclient, **kwargs):
         cmd = deleteEvents.deleteEventsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         events = apiclient.deleteEvents(cmd)
+        return events
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/FirewallRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/FirewallRule.py b/tools/marvin/marvin/integration/lib/base/FirewallRule.py
index e456093..a61fb7c 100644
--- a/tools/marvin/marvin/integration/lib/base/FirewallRule.py
+++ b/tools/marvin/marvin/integration/lib/base/FirewallRule.py
@@ -38,14 +38,16 @@ class FirewallRule(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listFirewallRules.listFirewallRulesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         firewallrule = apiclient.listFirewallRules(cmd)
         return map(lambda e: FirewallRule(e.__dict__), firewallrule)
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteFirewallRule.deleteFirewallRuleCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         firewallrule = apiclient.deleteFirewallRule(cmd)
+        return firewallrule
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/FromGlobalLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/FromGlobalLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/FromGlobalLoadBalancerRule.py
new file mode 100644
index 0000000..73c7123
--- /dev/null
+++ b/tools/marvin/marvin/integration/lib/base/FromGlobalLoadBalancerRule.py
@@ -0,0 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+from marvin.integration.lib.base import CloudStackEntity
+from marvin.cloudstackAPI import removeFromGlobalLoadBalancerRule
+
+class FromGlobalLoadBalancerRule(CloudStackEntity.CloudStackEntity):
+
+
+    def __init__(self, items):
+        self.__dict__.update(items)
+
+
+    def remove(self, apiclient, loadbalancerrulelist, id, **kwargs):
+        cmd = removeFromGlobalLoadBalancerRule.removeFromGlobalLoadBalancerRuleCmd()
+        cmd.id = self.id
+        cmd.id = id
+        cmd.loadbalancerrulelist = loadbalancerrulelist
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        fromgloballoadbalancerrule = apiclient.removeFromGlobalLoadBalancerRule(cmd)
+        return fromgloballoadbalancerrule

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py
index 114001a..352e94a 100644
--- a/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py
+++ b/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py
@@ -24,14 +24,12 @@ class FromLoadBalancerRule(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def remove(self, apiclient, id, virtualmachineids, **kwargs):
         cmd = removeFromLoadBalancerRule.removeFromLoadBalancerRuleCmd()
+        cmd.id = self.id
         cmd.id = id
         cmd.virtualmachineids = virtualmachineids
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         fromloadbalancerrule = apiclient.removeFromLoadBalancerRule(cmd)
+        return fromloadbalancerrule
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/GlobalLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/GlobalLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/GlobalLoadBalancerRule.py
new file mode 100644
index 0000000..320d144
--- /dev/null
+++ b/tools/marvin/marvin/integration/lib/base/GlobalLoadBalancerRule.py
@@ -0,0 +1,62 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+from marvin.integration.lib.base import CloudStackEntity
+from marvin.cloudstackAPI import createGlobalLoadBalancerRule
+from marvin.cloudstackAPI import listGlobalLoadBalancerRules
+from marvin.cloudstackAPI import updateGlobalLoadBalancerRule
+from marvin.cloudstackAPI import deleteGlobalLoadBalancerRule
+
+class GlobalLoadBalancerRule(CloudStackEntity.CloudStackEntity):
+
+
+    def __init__(self, items):
+        self.__dict__.update(items)
+
+
+    @classmethod
+    def create(cls, apiclient, GlobalLoadBalancerRuleFactory, **kwargs):
+        cmd = createGlobalLoadBalancerRule.createGlobalLoadBalancerRuleCmd()
+        [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in GlobalLoadBalancerRuleFactory.__dict__.iteritems()]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        globalloadbalancerrule = apiclient.createGlobalLoadBalancerRule(cmd)
+        return GlobalLoadBalancerRule(globalloadbalancerrule.__dict__)
+
+
+    @classmethod
+    def list(self, apiclient, **kwargs):
+        cmd = listGlobalLoadBalancerRules.listGlobalLoadBalancerRulesCmd()
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        globalloadbalancerrule = apiclient.listGlobalLoadBalancerRules(cmd)
+        return map(lambda e: GlobalLoadBalancerRule(e.__dict__), globalloadbalancerrule)
+
+
+    def update(self, apiclient, id, **kwargs):
+        cmd = updateGlobalLoadBalancerRule.updateGlobalLoadBalancerRuleCmd()
+        cmd.id = self.id
+        cmd.id = id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        globalloadbalancerrule = apiclient.updateGlobalLoadBalancerRule(cmd)
+        return globalloadbalancerrule
+
+
+    def delete(self, apiclient, id, **kwargs):
+        cmd = deleteGlobalLoadBalancerRule.deleteGlobalLoadBalancerRuleCmd()
+        cmd.id = self.id
+        cmd.id = id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        globalloadbalancerrule = apiclient.deleteGlobalLoadBalancerRule(cmd)
+        return globalloadbalancerrule

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Host.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Host.py b/tools/marvin/marvin/integration/lib/base/Host.py
index 2c1f23b..66d77eb 100644
--- a/tools/marvin/marvin/integration/lib/base/Host.py
+++ b/tools/marvin/marvin/integration/lib/base/Host.py
@@ -30,41 +30,49 @@ class Host(CloudStackEntity.CloudStackEntity):
 
     def add(self, apiclient, username, podid, url, hypervisor, zoneid, password, **kwargs):
         cmd = addHost.addHostCmd()
+        cmd.id = self.id
         cmd.hypervisor = hypervisor
         cmd.password = password
         cmd.podid = podid
         cmd.url = url
         cmd.username = username
         cmd.zoneid = zoneid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         host = apiclient.addHost(cmd)
+        return host
 
 
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listHosts.listHostsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         host = apiclient.listHosts(cmd)
         return map(lambda e: Host(e.__dict__), host)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateHost.updateHostCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         host = apiclient.updateHost(cmd)
+        return host
 
 
     def reconnect(self, apiclient, id, **kwargs):
         cmd = reconnectHost.reconnectHostCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         host = apiclient.reconnectHost(cmd)
+        return host
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteHost.deleteHostCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         host = apiclient.deleteHost(cmd)
+        return host
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py b/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py
index 6aaefee..05861a0 100644
--- a/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py
+++ b/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py
@@ -24,13 +24,11 @@ class HostForMaintenance(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def prepare(self, apiclient, id, **kwargs):
         cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         hostformaintenance = apiclient.prepareHostForMaintenance(cmd)
+        return hostformaintenance
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/HostMaintenance.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/HostMaintenance.py b/tools/marvin/marvin/integration/lib/base/HostMaintenance.py
index c28afd0..0ea8689 100644
--- a/tools/marvin/marvin/integration/lib/base/HostMaintenance.py
+++ b/tools/marvin/marvin/integration/lib/base/HostMaintenance.py
@@ -24,13 +24,11 @@ class HostMaintenance(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def cancel(self, apiclient, id, **kwargs):
         cmd = cancelHostMaintenance.cancelHostMaintenanceCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         hostmaintenance = apiclient.cancelHostMaintenance(cmd)
+        return hostmaintenance
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/HostPassword.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/HostPassword.py b/tools/marvin/marvin/integration/lib/base/HostPassword.py
index a1814a0..93d9636 100644
--- a/tools/marvin/marvin/integration/lib/base/HostPassword.py
+++ b/tools/marvin/marvin/integration/lib/base/HostPassword.py
@@ -24,14 +24,12 @@ class HostPassword(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def update(self, apiclient, username, password, **kwargs):
         cmd = updateHostPassword.updateHostPasswordCmd()
+        cmd.id = self.id
         cmd.password = password
         cmd.username = username
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         hostpassword = apiclient.updateHostPassword(cmd)
+        return hostpassword
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py b/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py
index 6b639b3..2c8f834 100644
--- a/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py
+++ b/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py
@@ -28,13 +28,15 @@ class HypervisorCapabilities(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listHypervisorCapabilities.listHypervisorCapabilitiesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         hypervisorcapabilities = apiclient.listHypervisorCapabilities(cmd)
         return map(lambda e: HypervisorCapabilities(e.__dict__), hypervisorcapabilities)
 
 
     def update(self, apiclient, **kwargs):
         cmd = updateHypervisorCapabilities.updateHypervisorCapabilitiesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         hypervisorcapabilities = apiclient.updateHypervisorCapabilities(cmd)
+        return hypervisorcapabilities
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Hypervisors.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Hypervisors.py b/tools/marvin/marvin/integration/lib/base/Hypervisors.py
index ae63ba1..b3a7960 100644
--- a/tools/marvin/marvin/integration/lib/base/Hypervisors.py
+++ b/tools/marvin/marvin/integration/lib/base/Hypervisors.py
@@ -27,7 +27,7 @@ class Hypervisors(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listHypervisors.listHypervisorsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         hypervisors = apiclient.listHypervisors(cmd)
         return map(lambda e: Hypervisors(e.__dict__), hypervisors)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/InstanceGroup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/InstanceGroup.py b/tools/marvin/marvin/integration/lib/base/InstanceGroup.py
index d4c6bd1..7ba626f 100644
--- a/tools/marvin/marvin/integration/lib/base/InstanceGroup.py
+++ b/tools/marvin/marvin/integration/lib/base/InstanceGroup.py
@@ -39,21 +39,25 @@ class InstanceGroup(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listInstanceGroups.listInstanceGroupsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         instancegroup = apiclient.listInstanceGroups(cmd)
         return map(lambda e: InstanceGroup(e.__dict__), instancegroup)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateInstanceGroup.updateInstanceGroupCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         instancegroup = apiclient.updateInstanceGroup(cmd)
+        return instancegroup
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteInstanceGroup.deleteInstanceGroupCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         instancegroup = apiclient.deleteInstanceGroup(cmd)
+        return instancegroup
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/IpAddress.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/IpAddress.py b/tools/marvin/marvin/integration/lib/base/IpAddress.py
index 334c747..8d34597 100644
--- a/tools/marvin/marvin/integration/lib/base/IpAddress.py
+++ b/tools/marvin/marvin/integration/lib/base/IpAddress.py
@@ -25,19 +25,19 @@ class IpAddress(CloudStackEntity.CloudStackEntity):
         self.__dict__.update(items)
 
 
-    def __init__(self, items):
-        self.__dict__.update(items)
-
-
     def disassociate(self, apiclient, id, **kwargs):
         cmd = disassociateIpAddress.disassociateIpAddressCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         ipaddress = apiclient.disassociateIpAddress(cmd)
+        return ipaddress
 
 
     def associate(self, apiclient, **kwargs):
         cmd = associateIpAddress.associateIpAddressCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        cmd.id = self.id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         ipaddress = apiclient.associateIpAddress(cmd)
+        return ipaddress
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py b/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py
index 1fbc801..d60ab65 100644
--- a/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py
+++ b/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py
@@ -38,14 +38,16 @@ class IpForwardingRule(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listIpForwardingRules.listIpForwardingRulesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         ipforwardingrule = apiclient.listIpForwardingRules(cmd)
         return map(lambda e: IpForwardingRule(e.__dict__), ipforwardingrule)
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteIpForwardingRule.deleteIpForwardingRuleCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         ipforwardingrule = apiclient.deleteIpForwardingRule(cmd)
+        return ipforwardingrule
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/IpFromNic.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/IpFromNic.py b/tools/marvin/marvin/integration/lib/base/IpFromNic.py
index ef5d905..b07acea 100644
--- a/tools/marvin/marvin/integration/lib/base/IpFromNic.py
+++ b/tools/marvin/marvin/integration/lib/base/IpFromNic.py
@@ -26,6 +26,9 @@ class IpFromNic(CloudStackEntity.CloudStackEntity):
 
     def remove(self, apiclient, id, **kwargs):
         cmd = removeIpFromNic.removeIpFromNicCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         ipfromnic = apiclient.removeIpFromNic(cmd)
+        return ipfromnic
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/IpToNic.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/IpToNic.py b/tools/marvin/marvin/integration/lib/base/IpToNic.py
index dc95db4..74d434d 100644
--- a/tools/marvin/marvin/integration/lib/base/IpToNic.py
+++ b/tools/marvin/marvin/integration/lib/base/IpToNic.py
@@ -26,6 +26,9 @@ class IpToNic(CloudStackEntity.CloudStackEntity):
 
     def add(self, apiclient, nicid, **kwargs):
         cmd = addIpToNic.addIpToNicCmd()
+        cmd.id = self.id
         cmd.nicid = nicid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iptonic = apiclient.addIpToNic(cmd)
+        return iptonic
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Iso.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Iso.py b/tools/marvin/marvin/integration/lib/base/Iso.py
index 8cf6bef..6129d8f 100644
--- a/tools/marvin/marvin/integration/lib/base/Iso.py
+++ b/tools/marvin/marvin/integration/lib/base/Iso.py
@@ -33,64 +33,78 @@ class Iso(CloudStackEntity.CloudStackEntity):
 
     def copy(self, apiclient, sourcezoneid, id, destzoneid, **kwargs):
         cmd = copyIso.copyIsoCmd()
+        cmd.id = self.id
         cmd.id = id
         cmd.destzoneid = destzoneid
         cmd.sourcezoneid = sourcezoneid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.copyIso(cmd)
+        return iso
 
 
     def register(self, apiclient, url, displaytext, name, zoneid, **kwargs):
         cmd = registerIso.registerIsoCmd()
+        cmd.id = self.id
         cmd.displaytext = displaytext
         cmd.name = name
         cmd.url = url
         cmd.zoneid = zoneid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.registerIso(cmd)
+        return iso
 
 
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listIsos.listIsosCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.listIsos(cmd)
         return map(lambda e: Iso(e.__dict__), iso)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateIso.updateIsoCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.updateIso(cmd)
+        return iso
 
 
     def attach(self, apiclient, id, virtualmachineid, **kwargs):
         cmd = attachIso.attachIsoCmd()
+        cmd.id = self.id
         cmd.id = id
         cmd.virtualmachineid = virtualmachineid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.attachIso(cmd)
+        return iso
 
 
     def detach(self, apiclient, virtualmachineid, **kwargs):
         cmd = detachIso.detachIsoCmd()
+        cmd.id = self.id
         cmd.virtualmachineid = virtualmachineid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.detachIso(cmd)
+        return iso
 
 
     def extract(self, apiclient, id, mode, **kwargs):
         cmd = extractIso.extractIsoCmd()
+        cmd.id = self.id
         cmd.id = id
         cmd.mode = mode
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.extractIso(cmd)
+        return iso
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteIso.deleteIsoCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         iso = apiclient.deleteIso(cmd)
+        return iso
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/IsoPermissions.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/IsoPermissions.py b/tools/marvin/marvin/integration/lib/base/IsoPermissions.py
index 80332bf..c669885 100644
--- a/tools/marvin/marvin/integration/lib/base/IsoPermissions.py
+++ b/tools/marvin/marvin/integration/lib/base/IsoPermissions.py
@@ -29,14 +29,16 @@ class IsoPermissions(CloudStackEntity.CloudStackEntity):
     def list(self, apiclient, id, **kwargs):
         cmd = listIsoPermissions.listIsoPermissionsCmd()
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         isopermissions = apiclient.listIsoPermissions(cmd)
         return map(lambda e: IsoPermissions(e.__dict__), isopermissions)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateIsoPermissions.updateIsoPermissionsCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         isopermissions = apiclient.updateIsoPermissions(cmd)
+        return isopermissions
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicies.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicies.py b/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicies.py
new file mode 100644
index 0000000..a2a79e1
--- /dev/null
+++ b/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicies.py
@@ -0,0 +1,33 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+from marvin.integration.lib.base import CloudStackEntity
+from marvin.cloudstackAPI import listLBHealthCheckPolicies
+
+class LBHealthCheckPolicies(CloudStackEntity.CloudStackEntity):
+
+
+    def __init__(self, items):
+        self.__dict__.update(items)
+
+
+    @classmethod
+    def list(self, apiclient, lbruleid, **kwargs):
+        cmd = listLBHealthCheckPolicies.listLBHealthCheckPoliciesCmd()
+        cmd.lbruleid = lbruleid
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        lbhealthcheckpolicies = apiclient.listLBHealthCheckPolicies(cmd)
+        return map(lambda e: LBHealthCheckPolicies(e.__dict__), lbhealthcheckpolicies)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicy.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicy.py b/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicy.py
new file mode 100644
index 0000000..e6b10a3
--- /dev/null
+++ b/tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicy.py
@@ -0,0 +1,43 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+from marvin.integration.lib.base import CloudStackEntity
+from marvin.cloudstackAPI import createLBHealthCheckPolicy
+from marvin.cloudstackAPI import deleteLBHealthCheckPolicy
+
+class LBHealthCheckPolicy(CloudStackEntity.CloudStackEntity):
+
+
+    def __init__(self, items):
+        self.__dict__.update(items)
+
+
+    @classmethod
+    def create(cls, apiclient, LBHealthCheckPolicyFactory, **kwargs):
+        cmd = createLBHealthCheckPolicy.createLBHealthCheckPolicyCmd()
+        [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in LBHealthCheckPolicyFactory.__dict__.iteritems()]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        lbhealthcheckpolicy = apiclient.createLBHealthCheckPolicy(cmd)
+        return LBHealthCheckPolicy(lbhealthcheckpolicy.__dict__)
+
+
+    def delete(self, apiclient, id, **kwargs):
+        cmd = deleteLBHealthCheckPolicy.deleteLBHealthCheckPolicyCmd()
+        cmd.id = self.id
+        cmd.id = id
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+        lbhealthcheckpolicy = apiclient.deleteLBHealthCheckPolicy(cmd)
+        return lbhealthcheckpolicy

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py
index 59f7bf1..dc9b520 100644
--- a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py
+++ b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py
@@ -28,7 +28,7 @@ class LBStickinessPolicies(CloudStackEntity.CloudStackEntity):
     def list(self, apiclient, lbruleid, **kwargs):
         cmd = listLBStickinessPolicies.listLBStickinessPoliciesCmd()
         cmd.lbruleid = lbruleid
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         lbstickinesspolicies = apiclient.listLBStickinessPolicies(cmd)
         return map(lambda e: LBStickinessPolicies(e.__dict__), lbstickinesspolicies)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py
index 1550b22..3d88f05 100644
--- a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py
+++ b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py
@@ -36,7 +36,9 @@ class LBStickinessPolicy(CloudStackEntity.CloudStackEntity):
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteLBStickinessPolicy.deleteLBStickinessPolicyCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         lbstickinesspolicy = apiclient.deleteLBStickinessPolicy(cmd)
+        return lbstickinesspolicy
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py
index 3dbf6fd..b386ae1 100644
--- a/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py
+++ b/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py
@@ -39,21 +39,25 @@ class LoadBalancerRule(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listLoadBalancerRules.listLoadBalancerRulesCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         loadbalancerrule = apiclient.listLoadBalancerRules(cmd)
         return map(lambda e: LoadBalancerRule(e.__dict__), loadbalancerrule)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateLoadBalancerRule.updateLoadBalancerRuleCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         loadbalancerrule = apiclient.updateLoadBalancerRule(cmd)
+        return loadbalancerrule
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteLoadBalancerRule.deleteLoadBalancerRuleCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         loadbalancerrule = apiclient.deleteLoadBalancerRule(cmd)
+        return loadbalancerrule
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py b/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py
index ff8bc34..07a2fe1 100644
--- a/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py
+++ b/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py
@@ -28,7 +28,7 @@ class LoadBalancerRuleInstances(CloudStackEntity.CloudStackEntity):
     def list(self, apiclient, id, **kwargs):
         cmd = listLoadBalancerRuleInstances.listLoadBalancerRuleInstancesCmd()
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         loadbalancerruleinstances = apiclient.listLoadBalancerRuleInstances(cmd)
         return map(lambda e: LoadBalancerRuleInstances(e.__dict__), loadbalancerruleinstances)
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/Network.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/Network.py b/tools/marvin/marvin/integration/lib/base/Network.py
index 1fc2a16..c7e026d 100644
--- a/tools/marvin/marvin/integration/lib/base/Network.py
+++ b/tools/marvin/marvin/integration/lib/base/Network.py
@@ -40,28 +40,34 @@ class Network(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listNetworks.listNetworksCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         network = apiclient.listNetworks(cmd)
         return map(lambda e: Network(e.__dict__), network)
 
 
     def update(self, apiclient, id, **kwargs):
         cmd = updateNetwork.updateNetworkCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         network = apiclient.updateNetwork(cmd)
+        return network
 
 
     def restart(self, apiclient, id, **kwargs):
         cmd = restartNetwork.restartNetworkCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         network = apiclient.restartNetwork(cmd)
+        return network
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteNetwork.deleteNetworkCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         network = apiclient.deleteNetwork(cmd)
+        return network
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cef66347/tools/marvin/marvin/integration/lib/base/NetworkACL.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/NetworkACL.py b/tools/marvin/marvin/integration/lib/base/NetworkACL.py
index dcdf117..76b8bd7 100644
--- a/tools/marvin/marvin/integration/lib/base/NetworkACL.py
+++ b/tools/marvin/marvin/integration/lib/base/NetworkACL.py
@@ -38,14 +38,16 @@ class NetworkACL(CloudStackEntity.CloudStackEntity):
     @classmethod
     def list(self, apiclient, **kwargs):
         cmd = listNetworkACLs.listNetworkACLsCmd()
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         networkacl = apiclient.listNetworkACLs(cmd)
         return map(lambda e: NetworkACL(e.__dict__), networkacl)
 
 
     def delete(self, apiclient, id, **kwargs):
         cmd = deleteNetworkACL.deleteNetworkACLCmd()
+        cmd.id = self.id
         cmd.id = id
-        [setattr(cmd, key, value) for key,value in kwargs.items]
+        [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         networkacl = apiclient.deleteNetworkACL(cmd)
+        return networkacl