From 0f8a9ae4b92a1a164c64ceda88986016df7bb369 Mon Sep 17 00:00:00 2001 From: Prasanna Santhanam Date: Sun, 31 Mar 2013 19:23:49 +0530 Subject: [PATCH] marvin_refactor: 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 --- .../marvin/integration/lib/base/Account.py | 22 +++++-- .../lib/base/AccountFromProject.py | 8 +-- .../integration/lib/base/AccountToProject.py | 8 +-- .../marvin/integration/lib/base/Alerts.py | 6 +- .../marvin/integration/lib/base/ApiLimit.py | 12 ++-- .../marvin/integration/lib/base/Apis.py | 2 +- .../integration/lib/base/AsyncJobResult.py | 8 +-- .../marvin/integration/lib/base/AsyncJobs.py | 2 +- .../integration/lib/base/AutoScalePolicies.py | 2 +- .../integration/lib/base/AutoScalePolicy.py | 8 ++- .../integration/lib/base/AutoScaleVmGroup.py | 18 ++++-- .../lib/base/AutoScaleVmProfile.py | 10 ++- .../lib/base/BigSwitchVnsDevice.py | 10 ++- .../integration/lib/base/Capabilities.py | 2 +- .../marvin/integration/lib/base/Capacity.py | 2 +- .../integration/lib/base/CloudIdentifier.py | 8 +-- .../marvin/integration/lib/base/Cluster.py | 14 +++-- .../marvin/integration/lib/base/Condition.py | 6 +- .../marvin/integration/lib/base/Config.py | 4 +- .../integration/lib/base/Configuration.py | 6 +- .../marvin/integration/lib/base/Counter.py | 6 +- .../integration/lib/base/CustomCertificate.py | 8 +-- .../lib/base/DefaultNicForVirtualMachine.py | 4 +- .../lib/base/DefaultZoneForAccount.py | 8 +-- .../integration/lib/base/DiskOffering.py | 10 ++- .../marvin/integration/lib/base/Domain.py | 10 ++- .../integration/lib/base/DomainChildren.py | 2 +- .../lib/base/EgressFirewallRule.py | 6 +- .../marvin/integration/lib/base/EventTypes.py | 2 +- .../marvin/integration/lib/base/Events.py | 6 +- .../integration/lib/base/FirewallRule.py | 6 +- .../lib/base/FromGlobalLoadBalancerRule.py | 34 ++++++++++ .../lib/base/FromLoadBalancerRule.py | 8 +-- .../lib/base/GlobalLoadBalancerRule.py | 62 ++++++++++++++++++ .../marvin/integration/lib/base/Host.py | 18 ++++-- .../lib/base/HostForMaintenance.py | 8 +-- .../integration/lib/base/HostMaintenance.py | 8 +-- .../integration/lib/base/HostPassword.py | 8 +-- .../lib/base/HypervisorCapabilities.py | 6 +- .../integration/lib/base/Hypervisors.py | 2 +- .../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 | 4 +- .../marvin/integration/lib/base/IpToNic.py | 4 +- .../marvin/marvin/integration/lib/base/Iso.py | 30 ++++++--- .../integration/lib/base/IsoPermissions.py | 6 +- .../lib/base/LBHealthCheckPolicies.py | 33 ++++++++++ .../lib/base/LBHealthCheckPolicy.py | 43 +++++++++++++ .../lib/base/LBStickinessPolicies.py | 2 +- .../lib/base/LBStickinessPolicy.py | 4 +- .../integration/lib/base/LoadBalancerRule.py | 10 ++- .../lib/base/LoadBalancerRuleInstances.py | 2 +- .../marvin/integration/lib/base/Network.py | 14 +++-- .../marvin/integration/lib/base/NetworkACL.py | 6 +- .../integration/lib/base/NetworkDevice.py | 10 ++- .../integration/lib/base/NetworkOffering.py | 10 ++- .../lib/base/NetworkServiceProvider.py | 14 +++-- .../lib/base/NicFromVirtualMachine.py | 4 +- .../lib/base/NicToVirtualMachine.py | 4 +- .../integration/lib/base/NiciraNvpDevice.py | 10 ++- .../lib/base/NiciraNvpDeviceNetworks.py | 2 +- .../marvin/integration/lib/base/Nics.py | 2 +- .../integration/lib/base/OsCategories.py | 2 +- .../marvin/integration/lib/base/OsTypes.py | 2 +- .../lib/base/PasswordForVirtualMachine.py | 8 +-- .../integration/lib/base/PhysicalNetwork.py | 10 ++- .../marvin/marvin/integration/lib/base/Pod.py | 10 ++- .../lib/base/PortForwardingRule.py | 10 ++- .../integration/lib/base/PrivateGateway.py | 6 +- .../marvin/integration/lib/base/Project.py | 18 ++++-- .../integration/lib/base/ProjectAccounts.py | 2 +- .../integration/lib/base/ProjectInvitation.py | 10 ++- .../integration/lib/base/PublicIpAddresses.py | 2 +- .../marvin/integration/lib/base/Region.py | 14 +++-- .../integration/lib/base/RemoteAccessVpn.py | 6 +- .../marvin/integration/lib/base/Remove.py | 4 +- .../integration/lib/base/ResourceCount.py | 8 +-- .../integration/lib/base/ResourceLimit.py | 6 +- .../marvin/integration/lib/base/Router.py | 18 ++++-- .../marvin/marvin/integration/lib/base/S3.py | 6 +- .../lib/base/SSHKeyForVirtualMachine.py | 4 +- .../marvin/integration/lib/base/SSHKeyPair.py | 10 ++- .../integration/lib/base/SecondaryStorage.py | 8 +-- .../integration/lib/base/SecurityGroup.py | 6 +- .../lib/base/SecurityGroupEgress.py | 12 ++-- .../lib/base/SecurityGroupIngress.py | 12 ++-- .../integration/lib/base/ServiceForRouter.py | 8 +-- .../lib/base/ServiceForSystemVm.py | 8 +-- .../lib/base/ServiceForVirtualMachine.py | 8 +-- .../integration/lib/base/ServiceOffering.py | 10 ++- .../marvin/integration/lib/base/Simulator.py | 4 +- .../marvin/integration/lib/base/Snapshot.py | 6 +- .../integration/lib/base/SnapshotPolicies.py | 6 +- .../marvin/integration/lib/base/StaticNat.py | 12 ++-- .../integration/lib/base/StaticRoute.py | 6 +- .../lib/base/StorageMaintenance.py | 12 ++-- .../lib/base/StorageNetworkIpRange.py | 10 ++- .../integration/lib/base/StoragePool.py | 10 ++- .../integration/lib/base/StorageProviders.py | 33 ++++++++++ .../lib/base/SupportedNetworkServices.py | 2 +- .../marvin/integration/lib/base/Swift.py | 6 +- .../marvin/integration/lib/base/SystemVm.py | 22 +++++-- .../marvin/integration/lib/base/Tags.py | 6 +- .../marvin/integration/lib/base/Template.py | 26 +++++--- .../lib/base/TemplatePermissions.py | 6 +- .../lib/base/ToGlobalLoadBalancerRule.py | 34 ++++++++++ .../lib/base/ToLoadBalancerRule.py | 8 +-- .../integration/lib/base/TrafficMonitor.py | 10 ++- .../integration/lib/base/TrafficType.py | 14 +++-- .../lib/base/TrafficTypeImplementors.py | 2 +- .../integration/lib/base/UsageRecords.py | 6 +- .../marvin/integration/lib/base/UsageTypes.py | 2 +- .../marvin/integration/lib/base/User.py | 26 +++++--- .../marvin/integration/lib/base/UserKeys.py | 8 +-- .../marvin/integration/lib/base/VMPassword.py | 8 +-- .../marvin/integration/lib/base/VMSnapshot.py | 6 +- .../marvin/marvin/integration/lib/base/VPC.py | 14 +++-- .../integration/lib/base/VPCOffering.py | 10 ++- .../integration/lib/base/VirtualMachine.py | 45 ++++++++++--- .../lib/base/VirtualRouterElement.py | 6 +- .../integration/lib/base/VlanIpRange.py | 6 +- .../marvin/integration/lib/base/Volume.py | 26 +++++--- .../integration/lib/base/VpnConnection.py | 10 ++- .../lib/base/VpnCustomerGateway.py | 10 ++- .../marvin/integration/lib/base/VpnGateway.py | 6 +- .../marvin/integration/lib/base/VpnUser.py | 10 ++- .../marvin/integration/lib/base/Zone.py | 10 ++- .../lib/factory/DiskOfferingFactory.py | 5 +- .../lib/factory/NetworkOfferingFactory.py | 63 +++++++++++++++++-- .../lib/factory/test/testFactories.py | 29 ++++++++- .../marvin/integration/lib/generateBase.py | 10 ++- 132 files changed, 1011 insertions(+), 390 deletions(-) create mode 100644 tools/marvin/marvin/integration/lib/base/FromGlobalLoadBalancerRule.py create mode 100644 tools/marvin/marvin/integration/lib/base/GlobalLoadBalancerRule.py create mode 100644 tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicies.py create mode 100644 tools/marvin/marvin/integration/lib/base/LBHealthCheckPolicy.py create mode 100644 tools/marvin/marvin/integration/lib/base/StorageProviders.py create mode 100644 tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py diff --git a/tools/marvin/marvin/integration/lib/base/Account.py b/tools/marvin/marvin/integration/lib/base/Account.py index e0b494a44cc..79a61c9ebf4 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,27 +60,33 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/AccountFromProject.py b/tools/marvin/marvin/integration/lib/base/AccountFromProject.py index 5cbaa6e7f6d..68b49b09b14 100644 --- a/tools/marvin/marvin/integration/lib/base/AccountFromProject.py +++ b/tools/marvin/marvin/integration/lib/base/AccountFromProject.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import deleteAccountFromProject class AccountFromProject(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/AccountToProject.py b/tools/marvin/marvin/integration/lib/base/AccountToProject.py index 867511b44ec..0f197e95221 100644 --- a/tools/marvin/marvin/integration/lib/base/AccountToProject.py +++ b/tools/marvin/marvin/integration/lib/base/AccountToProject.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import addAccountToProject class AccountToProject(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/Alerts.py b/tools/marvin/marvin/integration/lib/base/Alerts.py index e31451b4482..67dd66fd930 100644 --- a/tools/marvin/marvin/integration/lib/base/Alerts.py +++ b/tools/marvin/marvin/integration/lib/base/Alerts.py @@ -28,12 +28,14 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/ApiLimit.py b/tools/marvin/marvin/integration/lib/base/ApiLimit.py index 4a56df8dc86..2e895c1efd4 100644 --- a/tools/marvin/marvin/integration/lib/base/ApiLimit.py +++ b/tools/marvin/marvin/integration/lib/base/ApiLimit.py @@ -21,22 +21,22 @@ from marvin.cloudstackAPI import getApiLimit class ApiLimit(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/Apis.py b/tools/marvin/marvin/integration/lib/base/Apis.py index b4124006dfe..20b93cd294a 100644 --- a/tools/marvin/marvin/integration/lib/base/Apis.py +++ b/tools/marvin/marvin/integration/lib/base/Apis.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py b/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py index 5c5683377cc..8eb810bcdd5 100644 --- a/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py +++ b/tools/marvin/marvin/integration/lib/base/AsyncJobResult.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import queryAsyncJobResult class AsyncJobResult(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/AsyncJobs.py b/tools/marvin/marvin/integration/lib/base/AsyncJobs.py index 49c01ae7caa..e67a5ce3190 100644 --- a/tools/marvin/marvin/integration/lib/base/AsyncJobs.py +++ b/tools/marvin/marvin/integration/lib/base/AsyncJobs.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py b/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py index 5cb714aa99d..4aa617f341d 100644 --- a/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py +++ b/tools/marvin/marvin/integration/lib/base/AutoScalePolicies.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py b/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py index a1fae4c8955..975d49a86c2 100644 --- a/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py +++ b/tools/marvin/marvin/integration/lib/base/AutoScalePolicy.py @@ -37,13 +37,17 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py b/tools/marvin/marvin/integration/lib/base/AutoScaleVmGroup.py index 2d0a01aff10..c226025a782 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,27 +50,33 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py b/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py index ebd20b5fda2..544c41dfea5 100644 --- a/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py +++ b/tools/marvin/marvin/integration/lib/base/AutoScaleVmProfile.py @@ -39,20 +39,24 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py b/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py index 67b705465e1..c88b18f2ab6 100644 --- a/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py +++ b/tools/marvin/marvin/integration/lib/base/BigSwitchVnsDevice.py @@ -28,22 +28,26 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Capabilities.py b/tools/marvin/marvin/integration/lib/base/Capabilities.py index 54326cbbbfe..c488bb55822 100644 --- a/tools/marvin/marvin/integration/lib/base/Capabilities.py +++ b/tools/marvin/marvin/integration/lib/base/Capabilities.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/Capacity.py b/tools/marvin/marvin/integration/lib/base/Capacity.py index 8dda9436f01..0a39eda17c4 100644 --- a/tools/marvin/marvin/integration/lib/base/Capacity.py +++ b/tools/marvin/marvin/integration/lib/base/Capacity.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py b/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py index cde136eb985..d8608c8de1d 100644 --- a/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py +++ b/tools/marvin/marvin/integration/lib/base/CloudIdentifier.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import getCloudIdentifier class CloudIdentifier(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/Cluster.py b/tools/marvin/marvin/integration/lib/base/Cluster.py index f92215575c8..2055c45062c 100644 --- a/tools/marvin/marvin/integration/lib/base/Cluster.py +++ b/tools/marvin/marvin/integration/lib/base/Cluster.py @@ -29,32 +29,38 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Condition.py b/tools/marvin/marvin/integration/lib/base/Condition.py index 2dc6d7cc3f5..0f86f6e3d39 100644 --- a/tools/marvin/marvin/integration/lib/base/Condition.py +++ b/tools/marvin/marvin/integration/lib/base/Condition.py @@ -38,13 +38,15 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Config.py b/tools/marvin/marvin/integration/lib/base/Config.py index 0a963a28a43..0f22ffdfafd 100644 --- a/tools/marvin/marvin/integration/lib/base/Config.py +++ b/tools/marvin/marvin/integration/lib/base/Config.py @@ -26,5 +26,7 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Configuration.py b/tools/marvin/marvin/integration/lib/base/Configuration.py index d43496383fc..0e02bd36ddc 100644 --- a/tools/marvin/marvin/integration/lib/base/Configuration.py +++ b/tools/marvin/marvin/integration/lib/base/Configuration.py @@ -28,13 +28,15 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Counter.py b/tools/marvin/marvin/integration/lib/base/Counter.py index ed698b82bbd..da17fcde741 100644 --- a/tools/marvin/marvin/integration/lib/base/Counter.py +++ b/tools/marvin/marvin/integration/lib/base/Counter.py @@ -38,13 +38,15 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/CustomCertificate.py b/tools/marvin/marvin/integration/lib/base/CustomCertificate.py index e41fc6bfbf6..847b1ecc5f5 100644 --- a/tools/marvin/marvin/integration/lib/base/CustomCertificate.py +++ b/tools/marvin/marvin/integration/lib/base/CustomCertificate.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import uploadCustomCertificate class CustomCertificate(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py index 2d8521934d8..09641d0b7ab 100644 --- a/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/DefaultNicForVirtualMachine.py @@ -26,7 +26,9 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py b/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py index 58a72d5ba23..d8652d02d36 100644 --- a/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py +++ b/tools/marvin/marvin/integration/lib/base/DefaultZoneForAccount.py @@ -20,18 +20,16 @@ from marvin.cloudstackAPI import markDefaultZoneForAccount class DefaultZoneForAccount(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/DiskOffering.py b/tools/marvin/marvin/integration/lib/base/DiskOffering.py index f3102f093ee..d365746ada0 100644 --- a/tools/marvin/marvin/integration/lib/base/DiskOffering.py +++ b/tools/marvin/marvin/integration/lib/base/DiskOffering.py @@ -39,20 +39,24 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Domain.py b/tools/marvin/marvin/integration/lib/base/Domain.py index d4f0ae34540..a20d88d3c83 100644 --- a/tools/marvin/marvin/integration/lib/base/Domain.py +++ b/tools/marvin/marvin/integration/lib/base/Domain.py @@ -39,20 +39,24 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/DomainChildren.py b/tools/marvin/marvin/integration/lib/base/DomainChildren.py index 43cecbab9de..093be11962e 100644 --- a/tools/marvin/marvin/integration/lib/base/DomainChildren.py +++ b/tools/marvin/marvin/integration/lib/base/DomainChildren.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py b/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py index 998e0b4a5d2..084851f79e8 100644 --- a/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py +++ b/tools/marvin/marvin/integration/lib/base/EgressFirewallRule.py @@ -38,13 +38,15 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/EventTypes.py b/tools/marvin/marvin/integration/lib/base/EventTypes.py index c14eea1cd1b..f83b415b120 100644 --- a/tools/marvin/marvin/integration/lib/base/EventTypes.py +++ b/tools/marvin/marvin/integration/lib/base/EventTypes.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/Events.py b/tools/marvin/marvin/integration/lib/base/Events.py index 935c6aaf662..048dce6da5b 100644 --- a/tools/marvin/marvin/integration/lib/base/Events.py +++ b/tools/marvin/marvin/integration/lib/base/Events.py @@ -28,12 +28,14 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/FirewallRule.py b/tools/marvin/marvin/integration/lib/base/FirewallRule.py index 6ed3df3bd5a..5aa13263b56 100644 --- a/tools/marvin/marvin/integration/lib/base/FirewallRule.py +++ b/tools/marvin/marvin/integration/lib/base/FirewallRule.py @@ -38,13 +38,15 @@ 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 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 00000000000..73c71234c64 --- /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 diff --git a/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py index d4ba7f14ec9..0be12b6613e 100644 --- a/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py +++ b/tools/marvin/marvin/integration/lib/base/FromLoadBalancerRule.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import removeFromLoadBalancerRule class FromLoadBalancerRule(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 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 00000000000..320d144249a --- /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 diff --git a/tools/marvin/marvin/integration/lib/base/Host.py b/tools/marvin/marvin/integration/lib/base/Host.py index 746faf3e417..dd6fd80d10b 100644 --- a/tools/marvin/marvin/integration/lib/base/Host.py +++ b/tools/marvin/marvin/integration/lib/base/Host.py @@ -30,40 +30,48 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py b/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py index 3d888cbbb20..b6d222b173b 100644 --- a/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py +++ b/tools/marvin/marvin/integration/lib/base/HostForMaintenance.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import prepareHostForMaintenance class HostForMaintenance(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/HostMaintenance.py b/tools/marvin/marvin/integration/lib/base/HostMaintenance.py index b8d9a719de2..1a89d9e81ad 100644 --- a/tools/marvin/marvin/integration/lib/base/HostMaintenance.py +++ b/tools/marvin/marvin/integration/lib/base/HostMaintenance.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import cancelHostMaintenance class HostMaintenance(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/HostPassword.py b/tools/marvin/marvin/integration/lib/base/HostPassword.py index a2c14fbc434..bd6d68b12e5 100644 --- a/tools/marvin/marvin/integration/lib/base/HostPassword.py +++ b/tools/marvin/marvin/integration/lib/base/HostPassword.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import updateHostPassword class HostPassword(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py b/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py index bb97cb850e6..569c0c0ea12 100644 --- a/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py +++ b/tools/marvin/marvin/integration/lib/base/HypervisorCapabilities.py @@ -28,12 +28,14 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Hypervisors.py b/tools/marvin/marvin/integration/lib/base/Hypervisors.py index dc2901583e8..6b61fed23d3 100644 --- a/tools/marvin/marvin/integration/lib/base/Hypervisors.py +++ b/tools/marvin/marvin/integration/lib/base/Hypervisors.py @@ -27,6 +27,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/InstanceGroup.py b/tools/marvin/marvin/integration/lib/base/InstanceGroup.py index 29bc217e913..ccc0aba1fe5 100644 --- a/tools/marvin/marvin/integration/lib/base/InstanceGroup.py +++ b/tools/marvin/marvin/integration/lib/base/InstanceGroup.py @@ -39,20 +39,24 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/IpAddress.py b/tools/marvin/marvin/integration/lib/base/IpAddress.py index a4950070121..ac7f458b3b3 100644 --- a/tools/marvin/marvin/integration/lib/base/IpAddress.py +++ b/tools/marvin/marvin/integration/lib/base/IpAddress.py @@ -21,22 +21,22 @@ from marvin.cloudstackAPI import associateIpAddress class IpAddress(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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 diff --git a/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py b/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py index 351b8669df0..073103b21a7 100644 --- a/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py +++ b/tools/marvin/marvin/integration/lib/base/IpForwardingRule.py @@ -38,13 +38,15 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/IpFromNic.py b/tools/marvin/marvin/integration/lib/base/IpFromNic.py index ef5d90584f2..f64763e7361 100644 --- a/tools/marvin/marvin/integration/lib/base/IpFromNic.py +++ b/tools/marvin/marvin/integration/lib/base/IpFromNic.py @@ -26,6 +26,8 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/IpToNic.py b/tools/marvin/marvin/integration/lib/base/IpToNic.py index dc95db43331..42247bd8902 100644 --- a/tools/marvin/marvin/integration/lib/base/IpToNic.py +++ b/tools/marvin/marvin/integration/lib/base/IpToNic.py @@ -26,6 +26,8 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/Iso.py b/tools/marvin/marvin/integration/lib/base/Iso.py index d5ec0df80c8..14dba221a42 100644 --- a/tools/marvin/marvin/integration/lib/base/Iso.py +++ b/tools/marvin/marvin/integration/lib/base/Iso.py @@ -33,63 +33,77 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/IsoPermissions.py b/tools/marvin/marvin/integration/lib/base/IsoPermissions.py index b4e43c38f4b..7b0d734b35f 100644 --- a/tools/marvin/marvin/integration/lib/base/IsoPermissions.py +++ b/tools/marvin/marvin/integration/lib/base/IsoPermissions.py @@ -29,13 +29,15 @@ 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 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 00000000000..a2a79e18e54 --- /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) 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 00000000000..e6b10a3b12a --- /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 diff --git a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py index 206ccb84465..3a7906096ca 100644 --- a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py +++ b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicies.py @@ -28,6 +28,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py index 78817297f9f..023f314f90d 100644 --- a/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py +++ b/tools/marvin/marvin/integration/lib/base/LBStickinessPolicy.py @@ -36,6 +36,8 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py index e4920263370..4bdcf7f3ee3 100644 --- a/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py +++ b/tools/marvin/marvin/integration/lib/base/LoadBalancerRule.py @@ -39,20 +39,24 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py b/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py index 4bee62a50b0..42d526235f8 100644 --- a/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py +++ b/tools/marvin/marvin/integration/lib/base/LoadBalancerRuleInstances.py @@ -28,6 +28,6 @@ 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) diff --git a/tools/marvin/marvin/integration/lib/base/Network.py b/tools/marvin/marvin/integration/lib/base/Network.py index 04f0e2b5c76..1364233b441 100644 --- a/tools/marvin/marvin/integration/lib/base/Network.py +++ b/tools/marvin/marvin/integration/lib/base/Network.py @@ -40,27 +40,33 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/NetworkACL.py b/tools/marvin/marvin/integration/lib/base/NetworkACL.py index 708687aa774..519ab288b28 100644 --- a/tools/marvin/marvin/integration/lib/base/NetworkACL.py +++ b/tools/marvin/marvin/integration/lib/base/NetworkACL.py @@ -38,13 +38,15 @@ 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 diff --git a/tools/marvin/marvin/integration/lib/base/NetworkDevice.py b/tools/marvin/marvin/integration/lib/base/NetworkDevice.py index d7fc101d5f2..0a77aa77a9d 100644 --- a/tools/marvin/marvin/integration/lib/base/NetworkDevice.py +++ b/tools/marvin/marvin/integration/lib/base/NetworkDevice.py @@ -28,20 +28,24 @@ class NetworkDevice(CloudStackEntity.CloudStackEntity): def add(self, apiclient, **kwargs): cmd = addNetworkDevice.addNetworkDeviceCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] networkdevice = apiclient.addNetworkDevice(cmd) + return networkdevice @classmethod def list(self, apiclient, **kwargs): cmd = listNetworkDevice.listNetworkDeviceCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] networkdevice = apiclient.listNetworkDevice(cmd) return map(lambda e: NetworkDevice(e.__dict__), networkdevice) def delete(self, apiclient, id, **kwargs): cmd = deleteNetworkDevice.deleteNetworkDeviceCmd() + 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()] networkdevice = apiclient.deleteNetworkDevice(cmd) + return networkdevice diff --git a/tools/marvin/marvin/integration/lib/base/NetworkOffering.py b/tools/marvin/marvin/integration/lib/base/NetworkOffering.py index dd1dc8e5391..e2b558fbab0 100644 --- a/tools/marvin/marvin/integration/lib/base/NetworkOffering.py +++ b/tools/marvin/marvin/integration/lib/base/NetworkOffering.py @@ -39,19 +39,23 @@ class NetworkOffering(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listNetworkOfferings.listNetworkOfferingsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] networkoffering = apiclient.listNetworkOfferings(cmd) return map(lambda e: NetworkOffering(e.__dict__), networkoffering) def update(self, apiclient, **kwargs): cmd = updateNetworkOffering.updateNetworkOfferingCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] networkoffering = apiclient.updateNetworkOffering(cmd) + return networkoffering def delete(self, apiclient, id, **kwargs): cmd = deleteNetworkOffering.deleteNetworkOfferingCmd() + 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()] networkoffering = apiclient.deleteNetworkOffering(cmd) + return networkoffering diff --git a/tools/marvin/marvin/integration/lib/base/NetworkServiceProvider.py b/tools/marvin/marvin/integration/lib/base/NetworkServiceProvider.py index 87f68939d0f..640266d7cb5 100644 --- a/tools/marvin/marvin/integration/lib/base/NetworkServiceProvider.py +++ b/tools/marvin/marvin/integration/lib/base/NetworkServiceProvider.py @@ -29,29 +29,35 @@ class NetworkServiceProvider(CloudStackEntity.CloudStackEntity): def add(self, apiclient, physicalnetworkid, name, **kwargs): cmd = addNetworkServiceProvider.addNetworkServiceProviderCmd() + cmd.id = self.id cmd.name = name cmd.physicalnetworkid = physicalnetworkid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] networkserviceprovider = apiclient.addNetworkServiceProvider(cmd) + return networkserviceprovider @classmethod def list(self, apiclient, **kwargs): cmd = listNetworkServiceProviders.listNetworkServiceProvidersCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] networkserviceprovider = apiclient.listNetworkServiceProviders(cmd) return map(lambda e: NetworkServiceProvider(e.__dict__), networkserviceprovider) def update(self, apiclient, id, **kwargs): cmd = updateNetworkServiceProvider.updateNetworkServiceProviderCmd() + 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()] networkserviceprovider = apiclient.updateNetworkServiceProvider(cmd) + return networkserviceprovider def delete(self, apiclient, id, **kwargs): cmd = deleteNetworkServiceProvider.deleteNetworkServiceProviderCmd() + 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()] networkserviceprovider = apiclient.deleteNetworkServiceProvider(cmd) + return networkserviceprovider diff --git a/tools/marvin/marvin/integration/lib/base/NicFromVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/NicFromVirtualMachine.py index 409ac5bcd51..2008fd756de 100644 --- a/tools/marvin/marvin/integration/lib/base/NicFromVirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/NicFromVirtualMachine.py @@ -26,7 +26,9 @@ class NicFromVirtualMachine(CloudStackEntity.CloudStackEntity): def remove(self, apiclient, nicid, virtualmachineid, **kwargs): cmd = removeNicFromVirtualMachine.removeNicFromVirtualMachineCmd() + 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()] nicfromvirtualmachine = apiclient.removeNicFromVirtualMachine(cmd) + return nicfromvirtualmachine diff --git a/tools/marvin/marvin/integration/lib/base/NicToVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/NicToVirtualMachine.py index e5e501bd4fc..bb27a87de61 100644 --- a/tools/marvin/marvin/integration/lib/base/NicToVirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/NicToVirtualMachine.py @@ -26,7 +26,9 @@ class NicToVirtualMachine(CloudStackEntity.CloudStackEntity): def add(self, apiclient, networkid, virtualmachineid, **kwargs): cmd = addNicToVirtualMachine.addNicToVirtualMachineCmd() + cmd.id = self.id cmd.networkid = networkid cmd.virtualmachineid = virtualmachineid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] nictovirtualmachine = apiclient.addNicToVirtualMachine(cmd) + return nictovirtualmachine diff --git a/tools/marvin/marvin/integration/lib/base/NiciraNvpDevice.py b/tools/marvin/marvin/integration/lib/base/NiciraNvpDevice.py index 6aacd6accce..590cb1b7f69 100644 --- a/tools/marvin/marvin/integration/lib/base/NiciraNvpDevice.py +++ b/tools/marvin/marvin/integration/lib/base/NiciraNvpDevice.py @@ -28,25 +28,29 @@ class NiciraNvpDevice(CloudStackEntity.CloudStackEntity): def add(self, apiclient, username, physicalnetworkid, password, hostname, transportzoneuuid, **kwargs): cmd = addNiciraNvpDevice.addNiciraNvpDeviceCmd() + cmd.id = self.id cmd.hostname = hostname cmd.password = password cmd.physicalnetworkid = physicalnetworkid cmd.transportzoneuuid = transportzoneuuid cmd.username = username - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] niciranvpdevice = apiclient.addNiciraNvpDevice(cmd) + return niciranvpdevice @classmethod def list(self, apiclient, **kwargs): cmd = listNiciraNvpDevices.listNiciraNvpDevicesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] niciranvpdevice = apiclient.listNiciraNvpDevices(cmd) return map(lambda e: NiciraNvpDevice(e.__dict__), niciranvpdevice) def delete(self, apiclient, nvpdeviceid, **kwargs): cmd = deleteNiciraNvpDevice.deleteNiciraNvpDeviceCmd() + cmd.id = self.id cmd.nvpdeviceid = nvpdeviceid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] niciranvpdevice = apiclient.deleteNiciraNvpDevice(cmd) + return niciranvpdevice diff --git a/tools/marvin/marvin/integration/lib/base/NiciraNvpDeviceNetworks.py b/tools/marvin/marvin/integration/lib/base/NiciraNvpDeviceNetworks.py index 6eb0b0361fd..058aa4d354f 100644 --- a/tools/marvin/marvin/integration/lib/base/NiciraNvpDeviceNetworks.py +++ b/tools/marvin/marvin/integration/lib/base/NiciraNvpDeviceNetworks.py @@ -28,6 +28,6 @@ class NiciraNvpDeviceNetworks(CloudStackEntity.CloudStackEntity): def list(self, apiclient, nvpdeviceid, **kwargs): cmd = listNiciraNvpDeviceNetworks.listNiciraNvpDeviceNetworksCmd() cmd.nvpdeviceid = nvpdeviceid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] niciranvpdevicenetworks = apiclient.listNiciraNvpDeviceNetworks(cmd) return map(lambda e: NiciraNvpDeviceNetworks(e.__dict__), niciranvpdevicenetworks) diff --git a/tools/marvin/marvin/integration/lib/base/Nics.py b/tools/marvin/marvin/integration/lib/base/Nics.py index c121f7415d7..171889a5809 100644 --- a/tools/marvin/marvin/integration/lib/base/Nics.py +++ b/tools/marvin/marvin/integration/lib/base/Nics.py @@ -28,6 +28,6 @@ class Nics(CloudStackEntity.CloudStackEntity): def list(self, apiclient, virtualmachineid, **kwargs): cmd = listNics.listNicsCmd() cmd.virtualmachineid = virtualmachineid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] nics = apiclient.listNics(cmd) return map(lambda e: Nics(e.__dict__), nics) diff --git a/tools/marvin/marvin/integration/lib/base/OsCategories.py b/tools/marvin/marvin/integration/lib/base/OsCategories.py index 923e20c40e7..54d9a720867 100644 --- a/tools/marvin/marvin/integration/lib/base/OsCategories.py +++ b/tools/marvin/marvin/integration/lib/base/OsCategories.py @@ -27,6 +27,6 @@ class OsCategories(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listOsCategories.listOsCategoriesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] oscategories = apiclient.listOsCategories(cmd) return map(lambda e: OsCategories(e.__dict__), oscategories) diff --git a/tools/marvin/marvin/integration/lib/base/OsTypes.py b/tools/marvin/marvin/integration/lib/base/OsTypes.py index 579000204f7..384eb527382 100644 --- a/tools/marvin/marvin/integration/lib/base/OsTypes.py +++ b/tools/marvin/marvin/integration/lib/base/OsTypes.py @@ -27,6 +27,6 @@ class OsTypes(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listOsTypes.listOsTypesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] ostypes = apiclient.listOsTypes(cmd) return map(lambda e: OsTypes(e.__dict__), ostypes) diff --git a/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py index 6b2a49c417a..2489d2f7500 100644 --- a/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/PasswordForVirtualMachine.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import resetPasswordForVirtualMachine class PasswordForVirtualMachine(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def reset(self, apiclient, id, **kwargs): cmd = resetPasswordForVirtualMachine.resetPasswordForVirtualMachineCmd() + 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()] passwordforvirtualmachine = apiclient.resetPasswordForVirtualMachine(cmd) + return passwordforvirtualmachine diff --git a/tools/marvin/marvin/integration/lib/base/PhysicalNetwork.py b/tools/marvin/marvin/integration/lib/base/PhysicalNetwork.py index 94b595b0501..d33205240ba 100644 --- a/tools/marvin/marvin/integration/lib/base/PhysicalNetwork.py +++ b/tools/marvin/marvin/integration/lib/base/PhysicalNetwork.py @@ -39,20 +39,24 @@ class PhysicalNetwork(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listPhysicalNetworks.listPhysicalNetworksCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] physicalnetwork = apiclient.listPhysicalNetworks(cmd) return map(lambda e: PhysicalNetwork(e.__dict__), physicalnetwork) def update(self, apiclient, id, **kwargs): cmd = updatePhysicalNetwork.updatePhysicalNetworkCmd() + 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()] physicalnetwork = apiclient.updatePhysicalNetwork(cmd) + return physicalnetwork def delete(self, apiclient, id, **kwargs): cmd = deletePhysicalNetwork.deletePhysicalNetworkCmd() + 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()] physicalnetwork = apiclient.deletePhysicalNetwork(cmd) + return physicalnetwork diff --git a/tools/marvin/marvin/integration/lib/base/Pod.py b/tools/marvin/marvin/integration/lib/base/Pod.py index 067b6f461a4..aa51d85bea7 100644 --- a/tools/marvin/marvin/integration/lib/base/Pod.py +++ b/tools/marvin/marvin/integration/lib/base/Pod.py @@ -39,20 +39,24 @@ class Pod(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listPods.listPodsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] pod = apiclient.listPods(cmd) return map(lambda e: Pod(e.__dict__), pod) def update(self, apiclient, id, **kwargs): cmd = updatePod.updatePodCmd() + 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()] pod = apiclient.updatePod(cmd) + return pod def delete(self, apiclient, id, **kwargs): cmd = deletePod.deletePodCmd() + 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()] pod = apiclient.deletePod(cmd) + return pod diff --git a/tools/marvin/marvin/integration/lib/base/PortForwardingRule.py b/tools/marvin/marvin/integration/lib/base/PortForwardingRule.py index 3c1536f53b4..5afcda7e318 100644 --- a/tools/marvin/marvin/integration/lib/base/PortForwardingRule.py +++ b/tools/marvin/marvin/integration/lib/base/PortForwardingRule.py @@ -39,23 +39,27 @@ class PortForwardingRule(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listPortForwardingRules.listPortForwardingRulesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] portforwardingrule = apiclient.listPortForwardingRules(cmd) return map(lambda e: PortForwardingRule(e.__dict__), portforwardingrule) def update(self, apiclient, publicport, protocol, ipaddressid, privateport, **kwargs): cmd = updatePortForwardingRule.updatePortForwardingRuleCmd() + cmd.id = self.id cmd.ipaddressid = ipaddressid cmd.privateport = privateport cmd.protocol = protocol cmd.publicport = publicport - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] portforwardingrule = apiclient.updatePortForwardingRule(cmd) + return portforwardingrule def delete(self, apiclient, id, **kwargs): cmd = deletePortForwardingRule.deletePortForwardingRuleCmd() + 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()] portforwardingrule = apiclient.deletePortForwardingRule(cmd) + return portforwardingrule diff --git a/tools/marvin/marvin/integration/lib/base/PrivateGateway.py b/tools/marvin/marvin/integration/lib/base/PrivateGateway.py index c4a75f7eeb1..b084772a454 100644 --- a/tools/marvin/marvin/integration/lib/base/PrivateGateway.py +++ b/tools/marvin/marvin/integration/lib/base/PrivateGateway.py @@ -38,13 +38,15 @@ class PrivateGateway(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listPrivateGateways.listPrivateGatewaysCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] privategateway = apiclient.listPrivateGateways(cmd) return map(lambda e: PrivateGateway(e.__dict__), privategateway) def delete(self, apiclient, id, **kwargs): cmd = deletePrivateGateway.deletePrivateGatewayCmd() + 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()] privategateway = apiclient.deletePrivateGateway(cmd) + return privategateway diff --git a/tools/marvin/marvin/integration/lib/base/Project.py b/tools/marvin/marvin/integration/lib/base/Project.py index 1b36b93ce49..03a4d6314a1 100644 --- a/tools/marvin/marvin/integration/lib/base/Project.py +++ b/tools/marvin/marvin/integration/lib/base/Project.py @@ -31,9 +31,11 @@ class Project(CloudStackEntity.CloudStackEntity): def suspend(self, apiclient, id, **kwargs): cmd = suspendProject.suspendProjectCmd() + 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()] project = apiclient.suspendProject(cmd) + return project @classmethod @@ -48,27 +50,33 @@ class Project(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listProjects.listProjectsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] project = apiclient.listProjects(cmd) return map(lambda e: Project(e.__dict__), project) def update(self, apiclient, id, **kwargs): cmd = updateProject.updateProjectCmd() + 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()] project = apiclient.updateProject(cmd) + return project def activate(self, apiclient, id, **kwargs): cmd = activateProject.activateProjectCmd() + 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()] project = apiclient.activateProject(cmd) + return project def delete(self, apiclient, id, **kwargs): cmd = deleteProject.deleteProjectCmd() + 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()] project = apiclient.deleteProject(cmd) + return project diff --git a/tools/marvin/marvin/integration/lib/base/ProjectAccounts.py b/tools/marvin/marvin/integration/lib/base/ProjectAccounts.py index 828f0004d8f..b867e7985d1 100644 --- a/tools/marvin/marvin/integration/lib/base/ProjectAccounts.py +++ b/tools/marvin/marvin/integration/lib/base/ProjectAccounts.py @@ -28,6 +28,6 @@ class ProjectAccounts(CloudStackEntity.CloudStackEntity): def list(self, apiclient, projectid, **kwargs): cmd = listProjectAccounts.listProjectAccountsCmd() cmd.projectid = projectid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] projectaccounts = apiclient.listProjectAccounts(cmd) return map(lambda e: ProjectAccounts(e.__dict__), projectaccounts) diff --git a/tools/marvin/marvin/integration/lib/base/ProjectInvitation.py b/tools/marvin/marvin/integration/lib/base/ProjectInvitation.py index c1872c16b14..c9a1e25d043 100644 --- a/tools/marvin/marvin/integration/lib/base/ProjectInvitation.py +++ b/tools/marvin/marvin/integration/lib/base/ProjectInvitation.py @@ -29,20 +29,24 @@ class ProjectInvitation(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listProjectInvitations.listProjectInvitationsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] projectinvitation = apiclient.listProjectInvitations(cmd) return map(lambda e: ProjectInvitation(e.__dict__), projectinvitation) def update(self, apiclient, projectid, **kwargs): cmd = updateProjectInvitation.updateProjectInvitationCmd() + 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()] projectinvitation = apiclient.updateProjectInvitation(cmd) + return projectinvitation def delete(self, apiclient, id, **kwargs): cmd = deleteProjectInvitation.deleteProjectInvitationCmd() + 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()] projectinvitation = apiclient.deleteProjectInvitation(cmd) + return projectinvitation diff --git a/tools/marvin/marvin/integration/lib/base/PublicIpAddresses.py b/tools/marvin/marvin/integration/lib/base/PublicIpAddresses.py index 8f7b3a0281a..c64311d3a62 100644 --- a/tools/marvin/marvin/integration/lib/base/PublicIpAddresses.py +++ b/tools/marvin/marvin/integration/lib/base/PublicIpAddresses.py @@ -27,6 +27,6 @@ class PublicIpAddresses(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listPublicIpAddresses.listPublicIpAddressesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] publicipaddresses = apiclient.listPublicIpAddresses(cmd) return map(lambda e: PublicIpAddresses(e.__dict__), publicipaddresses) diff --git a/tools/marvin/marvin/integration/lib/base/Region.py b/tools/marvin/marvin/integration/lib/base/Region.py index cd0a07f68de..2aea915af67 100644 --- a/tools/marvin/marvin/integration/lib/base/Region.py +++ b/tools/marvin/marvin/integration/lib/base/Region.py @@ -29,30 +29,36 @@ class Region(CloudStackEntity.CloudStackEntity): def add(self, apiclient, endpoint, id, name, **kwargs): cmd = addRegion.addRegionCmd() + cmd.id = self.id cmd.id = id cmd.endpoint = endpoint cmd.name = name - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] region = apiclient.addRegion(cmd) + return region @classmethod def list(self, apiclient, **kwargs): cmd = listRegions.listRegionsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] region = apiclient.listRegions(cmd) return map(lambda e: Region(e.__dict__), region) def update(self, apiclient, id, **kwargs): cmd = updateRegion.updateRegionCmd() + 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()] region = apiclient.updateRegion(cmd) + return region def remove(self, apiclient, id, **kwargs): cmd = removeRegion.removeRegionCmd() + 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()] region = apiclient.removeRegion(cmd) + return region diff --git a/tools/marvin/marvin/integration/lib/base/RemoteAccessVpn.py b/tools/marvin/marvin/integration/lib/base/RemoteAccessVpn.py index 66b27dee1a2..e200a33e7a3 100644 --- a/tools/marvin/marvin/integration/lib/base/RemoteAccessVpn.py +++ b/tools/marvin/marvin/integration/lib/base/RemoteAccessVpn.py @@ -39,13 +39,15 @@ class RemoteAccessVpn(CloudStackEntity.CloudStackEntity): def list(self, apiclient, publicipid, **kwargs): cmd = listRemoteAccessVpns.listRemoteAccessVpnsCmd() cmd.publicipid = publicipid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] remoteaccessvpn = apiclient.listRemoteAccessVpns(cmd) return map(lambda e: RemoteAccessVpn(e.__dict__), remoteaccessvpn) def delete(self, apiclient, publicipid, **kwargs): cmd = deleteRemoteAccessVpn.deleteRemoteAccessVpnCmd() + cmd.id = self.id cmd.publicipid = publicipid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] remoteaccessvpn = apiclient.deleteRemoteAccessVpn(cmd) + return remoteaccessvpn diff --git a/tools/marvin/marvin/integration/lib/base/Remove.py b/tools/marvin/marvin/integration/lib/base/Remove.py index a23eed40edf..9d572382d88 100644 --- a/tools/marvin/marvin/integration/lib/base/Remove.py +++ b/tools/marvin/marvin/integration/lib/base/Remove.py @@ -26,5 +26,7 @@ class Remove(CloudStackEntity.CloudStackEntity): def ldap(self, apiclient, **kwargs): cmd = ldapRemove.ldapRemoveCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] remove = apiclient.ldapRemove(cmd) + return remove diff --git a/tools/marvin/marvin/integration/lib/base/ResourceCount.py b/tools/marvin/marvin/integration/lib/base/ResourceCount.py index 147d0cd28e2..fd701681385 100644 --- a/tools/marvin/marvin/integration/lib/base/ResourceCount.py +++ b/tools/marvin/marvin/integration/lib/base/ResourceCount.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import updateResourceCount class ResourceCount(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def update(self, apiclient, domainid, **kwargs): cmd = updateResourceCount.updateResourceCountCmd() + cmd.id = self.id cmd.domainid = domainid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] resourcecount = apiclient.updateResourceCount(cmd) + return resourcecount diff --git a/tools/marvin/marvin/integration/lib/base/ResourceLimit.py b/tools/marvin/marvin/integration/lib/base/ResourceLimit.py index 69177f56d60..66dab4c0bd3 100644 --- a/tools/marvin/marvin/integration/lib/base/ResourceLimit.py +++ b/tools/marvin/marvin/integration/lib/base/ResourceLimit.py @@ -28,13 +28,15 @@ class ResourceLimit(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listResourceLimits.listResourceLimitsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] resourcelimit = apiclient.listResourceLimits(cmd) return map(lambda e: ResourceLimit(e.__dict__), resourcelimit) def update(self, apiclient, resourcetype, **kwargs): cmd = updateResourceLimit.updateResourceLimitCmd() + cmd.id = self.id cmd.resourcetype = resourcetype - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] resourcelimit = apiclient.updateResourceLimit(cmd) + return resourcelimit diff --git a/tools/marvin/marvin/integration/lib/base/Router.py b/tools/marvin/marvin/integration/lib/base/Router.py index d582ca8a392..78dc66be668 100644 --- a/tools/marvin/marvin/integration/lib/base/Router.py +++ b/tools/marvin/marvin/integration/lib/base/Router.py @@ -30,35 +30,43 @@ class Router(CloudStackEntity.CloudStackEntity): def destroy(self, apiclient, id, **kwargs): cmd = destroyRouter.destroyRouterCmd() + 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()] router = apiclient.destroyRouter(cmd) + return router @classmethod def list(self, apiclient, **kwargs): cmd = listRouters.listRoutersCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] router = apiclient.listRouters(cmd) return map(lambda e: Router(e.__dict__), router) def stop(self, apiclient, id, **kwargs): cmd = stopRouter.stopRouterCmd() + 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()] router = apiclient.stopRouter(cmd) + return router def reboot(self, apiclient, id, **kwargs): cmd = rebootRouter.rebootRouterCmd() + 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()] router = apiclient.rebootRouter(cmd) + return router def start(self, apiclient, id, **kwargs): cmd = startRouter.startRouterCmd() + 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()] router = apiclient.startRouter(cmd) + return router diff --git a/tools/marvin/marvin/integration/lib/base/S3.py b/tools/marvin/marvin/integration/lib/base/S3.py index de04fbdf2e0..fa0fdc33ea5 100644 --- a/tools/marvin/marvin/integration/lib/base/S3.py +++ b/tools/marvin/marvin/integration/lib/base/S3.py @@ -27,16 +27,18 @@ class S3(CloudStackEntity.CloudStackEntity): def add(self, apiclient, secretkey, accesskey, bucket, **kwargs): cmd = addS3.addS3Cmd() + cmd.id = self.id cmd.accesskey = accesskey cmd.bucket = bucket cmd.secretkey = secretkey - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] s3 = apiclient.addS3(cmd) + return s3 @classmethod def list(self, apiclient, **kwargs): cmd = listS3s.listS3sCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] s3 = apiclient.listS3s(cmd) return map(lambda e: S3(e.__dict__), s3) diff --git a/tools/marvin/marvin/integration/lib/base/SSHKeyForVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/SSHKeyForVirtualMachine.py index ed2f0e9a214..76df78c45cc 100644 --- a/tools/marvin/marvin/integration/lib/base/SSHKeyForVirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/SSHKeyForVirtualMachine.py @@ -26,7 +26,9 @@ class SSHKeyForVirtualMachine(CloudStackEntity.CloudStackEntity): def reset(self, apiclient, keypair, id, **kwargs): cmd = resetSSHKeyForVirtualMachine.resetSSHKeyForVirtualMachineCmd() + cmd.id = self.id cmd.id = id cmd.keypair = keypair - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] sshkeyforvirtualmachine = apiclient.resetSSHKeyForVirtualMachine(cmd) + return sshkeyforvirtualmachine diff --git a/tools/marvin/marvin/integration/lib/base/SSHKeyPair.py b/tools/marvin/marvin/integration/lib/base/SSHKeyPair.py index 442722e0cae..24ec67ce95c 100644 --- a/tools/marvin/marvin/integration/lib/base/SSHKeyPair.py +++ b/tools/marvin/marvin/integration/lib/base/SSHKeyPair.py @@ -38,22 +38,26 @@ class SSHKeyPair(CloudStackEntity.CloudStackEntity): def register(self, apiclient, publickey, name, **kwargs): cmd = registerSSHKeyPair.registerSSHKeyPairCmd() + cmd.id = self.id cmd.name = name cmd.publickey = publickey - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] sshkeypair = apiclient.registerSSHKeyPair(cmd) + return sshkeypair @classmethod def list(self, apiclient, **kwargs): cmd = listSSHKeyPairs.listSSHKeyPairsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] sshkeypair = apiclient.listSSHKeyPairs(cmd) return map(lambda e: SSHKeyPair(e.__dict__), sshkeypair) def delete(self, apiclient, name, **kwargs): cmd = deleteSSHKeyPair.deleteSSHKeyPairCmd() + 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()] sshkeypair = apiclient.deleteSSHKeyPair(cmd) + return sshkeypair diff --git a/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py b/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py index d273347868e..8f7e8c62d68 100644 --- a/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py +++ b/tools/marvin/marvin/integration/lib/base/SecondaryStorage.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import addSecondaryStorage class SecondaryStorage(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def add(self, apiclient, url, **kwargs): cmd = addSecondaryStorage.addSecondaryStorageCmd() + cmd.id = self.id cmd.url = url - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] secondarystorage = apiclient.addSecondaryStorage(cmd) + return secondarystorage diff --git a/tools/marvin/marvin/integration/lib/base/SecurityGroup.py b/tools/marvin/marvin/integration/lib/base/SecurityGroup.py index 324823d9bbf..c8862702455 100644 --- a/tools/marvin/marvin/integration/lib/base/SecurityGroup.py +++ b/tools/marvin/marvin/integration/lib/base/SecurityGroup.py @@ -38,12 +38,14 @@ class SecurityGroup(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listSecurityGroups.listSecurityGroupsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] securitygroup = apiclient.listSecurityGroups(cmd) return map(lambda e: SecurityGroup(e.__dict__), securitygroup) def delete(self, apiclient, **kwargs): cmd = deleteSecurityGroup.deleteSecurityGroupCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] securitygroup = apiclient.deleteSecurityGroup(cmd) + return securitygroup diff --git a/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py b/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py index c2e633248a4..924b56887a3 100644 --- a/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py +++ b/tools/marvin/marvin/integration/lib/base/SecurityGroupEgress.py @@ -21,22 +21,22 @@ from marvin.cloudstackAPI import revokeSecurityGroupEgress class SecurityGroupEgress(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] securitygroupegress = apiclient.authorizeSecurityGroupEgress(cmd) + return securitygroupegress def revoke(self, apiclient, id, **kwargs): cmd = revokeSecurityGroupEgress.revokeSecurityGroupEgressCmd() + 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()] securitygroupegress = apiclient.revokeSecurityGroupEgress(cmd) + return securitygroupegress diff --git a/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py b/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py index 54226a10ecb..82910212361 100644 --- a/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py +++ b/tools/marvin/marvin/integration/lib/base/SecurityGroupIngress.py @@ -21,22 +21,22 @@ from marvin.cloudstackAPI import revokeSecurityGroupIngress class SecurityGroupIngress(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - 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] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] securitygroupingress = apiclient.authorizeSecurityGroupIngress(cmd) + return securitygroupingress def revoke(self, apiclient, id, **kwargs): cmd = revokeSecurityGroupIngress.revokeSecurityGroupIngressCmd() + 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()] securitygroupingress = apiclient.revokeSecurityGroupIngress(cmd) + return securitygroupingress diff --git a/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py b/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py index d2d2b1aaf42..afe3d7cb7f5 100644 --- a/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py +++ b/tools/marvin/marvin/integration/lib/base/ServiceForRouter.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import changeServiceForRouter class ServiceForRouter(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def change(self, apiclient, id, serviceofferingid, **kwargs): cmd = changeServiceForRouter.changeServiceForRouterCmd() + cmd.id = self.id cmd.id = id cmd.serviceofferingid = serviceofferingid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] serviceforrouter = apiclient.changeServiceForRouter(cmd) + return serviceforrouter diff --git a/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py b/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py index 2af2bb0071f..608673386f3 100644 --- a/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py +++ b/tools/marvin/marvin/integration/lib/base/ServiceForSystemVm.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import changeServiceForSystemVm class ServiceForSystemVm(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def change(self, apiclient, id, serviceofferingid, **kwargs): cmd = changeServiceForSystemVm.changeServiceForSystemVmCmd() + cmd.id = self.id cmd.id = id cmd.serviceofferingid = serviceofferingid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] serviceforsystemvm = apiclient.changeServiceForSystemVm(cmd) + return serviceforsystemvm diff --git a/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py b/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py index 91e561fdcf5..e22b0c11eeb 100644 --- a/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/ServiceForVirtualMachine.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import changeServiceForVirtualMachine class ServiceForVirtualMachine(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def change(self, apiclient, id, serviceofferingid, **kwargs): cmd = changeServiceForVirtualMachine.changeServiceForVirtualMachineCmd() + cmd.id = self.id cmd.id = id cmd.serviceofferingid = serviceofferingid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] serviceforvirtualmachine = apiclient.changeServiceForVirtualMachine(cmd) + return serviceforvirtualmachine diff --git a/tools/marvin/marvin/integration/lib/base/ServiceOffering.py b/tools/marvin/marvin/integration/lib/base/ServiceOffering.py index 56ee50d70e6..d5a26a9999c 100644 --- a/tools/marvin/marvin/integration/lib/base/ServiceOffering.py +++ b/tools/marvin/marvin/integration/lib/base/ServiceOffering.py @@ -39,20 +39,24 @@ class ServiceOffering(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listServiceOfferings.listServiceOfferingsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] serviceoffering = apiclient.listServiceOfferings(cmd) return map(lambda e: ServiceOffering(e.__dict__), serviceoffering) def update(self, apiclient, id, **kwargs): cmd = updateServiceOffering.updateServiceOfferingCmd() + 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()] serviceoffering = apiclient.updateServiceOffering(cmd) + return serviceoffering def delete(self, apiclient, id, **kwargs): cmd = deleteServiceOffering.deleteServiceOfferingCmd() + 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()] serviceoffering = apiclient.deleteServiceOffering(cmd) + return serviceoffering diff --git a/tools/marvin/marvin/integration/lib/base/Simulator.py b/tools/marvin/marvin/integration/lib/base/Simulator.py index 41cdcd275bc..b89b8294f5c 100644 --- a/tools/marvin/marvin/integration/lib/base/Simulator.py +++ b/tools/marvin/marvin/integration/lib/base/Simulator.py @@ -26,7 +26,9 @@ class Simulator(CloudStackEntity.CloudStackEntity): def configure(self, apiclient, name, value, **kwargs): cmd = configureSimulator.configureSimulatorCmd() + cmd.id = self.id cmd.name = name cmd.value = value - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] simulator = apiclient.configureSimulator(cmd) + return simulator diff --git a/tools/marvin/marvin/integration/lib/base/Snapshot.py b/tools/marvin/marvin/integration/lib/base/Snapshot.py index fc68f662a1b..2dec8664162 100644 --- a/tools/marvin/marvin/integration/lib/base/Snapshot.py +++ b/tools/marvin/marvin/integration/lib/base/Snapshot.py @@ -38,13 +38,15 @@ class Snapshot(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listSnapshots.listSnapshotsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] snapshot = apiclient.listSnapshots(cmd) return map(lambda e: Snapshot(e.__dict__), snapshot) def delete(self, apiclient, id, **kwargs): cmd = deleteSnapshot.deleteSnapshotCmd() + 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()] snapshot = apiclient.deleteSnapshot(cmd) + return snapshot diff --git a/tools/marvin/marvin/integration/lib/base/SnapshotPolicies.py b/tools/marvin/marvin/integration/lib/base/SnapshotPolicies.py index f878bbeb4b2..855febeb2ea 100644 --- a/tools/marvin/marvin/integration/lib/base/SnapshotPolicies.py +++ b/tools/marvin/marvin/integration/lib/base/SnapshotPolicies.py @@ -29,12 +29,14 @@ class SnapshotPolicies(CloudStackEntity.CloudStackEntity): def list(self, apiclient, volumeid, **kwargs): cmd = listSnapshotPolicies.listSnapshotPoliciesCmd() cmd.volumeid = volumeid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] snapshotpolicies = apiclient.listSnapshotPolicies(cmd) return map(lambda e: SnapshotPolicies(e.__dict__), snapshotpolicies) def delete(self, apiclient, **kwargs): cmd = deleteSnapshotPolicies.deleteSnapshotPoliciesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] snapshotpolicies = apiclient.deleteSnapshotPolicies(cmd) + return snapshotpolicies diff --git a/tools/marvin/marvin/integration/lib/base/StaticNat.py b/tools/marvin/marvin/integration/lib/base/StaticNat.py index 07a706d4a85..774aa1fb0c9 100644 --- a/tools/marvin/marvin/integration/lib/base/StaticNat.py +++ b/tools/marvin/marvin/integration/lib/base/StaticNat.py @@ -21,24 +21,24 @@ from marvin.cloudstackAPI import disableStaticNat class StaticNat(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def enable(self, apiclient, ipaddressid, virtualmachineid, **kwargs): cmd = enableStaticNat.enableStaticNatCmd() + cmd.id = self.id cmd.ipaddressid = ipaddressid cmd.virtualmachineid = virtualmachineid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] staticnat = apiclient.enableStaticNat(cmd) + return staticnat def disable(self, apiclient, ipaddressid, **kwargs): cmd = disableStaticNat.disableStaticNatCmd() + cmd.id = self.id cmd.ipaddressid = ipaddressid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] staticnat = apiclient.disableStaticNat(cmd) + return staticnat diff --git a/tools/marvin/marvin/integration/lib/base/StaticRoute.py b/tools/marvin/marvin/integration/lib/base/StaticRoute.py index ec5284f05d8..23378998d0c 100644 --- a/tools/marvin/marvin/integration/lib/base/StaticRoute.py +++ b/tools/marvin/marvin/integration/lib/base/StaticRoute.py @@ -38,13 +38,15 @@ class StaticRoute(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listStaticRoutes.listStaticRoutesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] staticroute = apiclient.listStaticRoutes(cmd) return map(lambda e: StaticRoute(e.__dict__), staticroute) def delete(self, apiclient, id, **kwargs): cmd = deleteStaticRoute.deleteStaticRouteCmd() + 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()] staticroute = apiclient.deleteStaticRoute(cmd) + return staticroute diff --git a/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py b/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py index 989dd727146..c80399f7d93 100644 --- a/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py +++ b/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py @@ -21,23 +21,23 @@ from marvin.cloudstackAPI import enableStorageMaintenance class StorageMaintenance(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def cancel(self, apiclient, id, **kwargs): cmd = cancelStorageMaintenance.cancelStorageMaintenanceCmd() + 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()] storagemaintenance = apiclient.cancelStorageMaintenance(cmd) + return storagemaintenance def enable(self, apiclient, id, **kwargs): cmd = enableStorageMaintenance.enableStorageMaintenanceCmd() + 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()] storagemaintenance = apiclient.enableStorageMaintenance(cmd) + return storagemaintenance diff --git a/tools/marvin/marvin/integration/lib/base/StorageNetworkIpRange.py b/tools/marvin/marvin/integration/lib/base/StorageNetworkIpRange.py index 68fc0bedd08..9258614eaea 100644 --- a/tools/marvin/marvin/integration/lib/base/StorageNetworkIpRange.py +++ b/tools/marvin/marvin/integration/lib/base/StorageNetworkIpRange.py @@ -39,20 +39,24 @@ class StorageNetworkIpRange(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listStorageNetworkIpRange.listStorageNetworkIpRangeCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] storagenetworkiprange = apiclient.listStorageNetworkIpRange(cmd) return map(lambda e: StorageNetworkIpRange(e.__dict__), storagenetworkiprange) def update(self, apiclient, id, **kwargs): cmd = updateStorageNetworkIpRange.updateStorageNetworkIpRangeCmd() + 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()] storagenetworkiprange = apiclient.updateStorageNetworkIpRange(cmd) + return storagenetworkiprange def delete(self, apiclient, id, **kwargs): cmd = deleteStorageNetworkIpRange.deleteStorageNetworkIpRangeCmd() + 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()] storagenetworkiprange = apiclient.deleteStorageNetworkIpRange(cmd) + return storagenetworkiprange diff --git a/tools/marvin/marvin/integration/lib/base/StoragePool.py b/tools/marvin/marvin/integration/lib/base/StoragePool.py index 4820f0db4da..cc9fc30a242 100644 --- a/tools/marvin/marvin/integration/lib/base/StoragePool.py +++ b/tools/marvin/marvin/integration/lib/base/StoragePool.py @@ -39,20 +39,24 @@ class StoragePool(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listStoragePools.listStoragePoolsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] storagepool = apiclient.listStoragePools(cmd) return map(lambda e: StoragePool(e.__dict__), storagepool) def update(self, apiclient, id, **kwargs): cmd = updateStoragePool.updateStoragePoolCmd() + 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()] storagepool = apiclient.updateStoragePool(cmd) + return storagepool def delete(self, apiclient, id, **kwargs): cmd = deleteStoragePool.deleteStoragePoolCmd() + 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()] storagepool = apiclient.deleteStoragePool(cmd) + return storagepool diff --git a/tools/marvin/marvin/integration/lib/base/StorageProviders.py b/tools/marvin/marvin/integration/lib/base/StorageProviders.py new file mode 100644 index 00000000000..406282fe8f1 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/base/StorageProviders.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 listStorageProviders + +class StorageProviders(CloudStackEntity.CloudStackEntity): + + + def __init__(self, items): + self.__dict__.update(items) + + + @classmethod + def list(self, apiclient, type, **kwargs): + cmd = listStorageProviders.listStorageProvidersCmd() + cmd.type = type + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + storageproviders = apiclient.listStorageProviders(cmd) + return map(lambda e: StorageProviders(e.__dict__), storageproviders) diff --git a/tools/marvin/marvin/integration/lib/base/SupportedNetworkServices.py b/tools/marvin/marvin/integration/lib/base/SupportedNetworkServices.py index 0d43e43e373..7230ed1edd6 100644 --- a/tools/marvin/marvin/integration/lib/base/SupportedNetworkServices.py +++ b/tools/marvin/marvin/integration/lib/base/SupportedNetworkServices.py @@ -27,6 +27,6 @@ class SupportedNetworkServices(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listSupportedNetworkServices.listSupportedNetworkServicesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] supportednetworkservices = apiclient.listSupportedNetworkServices(cmd) return map(lambda e: SupportedNetworkServices(e.__dict__), supportednetworkservices) diff --git a/tools/marvin/marvin/integration/lib/base/Swift.py b/tools/marvin/marvin/integration/lib/base/Swift.py index 8d368eb595f..435251c1773 100644 --- a/tools/marvin/marvin/integration/lib/base/Swift.py +++ b/tools/marvin/marvin/integration/lib/base/Swift.py @@ -27,14 +27,16 @@ class Swift(CloudStackEntity.CloudStackEntity): def add(self, apiclient, url, **kwargs): cmd = addSwift.addSwiftCmd() + cmd.id = self.id cmd.url = url - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] swift = apiclient.addSwift(cmd) + return swift @classmethod def list(self, apiclient, **kwargs): cmd = listSwifts.listSwiftsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] swift = apiclient.listSwifts(cmd) return map(lambda e: Swift(e.__dict__), swift) diff --git a/tools/marvin/marvin/integration/lib/base/SystemVm.py b/tools/marvin/marvin/integration/lib/base/SystemVm.py index f694d8e18a3..e6b369643b4 100644 --- a/tools/marvin/marvin/integration/lib/base/SystemVm.py +++ b/tools/marvin/marvin/integration/lib/base/SystemVm.py @@ -31,43 +31,53 @@ class SystemVm(CloudStackEntity.CloudStackEntity): def migrate(self, apiclient, hostid, virtualmachineid, **kwargs): cmd = migrateSystemVm.migrateSystemVmCmd() + cmd.id = self.id cmd.hostid = hostid cmd.virtualmachineid = virtualmachineid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] systemvm = apiclient.migrateSystemVm(cmd) + return systemvm def stop(self, apiclient, id, **kwargs): cmd = stopSystemVm.stopSystemVmCmd() + 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()] systemvm = apiclient.stopSystemVm(cmd) + return systemvm @classmethod def list(self, apiclient, **kwargs): cmd = listSystemVms.listSystemVmsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] systemvm = apiclient.listSystemVms(cmd) return map(lambda e: SystemVm(e.__dict__), systemvm) def reboot(self, apiclient, id, **kwargs): cmd = rebootSystemVm.rebootSystemVmCmd() + 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()] systemvm = apiclient.rebootSystemVm(cmd) + return systemvm def start(self, apiclient, id, **kwargs): cmd = startSystemVm.startSystemVmCmd() + 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()] systemvm = apiclient.startSystemVm(cmd) + return systemvm def destroy(self, apiclient, id, **kwargs): cmd = destroySystemVm.destroySystemVmCmd() + 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()] systemvm = apiclient.destroySystemVm(cmd) + return systemvm diff --git a/tools/marvin/marvin/integration/lib/base/Tags.py b/tools/marvin/marvin/integration/lib/base/Tags.py index b8d88c91a94..4087ffbf51f 100644 --- a/tools/marvin/marvin/integration/lib/base/Tags.py +++ b/tools/marvin/marvin/integration/lib/base/Tags.py @@ -38,14 +38,16 @@ class Tags(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listTags.listTagsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] tags = apiclient.listTags(cmd) return map(lambda e: Tags(e.__dict__), tags) def delete(self, apiclient, resourcetype, resourceids, **kwargs): cmd = deleteTags.deleteTagsCmd() + cmd.id = self.id cmd.resourceids = resourceids cmd.resourcetype = resourcetype - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] tags = apiclient.deleteTags(cmd) + return tags diff --git a/tools/marvin/marvin/integration/lib/base/Template.py b/tools/marvin/marvin/integration/lib/base/Template.py index f3363eb72db..efcfb96af47 100644 --- a/tools/marvin/marvin/integration/lib/base/Template.py +++ b/tools/marvin/marvin/integration/lib/base/Template.py @@ -33,10 +33,12 @@ class Template(CloudStackEntity.CloudStackEntity): def prepare(self, apiclient, zoneid, templateid, **kwargs): cmd = prepareTemplate.prepareTemplateCmd() + cmd.id = self.id cmd.templateid = templateid cmd.zoneid = zoneid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] template = apiclient.prepareTemplate(cmd) + return template @classmethod @@ -50,6 +52,7 @@ class Template(CloudStackEntity.CloudStackEntity): def register(self, apiclient, name, format, url, hypervisor, zoneid, displaytext, ostypeid, **kwargs): cmd = registerTemplate.registerTemplateCmd() + cmd.id = self.id cmd.displaytext = displaytext cmd.format = format cmd.hypervisor = hypervisor @@ -57,45 +60,54 @@ class Template(CloudStackEntity.CloudStackEntity): cmd.ostypeid = ostypeid 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()] template = apiclient.registerTemplate(cmd) + return template @classmethod def list(self, apiclient, templatefilter, **kwargs): cmd = listTemplates.listTemplatesCmd() cmd.templatefilter = templatefilter - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] template = apiclient.listTemplates(cmd) return map(lambda e: Template(e.__dict__), template) def update(self, apiclient, id, **kwargs): cmd = updateTemplate.updateTemplateCmd() + 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()] template = apiclient.updateTemplate(cmd) + return template def copy(self, apiclient, sourcezoneid, id, destzoneid, **kwargs): cmd = copyTemplate.copyTemplateCmd() + 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()] template = apiclient.copyTemplate(cmd) + return template def extract(self, apiclient, id, mode, **kwargs): cmd = extractTemplate.extractTemplateCmd() + 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()] template = apiclient.extractTemplate(cmd) + return template def delete(self, apiclient, id, **kwargs): cmd = deleteTemplate.deleteTemplateCmd() + 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()] template = apiclient.deleteTemplate(cmd) + return template diff --git a/tools/marvin/marvin/integration/lib/base/TemplatePermissions.py b/tools/marvin/marvin/integration/lib/base/TemplatePermissions.py index 4154559beba..8be60ab8c6a 100644 --- a/tools/marvin/marvin/integration/lib/base/TemplatePermissions.py +++ b/tools/marvin/marvin/integration/lib/base/TemplatePermissions.py @@ -29,13 +29,15 @@ class TemplatePermissions(CloudStackEntity.CloudStackEntity): def list(self, apiclient, id, **kwargs): cmd = listTemplatePermissions.listTemplatePermissionsCmd() cmd.id = id - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] templatepermissions = apiclient.listTemplatePermissions(cmd) return map(lambda e: TemplatePermissions(e.__dict__), templatepermissions) def update(self, apiclient, id, **kwargs): cmd = updateTemplatePermissions.updateTemplatePermissionsCmd() + 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()] templatepermissions = apiclient.updateTemplatePermissions(cmd) + return templatepermissions diff --git a/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py new file mode 100644 index 00000000000..e5a2ede74c0 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.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 assignToGlobalLoadBalancerRule + +class ToGlobalLoadBalancerRule(CloudStackEntity.CloudStackEntity): + + + def __init__(self, items): + self.__dict__.update(items) + + + def assign(self, apiclient, loadbalancerrulelist, id, **kwargs): + cmd = assignToGlobalLoadBalancerRule.assignToGlobalLoadBalancerRuleCmd() + cmd.id = self.id + cmd.id = id + cmd.loadbalancerrulelist = loadbalancerrulelist + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + togloballoadbalancerrule = apiclient.assignToGlobalLoadBalancerRule(cmd) + return togloballoadbalancerrule diff --git a/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py index a40836edd2c..15c3d9528b2 100644 --- a/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py +++ b/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py @@ -20,17 +20,15 @@ from marvin.cloudstackAPI import assignToLoadBalancerRule class ToLoadBalancerRule(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def assign(self, apiclient, id, virtualmachineids, **kwargs): cmd = assignToLoadBalancerRule.assignToLoadBalancerRuleCmd() + 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()] toloadbalancerrule = apiclient.assignToLoadBalancerRule(cmd) + return toloadbalancerrule diff --git a/tools/marvin/marvin/integration/lib/base/TrafficMonitor.py b/tools/marvin/marvin/integration/lib/base/TrafficMonitor.py index 6a8bc0fb8ce..caf72ef572b 100644 --- a/tools/marvin/marvin/integration/lib/base/TrafficMonitor.py +++ b/tools/marvin/marvin/integration/lib/base/TrafficMonitor.py @@ -28,23 +28,27 @@ class TrafficMonitor(CloudStackEntity.CloudStackEntity): def add(self, apiclient, url, zoneid, **kwargs): cmd = addTrafficMonitor.addTrafficMonitorCmd() + cmd.id = self.id 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()] trafficmonitor = apiclient.addTrafficMonitor(cmd) + return trafficmonitor @classmethod def list(self, apiclient, zoneid, **kwargs): cmd = listTrafficMonitors.listTrafficMonitorsCmd() cmd.zoneid = zoneid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] trafficmonitor = apiclient.listTrafficMonitors(cmd) return map(lambda e: TrafficMonitor(e.__dict__), trafficmonitor) def delete(self, apiclient, id, **kwargs): cmd = deleteTrafficMonitor.deleteTrafficMonitorCmd() + 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()] trafficmonitor = apiclient.deleteTrafficMonitor(cmd) + return trafficmonitor diff --git a/tools/marvin/marvin/integration/lib/base/TrafficType.py b/tools/marvin/marvin/integration/lib/base/TrafficType.py index 88cce860d4f..7f369d1518f 100644 --- a/tools/marvin/marvin/integration/lib/base/TrafficType.py +++ b/tools/marvin/marvin/integration/lib/base/TrafficType.py @@ -29,30 +29,36 @@ class TrafficType(CloudStackEntity.CloudStackEntity): def add(self, apiclient, traffictype, physicalnetworkid, **kwargs): cmd = addTrafficType.addTrafficTypeCmd() + cmd.id = self.id cmd.physicalnetworkid = physicalnetworkid cmd.traffictype = traffictype - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] traffictype = apiclient.addTrafficType(cmd) + return traffictype @classmethod def list(self, apiclient, physicalnetworkid, **kwargs): cmd = listTrafficTypes.listTrafficTypesCmd() cmd.physicalnetworkid = physicalnetworkid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] traffictype = apiclient.listTrafficTypes(cmd) return map(lambda e: TrafficType(e.__dict__), traffictype) def update(self, apiclient, id, **kwargs): cmd = updateTrafficType.updateTrafficTypeCmd() + 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()] traffictype = apiclient.updateTrafficType(cmd) + return traffictype def delete(self, apiclient, id, **kwargs): cmd = deleteTrafficType.deleteTrafficTypeCmd() + 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()] traffictype = apiclient.deleteTrafficType(cmd) + return traffictype diff --git a/tools/marvin/marvin/integration/lib/base/TrafficTypeImplementors.py b/tools/marvin/marvin/integration/lib/base/TrafficTypeImplementors.py index ca30fafb0c0..17c204f23a3 100644 --- a/tools/marvin/marvin/integration/lib/base/TrafficTypeImplementors.py +++ b/tools/marvin/marvin/integration/lib/base/TrafficTypeImplementors.py @@ -27,6 +27,6 @@ class TrafficTypeImplementors(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listTrafficTypeImplementors.listTrafficTypeImplementorsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] traffictypeimplementors = apiclient.listTrafficTypeImplementors(cmd) return map(lambda e: TrafficTypeImplementors(e.__dict__), traffictypeimplementors) diff --git a/tools/marvin/marvin/integration/lib/base/UsageRecords.py b/tools/marvin/marvin/integration/lib/base/UsageRecords.py index b0ba46d3efe..69fde0e03ac 100644 --- a/tools/marvin/marvin/integration/lib/base/UsageRecords.py +++ b/tools/marvin/marvin/integration/lib/base/UsageRecords.py @@ -30,14 +30,16 @@ class UsageRecords(CloudStackEntity.CloudStackEntity): cmd = listUsageRecords.listUsageRecordsCmd() cmd.enddate = enddate cmd.startdate = startdate - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] usagerecords = apiclient.listUsageRecords(cmd) return map(lambda e: UsageRecords(e.__dict__), usagerecords) def generate(self, apiclient, startdate, enddate, **kwargs): cmd = generateUsageRecords.generateUsageRecordsCmd() + cmd.id = self.id cmd.enddate = enddate cmd.startdate = startdate - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] usagerecords = apiclient.generateUsageRecords(cmd) + return usagerecords diff --git a/tools/marvin/marvin/integration/lib/base/UsageTypes.py b/tools/marvin/marvin/integration/lib/base/UsageTypes.py index 037caf211da..a32654aafdf 100644 --- a/tools/marvin/marvin/integration/lib/base/UsageTypes.py +++ b/tools/marvin/marvin/integration/lib/base/UsageTypes.py @@ -27,6 +27,6 @@ class UsageTypes(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listUsageTypes.listUsageTypesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] usagetypes = apiclient.listUsageTypes(cmd) return map(lambda e: UsageTypes(e.__dict__), usagetypes) diff --git a/tools/marvin/marvin/integration/lib/base/User.py b/tools/marvin/marvin/integration/lib/base/User.py index 50f9b3a4e85..6a2e37ce956 100644 --- a/tools/marvin/marvin/integration/lib/base/User.py +++ b/tools/marvin/marvin/integration/lib/base/User.py @@ -33,23 +33,29 @@ class User(CloudStackEntity.CloudStackEntity): def enable(self, apiclient, id, **kwargs): cmd = enableUser.enableUserCmd() + 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()] user = apiclient.enableUser(cmd) + return user def get(self, apiclient, userapikey, **kwargs): cmd = getUser.getUserCmd() + cmd.id = self.id cmd.userapikey = userapikey - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] user = apiclient.getUser(cmd) + return user def lock(self, apiclient, id, **kwargs): cmd = lockUser.lockUserCmd() + 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()] user = apiclient.lockUser(cmd) + return user @classmethod @@ -64,27 +70,33 @@ class User(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listUsers.listUsersCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] user = apiclient.listUsers(cmd) return map(lambda e: User(e.__dict__), user) def update(self, apiclient, id, **kwargs): cmd = updateUser.updateUserCmd() + 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()] user = apiclient.updateUser(cmd) + return user def disable(self, apiclient, id, **kwargs): cmd = disableUser.disableUserCmd() + 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()] user = apiclient.disableUser(cmd) + return user def delete(self, apiclient, id, **kwargs): cmd = deleteUser.deleteUserCmd() + 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()] user = apiclient.deleteUser(cmd) + return user diff --git a/tools/marvin/marvin/integration/lib/base/UserKeys.py b/tools/marvin/marvin/integration/lib/base/UserKeys.py index 329efe91506..8a6e8aa7ddc 100644 --- a/tools/marvin/marvin/integration/lib/base/UserKeys.py +++ b/tools/marvin/marvin/integration/lib/base/UserKeys.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import registerUserKeys class UserKeys(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def register(self, apiclient, id, **kwargs): cmd = registerUserKeys.registerUserKeysCmd() + 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()] userkeys = apiclient.registerUserKeys(cmd) + return userkeys diff --git a/tools/marvin/marvin/integration/lib/base/VMPassword.py b/tools/marvin/marvin/integration/lib/base/VMPassword.py index f68cd50ea05..37ef397ebf1 100644 --- a/tools/marvin/marvin/integration/lib/base/VMPassword.py +++ b/tools/marvin/marvin/integration/lib/base/VMPassword.py @@ -20,16 +20,14 @@ from marvin.cloudstackAPI import getVMPassword class VMPassword(CloudStackEntity.CloudStackEntity): - def __init__(self, items): - self.__dict__.update(items) - - def __init__(self, items): self.__dict__.update(items) def get(self, apiclient, id, **kwargs): cmd = getVMPassword.getVMPasswordCmd() + 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()] vmpassword = apiclient.getVMPassword(cmd) + return vmpassword diff --git a/tools/marvin/marvin/integration/lib/base/VMSnapshot.py b/tools/marvin/marvin/integration/lib/base/VMSnapshot.py index ccc915ba09b..9fa632063cb 100644 --- a/tools/marvin/marvin/integration/lib/base/VMSnapshot.py +++ b/tools/marvin/marvin/integration/lib/base/VMSnapshot.py @@ -38,13 +38,15 @@ class VMSnapshot(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVMSnapshot.listVMSnapshotCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vmsnapshot = apiclient.listVMSnapshot(cmd) return map(lambda e: VMSnapshot(e.__dict__), vmsnapshot) def delete(self, apiclient, vmsnapshotid, **kwargs): cmd = deleteVMSnapshot.deleteVMSnapshotCmd() + cmd.id = self.id cmd.vmsnapshotid = vmsnapshotid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vmsnapshot = apiclient.deleteVMSnapshot(cmd) + return vmsnapshot diff --git a/tools/marvin/marvin/integration/lib/base/VPC.py b/tools/marvin/marvin/integration/lib/base/VPC.py index b9555cc137a..44091087fec 100644 --- a/tools/marvin/marvin/integration/lib/base/VPC.py +++ b/tools/marvin/marvin/integration/lib/base/VPC.py @@ -40,25 +40,31 @@ class VPC(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVPCs.listVPCsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpc = apiclient.listVPCs(cmd) return map(lambda e: VPC(e.__dict__), vpc) def update(self, apiclient, **kwargs): cmd = updateVPC.updateVPCCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpc = apiclient.updateVPC(cmd) + return vpc def restart(self, apiclient, **kwargs): cmd = restartVPC.restartVPCCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpc = apiclient.restartVPC(cmd) + return vpc def delete(self, apiclient, id, **kwargs): cmd = deleteVPC.deleteVPCCmd() + 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()] vpc = apiclient.deleteVPC(cmd) + return vpc diff --git a/tools/marvin/marvin/integration/lib/base/VPCOffering.py b/tools/marvin/marvin/integration/lib/base/VPCOffering.py index be52a7050ad..cbf47108961 100644 --- a/tools/marvin/marvin/integration/lib/base/VPCOffering.py +++ b/tools/marvin/marvin/integration/lib/base/VPCOffering.py @@ -39,19 +39,23 @@ class VPCOffering(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVPCOfferings.listVPCOfferingsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpcoffering = apiclient.listVPCOfferings(cmd) return map(lambda e: VPCOffering(e.__dict__), vpcoffering) def update(self, apiclient, **kwargs): cmd = updateVPCOffering.updateVPCOfferingCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpcoffering = apiclient.updateVPCOffering(cmd) + return vpcoffering def delete(self, apiclient, id, **kwargs): cmd = deleteVPCOffering.deleteVPCOfferingCmd() + 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()] vpcoffering = apiclient.deleteVPCOffering(cmd) + return vpcoffering diff --git a/tools/marvin/marvin/integration/lib/base/VirtualMachine.py b/tools/marvin/marvin/integration/lib/base/VirtualMachine.py index b3c9d642a21..591ec015b8e 100644 --- a/tools/marvin/marvin/integration/lib/base/VirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/VirtualMachine.py @@ -16,6 +16,7 @@ # under the License. from marvin.integration.lib.base import CloudStackEntity from marvin.cloudstackAPI import restoreVirtualMachine +from marvin.cloudstackAPI import scaleVirtualMachine from marvin.cloudstackAPI import deployVirtualMachine from marvin.cloudstackAPI import migrateVirtualMachine from marvin.cloudstackAPI import listVirtualMachines @@ -35,9 +36,21 @@ class VirtualMachine(CloudStackEntity.CloudStackEntity): def restore(self, apiclient, virtualmachineid, **kwargs): cmd = restoreVirtualMachine.restoreVirtualMachineCmd() + 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()] virtualmachine = apiclient.restoreVirtualMachine(cmd) + return virtualmachine + + + def scale(self, apiclient, id, serviceofferingid, **kwargs): + cmd = scaleVirtualMachine.scaleVirtualMachineCmd() + cmd.id = self.id + cmd.id = id + cmd.serviceofferingid = serviceofferingid + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + virtualmachine = apiclient.scaleVirtualMachine(cmd) + return virtualmachine @classmethod @@ -51,58 +64,72 @@ class VirtualMachine(CloudStackEntity.CloudStackEntity): def migrate(self, apiclient, virtualmachineid, **kwargs): cmd = migrateVirtualMachine.migrateVirtualMachineCmd() + 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()] virtualmachine = apiclient.migrateVirtualMachine(cmd) + return virtualmachine @classmethod def list(self, apiclient, **kwargs): cmd = listVirtualMachines.listVirtualMachinesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.listVirtualMachines(cmd) return map(lambda e: VirtualMachine(e.__dict__), virtualmachine) def stop(self, apiclient, id, **kwargs): cmd = stopVirtualMachine.stopVirtualMachineCmd() + 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()] virtualmachine = apiclient.stopVirtualMachine(cmd) + return virtualmachine def reboot(self, apiclient, id, **kwargs): cmd = rebootVirtualMachine.rebootVirtualMachineCmd() + 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()] virtualmachine = apiclient.rebootVirtualMachine(cmd) + return virtualmachine def update(self, apiclient, id, **kwargs): cmd = updateVirtualMachine.updateVirtualMachineCmd() + 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()] virtualmachine = apiclient.updateVirtualMachine(cmd) + return virtualmachine def start(self, apiclient, id, **kwargs): cmd = startVirtualMachine.startVirtualMachineCmd() + 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()] virtualmachine = apiclient.startVirtualMachine(cmd) + return virtualmachine def destroy(self, apiclient, id, **kwargs): cmd = destroyVirtualMachine.destroyVirtualMachineCmd() + 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()] virtualmachine = apiclient.destroyVirtualMachine(cmd) + return virtualmachine def assign(self, apiclient, account, domainid, virtualmachineid, **kwargs): cmd = assignVirtualMachine.assignVirtualMachineCmd() + cmd.id = self.id cmd.account = account cmd.domainid = domainid cmd.virtualmachineid = virtualmachineid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.assignVirtualMachine(cmd) + return virtualmachine diff --git a/tools/marvin/marvin/integration/lib/base/VirtualRouterElement.py b/tools/marvin/marvin/integration/lib/base/VirtualRouterElement.py index 31d713a3c1f..efa844031d6 100644 --- a/tools/marvin/marvin/integration/lib/base/VirtualRouterElement.py +++ b/tools/marvin/marvin/integration/lib/base/VirtualRouterElement.py @@ -38,14 +38,16 @@ class VirtualRouterElement(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVirtualRouterElements.listVirtualRouterElementsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualrouterelement = apiclient.listVirtualRouterElements(cmd) return map(lambda e: VirtualRouterElement(e.__dict__), virtualrouterelement) def configure(self, apiclient, enabled, id, **kwargs): cmd = configureVirtualRouterElement.configureVirtualRouterElementCmd() + cmd.id = self.id cmd.id = id cmd.enabled = enabled - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualrouterelement = apiclient.configureVirtualRouterElement(cmd) + return virtualrouterelement diff --git a/tools/marvin/marvin/integration/lib/base/VlanIpRange.py b/tools/marvin/marvin/integration/lib/base/VlanIpRange.py index 9981595a355..27bad009ff0 100644 --- a/tools/marvin/marvin/integration/lib/base/VlanIpRange.py +++ b/tools/marvin/marvin/integration/lib/base/VlanIpRange.py @@ -38,13 +38,15 @@ class VlanIpRange(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVlanIpRanges.listVlanIpRangesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vlaniprange = apiclient.listVlanIpRanges(cmd) return map(lambda e: VlanIpRange(e.__dict__), vlaniprange) def delete(self, apiclient, id, **kwargs): cmd = deleteVlanIpRange.deleteVlanIpRangeCmd() + 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()] vlaniprange = apiclient.deleteVlanIpRange(cmd) + return vlaniprange diff --git a/tools/marvin/marvin/integration/lib/base/Volume.py b/tools/marvin/marvin/integration/lib/base/Volume.py index e027a5b5049..129e0c95d28 100644 --- a/tools/marvin/marvin/integration/lib/base/Volume.py +++ b/tools/marvin/marvin/integration/lib/base/Volume.py @@ -33,10 +33,12 @@ class Volume(CloudStackEntity.CloudStackEntity): def migrate(self, apiclient, storageid, volumeid, **kwargs): cmd = migrateVolume.migrateVolumeCmd() + cmd.id = self.id cmd.storageid = storageid cmd.volumeid = volumeid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] volume = apiclient.migrateVolume(cmd) + return volume @classmethod @@ -51,46 +53,56 @@ class Volume(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVolumes.listVolumesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] volume = apiclient.listVolumes(cmd) return map(lambda e: Volume(e.__dict__), volume) def upload(self, apiclient, url, zoneid, name, format, **kwargs): cmd = uploadVolume.uploadVolumeCmd() + cmd.id = self.id cmd.format = format 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()] volume = apiclient.uploadVolume(cmd) + return volume def attach(self, apiclient, id, virtualmachineid, **kwargs): cmd = attachVolume.attachVolumeCmd() + 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()] volume = apiclient.attachVolume(cmd) + return volume def detach(self, apiclient, **kwargs): cmd = detachVolume.detachVolumeCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] volume = apiclient.detachVolume(cmd) + return volume def extract(self, apiclient, zoneid, id, mode, **kwargs): cmd = extractVolume.extractVolumeCmd() + cmd.id = self.id cmd.id = id cmd.mode = mode cmd.zoneid = zoneid - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] volume = apiclient.extractVolume(cmd) + return volume def delete(self, apiclient, id, **kwargs): cmd = deleteVolume.deleteVolumeCmd() + 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()] volume = apiclient.deleteVolume(cmd) + return volume diff --git a/tools/marvin/marvin/integration/lib/base/VpnConnection.py b/tools/marvin/marvin/integration/lib/base/VpnConnection.py index 1489eb703be..80012136af5 100644 --- a/tools/marvin/marvin/integration/lib/base/VpnConnection.py +++ b/tools/marvin/marvin/integration/lib/base/VpnConnection.py @@ -29,9 +29,11 @@ class VpnConnection(CloudStackEntity.CloudStackEntity): def reset(self, apiclient, id, **kwargs): cmd = resetVpnConnection.resetVpnConnectionCmd() + 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()] vpnconnection = apiclient.resetVpnConnection(cmd) + return vpnconnection @classmethod @@ -46,13 +48,15 @@ class VpnConnection(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVpnConnections.listVpnConnectionsCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpnconnection = apiclient.listVpnConnections(cmd) return map(lambda e: VpnConnection(e.__dict__), vpnconnection) def delete(self, apiclient, id, **kwargs): cmd = deleteVpnConnection.deleteVpnConnectionCmd() + 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()] vpnconnection = apiclient.deleteVpnConnection(cmd) + return vpnconnection diff --git a/tools/marvin/marvin/integration/lib/base/VpnCustomerGateway.py b/tools/marvin/marvin/integration/lib/base/VpnCustomerGateway.py index a94f424f726..e19f480d96e 100644 --- a/tools/marvin/marvin/integration/lib/base/VpnCustomerGateway.py +++ b/tools/marvin/marvin/integration/lib/base/VpnCustomerGateway.py @@ -39,25 +39,29 @@ class VpnCustomerGateway(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVpnCustomerGateways.listVpnCustomerGatewaysCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpncustomergateway = apiclient.listVpnCustomerGateways(cmd) return map(lambda e: VpnCustomerGateway(e.__dict__), vpncustomergateway) def update(self, apiclient, ikepolicy, cidrlist, gateway, ipsecpsk, esppolicy, id, **kwargs): cmd = updateVpnCustomerGateway.updateVpnCustomerGatewayCmd() + cmd.id = self.id cmd.id = id cmd.cidrlist = cidrlist cmd.esppolicy = esppolicy cmd.gateway = gateway cmd.ikepolicy = ikepolicy cmd.ipsecpsk = ipsecpsk - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpncustomergateway = apiclient.updateVpnCustomerGateway(cmd) + return vpncustomergateway def delete(self, apiclient, id, **kwargs): cmd = deleteVpnCustomerGateway.deleteVpnCustomerGatewayCmd() + 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()] vpncustomergateway = apiclient.deleteVpnCustomerGateway(cmd) + return vpncustomergateway diff --git a/tools/marvin/marvin/integration/lib/base/VpnGateway.py b/tools/marvin/marvin/integration/lib/base/VpnGateway.py index 28c57a92e97..3c2a73a01d9 100644 --- a/tools/marvin/marvin/integration/lib/base/VpnGateway.py +++ b/tools/marvin/marvin/integration/lib/base/VpnGateway.py @@ -38,13 +38,15 @@ class VpnGateway(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listVpnGateways.listVpnGatewaysCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpngateway = apiclient.listVpnGateways(cmd) return map(lambda e: VpnGateway(e.__dict__), vpngateway) def delete(self, apiclient, id, **kwargs): cmd = deleteVpnGateway.deleteVpnGatewayCmd() + 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()] vpngateway = apiclient.deleteVpnGateway(cmd) + return vpngateway diff --git a/tools/marvin/marvin/integration/lib/base/VpnUser.py b/tools/marvin/marvin/integration/lib/base/VpnUser.py index beae36b4944..03ecb8767fc 100644 --- a/tools/marvin/marvin/integration/lib/base/VpnUser.py +++ b/tools/marvin/marvin/integration/lib/base/VpnUser.py @@ -28,22 +28,26 @@ class VpnUser(CloudStackEntity.CloudStackEntity): def add(self, apiclient, username, password, **kwargs): cmd = addVpnUser.addVpnUserCmd() + 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()] vpnuser = apiclient.addVpnUser(cmd) + return vpnuser @classmethod def list(self, apiclient, **kwargs): cmd = listVpnUsers.listVpnUsersCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpnuser = apiclient.listVpnUsers(cmd) return map(lambda e: VpnUser(e.__dict__), vpnuser) def remove(self, apiclient, username, **kwargs): cmd = removeVpnUser.removeVpnUserCmd() + cmd.id = self.id cmd.username = username - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] vpnuser = apiclient.removeVpnUser(cmd) + return vpnuser diff --git a/tools/marvin/marvin/integration/lib/base/Zone.py b/tools/marvin/marvin/integration/lib/base/Zone.py index f25eb1a971c..47bb85204e9 100644 --- a/tools/marvin/marvin/integration/lib/base/Zone.py +++ b/tools/marvin/marvin/integration/lib/base/Zone.py @@ -39,20 +39,24 @@ class Zone(CloudStackEntity.CloudStackEntity): @classmethod def list(self, apiclient, **kwargs): cmd = listZones.listZonesCmd() - [setattr(cmd, key, value) for key,value in kwargs.items] + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] zone = apiclient.listZones(cmd) return map(lambda e: Zone(e.__dict__), zone) def update(self, apiclient, id, **kwargs): cmd = updateZone.updateZoneCmd() + 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()] zone = apiclient.updateZone(cmd) + return zone def delete(self, apiclient, id, **kwargs): cmd = deleteZone.deleteZoneCmd() + 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()] zone = apiclient.deleteZone(cmd) + return zone diff --git a/tools/marvin/marvin/integration/lib/factory/DiskOfferingFactory.py b/tools/marvin/marvin/integration/lib/factory/DiskOfferingFactory.py index 11c4df8816e..0ca22dfb2a8 100644 --- a/tools/marvin/marvin/integration/lib/factory/DiskOfferingFactory.py +++ b/tools/marvin/marvin/integration/lib/factory/DiskOfferingFactory.py @@ -15,12 +15,13 @@ # specific language governing permissions and limitations # under the License. import factory +from marvin.integration.lib.factory.CloudStackBaseFactory import * from marvin.integration.lib.base import DiskOffering from marvin.integration.lib.utils import random_gen -class DiskOfferingFactory(factory.Factory): +class DiskOfferingFactory(CloudStackBaseFactory): - FACTORY_FOR = DiskOffering + FACTORY_FOR = DiskOffering.DiskOffering displaytext = factory.Sequence(lambda n : "DiskOffering" + random_gen()) name = factory.Sequence(lambda n : "DiskOffering" + random_gen()) diff --git a/tools/marvin/marvin/integration/lib/factory/NetworkOfferingFactory.py b/tools/marvin/marvin/integration/lib/factory/NetworkOfferingFactory.py index 5f876c8cf93..36738287a74 100644 --- a/tools/marvin/marvin/integration/lib/factory/NetworkOfferingFactory.py +++ b/tools/marvin/marvin/integration/lib/factory/NetworkOfferingFactory.py @@ -15,16 +15,71 @@ # specific language governing permissions and limitations # under the License. import factory +from marvin.integration.lib.factory.CloudStackBaseFactory import * from marvin.integration.lib.base import NetworkOffering -class NetworkOfferingFactory(factory.Factory): +from marvin.integration.lib.utils import random_gen - FACTORY_FOR = NetworkOffering +class NetworkOfferingFactory(CloudStackBaseFactory): + + FACTORY_FOR = NetworkOffering.NetworkOffering displaytext = "Network Offering" guestiptype = "Isolated" name = "Network Offering" supportedservices = "Dhcp,Dns,SourceNat,PortForwarding" - traffictype = "Guest" + traffictype = "GUEST" + + +class DefaultIsolatedNetworkOfferingWithSourceNatServiceFactory(NetworkOfferingFactory): + #FIXME: Service Capability Lists with CapabilityTypes (ElasticIP, RvR etc) needs handling + + displaytext = factory.Sequence(lambda n : "DefaultIsolatedNetworkOfferingWithSourceNatService" + random_gen()) + name = factory.Sequence(lambda n : "DefaultIsolatedNetworkOfferingWithSourceNatService" + random_gen()) + supportedservices = "Lb,Dns,PortForwarding,StaticNat,Dhcp,Firewall,Vpn,UserData,SourceNat" + traffictype = "GUEST" + availability = "Optional" + guestiptype = "Isolated" + + specifyVlan = False + specifyIpRanges = False + isPersistent = False + conserveMode = True + + serviceProviderList = [] + for service in map(lambda l: l.strip(' '), supportedservices.split(',')): + serviceProviderList.append( + { + 'service': service, + 'provider': 'VirtualRouter' + } + ) + + +class DefaultSharedNetworkOfferingWithSGServiceFactory(NetworkOfferingFactory): + + displaytext = factory.Sequence(lambda n : "DefaultSharedNetworkOfferingWithSGService" + random_gen()) + name = factory.Sequence(lambda n : "DefaultSharedNetworkOfferingWithSGService" + random_gen()) + availability = "Optional" + supportedservices = "SecurityGroup, Dns, Dhcp, UserData" + guestiptype = "Shared" + traffictype = "GUEST" + + specifyVlan = True + specifyIpRanges = True + isPersistent = False + conserveMode = True + + serviceProviderList = [] + for service in map(lambda l: l.strip(' '), supportedservices.split(',')): + if service == 'SecurityGroup': + provider = 'SecurityGroupProvider' + else: + provider = 'VirtualRouter' + serviceProviderList.append( + { + 'service': service, + 'provider': provider + } + ) -class DefaultIsolatedNetworkOffering diff --git a/tools/marvin/marvin/integration/lib/factory/test/testFactories.py b/tools/marvin/marvin/integration/lib/factory/test/testFactories.py index d8afb03e1f8..1d183051708 100644 --- a/tools/marvin/marvin/integration/lib/factory/test/testFactories.py +++ b/tools/marvin/marvin/integration/lib/factory/test/testFactories.py @@ -16,12 +16,16 @@ # under the License. import unittest +from marvin.cloudstackTestClient import cloudstackTestClient + from marvin.integration.lib.factory.AccountFactory import * from marvin.integration.lib.base.Account import * from marvin.integration.lib.factory.ServiceOfferingFactory import * from marvin.integration.lib.base.ServiceOffering import * -from marvin.cloudstackTestClient import cloudstackTestClient + +from marvin.integration.lib.factory.NetworkOfferingFactory import * +from marvin.integration.lib.base.NetworkOffering import * class AccountFactoryTest(unittest.TestCase): def setUp(self): @@ -45,6 +49,14 @@ class AccountFactoryTest(unittest.TestCase): self.assertTrue(accnt is not None, msg="no account created by factory") self.assertEqual(accnt.name, af.username, msg="account names are not same") + @unittest.skip("Job Queue gets stuck on this") + def test_disableAccountPostFactoryGeneration(self): + af = DomainAdminFactory() + domadmin = Account.create(apiclient=self.apiClient, AccountFactory=af) + self.assertTrue(domadmin is not None, msg="no account was created") + self.assertEqual(domadmin.name, af.username, msg = "account names don't match") + domadmin.disable(self.apiClient, lock=True) + def tearDown(self): pass @@ -61,4 +73,17 @@ class ServiceOfferingFactoryTest(unittest.TestCase): def tearDown(self): - pass \ No newline at end of file + pass + + +class NetworkOfferingFactoryTest(unittest.TestCase): + def setUp(self): + self.apiClient = cloudstackTestClient(mgtSvr='localhost').getApiClient() + + def test_defaultSourceNatOfferingFactory(self): + snatOfferingFactory = DefaultIsolatedNetworkOfferingWithSourceNatServiceFactory() + snatOffering = NetworkOffering.create(apiclient=self.apiClient, NetworkOfferingFactory=snatOfferingFactory) + self.assertTrue(snatOffering is not None, msg = "no network offering was created") + self.assertEqual(snatOffering.name, snatOfferingFactory.name, msg="error in network offering factory creation") + + snatOffering.update(self.apiClient, state='Enabled') diff --git a/tools/marvin/marvin/integration/lib/generateBase.py b/tools/marvin/marvin/integration/lib/generateBase.py index c2955d98a67..2b213ff3bc8 100644 --- a/tools/marvin/marvin/integration/lib/generateBase.py +++ b/tools/marvin/marvin/integration/lib/generateBase.py @@ -27,7 +27,8 @@ grammar = ['create', 'list', 'delete', 'update', 'start', 'restart', 'reboot', 'stop', 'reconnect', 'cancel', 'destroy', 'revoke', 'mark', 'reset', 'copy', 'extract', 'migrate', 'restore', 'suspend', - 'get', 'query', 'prepare', 'deploy', 'upload', 'lock', 'disassociate'] + 'get', 'query', 'prepare', 'deploy', 'upload', 'lock', + 'disassociate', 'scale'] LICENSE = """# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -136,12 +137,15 @@ def write_entity_classes(entities): else: body.append(tabspace + 'def %s(self, apiclient, **kwargs):'%(action)) body.append(tabspace*2 + 'cmd = %(module)s.%(command)s()'%{"module": details["apimodule"], "command": details["apicmd"]}) + body.append(tabspace*2 + 'cmd.id = self.id') for arg in details['args']: body.append(tabspace*2 + 'cmd.%s = %s'%(arg, arg)) - body.append(tabspace*2 + '[setattr(cmd, key, value) for key,value in kwargs.items]') + body.append(tabspace*2 + '[setattr(cmd, key, value) for key,value in kwargs.iteritems()]') body.append(tabspace*2 + '%s = apiclient.%s(cmd)'%(entity.lower(), details['apimodule'])) if action in ['list']: body.append(tabspace*2 + 'return map(lambda e: %s(e.__dict__), %s)'%(entity, entity.lower())) + else: + body.append(tabspace*2 + 'return %s'%(entity.lower())) body.append('\n') imports = '\n'.join(imports) @@ -149,7 +153,7 @@ def write_entity_classes(entities): code = imports + '\n\n' + body entitydict[entity] = code - write_entity_factory(entity, actions) + #write_entity_factory(entity, actions) with open("./base/%s.py"%entity, "w") as writer: writer.write(LICENSE) writer.write(code)