You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/21 14:23:30 UTC
[17/17] git commit: updated refs/heads/marvin_refactor to dd838d7
make the module structure more relevant and simple
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/dd838d72
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/dd838d72
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/dd838d72
Branch: refs/heads/marvin_refactor
Commit: dd838d72515034cfcfd2f980631fdda64f8738e7
Parents: a531a7f
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 17:52:41 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 17:52:41 2013 +0530
----------------------------------------------------------------------
tools/marvin/marvin/base/Account.py | 102 +
tools/marvin/marvin/base/Alerts.py | 42 +
tools/marvin/marvin/base/ApiLimit.py | 42 +
tools/marvin/marvin/base/Apis.py | 33 +
tools/marvin/marvin/base/AsyncJobResult.py | 34 +
tools/marvin/marvin/base/AsyncJobs.py | 33 +
tools/marvin/marvin/base/AutoScalePolicy.py | 60 +
tools/marvin/marvin/base/AutoScaleVmGroup.py | 79 +
tools/marvin/marvin/base/AutoScaleVmProfile.py | 61 +
tools/marvin/marvin/base/BigSwitchVnsDevice.py | 54 +
tools/marvin/marvin/base/Capabilities.py | 33 +
tools/marvin/marvin/base/Capacity.py | 33 +
tools/marvin/marvin/base/CloudIdentifier.py | 34 +
tools/marvin/marvin/base/CloudStackEntity.py | 25 +
tools/marvin/marvin/base/Cluster.py | 65 +
tools/marvin/marvin/base/Condition.py | 52 +
tools/marvin/marvin/base/Configuration.py | 43 +
tools/marvin/marvin/base/Counter.py | 52 +
tools/marvin/marvin/base/CustomCertificate.py | 35 +
tools/marvin/marvin/base/DiskOffering.py | 61 +
tools/marvin/marvin/base/Domain.py | 61 +
tools/marvin/marvin/base/DomainChildren.py | 33 +
tools/marvin/marvin/base/EgressFirewallRule.py | 52 +
tools/marvin/marvin/base/EventTypes.py | 33 +
tools/marvin/marvin/base/Events.py | 42 +
tools/marvin/marvin/base/FirewallRule.py | 52 +
tools/marvin/marvin/base/GlobalLoadBalancerRule.py | 80 +
tools/marvin/marvin/base/Host.py | 104 +
tools/marvin/marvin/base/HypervisorCapabilities.py | 42 +
tools/marvin/marvin/base/Hypervisors.py | 33 +
tools/marvin/marvin/base/InstanceGroup.py | 61 +
tools/marvin/marvin/base/IpAddress.py | 50 +
tools/marvin/marvin/base/IpForwardingRule.py | 52 +
tools/marvin/marvin/base/Iso.py | 105 +
tools/marvin/marvin/base/IsoPermissions.py | 42 +
tools/marvin/marvin/base/LBHealthCheckPolicy.py | 52 +
tools/marvin/marvin/base/LBStickinessPolicy.py | 55 +
tools/marvin/marvin/base/Ldap.py | 42 +
tools/marvin/marvin/base/LoadBalancerRule.py | 93 +
tools/marvin/marvin/base/Network.py | 70 +
tools/marvin/marvin/base/NetworkACL.py | 52 +
tools/marvin/marvin/base/NetworkDevice.py | 51 +
tools/marvin/marvin/base/NetworkOffering.py | 61 +
tools/marvin/marvin/base/NetworkServiceProvider.py | 62 +
tools/marvin/marvin/base/Nic.py | 56 +
tools/marvin/marvin/base/NiciraNvpDevice.py | 66 +
tools/marvin/marvin/base/OsCategories.py | 33 +
tools/marvin/marvin/base/OsTypes.py | 33 +
tools/marvin/marvin/base/PhysicalNetwork.py | 61 +
tools/marvin/marvin/base/Pod.py | 61 +
tools/marvin/marvin/base/PortForwardingRule.py | 65 +
tools/marvin/marvin/base/PrivateGateway.py | 52 +
tools/marvin/marvin/base/Project.py | 107 +
tools/marvin/marvin/base/ProjectInvitation.py | 52 +
tools/marvin/marvin/base/Region.py | 62 +
tools/marvin/marvin/base/RemoteAccessVpn.py | 54 +
tools/marvin/marvin/base/ResourceCount.py | 34 +
tools/marvin/marvin/base/ResourceLimit.py | 43 +
tools/marvin/marvin/base/Router.py | 69 +
tools/marvin/marvin/base/S3.py | 45 +
tools/marvin/marvin/base/SSHKeyPair.py | 64 +
tools/marvin/marvin/base/SecondaryStorage.py | 34 +
tools/marvin/marvin/base/SecurityGroup.py | 82 +
tools/marvin/marvin/base/ServiceForRouter.py | 34 +
tools/marvin/marvin/base/ServiceForSystemVm.py | 34 +
.../marvin/marvin/base/ServiceForVirtualMachine.py | 34 +
tools/marvin/marvin/base/ServiceOffering.py | 61 +
tools/marvin/marvin/base/Simulator.py | 35 +
tools/marvin/marvin/base/Snapshot.py | 52 +
tools/marvin/marvin/base/SnapshotPolicy.py | 52 +
tools/marvin/marvin/base/StaticNat.py | 45 +
tools/marvin/marvin/base/StaticRoute.py | 52 +
tools/marvin/marvin/base/StorageNetworkIpRange.py | 61 +
tools/marvin/marvin/base/StoragePool.py | 79 +
tools/marvin/marvin/base/StorageProviders.py | 33 +
.../marvin/marvin/base/SupportedNetworkServices.py | 33 +
tools/marvin/marvin/base/Swift.py | 43 +
tools/marvin/marvin/base/SystemVm.py | 80 +
tools/marvin/marvin/base/Tags.py | 54 +
tools/marvin/marvin/base/Template.py | 106 +
tools/marvin/marvin/base/TemplatePermissions.py | 42 +
tools/marvin/marvin/base/TrafficMonitor.py | 54 +
tools/marvin/marvin/base/TrafficType.py | 63 +
.../marvin/marvin/base/TrafficTypeImplementors.py | 33 +
tools/marvin/marvin/base/UsageRecords.py | 46 +
tools/marvin/marvin/base/UsageTypes.py | 33 +
tools/marvin/marvin/base/User.py | 107 +
tools/marvin/marvin/base/VMPassword.py | 33 +
tools/marvin/marvin/base/VMSnapshot.py | 53 +
tools/marvin/marvin/base/VPC.py | 70 +
tools/marvin/marvin/base/VPCOffering.py | 61 +
tools/marvin/marvin/base/VirtualMachine.py | 178 +
tools/marvin/marvin/base/VirtualRouterElement.py | 53 +
tools/marvin/marvin/base/VlanIpRange.py | 52 +
tools/marvin/marvin/base/Volume.py | 106 +
tools/marvin/marvin/base/VpnConnection.py | 61 +
tools/marvin/marvin/base/VpnCustomerGateway.py | 66 +
tools/marvin/marvin/base/VpnGateway.py | 52 +
tools/marvin/marvin/base/VpnUser.py | 54 +
tools/marvin/marvin/base/Zone.py | 61 +
tools/marvin/marvin/base/__init__.py | 16 +
tools/marvin/marvin/common.py | 566 ++++
tools/marvin/marvin/factory/AccountFactory.py | 46 +
.../marvin/factory/AutoScalePolicyFactory.py | 26 +
.../marvin/factory/AutoScaleVmGroupFactory.py | 28 +
.../marvin/factory/AutoScaleVmProfileFactory.py | 25 +
.../marvin/marvin/factory/CloudStackBaseFactory.py | 55 +
tools/marvin/marvin/factory/ClusterFactory.py | 24 +
tools/marvin/marvin/factory/ConditionFactory.py | 26 +
tools/marvin/marvin/factory/CounterFactory.py | 25 +
tools/marvin/marvin/factory/DiskOfferingFactory.py | 42 +
tools/marvin/marvin/factory/DomainFactory.py | 24 +
.../marvin/factory/EgressFirewallRuleFactory.py | 24 +
tools/marvin/marvin/factory/FirewallRuleFactory.py | 38 +
tools/marvin/marvin/factory/HostFactory.py | 30 +
.../marvin/marvin/factory/InstanceGroupFactory.py | 27 +
tools/marvin/marvin/factory/IpAddressFactory.py | 24 +
.../marvin/factory/IpForwardingRuleFactory.py | 25 +
tools/marvin/marvin/factory/IsoFactory.py | 26 +
.../marvin/factory/LBHealthCheckPolicyFactory.py | 26 +
.../marvin/factory/LBStickinessPolicyFactory.py | 25 +
.../marvin/factory/LoadBalancerRuleFactory.py | 26 +
tools/marvin/marvin/factory/NetworkACLFactory.py | 24 +
tools/marvin/marvin/factory/NetworkFactory.py | 26 +
.../marvin/factory/NetworkOfferingFactory.py | 85 +
.../factory/NetworkServiceProviderFactory.py | 8 +
.../marvin/factory/NiciraNvpDeviceFactory.py | 11 +
tools/marvin/marvin/factory/OsCategoriesFactory.py | 5 +
tools/marvin/marvin/factory/OsTypesFactory.py | 5 +
.../marvin/factory/PhysicalNetworkFactory.py | 24 +
tools/marvin/marvin/factory/PodFactory.py | 27 +
.../marvin/factory/PortForwardingRuleFactory.py | 27 +
.../marvin/marvin/factory/PrivateGatewayFactory.py | 27 +
tools/marvin/marvin/factory/ProjectFactory.py | 25 +
.../marvin/factory/ProjectInvitationFactory.py | 7 +
.../marvin/factory/RemoteAccessVpnFactory.py | 23 +
tools/marvin/marvin/factory/S3Factory.py | 8 +
tools/marvin/marvin/factory/SSHKeyPairFactory.py | 23 +
.../marvin/factory/SecondaryStorageFactory.py | 7 +
.../marvin/marvin/factory/SecurityGroupFactory.py | 23 +
.../marvin/factory/ServiceOfferingFactory.py | 38 +
tools/marvin/marvin/factory/SnapshotFactory.py | 23 +
.../marvin/marvin/factory/SnapshotPolicyFactory.py | 28 +
tools/marvin/marvin/factory/StaticNatFactory.py | 8 +
tools/marvin/marvin/factory/StaticRouteFactory.py | 24 +
.../marvin/factory/StorageNetworkIpRangeFactory.py | 27 +
tools/marvin/marvin/factory/StoragePoolFactory.py | 27 +
tools/marvin/marvin/factory/TagsFactory.py | 25 +
tools/marvin/marvin/factory/TemplateFactory.py | 37 +
.../marvin/marvin/factory/TrafficMonitorFactory.py | 8 +
tools/marvin/marvin/factory/TrafficTypeFactory.py | 9 +
tools/marvin/marvin/factory/UsageRecordsFactory.py | 8 +
tools/marvin/marvin/factory/UserFactory.py | 33 +
tools/marvin/marvin/factory/VMSnapshotFactory.py | 23 +
tools/marvin/marvin/factory/VPCFactory.py | 27 +
tools/marvin/marvin/factory/VPCOfferingFactory.py | 25 +
.../marvin/marvin/factory/VirtualMachineFactory.py | 27 +
.../marvin/factory/VirtualRouterElementFactory.py | 24 +
tools/marvin/marvin/factory/VlanIpRangeFactory.py | 23 +
tools/marvin/marvin/factory/VolumeFactory.py | 23 +
.../marvin/marvin/factory/VpnConnectionFactory.py | 24 +
.../marvin/factory/VpnCustomerGatewayFactory.py | 27 +
tools/marvin/marvin/factory/VpnGatewayFactory.py | 23 +
tools/marvin/marvin/factory/VpnUserFactory.py | 25 +
tools/marvin/marvin/factory/ZoneFactory.py | 38 +
tools/marvin/marvin/factory/__init__.py | 16 +
tools/marvin/marvin/factory/test/__init__.py | 16 +
tools/marvin/marvin/factory/test/testFactories.py | 148 +
tools/marvin/marvin/generateBase.py | 202 ++
tools/marvin/marvin/integration/__init__.py | 18 -
tools/marvin/marvin/integration/lib/__init__.py | 16 -
.../marvin/marvin/integration/lib/base/Account.py | 102 -
tools/marvin/marvin/integration/lib/base/Alerts.py | 42 -
.../marvin/marvin/integration/lib/base/ApiLimit.py | 42 -
tools/marvin/marvin/integration/lib/base/Apis.py | 33 -
.../marvin/integration/lib/base/AsyncJobResult.py | 34 -
.../marvin/integration/lib/base/AsyncJobs.py | 33 -
.../marvin/integration/lib/base/AutoScalePolicy.py | 60 -
.../integration/lib/base/AutoScaleVmGroup.py | 79 -
.../integration/lib/base/AutoScaleVmProfile.py | 61 -
.../integration/lib/base/BigSwitchVnsDevice.py | 54 -
.../marvin/integration/lib/base/Capabilities.py | 33 -
.../marvin/marvin/integration/lib/base/Capacity.py | 33 -
.../marvin/integration/lib/base/CloudIdentifier.py | 34 -
.../integration/lib/base/CloudStackEntity.py | 25 -
.../marvin/marvin/integration/lib/base/Cluster.py | 65 -
.../marvin/integration/lib/base/Condition.py | 52 -
.../marvin/integration/lib/base/Configuration.py | 43 -
.../marvin/marvin/integration/lib/base/Counter.py | 52 -
.../integration/lib/base/CustomCertificate.py | 35 -
.../marvin/integration/lib/base/DiskOffering.py | 61 -
tools/marvin/marvin/integration/lib/base/Domain.py | 61 -
.../marvin/integration/lib/base/DomainChildren.py | 33 -
.../integration/lib/base/EgressFirewallRule.py | 52 -
.../marvin/integration/lib/base/EventTypes.py | 33 -
tools/marvin/marvin/integration/lib/base/Events.py | 42 -
.../marvin/integration/lib/base/FirewallRule.py | 52 -
.../integration/lib/base/GlobalLoadBalancerRule.py | 80 -
tools/marvin/marvin/integration/lib/base/Host.py | 104 -
.../integration/lib/base/HypervisorCapabilities.py | 42 -
.../marvin/integration/lib/base/Hypervisors.py | 33 -
.../marvin/integration/lib/base/InstanceGroup.py | 61 -
.../marvin/integration/lib/base/IpAddress.py | 50 -
.../integration/lib/base/IpForwardingRule.py | 52 -
tools/marvin/marvin/integration/lib/base/Iso.py | 105 -
.../marvin/integration/lib/base/IsoPermissions.py | 42 -
.../integration/lib/base/LBHealthCheckPolicy.py | 52 -
.../integration/lib/base/LBStickinessPolicy.py | 55 -
tools/marvin/marvin/integration/lib/base/Ldap.py | 42 -
.../integration/lib/base/LoadBalancerRule.py | 93 -
.../marvin/marvin/integration/lib/base/Network.py | 70 -
.../marvin/integration/lib/base/NetworkACL.py | 52 -
.../marvin/integration/lib/base/NetworkDevice.py | 51 -
.../marvin/integration/lib/base/NetworkOffering.py | 61 -
.../integration/lib/base/NetworkServiceProvider.py | 62 -
tools/marvin/marvin/integration/lib/base/Nic.py | 56 -
.../marvin/integration/lib/base/NiciraNvpDevice.py | 66 -
.../marvin/integration/lib/base/OsCategories.py | 33 -
.../marvin/marvin/integration/lib/base/OsTypes.py | 33 -
.../marvin/integration/lib/base/PhysicalNetwork.py | 61 -
tools/marvin/marvin/integration/lib/base/Pod.py | 61 -
.../integration/lib/base/PortForwardingRule.py | 65 -
.../marvin/integration/lib/base/PrivateGateway.py | 52 -
.../marvin/marvin/integration/lib/base/Project.py | 107 -
.../integration/lib/base/ProjectInvitation.py | 52 -
tools/marvin/marvin/integration/lib/base/Region.py | 62 -
.../marvin/integration/lib/base/RemoteAccessVpn.py | 54 -
.../marvin/integration/lib/base/ResourceCount.py | 34 -
.../marvin/integration/lib/base/ResourceLimit.py | 43 -
tools/marvin/marvin/integration/lib/base/Router.py | 69 -
tools/marvin/marvin/integration/lib/base/S3.py | 45 -
.../marvin/integration/lib/base/SSHKeyPair.py | 64 -
.../integration/lib/base/SecondaryStorage.py | 34 -
.../marvin/integration/lib/base/SecurityGroup.py | 82 -
.../integration/lib/base/ServiceForRouter.py | 34 -
.../integration/lib/base/ServiceForSystemVm.py | 34 -
.../lib/base/ServiceForVirtualMachine.py | 34 -
.../marvin/integration/lib/base/ServiceOffering.py | 61 -
.../marvin/integration/lib/base/Simulator.py | 35 -
.../marvin/marvin/integration/lib/base/Snapshot.py | 52 -
.../marvin/integration/lib/base/SnapshotPolicy.py | 52 -
.../marvin/integration/lib/base/StaticNat.py | 45 -
.../marvin/integration/lib/base/StaticRoute.py | 52 -
.../integration/lib/base/StorageNetworkIpRange.py | 61 -
.../marvin/integration/lib/base/StoragePool.py | 79 -
.../integration/lib/base/StorageProviders.py | 33 -
.../lib/base/SupportedNetworkServices.py | 33 -
tools/marvin/marvin/integration/lib/base/Swift.py | 43 -
.../marvin/marvin/integration/lib/base/SystemVm.py | 80 -
tools/marvin/marvin/integration/lib/base/Tags.py | 54 -
.../marvin/marvin/integration/lib/base/Template.py | 106 -
.../integration/lib/base/TemplatePermissions.py | 42 -
.../marvin/integration/lib/base/TrafficMonitor.py | 54 -
.../marvin/integration/lib/base/TrafficType.py | 63 -
.../lib/base/TrafficTypeImplementors.py | 33 -
.../marvin/integration/lib/base/UsageRecords.py | 46 -
.../marvin/integration/lib/base/UsageTypes.py | 33 -
tools/marvin/marvin/integration/lib/base/User.py | 107 -
.../marvin/integration/lib/base/VMPassword.py | 33 -
.../marvin/integration/lib/base/VMSnapshot.py | 53 -
tools/marvin/marvin/integration/lib/base/VPC.py | 70 -
.../marvin/integration/lib/base/VPCOffering.py | 61 -
.../marvin/integration/lib/base/VirtualMachine.py | 178 -
.../integration/lib/base/VirtualRouterElement.py | 53 -
.../marvin/integration/lib/base/VlanIpRange.py | 52 -
tools/marvin/marvin/integration/lib/base/Volume.py | 106 -
.../marvin/integration/lib/base/VpnConnection.py | 61 -
.../integration/lib/base/VpnCustomerGateway.py | 66 -
.../marvin/integration/lib/base/VpnGateway.py | 52 -
.../marvin/marvin/integration/lib/base/VpnUser.py | 54 -
tools/marvin/marvin/integration/lib/base/Zone.py | 61 -
.../marvin/marvin/integration/lib/base/__init__.py | 16 -
tools/marvin/marvin/integration/lib/common.py | 569 ----
.../integration/lib/factory/AccountFactory.py | 46 -
.../lib/factory/AutoScalePolicyFactory.py | 25 -
.../lib/factory/AutoScaleVmGroupFactory.py | 28 -
.../lib/factory/AutoScaleVmProfileFactory.py | 25 -
.../lib/factory/CloudStackBaseFactory.py | 55 -
.../integration/lib/factory/ClusterFactory.py | 24 -
.../integration/lib/factory/ConditionFactory.py | 25 -
.../integration/lib/factory/CounterFactory.py | 25 -
.../integration/lib/factory/DiskOfferingFactory.py | 42 -
.../integration/lib/factory/DomainFactory.py | 24 -
.../lib/factory/EgressFirewallRuleFactory.py | 24 -
.../integration/lib/factory/FirewallRuleFactory.py | 24 -
.../marvin/integration/lib/factory/HostFactory.py | 13 -
.../lib/factory/InstanceGroupFactory.py | 23 -
.../integration/lib/factory/IpAddressFactory.py | 22 -
.../lib/factory/IpForwardingRuleFactory.py | 25 -
.../marvin/integration/lib/factory/IsoFactory.py | 26 -
.../lib/factory/LBHealthCheckPolicyFactory.py | 26 -
.../lib/factory/LBStickinessPolicyFactory.py | 25 -
.../lib/factory/LoadBalancerRuleFactory.py | 26 -
.../integration/lib/factory/NetworkACLFactory.py | 24 -
.../integration/lib/factory/NetworkFactory.py | 26 -
.../lib/factory/NetworkOfferingFactory.py | 85 -
.../lib/factory/NetworkServiceProviderFactory.py | 8 -
.../lib/factory/NiciraNvpDeviceFactory.py | 11 -
.../integration/lib/factory/OsCategoriesFactory.py | 5 -
.../integration/lib/factory/OsTypesFactory.py | 5 -
.../lib/factory/PhysicalNetworkFactory.py | 24 -
.../marvin/integration/lib/factory/PodFactory.py | 27 -
.../lib/factory/PortForwardingRuleFactory.py | 27 -
.../lib/factory/PrivateGatewayFactory.py | 27 -
.../integration/lib/factory/ProjectFactory.py | 24 -
.../lib/factory/ProjectInvitationFactory.py | 7 -
.../lib/factory/RemoteAccessVpnFactory.py | 23 -
.../marvin/integration/lib/factory/S3Factory.py | 8 -
.../integration/lib/factory/SSHKeyPairFactory.py | 23 -
.../lib/factory/SecondaryStorageFactory.py | 7 -
.../lib/factory/SecurityGroupFactory.py | 23 -
.../lib/factory/ServiceOfferingFactory.py | 38 -
.../integration/lib/factory/SnapshotFactory.py | 23 -
.../lib/factory/SnapshotPolicyFactory.py | 27 -
.../integration/lib/factory/StaticNatFactory.py | 8 -
.../integration/lib/factory/StaticRouteFactory.py | 24 -
.../lib/factory/StorageNetworkIpRangeFactory.py | 26 -
.../integration/lib/factory/StoragePoolFactory.py | 26 -
.../marvin/integration/lib/factory/TagsFactory.py | 25 -
.../integration/lib/factory/TemplateFactory.py | 38 -
.../lib/factory/TrafficMonitorFactory.py | 8 -
.../integration/lib/factory/TrafficTypeFactory.py | 9 -
.../integration/lib/factory/UsageRecordsFactory.py | 8 -
.../marvin/integration/lib/factory/UserFactory.py | 34 -
.../integration/lib/factory/VMSnapshotFactory.py | 23 -
.../marvin/integration/lib/factory/VPCFactory.py | 27 -
.../integration/lib/factory/VPCOfferingFactory.py | 25 -
.../lib/factory/VirtualMachineFactory.py | 28 -
.../lib/factory/VirtualRouterElementFactory.py | 23 -
.../integration/lib/factory/VlanIpRangeFactory.py | 23 -
.../integration/lib/factory/VolumeFactory.py | 23 -
.../lib/factory/VpnConnectionFactory.py | 24 -
.../lib/factory/VpnCustomerGatewayFactory.py | 27 -
.../integration/lib/factory/VpnGatewayFactory.py | 23 -
.../integration/lib/factory/VpnUserFactory.py | 24 -
.../marvin/integration/lib/factory/ZoneFactory.py | 38 -
.../marvin/integration/lib/factory/__init__.py | 16 -
.../integration/lib/factory/test/__init__.py | 16 -
.../integration/lib/factory/test/testFactories.py | 152 -
.../marvin/marvin/integration/lib/generateBase.py | 202 --
tools/marvin/marvin/integration/lib/oldbase.py | 2558 ---------------
tools/marvin/marvin/integration/lib/utils.py | 176 -
tools/marvin/marvin/oldbase.py | 2557 ++++++++++++++
tools/marvin/marvin/utils.py | 176 +
344 files changed, 10870 insertions(+), 10870 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Account.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Account.py b/tools/marvin/marvin/base/Account.py
new file mode 100644
index 0000000..aaf72ed
--- /dev/null
+++ b/tools/marvin/marvin/base/Account.py
@@ -0,0 +1,102 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import enableAccount
+from marvin.cloudstackAPI import lockAccount
+from marvin.cloudstackAPI import createAccount
+from marvin.cloudstackAPI import listAccounts
+from marvin.cloudstackAPI import updateAccount
+from marvin.cloudstackAPI import disableAccount
+from marvin.cloudstackAPI import deleteAccount
+from marvin.cloudstackAPI import markDefaultZoneForAccount
+
+class Account(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ def enable(self, apiclient, **kwargs):
+ cmd = enableAccount.enableAccountCmd()
+ 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.iteritems()]
+ account = apiclient.lockAccount(cmd)
+ return account
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createAccount.createAccountCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ account = apiclient.createAccount(cmd)
+ return Account(account.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listAccounts.listAccountsCmd()
+ [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.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.iteritems()]
+ account = apiclient.disableAccount(cmd)
+ return account
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteAccount.deleteAccountCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ account = apiclient.deleteAccount(cmd)
+ return account
+
+ def mark(self, apiclient, zoneid, **kwargs):
+ cmd = markDefaultZoneForAccount.markDefaultZoneForAccountCmd()
+ cmd.id = self.id
+ cmd.account = self.account
+ cmd.domainid = self.domainid
+ cmd.zoneid = zoneid
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ defaultzoneforaccount = apiclient.markDefaultZoneForAccount(cmd)
+ return defaultzoneforaccount
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Alerts.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Alerts.py b/tools/marvin/marvin/base/Alerts.py
new file mode 100644
index 0000000..496696e
--- /dev/null
+++ b/tools/marvin/marvin/base/Alerts.py
@@ -0,0 +1,42 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import listAlerts
+from marvin.cloudstackAPI import deleteAlerts
+
+class Alerts(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listAlerts.listAlertsCmd()
+ [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()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ alerts = apiclient.deleteAlerts(cmd)
+ return alerts
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/ApiLimit.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/ApiLimit.py b/tools/marvin/marvin/base/ApiLimit.py
new file mode 100644
index 0000000..78dffb9
--- /dev/null
+++ b/tools/marvin/marvin/base/ApiLimit.py
@@ -0,0 +1,42 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import resetApiLimit
+from marvin.cloudstackAPI import getApiLimit
+
+class ApiLimit(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ def reset(self, apiclient, **kwargs):
+ cmd = resetApiLimit.resetApiLimitCmd()
+ 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()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ apilimit = apiclient.getApiLimit(cmd)
+ return apilimit
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Apis.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Apis.py b/tools/marvin/marvin/base/Apis.py
new file mode 100644
index 0000000..fb8ce16
--- /dev/null
+++ b/tools/marvin/marvin/base/Apis.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listApis
+
+class Apis(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listApis.listApisCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ apis = apiclient.listApis(cmd)
+ return map(lambda e: Apis(e.__dict__), apis)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/AsyncJobResult.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/AsyncJobResult.py b/tools/marvin/marvin/base/AsyncJobResult.py
new file mode 100644
index 0000000..b82e639
--- /dev/null
+++ b/tools/marvin/marvin/base/AsyncJobResult.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.base import CloudStackEntity
+from marvin.cloudstackAPI import queryAsyncJobResult
+
+class AsyncJobResult(CloudStackEntity.CloudStackEntity):
+
+
+ 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.iteritems()]
+ asyncjobresult = apiclient.queryAsyncJobResult(cmd)
+ return asyncjobresult
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/AsyncJobs.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/AsyncJobs.py b/tools/marvin/marvin/base/AsyncJobs.py
new file mode 100644
index 0000000..5907227
--- /dev/null
+++ b/tools/marvin/marvin/base/AsyncJobs.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listAsyncJobs
+
+class AsyncJobs(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listAsyncJobs.listAsyncJobsCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ asyncjobs = apiclient.listAsyncJobs(cmd)
+ return map(lambda e: AsyncJobs(e.__dict__), asyncjobs)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/AutoScalePolicy.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/AutoScalePolicy.py b/tools/marvin/marvin/base/AutoScalePolicy.py
new file mode 100644
index 0000000..bfc9e33
--- /dev/null
+++ b/tools/marvin/marvin/base/AutoScalePolicy.py
@@ -0,0 +1,60 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createAutoScalePolicy
+from marvin.cloudstackAPI import updateAutoScalePolicy
+from marvin.cloudstackAPI import deleteAutoScalePolicy
+from marvin.cloudstackAPI import listAutoScalePolicies
+
+class AutoScalePolicy(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createAutoScalePolicy.createAutoScalePolicyCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalepolicy = apiclient.createAutoScalePolicy(cmd)
+ return AutoScalePolicy(autoscalepolicy.__dict__)
+
+
+ def update(self, apiclient, **kwargs):
+ cmd = updateAutoScalePolicy.updateAutoScalePolicyCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalepolicy = apiclient.updateAutoScalePolicy(cmd)
+ return autoscalepolicy
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteAutoScalePolicy.deleteAutoScalePolicyCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalepolicy = apiclient.deleteAutoScalePolicy(cmd)
+ return autoscalepolicy
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listAutoScalePolicies.listAutoScalePoliciesCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalepolicies = apiclient.listAutoScalePolicies(cmd)
+ return map(lambda e: AutoScalePolicy(e.__dict__), autoscalepolicies)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/AutoScaleVmGroup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/AutoScaleVmGroup.py b/tools/marvin/marvin/base/AutoScaleVmGroup.py
new file mode 100644
index 0000000..4c11b88
--- /dev/null
+++ b/tools/marvin/marvin/base/AutoScaleVmGroup.py
@@ -0,0 +1,79 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import enableAutoScaleVmGroup
+from marvin.cloudstackAPI import createAutoScaleVmGroup
+from marvin.cloudstackAPI import listAutoScaleVmGroups
+from marvin.cloudstackAPI import updateAutoScaleVmGroup
+from marvin.cloudstackAPI import disableAutoScaleVmGroup
+from marvin.cloudstackAPI import deleteAutoScaleVmGroup
+
+class AutoScaleVmGroup(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ def enable(self, apiclient, **kwargs):
+ cmd = enableAutoScaleVmGroup.enableAutoScaleVmGroupCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmgroup = apiclient.enableAutoScaleVmGroup(cmd)
+ return autoscalevmgroup
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createAutoScaleVmGroup.createAutoScaleVmGroupCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmgroup = apiclient.createAutoScaleVmGroup(cmd)
+ return AutoScaleVmGroup(autoscalevmgroup.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listAutoScaleVmGroups.listAutoScaleVmGroupsCmd()
+ [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, **kwargs):
+ cmd = updateAutoScaleVmGroup.updateAutoScaleVmGroupCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmgroup = apiclient.updateAutoScaleVmGroup(cmd)
+ return autoscalevmgroup
+
+
+ def disable(self, apiclient, **kwargs):
+ cmd = disableAutoScaleVmGroup.disableAutoScaleVmGroupCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmgroup = apiclient.disableAutoScaleVmGroup(cmd)
+ return autoscalevmgroup
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteAutoScaleVmGroup.deleteAutoScaleVmGroupCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmgroup = apiclient.deleteAutoScaleVmGroup(cmd)
+ return autoscalevmgroup
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/AutoScaleVmProfile.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/AutoScaleVmProfile.py b/tools/marvin/marvin/base/AutoScaleVmProfile.py
new file mode 100644
index 0000000..ccdadf1
--- /dev/null
+++ b/tools/marvin/marvin/base/AutoScaleVmProfile.py
@@ -0,0 +1,61 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createAutoScaleVmProfile
+from marvin.cloudstackAPI import listAutoScaleVmProfiles
+from marvin.cloudstackAPI import updateAutoScaleVmProfile
+from marvin.cloudstackAPI import deleteAutoScaleVmProfile
+
+class AutoScaleVmProfile(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createAutoScaleVmProfile.createAutoScaleVmProfileCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmprofile = apiclient.createAutoScaleVmProfile(cmd)
+ return AutoScaleVmProfile(autoscalevmprofile.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listAutoScaleVmProfiles.listAutoScaleVmProfilesCmd()
+ [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, **kwargs):
+ cmd = updateAutoScaleVmProfile.updateAutoScaleVmProfileCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmprofile = apiclient.updateAutoScaleVmProfile(cmd)
+ return autoscalevmprofile
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteAutoScaleVmProfile.deleteAutoScaleVmProfileCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ autoscalevmprofile = apiclient.deleteAutoScaleVmProfile(cmd)
+ return autoscalevmprofile
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/BigSwitchVnsDevice.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/BigSwitchVnsDevice.py b/tools/marvin/marvin/base/BigSwitchVnsDevice.py
new file mode 100644
index 0000000..51df5de
--- /dev/null
+++ b/tools/marvin/marvin/base/BigSwitchVnsDevice.py
@@ -0,0 +1,54 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import addBigSwitchVnsDevice
+from marvin.cloudstackAPI import listBigSwitchVnsDevices
+from marvin.cloudstackAPI import deleteBigSwitchVnsDevice
+
+class BigSwitchVnsDevice(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ 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.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.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.iteritems()]
+ bigswitchvnsdevice = apiclient.deleteBigSwitchVnsDevice(cmd)
+ return bigswitchvnsdevice
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Capabilities.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Capabilities.py b/tools/marvin/marvin/base/Capabilities.py
new file mode 100644
index 0000000..3c2ab6b
--- /dev/null
+++ b/tools/marvin/marvin/base/Capabilities.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listCapabilities
+
+class Capabilities(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listCapabilities.listCapabilitiesCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ capabilities = apiclient.listCapabilities(cmd)
+ return map(lambda e: Capabilities(e.__dict__), capabilities)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Capacity.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Capacity.py b/tools/marvin/marvin/base/Capacity.py
new file mode 100644
index 0000000..a93c375
--- /dev/null
+++ b/tools/marvin/marvin/base/Capacity.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listCapacity
+
+class Capacity(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listCapacity.listCapacityCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ capacity = apiclient.listCapacity(cmd)
+ return map(lambda e: Capacity(e.__dict__), capacity)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/CloudIdentifier.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/CloudIdentifier.py b/tools/marvin/marvin/base/CloudIdentifier.py
new file mode 100644
index 0000000..7caeaac
--- /dev/null
+++ b/tools/marvin/marvin/base/CloudIdentifier.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.base import CloudStackEntity
+from marvin.cloudstackAPI import getCloudIdentifier
+
+class CloudIdentifier(CloudStackEntity.CloudStackEntity):
+
+
+ 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.iteritems()]
+ cloudidentifier = apiclient.getCloudIdentifier(cmd)
+ return cloudidentifier
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/CloudStackEntity.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/CloudStackEntity.py b/tools/marvin/marvin/base/CloudStackEntity.py
new file mode 100644
index 0000000..879506c
--- /dev/null
+++ b/tools/marvin/marvin/base/CloudStackEntity.py
@@ -0,0 +1,25 @@
+# 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.
+
+cloudstack_version = "4.1.0"
+
+class CloudStackEntity(object):
+
+ __version__ = cloudstack_version
+
+ def getVersion(self):
+ return self.__version__
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Cluster.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Cluster.py b/tools/marvin/marvin/base/Cluster.py
new file mode 100644
index 0000000..cf9a869
--- /dev/null
+++ b/tools/marvin/marvin/base/Cluster.py
@@ -0,0 +1,65 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import addCluster
+from marvin.cloudstackAPI import listClusters
+from marvin.cloudstackAPI import updateCluster
+from marvin.cloudstackAPI import deleteCluster
+
+class Cluster(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ 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.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.iteritems()]
+ cluster = apiclient.listClusters(cmd)
+ return map(lambda e: Cluster(e.__dict__), cluster)
+
+
+ def update(self, apiclient, **kwargs):
+ cmd = updateCluster.updateClusterCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ cluster = apiclient.updateCluster(cmd)
+ return cluster
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteCluster.deleteClusterCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ cluster = apiclient.deleteCluster(cmd)
+ return cluster
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Condition.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Condition.py b/tools/marvin/marvin/base/Condition.py
new file mode 100644
index 0000000..e8bd33d
--- /dev/null
+++ b/tools/marvin/marvin/base/Condition.py
@@ -0,0 +1,52 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createCondition
+from marvin.cloudstackAPI import listConditions
+from marvin.cloudstackAPI import deleteCondition
+
+class Condition(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createCondition.createConditionCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ condition = apiclient.createCondition(cmd)
+ return Condition(condition.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listConditions.listConditionsCmd()
+ [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, **kwargs):
+ cmd = deleteCondition.deleteConditionCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ condition = apiclient.deleteCondition(cmd)
+ return condition
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Configuration.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Configuration.py b/tools/marvin/marvin/base/Configuration.py
new file mode 100644
index 0000000..dc5db1c
--- /dev/null
+++ b/tools/marvin/marvin/base/Configuration.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listConfigurations
+from marvin.cloudstackAPI import updateConfiguration
+
+class Configuration(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listConfigurations.listConfigurationsCmd()
+ [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.iteritems()]
+ configuration = apiclient.updateConfiguration(cmd)
+ return configuration
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Counter.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Counter.py b/tools/marvin/marvin/base/Counter.py
new file mode 100644
index 0000000..4794444
--- /dev/null
+++ b/tools/marvin/marvin/base/Counter.py
@@ -0,0 +1,52 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createCounter
+from marvin.cloudstackAPI import listCounters
+from marvin.cloudstackAPI import deleteCounter
+
+class Counter(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createCounter.createCounterCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ counter = apiclient.createCounter(cmd)
+ return Counter(counter.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listCounters.listCountersCmd()
+ [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, **kwargs):
+ cmd = deleteCounter.deleteCounterCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ counter = apiclient.deleteCounter(cmd)
+ return counter
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/CustomCertificate.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/CustomCertificate.py b/tools/marvin/marvin/base/CustomCertificate.py
new file mode 100644
index 0000000..df92ed6
--- /dev/null
+++ b/tools/marvin/marvin/base/CustomCertificate.py
@@ -0,0 +1,35 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import uploadCustomCertificate
+
+class CustomCertificate(CloudStackEntity.CloudStackEntity):
+
+
+ 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.iteritems()]
+ customcertificate = apiclient.uploadCustomCertificate(cmd)
+ return customcertificate
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/DiskOffering.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/DiskOffering.py b/tools/marvin/marvin/base/DiskOffering.py
new file mode 100644
index 0000000..c1ac61f
--- /dev/null
+++ b/tools/marvin/marvin/base/DiskOffering.py
@@ -0,0 +1,61 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createDiskOffering
+from marvin.cloudstackAPI import listDiskOfferings
+from marvin.cloudstackAPI import updateDiskOffering
+from marvin.cloudstackAPI import deleteDiskOffering
+
+class DiskOffering(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createDiskOffering.createDiskOfferingCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ diskoffering = apiclient.createDiskOffering(cmd)
+ return DiskOffering(diskoffering.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listDiskOfferings.listDiskOfferingsCmd()
+ [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, **kwargs):
+ cmd = updateDiskOffering.updateDiskOfferingCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ diskoffering = apiclient.updateDiskOffering(cmd)
+ return diskoffering
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteDiskOffering.deleteDiskOfferingCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ diskoffering = apiclient.deleteDiskOffering(cmd)
+ return diskoffering
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Domain.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Domain.py b/tools/marvin/marvin/base/Domain.py
new file mode 100644
index 0000000..614ecfe
--- /dev/null
+++ b/tools/marvin/marvin/base/Domain.py
@@ -0,0 +1,61 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createDomain
+from marvin.cloudstackAPI import listDomains
+from marvin.cloudstackAPI import updateDomain
+from marvin.cloudstackAPI import deleteDomain
+
+class Domain(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createDomain.createDomainCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ domain = apiclient.createDomain(cmd)
+ return Domain(domain.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listDomains.listDomainsCmd()
+ [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, **kwargs):
+ cmd = updateDomain.updateDomainCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ domain = apiclient.updateDomain(cmd)
+ return domain
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteDomain.deleteDomainCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ domain = apiclient.deleteDomain(cmd)
+ return domain
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/DomainChildren.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/DomainChildren.py b/tools/marvin/marvin/base/DomainChildren.py
new file mode 100644
index 0000000..c69aa5f
--- /dev/null
+++ b/tools/marvin/marvin/base/DomainChildren.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listDomainChildren
+
+class DomainChildren(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listDomainChildren.listDomainChildrenCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ domainchildren = apiclient.listDomainChildren(cmd)
+ return map(lambda e: DomainChildren(e.__dict__), domainchildren)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/EgressFirewallRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/EgressFirewallRule.py b/tools/marvin/marvin/base/EgressFirewallRule.py
new file mode 100644
index 0000000..36ff33a
--- /dev/null
+++ b/tools/marvin/marvin/base/EgressFirewallRule.py
@@ -0,0 +1,52 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createEgressFirewallRule
+from marvin.cloudstackAPI import listEgressFirewallRules
+from marvin.cloudstackAPI import deleteEgressFirewallRule
+
+class EgressFirewallRule(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createEgressFirewallRule.createEgressFirewallRuleCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ egressfirewallrule = apiclient.createEgressFirewallRule(cmd)
+ return EgressFirewallRule(egressfirewallrule.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listEgressFirewallRules.listEgressFirewallRulesCmd()
+ [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, **kwargs):
+ cmd = deleteEgressFirewallRule.deleteEgressFirewallRuleCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ egressfirewallrule = apiclient.deleteEgressFirewallRule(cmd)
+ return egressfirewallrule
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/EventTypes.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/EventTypes.py b/tools/marvin/marvin/base/EventTypes.py
new file mode 100644
index 0000000..1be92f4
--- /dev/null
+++ b/tools/marvin/marvin/base/EventTypes.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.base import CloudStackEntity
+from marvin.cloudstackAPI import listEventTypes
+
+class EventTypes(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listEventTypes.listEventTypesCmd()
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ eventtypes = apiclient.listEventTypes(cmd)
+ return map(lambda e: EventTypes(e.__dict__), eventtypes)
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/Events.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/Events.py b/tools/marvin/marvin/base/Events.py
new file mode 100644
index 0000000..e09bd09
--- /dev/null
+++ b/tools/marvin/marvin/base/Events.py
@@ -0,0 +1,42 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import listEvents
+from marvin.cloudstackAPI import deleteEvents
+
+class Events(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listEvents.listEventsCmd()
+ [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()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ events = apiclient.deleteEvents(cmd)
+ return events
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/FirewallRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/FirewallRule.py b/tools/marvin/marvin/base/FirewallRule.py
new file mode 100644
index 0000000..b6e03bf
--- /dev/null
+++ b/tools/marvin/marvin/base/FirewallRule.py
@@ -0,0 +1,52 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createFirewallRule
+from marvin.cloudstackAPI import listFirewallRules
+from marvin.cloudstackAPI import deleteFirewallRule
+
+class FirewallRule(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createFirewallRule.createFirewallRuleCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__dict__.iteritems()]
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ firewallrule = apiclient.createFirewallRule(cmd)
+ return FirewallRule(firewallrule.__dict__)
+
+
+ @classmethod
+ def list(self, apiclient, **kwargs):
+ cmd = listFirewallRules.listFirewallRulesCmd()
+ [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, **kwargs):
+ cmd = deleteFirewallRule.deleteFirewallRuleCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ firewallrule = apiclient.deleteFirewallRule(cmd)
+ return firewallrule
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd838d72/tools/marvin/marvin/base/GlobalLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/GlobalLoadBalancerRule.py b/tools/marvin/marvin/base/GlobalLoadBalancerRule.py
new file mode 100644
index 0000000..0ade923
--- /dev/null
+++ b/tools/marvin/marvin/base/GlobalLoadBalancerRule.py
@@ -0,0 +1,80 @@
+# 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.base import CloudStackEntity
+from marvin.cloudstackAPI import createGlobalLoadBalancerRule
+from marvin.cloudstackAPI import listGlobalLoadBalancerRules
+from marvin.cloudstackAPI import updateGlobalLoadBalancerRule
+from marvin.cloudstackAPI import deleteGlobalLoadBalancerRule
+from marvin.cloudstackAPI import removeFromGlobalLoadBalancerRule
+from marvin.cloudstackAPI import assignToGlobalLoadBalancerRule
+
+class GlobalLoadBalancerRule(CloudStackEntity.CloudStackEntity):
+
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+
+ @classmethod
+ def create(cls, apiclient, factory, **kwargs):
+ cmd = createGlobalLoadBalancerRule.createGlobalLoadBalancerRuleCmd()
+ [setattr(cmd, factoryKey, factoryValue) for factoryKey, factoryValue in factory.__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, **kwargs):
+ cmd = updateGlobalLoadBalancerRule.updateGlobalLoadBalancerRuleCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ globalloadbalancerrule = apiclient.updateGlobalLoadBalancerRule(cmd)
+ return globalloadbalancerrule
+
+
+ def delete(self, apiclient, **kwargs):
+ cmd = deleteGlobalLoadBalancerRule.deleteGlobalLoadBalancerRuleCmd()
+ cmd.id = self.id
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ globalloadbalancerrule = apiclient.deleteGlobalLoadBalancerRule(cmd)
+ return globalloadbalancerrule
+
+
+ def remove(self, apiclient, loadbalancerrulelist, **kwargs):
+ cmd = removeFromGlobalLoadBalancerRule.removeFromGlobalLoadBalancerRuleCmd()
+ cmd.id = self.id
+ cmd.loadbalancerrulelist = loadbalancerrulelist
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ fromgloballoadbalancerrule = apiclient.removeFromGlobalLoadBalancerRule(cmd)
+ return fromgloballoadbalancerrule
+
+
+ def assign(self, apiclient, loadbalancerrulelist, **kwargs):
+ cmd = assignToGlobalLoadBalancerRule.assignToGlobalLoadBalancerRuleCmd()
+ cmd.id = self.id
+ cmd.loadbalancerrulelist = loadbalancerrulelist
+ [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
+ togloballoadbalancerrule = apiclient.assignToGlobalLoadBalancerRule(cmd)
+ return togloballoadbalancerrule