marvin-refactor: create takes factories not reqd args
- Let all entities inherit from CloudStackEntity
- create and list are classmethods since they work without need for an
entity to exist
- create takes only factories by default. no need for long param list.
Entitiy.create(apiclient) will give entity out of default factory
- Use entityFactory.attributes() to init entities
Signed-off-by: Prasanna Santhanam <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/89ac2ab1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/89ac2ab1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/89ac2ab1
Branch: refs/heads/marvin_refactor
Commit: 89ac2ab124c4201703b73187db23c1da1011e829
Parents: de442df
Author: Prasanna Santhanam <[email protected]>
Authored: Sat Jan 26 21:43:17 2013 +0530
Committer: Prasanna Santhanam <[email protected]>
Committed: Sun Mar 31 22:19:15 2013 +0530
----------------------------------------------------------------------
.../integration/lib/base/AccountFromProject.py | 4 ++++
.../integration/lib/base/AccountToProject.py | 4 ++++
.../marvin/marvin/integration/lib/base/ApiLimit.py | 4 ++++
.../marvin/integration/lib/base/AsyncJobResult.py | 4 ++++
.../marvin/integration/lib/base/CloudIdentifier.py | 4 ++++
.../integration/lib/base/CustomCertificate.py | 4 ++++
.../integration/lib/base/DefaultZoneForAccount.py | 4 ++++
.../integration/lib/base/FromLoadBalancerRule.py | 4 ++++
.../integration/lib/base/HostForMaintenance.py | 4 ++++
.../marvin/integration/lib/base/HostMaintenance.py | 4 ++++
.../marvin/integration/lib/base/HostPassword.py | 4 ++++
.../marvin/integration/lib/base/IpAddress.py | 4 ++++
.../lib/base/PasswordForVirtualMachine.py | 4 ++++
.../marvin/integration/lib/base/ResourceCount.py | 4 ++++
.../integration/lib/base/SecondaryStorage.py | 4 ++++
.../integration/lib/base/SecurityGroupEgress.py | 4 ++++
.../integration/lib/base/SecurityGroupIngress.py | 4 ++++
.../integration/lib/base/ServiceForRouter.py | 4 ++++
.../integration/lib/base/ServiceForSystemVm.py | 4 ++++
.../lib/base/ServiceForVirtualMachine.py | 4 ++++
.../marvin/integration/lib/base/StaticNat.py | 4 ++++
.../integration/lib/base/StorageMaintenance.py | 4 ++++
.../integration/lib/base/ToLoadBalancerRule.py | 4 ++++
.../marvin/marvin/integration/lib/base/UserKeys.py | 4 ++++
.../marvin/integration/lib/base/VMPassword.py | 4 ++++
25 files changed, 100 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 c627ea6..092f5e2 100644
--- a/tools/marvin/marvin/integration/lib/base/AccountFromProject.py
+++ b/tools/marvin/marvin/integration/lib/base/AccountFromProject.py
@@ -24,6 +24,10 @@ 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.account = account
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 c74c447..a1bdccf 100644
--- a/tools/marvin/marvin/integration/lib/base/AccountToProject.py
+++ b/tools/marvin/marvin/integration/lib/base/AccountToProject.py
@@ -24,6 +24,10 @@ 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.projectid = projectid
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 4821801..4a56df8 100644
--- a/tools/marvin/marvin/integration/lib/base/ApiLimit.py
+++ b/tools/marvin/marvin/integration/lib/base/ApiLimit.py
@@ -25,6 +25,10 @@ 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]
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 fda48d8..5383684 100644
--- a/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py
+++ b/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py
@@ -24,6 +24,10 @@ 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.jobid = jobid
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 e98b651..ed2dd6e 100644
--- a/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py
+++ b/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py
@@ -24,6 +24,10 @@ 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.userid = userid
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 5e38920..c9a2dbf 100644
--- a/tools/marvin/marvin/integration/lib/base/CustomCertificate.py
+++ b/tools/marvin/marvin/integration/lib/base/CustomCertificate.py
@@ -24,6 +24,10 @@ 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.certificate = certificate
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 6605dcf..86e3469 100644
--- a/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py
+++ b/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py
@@ -24,6 +24,10 @@ 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.account = account
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 f3ae80a..114001a 100644
--- a/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py
+++ b/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py
@@ -24,6 +24,10 @@ 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 = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 119bc7a..6aaefee 100644
--- a/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py
+++ b/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py
@@ -24,6 +24,10 @@ 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 = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 15d94d0..c28afd0 100644
--- a/tools/marvin/marvin/integration/lib/base/HostMaintenance.py
+++ b/tools/marvin/marvin/integration/lib/base/HostMaintenance.py
@@ -24,6 +24,10 @@ 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 = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 c2df321..a1814a0 100644
--- a/tools/marvin/marvin/integration/lib/base/HostPassword.py
+++ b/tools/marvin/marvin/integration/lib/base/HostPassword.py
@@ -24,6 +24,10 @@ 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.password = password
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/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 5c56510..334c747 100644
--- a/tools/marvin/marvin/integration/lib/base/IpAddress.py
+++ b/tools/marvin/marvin/integration/lib/base/IpAddress.py
@@ -25,6 +25,10 @@ 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 = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py
----------------------------------------------------------------------
diff --git
a/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py
b/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py
index 262c327..8a6b351 100644
--- a/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py
+++ b/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py
@@ -24,6 +24,10 @@ class
PasswordForVirtualMachine(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def reset(self, apiclient, id, **kwargs):
cmd =
resetPasswordForVirtualMachine.resetPasswordForVirtualMachineCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/ResourceCount.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/ResourceCount.py
b/tools/marvin/marvin/integration/lib/base/ResourceCount.py
index 8c54140..9677d2e 100644
--- a/tools/marvin/marvin/integration/lib/base/ResourceCount.py
+++ b/tools/marvin/marvin/integration/lib/base/ResourceCount.py
@@ -24,6 +24,10 @@ class ResourceCount(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def update(self, apiclient, domainid, **kwargs):
cmd = updateResourceCount.updateResourceCountCmd()
cmd.domainid = domainid
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py
b/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py
index 54f647e..cc18f41 100644
--- a/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py
+++ b/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py
@@ -24,6 +24,10 @@ class SecondaryStorage(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def add(self, apiclient, url, **kwargs):
cmd = addSecondaryStorage.addSecondaryStorageCmd()
cmd.url = url
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py
b/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py
index b5e656f..995705c 100644
--- a/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py
+++ b/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py
@@ -25,6 +25,10 @@ class SecurityGroupEgress(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def authorize(self, apiclient, **kwargs):
cmd = authorizeSecurityGroupEgress.authorizeSecurityGroupEgressCmd()
[setattr(cmd, key, value) for key,value in kwargs.items]
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py
b/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py
index 453251b..12e8848 100644
--- a/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py
+++ b/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py
@@ -25,6 +25,10 @@ class
SecurityGroupIngress(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def authorize(self, apiclient, **kwargs):
cmd = authorizeSecurityGroupIngress.authorizeSecurityGroupIngressCmd()
[setattr(cmd, key, value) for key,value in kwargs.items]
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py
b/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py
index f568bcb..645f035 100644
--- a/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py
+++ b/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py
@@ -24,6 +24,10 @@ class ServiceForRouter(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def change(self, apiclient, id, serviceofferingid, **kwargs):
cmd = changeServiceForRouter.changeServiceForRouterCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py
b/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py
index fb1d05a..0f29f99 100644
--- a/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py
+++ b/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py
@@ -24,6 +24,10 @@ class ServiceForSystemVm(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def change(self, apiclient, id, serviceofferingid, **kwargs):
cmd = changeServiceForSystemVm.changeServiceForSystemVmCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py
----------------------------------------------------------------------
diff --git
a/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py
b/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py
index 3ff154d..0fdf295 100644
--- a/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py
+++ b/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py
@@ -24,6 +24,10 @@ class
ServiceForVirtualMachine(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def change(self, apiclient, id, serviceofferingid, **kwargs):
cmd =
changeServiceForVirtualMachine.changeServiceForVirtualMachineCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/StaticNat.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/StaticNat.py
b/tools/marvin/marvin/integration/lib/base/StaticNat.py
index 9aee3ee..87e22f0 100644
--- a/tools/marvin/marvin/integration/lib/base/StaticNat.py
+++ b/tools/marvin/marvin/integration/lib/base/StaticNat.py
@@ -25,6 +25,10 @@ class StaticNat(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def enable(self, apiclient, ipaddressid, virtualmachineid, **kwargs):
cmd = enableStaticNat.enableStaticNatCmd()
cmd.ipaddressid = ipaddressid
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py
b/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py
index 005c6ce..b33a464 100644
--- a/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py
+++ b/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py
@@ -25,6 +25,10 @@ class StorageMaintenance(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def cancel(self, apiclient, id, **kwargs):
cmd = cancelStorageMaintenance.cancelStorageMaintenanceCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py
b/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py
index 58fcf04..6cd2b3d 100644
--- a/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py
+++ b/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py
@@ -24,6 +24,10 @@ class ToLoadBalancerRule(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def assign(self, apiclient, id, virtualmachineids, **kwargs):
cmd = assignToLoadBalancerRule.assignToLoadBalancerRuleCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/UserKeys.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/UserKeys.py
b/tools/marvin/marvin/integration/lib/base/UserKeys.py
index 85433c1..429062b 100644
--- a/tools/marvin/marvin/integration/lib/base/UserKeys.py
+++ b/tools/marvin/marvin/integration/lib/base/UserKeys.py
@@ -24,6 +24,10 @@ class UserKeys(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def register(self, apiclient, id, **kwargs):
cmd = registerUserKeys.registerUserKeysCmd()
cmd.id = id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/89ac2ab1/tools/marvin/marvin/integration/lib/base/VMPassword.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base/VMPassword.py
b/tools/marvin/marvin/integration/lib/base/VMPassword.py
index 78cb4f1..7cc271d 100644
--- a/tools/marvin/marvin/integration/lib/base/VMPassword.py
+++ b/tools/marvin/marvin/integration/lib/base/VMPassword.py
@@ -24,6 +24,10 @@ class VMPassword(CloudStackEntity.CloudStackEntity):
self.__dict__.update(items)
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
def get(self, apiclient, id, **kwargs):
cmd = getVMPassword.getVMPasswordCmd()
cmd.id = id