From dda9ae28f3159f2b1bbdefe2f019346e0b01e76b Mon Sep 17 00:00:00 2001 From: Prasanna Santhanam Date: Wed, 23 Jan 2013 19:34:25 +0530 Subject: [PATCH] marvin_refactor: factories for each api entity factories will help define default test data for each entity. So a Account.create(apiclient) returns a default account VirtualMachine.deploy(apiclient) returns a virtualmachine etc WIP: only skeletons, no flesh Signed-off-by: Prasanna Santhanam --- .../lib/factory/AccountFromProjectFactory.py | 8 +++++ .../lib/factory/AccountToProjectFactory.py | 7 ++++ .../integration/lib/factory/AlertsFactory.py | 5 +++ .../integration/lib/factory/ApisFactory.py | 5 +++ .../lib/factory/AsyncJobResultFactory.py | 7 ++++ .../lib/factory/AsyncJobsFactory.py | 5 +++ .../lib/factory/AutoScalePoliciesFactory.py | 5 +++ .../lib/factory/CapabilitiesFactory.py | 5 +++ .../lib/factory/CapacityFactory.py | 5 +++ .../lib/factory/CloudIdentifierFactory.py | 7 ++++ .../integration/lib/factory/ClusterFactory.py | 25 +++++++++++++++ .../integration/lib/factory/ConfigFactory.py | 9 ++++++ .../lib/factory/ConfigurationFactory.py | 11 +++++++ .../lib/factory/CustomCertificateFactory.py | 8 +++++ .../factory/DefaultZoneForAccountFactory.py | 9 ++++++ .../lib/factory/DomainChildrenFactory.py | 5 +++ .../lib/factory/EventTypesFactory.py | 5 +++ .../integration/lib/factory/EventsFactory.py | 5 +++ .../factory/FromLoadBalancerRuleFactory.py | 8 +++++ .../integration/lib/factory/HostFactory.py | 31 ++++++++++++++++++ .../lib/factory/HostForMaintenanceFactory.py | 7 ++++ .../lib/factory/HostMaintenanceFactory.py | 7 ++++ .../lib/factory/HostPasswordFactory.py | 8 +++++ .../factory/HypervisorCapabilitiesFactory.py | 9 ++++++ .../lib/factory/HypervisorsFactory.py | 5 +++ .../lib/factory/IsoPermissionsFactory.py | 12 +++++++ .../factory/LBStickinessPoliciesFactory.py | 7 ++++ .../LoadBalancerRuleInstancesFactory.py | 7 ++++ .../lib/factory/NetworkDeviceFactory.py | 15 +++++++++ .../factory/NetworkServiceProviderFactory.py | 22 +++++++++++++ .../lib/factory/NiciraNvpDeviceFactory.py | 20 ++++++++++++ .../factory/NiciraNvpDeviceNetworksFactory.py | 7 ++++ .../lib/factory/OsCategoriesFactory.py | 5 +++ .../integration/lib/factory/OsTypesFactory.py | 5 +++ .../PasswordForVirtualMachineFactory.py | 7 ++++ .../lib/factory/ProjectAccountsFactory.py | 7 ++++ .../lib/factory/ProjectInvitationFactory.py | 16 ++++++++++ .../lib/factory/PublicIpAddressesFactory.py | 5 +++ .../integration/lib/factory/RemoveFactory.py | 5 +++ .../lib/factory/ResourceCountFactory.py | 7 ++++ .../lib/factory/ResourceLimitFactory.py | 11 +++++++ .../integration/lib/factory/RouterFactory.py | 26 +++++++++++++++ .../integration/lib/factory/S3Factory.py | 12 +++++++ .../lib/factory/SecondaryStorageFactory.py | 7 ++++ .../lib/factory/SecurityGroupEgressFactory.py | 11 +++++++ .../factory/SecurityGroupIngressFactory.py | 11 +++++++ .../lib/factory/ServiceForRouterFactory.py | 8 +++++ .../lib/factory/ServiceForSystemVmFactory.py | 8 +++++ .../ServiceForVirtualMachineFactory.py | 8 +++++ .../lib/factory/SnapshotPoliciesFactory.py | 10 ++++++ .../lib/factory/StaticNatFactory.py | 13 ++++++++ .../lib/factory/StorageMaintenanceFactory.py | 12 +++++++ .../SupportedNetworkServicesFactory.py | 5 +++ .../integration/lib/factory/SwiftFactory.py | 10 ++++++ .../lib/factory/SystemVmFactory.py | 32 +++++++++++++++++++ .../lib/factory/TemplatePermissionsFactory.py | 12 +++++++ .../lib/factory/ToLoadBalancerRuleFactory.py | 8 +++++ .../lib/factory/TrafficMonitorFactory.py | 18 +++++++++++ .../lib/factory/TrafficTypeFactory.py | 23 +++++++++++++ .../factory/TrafficTypeImplementorsFactory.py | 5 +++ .../lib/factory/UsageRecordsFactory.py | 14 ++++++++ .../lib/factory/UsageTypesFactory.py | 5 +++ .../lib/factory/VMPasswordFactory.py | 7 ++++ .../integration/lib/factory/VpnUserFactory.py | 17 ++++++++++ 64 files changed, 651 insertions(+) create mode 100644 tools/marvin/marvin/integration/lib/factory/AccountFromProjectFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/AccountToProjectFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/AlertsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ApisFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/AsyncJobResultFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/AsyncJobsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/AutoScalePoliciesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/CapabilitiesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/CapacityFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/CloudIdentifierFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ClusterFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ConfigFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ConfigurationFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/CustomCertificateFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/DefaultZoneForAccountFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/DomainChildrenFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/EventTypesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/EventsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/FromLoadBalancerRuleFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/HostFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/HostForMaintenanceFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/HostMaintenanceFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/HostPasswordFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/HypervisorCapabilitiesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/HypervisorsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/IsoPermissionsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/LBStickinessPoliciesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/LoadBalancerRuleInstancesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/NetworkDeviceFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/NetworkServiceProviderFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceNetworksFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/OsCategoriesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/OsTypesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/PasswordForVirtualMachineFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ProjectAccountsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ProjectInvitationFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/PublicIpAddressesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/RemoveFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ResourceCountFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ResourceLimitFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/RouterFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/S3Factory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SecondaryStorageFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SecurityGroupEgressFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SecurityGroupIngressFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ServiceForRouterFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ServiceForSystemVmFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ServiceForVirtualMachineFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SnapshotPoliciesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/StaticNatFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/StorageMaintenanceFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SupportedNetworkServicesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SwiftFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/SystemVmFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/TemplatePermissionsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/ToLoadBalancerRuleFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/TrafficMonitorFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/TrafficTypeFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/TrafficTypeImplementorsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/UsageRecordsFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/UsageTypesFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/VMPasswordFactory.py create mode 100644 tools/marvin/marvin/integration/lib/factory/VpnUserFactory.py diff --git a/tools/marvin/marvin/integration/lib/factory/AccountFromProjectFactory.py b/tools/marvin/marvin/integration/lib/factory/AccountFromProjectFactory.py new file mode 100644 index 00000000000..ef67a93fe09 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/AccountFromProjectFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import AccountFromProject +class AccountFromProjectFactory(factory.Factory): + + FACTORY_FOR = AccountFromProject + + account = None + projectid = None diff --git a/tools/marvin/marvin/integration/lib/factory/AccountToProjectFactory.py b/tools/marvin/marvin/integration/lib/factory/AccountToProjectFactory.py new file mode 100644 index 00000000000..df54c18aaa8 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/AccountToProjectFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import AccountToProject +class AccountToProjectFactory(factory.Factory): + + FACTORY_FOR = AccountToProject + + projectid = None diff --git a/tools/marvin/marvin/integration/lib/factory/AlertsFactory.py b/tools/marvin/marvin/integration/lib/factory/AlertsFactory.py new file mode 100644 index 00000000000..18ee4e0446b --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/AlertsFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Alerts +class AlertsFactory(factory.Factory): + + FACTORY_FOR = Alerts diff --git a/tools/marvin/marvin/integration/lib/factory/ApisFactory.py b/tools/marvin/marvin/integration/lib/factory/ApisFactory.py new file mode 100644 index 00000000000..78b5986f498 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ApisFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Apis +class ApisFactory(factory.Factory): + + FACTORY_FOR = Apis diff --git a/tools/marvin/marvin/integration/lib/factory/AsyncJobResultFactory.py b/tools/marvin/marvin/integration/lib/factory/AsyncJobResultFactory.py new file mode 100644 index 00000000000..d36fad83d1d --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/AsyncJobResultFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import AsyncJobResult +class AsyncJobResultFactory(factory.Factory): + + FACTORY_FOR = AsyncJobResult + + jobid = None diff --git a/tools/marvin/marvin/integration/lib/factory/AsyncJobsFactory.py b/tools/marvin/marvin/integration/lib/factory/AsyncJobsFactory.py new file mode 100644 index 00000000000..c85b28185cb --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/AsyncJobsFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import AsyncJobs +class AsyncJobsFactory(factory.Factory): + + FACTORY_FOR = AsyncJobs diff --git a/tools/marvin/marvin/integration/lib/factory/AutoScalePoliciesFactory.py b/tools/marvin/marvin/integration/lib/factory/AutoScalePoliciesFactory.py new file mode 100644 index 00000000000..2cf690226e1 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/AutoScalePoliciesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import AutoScalePolicies +class AutoScalePoliciesFactory(factory.Factory): + + FACTORY_FOR = AutoScalePolicies diff --git a/tools/marvin/marvin/integration/lib/factory/CapabilitiesFactory.py b/tools/marvin/marvin/integration/lib/factory/CapabilitiesFactory.py new file mode 100644 index 00000000000..bb40fd493cc --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/CapabilitiesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Capabilities +class CapabilitiesFactory(factory.Factory): + + FACTORY_FOR = Capabilities diff --git a/tools/marvin/marvin/integration/lib/factory/CapacityFactory.py b/tools/marvin/marvin/integration/lib/factory/CapacityFactory.py new file mode 100644 index 00000000000..5f4c40658f0 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/CapacityFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Capacity +class CapacityFactory(factory.Factory): + + FACTORY_FOR = Capacity diff --git a/tools/marvin/marvin/integration/lib/factory/CloudIdentifierFactory.py b/tools/marvin/marvin/integration/lib/factory/CloudIdentifierFactory.py new file mode 100644 index 00000000000..22c27d714ea --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/CloudIdentifierFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import CloudIdentifier +class CloudIdentifierFactory(factory.Factory): + + FACTORY_FOR = CloudIdentifier + + userid = None diff --git a/tools/marvin/marvin/integration/lib/factory/ClusterFactory.py b/tools/marvin/marvin/integration/lib/factory/ClusterFactory.py new file mode 100644 index 00000000000..2697f6aa3f4 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ClusterFactory.py @@ -0,0 +1,25 @@ +import factory +from marvin.integration.lib.newbase import Cluster +class ClusterFactory(factory.Factory): + + FACTORY_FOR = Cluster + + clustername = None + clustertype = None + hypervisor = None + podid = None + zoneid = None + + + FACTORY_FOR = Cluster + + + + FACTORY_FOR = Cluster + + id = None + + + FACTORY_FOR = Cluster + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/ConfigFactory.py b/tools/marvin/marvin/integration/lib/factory/ConfigFactory.py new file mode 100644 index 00000000000..f62c5836dd5 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ConfigFactory.py @@ -0,0 +1,9 @@ +import factory +from marvin.integration.lib.newbase import Config +class ConfigFactory(factory.Factory): + + FACTORY_FOR = Config + + hostname = None + queryfilter = None + searchbase = None diff --git a/tools/marvin/marvin/integration/lib/factory/ConfigurationFactory.py b/tools/marvin/marvin/integration/lib/factory/ConfigurationFactory.py new file mode 100644 index 00000000000..88c65568e87 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ConfigurationFactory.py @@ -0,0 +1,11 @@ +import factory +from marvin.integration.lib.newbase import Configuration +class ConfigurationFactory(factory.Factory): + + FACTORY_FOR = Configuration + + + + FACTORY_FOR = Configuration + + name = None diff --git a/tools/marvin/marvin/integration/lib/factory/CustomCertificateFactory.py b/tools/marvin/marvin/integration/lib/factory/CustomCertificateFactory.py new file mode 100644 index 00000000000..c3f8c62b993 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/CustomCertificateFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import CustomCertificate +class CustomCertificateFactory(factory.Factory): + + FACTORY_FOR = CustomCertificate + + certificate = None + domainsuffix = None diff --git a/tools/marvin/marvin/integration/lib/factory/DefaultZoneForAccountFactory.py b/tools/marvin/marvin/integration/lib/factory/DefaultZoneForAccountFactory.py new file mode 100644 index 00000000000..15da73a6d42 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/DefaultZoneForAccountFactory.py @@ -0,0 +1,9 @@ +import factory +from marvin.integration.lib.newbase import DefaultZoneForAccount +class DefaultZoneForAccountFactory(factory.Factory): + + FACTORY_FOR = DefaultZoneForAccount + + account = None + domainid = None + zoneid = None diff --git a/tools/marvin/marvin/integration/lib/factory/DomainChildrenFactory.py b/tools/marvin/marvin/integration/lib/factory/DomainChildrenFactory.py new file mode 100644 index 00000000000..44d350ab8bb --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/DomainChildrenFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import DomainChildren +class DomainChildrenFactory(factory.Factory): + + FACTORY_FOR = DomainChildren diff --git a/tools/marvin/marvin/integration/lib/factory/EventTypesFactory.py b/tools/marvin/marvin/integration/lib/factory/EventTypesFactory.py new file mode 100644 index 00000000000..5e7d7185b75 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/EventTypesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import EventTypes +class EventTypesFactory(factory.Factory): + + FACTORY_FOR = EventTypes diff --git a/tools/marvin/marvin/integration/lib/factory/EventsFactory.py b/tools/marvin/marvin/integration/lib/factory/EventsFactory.py new file mode 100644 index 00000000000..700f5ae31a8 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/EventsFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Events +class EventsFactory(factory.Factory): + + FACTORY_FOR = Events diff --git a/tools/marvin/marvin/integration/lib/factory/FromLoadBalancerRuleFactory.py b/tools/marvin/marvin/integration/lib/factory/FromLoadBalancerRuleFactory.py new file mode 100644 index 00000000000..82e46cbfe09 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/FromLoadBalancerRuleFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import FromLoadBalancerRule +class FromLoadBalancerRuleFactory(factory.Factory): + + FACTORY_FOR = FromLoadBalancerRule + + id = None + virtualmachineids = None diff --git a/tools/marvin/marvin/integration/lib/factory/HostFactory.py b/tools/marvin/marvin/integration/lib/factory/HostFactory.py new file mode 100644 index 00000000000..fcdf07423f2 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/HostFactory.py @@ -0,0 +1,31 @@ +import factory +from marvin.integration.lib.newbase import Host +class HostFactory(factory.Factory): + + FACTORY_FOR = Host + + hypervisor = None + password = None + podid = None + url = None + username = None + zoneid = None + + + FACTORY_FOR = Host + + + + FACTORY_FOR = Host + + id = None + + + FACTORY_FOR = Host + + id = None + + + FACTORY_FOR = Host + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/HostForMaintenanceFactory.py b/tools/marvin/marvin/integration/lib/factory/HostForMaintenanceFactory.py new file mode 100644 index 00000000000..653e37a7157 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/HostForMaintenanceFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import HostForMaintenance +class HostForMaintenanceFactory(factory.Factory): + + FACTORY_FOR = HostForMaintenance + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/HostMaintenanceFactory.py b/tools/marvin/marvin/integration/lib/factory/HostMaintenanceFactory.py new file mode 100644 index 00000000000..d491e00f5c4 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/HostMaintenanceFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import HostMaintenance +class HostMaintenanceFactory(factory.Factory): + + FACTORY_FOR = HostMaintenance + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/HostPasswordFactory.py b/tools/marvin/marvin/integration/lib/factory/HostPasswordFactory.py new file mode 100644 index 00000000000..316af2b359d --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/HostPasswordFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import HostPassword +class HostPasswordFactory(factory.Factory): + + FACTORY_FOR = HostPassword + + password = None + username = None diff --git a/tools/marvin/marvin/integration/lib/factory/HypervisorCapabilitiesFactory.py b/tools/marvin/marvin/integration/lib/factory/HypervisorCapabilitiesFactory.py new file mode 100644 index 00000000000..4819a531faa --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/HypervisorCapabilitiesFactory.py @@ -0,0 +1,9 @@ +import factory +from marvin.integration.lib.newbase import HypervisorCapabilities +class HypervisorCapabilitiesFactory(factory.Factory): + + FACTORY_FOR = HypervisorCapabilities + + + + FACTORY_FOR = HypervisorCapabilities diff --git a/tools/marvin/marvin/integration/lib/factory/HypervisorsFactory.py b/tools/marvin/marvin/integration/lib/factory/HypervisorsFactory.py new file mode 100644 index 00000000000..7b69ccbdb8d --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/HypervisorsFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Hypervisors +class HypervisorsFactory(factory.Factory): + + FACTORY_FOR = Hypervisors diff --git a/tools/marvin/marvin/integration/lib/factory/IsoPermissionsFactory.py b/tools/marvin/marvin/integration/lib/factory/IsoPermissionsFactory.py new file mode 100644 index 00000000000..9116ff95acb --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/IsoPermissionsFactory.py @@ -0,0 +1,12 @@ +import factory +from marvin.integration.lib.newbase import IsoPermissions +class IsoPermissionsFactory(factory.Factory): + + FACTORY_FOR = IsoPermissions + + id = None + + + FACTORY_FOR = IsoPermissions + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/LBStickinessPoliciesFactory.py b/tools/marvin/marvin/integration/lib/factory/LBStickinessPoliciesFactory.py new file mode 100644 index 00000000000..1ed738bcb1f --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/LBStickinessPoliciesFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import LBStickinessPolicies +class LBStickinessPoliciesFactory(factory.Factory): + + FACTORY_FOR = LBStickinessPolicies + + lbruleid = None diff --git a/tools/marvin/marvin/integration/lib/factory/LoadBalancerRuleInstancesFactory.py b/tools/marvin/marvin/integration/lib/factory/LoadBalancerRuleInstancesFactory.py new file mode 100644 index 00000000000..f5abf63df00 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/LoadBalancerRuleInstancesFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import LoadBalancerRuleInstances +class LoadBalancerRuleInstancesFactory(factory.Factory): + + FACTORY_FOR = LoadBalancerRuleInstances + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/NetworkDeviceFactory.py b/tools/marvin/marvin/integration/lib/factory/NetworkDeviceFactory.py new file mode 100644 index 00000000000..1437e256c65 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/NetworkDeviceFactory.py @@ -0,0 +1,15 @@ +import factory +from marvin.integration.lib.newbase import NetworkDevice +class NetworkDeviceFactory(factory.Factory): + + FACTORY_FOR = NetworkDevice + + + + FACTORY_FOR = NetworkDevice + + + + FACTORY_FOR = NetworkDevice + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/NetworkServiceProviderFactory.py b/tools/marvin/marvin/integration/lib/factory/NetworkServiceProviderFactory.py new file mode 100644 index 00000000000..108af5d6e0d --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/NetworkServiceProviderFactory.py @@ -0,0 +1,22 @@ +import factory +from marvin.integration.lib.newbase import NetworkServiceProvider +class NetworkServiceProviderFactory(factory.Factory): + + FACTORY_FOR = NetworkServiceProvider + + name = None + physicalnetworkid = None + + + FACTORY_FOR = NetworkServiceProvider + + + + FACTORY_FOR = NetworkServiceProvider + + id = None + + + FACTORY_FOR = NetworkServiceProvider + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceFactory.py b/tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceFactory.py new file mode 100644 index 00000000000..8448c420626 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceFactory.py @@ -0,0 +1,20 @@ +import factory +from marvin.integration.lib.newbase import NiciraNvpDevice +class NiciraNvpDeviceFactory(factory.Factory): + + FACTORY_FOR = NiciraNvpDevice + + hostname = None + password = None + physicalnetworkid = None + transportzoneuuid = None + username = None + + + FACTORY_FOR = NiciraNvpDevice + + + + FACTORY_FOR = NiciraNvpDevice + + nvpdeviceid = None diff --git a/tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceNetworksFactory.py b/tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceNetworksFactory.py new file mode 100644 index 00000000000..fe7dc707198 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/NiciraNvpDeviceNetworksFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import NiciraNvpDeviceNetworks +class NiciraNvpDeviceNetworksFactory(factory.Factory): + + FACTORY_FOR = NiciraNvpDeviceNetworks + + nvpdeviceid = None diff --git a/tools/marvin/marvin/integration/lib/factory/OsCategoriesFactory.py b/tools/marvin/marvin/integration/lib/factory/OsCategoriesFactory.py new file mode 100644 index 00000000000..0d60359b570 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/OsCategoriesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import OsCategories +class OsCategoriesFactory(factory.Factory): + + FACTORY_FOR = OsCategories diff --git a/tools/marvin/marvin/integration/lib/factory/OsTypesFactory.py b/tools/marvin/marvin/integration/lib/factory/OsTypesFactory.py new file mode 100644 index 00000000000..fe105b3a567 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/OsTypesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import OsTypes +class OsTypesFactory(factory.Factory): + + FACTORY_FOR = OsTypes diff --git a/tools/marvin/marvin/integration/lib/factory/PasswordForVirtualMachineFactory.py b/tools/marvin/marvin/integration/lib/factory/PasswordForVirtualMachineFactory.py new file mode 100644 index 00000000000..b9592260c2b --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/PasswordForVirtualMachineFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import PasswordForVirtualMachine +class PasswordForVirtualMachineFactory(factory.Factory): + + FACTORY_FOR = PasswordForVirtualMachine + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/ProjectAccountsFactory.py b/tools/marvin/marvin/integration/lib/factory/ProjectAccountsFactory.py new file mode 100644 index 00000000000..e242004b860 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ProjectAccountsFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import ProjectAccounts +class ProjectAccountsFactory(factory.Factory): + + FACTORY_FOR = ProjectAccounts + + projectid = None diff --git a/tools/marvin/marvin/integration/lib/factory/ProjectInvitationFactory.py b/tools/marvin/marvin/integration/lib/factory/ProjectInvitationFactory.py new file mode 100644 index 00000000000..762a9d440c4 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ProjectInvitationFactory.py @@ -0,0 +1,16 @@ +import factory +from marvin.integration.lib.newbase import ProjectInvitation +class ProjectInvitationFactory(factory.Factory): + + FACTORY_FOR = ProjectInvitation + + + + FACTORY_FOR = ProjectInvitation + + projectid = None + + + FACTORY_FOR = ProjectInvitation + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/PublicIpAddressesFactory.py b/tools/marvin/marvin/integration/lib/factory/PublicIpAddressesFactory.py new file mode 100644 index 00000000000..32e899e64b9 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/PublicIpAddressesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import PublicIpAddresses +class PublicIpAddressesFactory(factory.Factory): + + FACTORY_FOR = PublicIpAddresses diff --git a/tools/marvin/marvin/integration/lib/factory/RemoveFactory.py b/tools/marvin/marvin/integration/lib/factory/RemoveFactory.py new file mode 100644 index 00000000000..4cdb94f9c1f --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/RemoveFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import Remove +class RemoveFactory(factory.Factory): + + FACTORY_FOR = Remove diff --git a/tools/marvin/marvin/integration/lib/factory/ResourceCountFactory.py b/tools/marvin/marvin/integration/lib/factory/ResourceCountFactory.py new file mode 100644 index 00000000000..7e41d964eae --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ResourceCountFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import ResourceCount +class ResourceCountFactory(factory.Factory): + + FACTORY_FOR = ResourceCount + + domainid = None diff --git a/tools/marvin/marvin/integration/lib/factory/ResourceLimitFactory.py b/tools/marvin/marvin/integration/lib/factory/ResourceLimitFactory.py new file mode 100644 index 00000000000..9e9f0a062bd --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ResourceLimitFactory.py @@ -0,0 +1,11 @@ +import factory +from marvin.integration.lib.newbase import ResourceLimit +class ResourceLimitFactory(factory.Factory): + + FACTORY_FOR = ResourceLimit + + + + FACTORY_FOR = ResourceLimit + + resourcetype = None diff --git a/tools/marvin/marvin/integration/lib/factory/RouterFactory.py b/tools/marvin/marvin/integration/lib/factory/RouterFactory.py new file mode 100644 index 00000000000..e5d8a6e80b5 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/RouterFactory.py @@ -0,0 +1,26 @@ +import factory +from marvin.integration.lib.newbase import Router +class RouterFactory(factory.Factory): + + FACTORY_FOR = Router + + id = None + + + FACTORY_FOR = Router + + + + FACTORY_FOR = Router + + id = None + + + FACTORY_FOR = Router + + id = None + + + FACTORY_FOR = Router + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/S3Factory.py b/tools/marvin/marvin/integration/lib/factory/S3Factory.py new file mode 100644 index 00000000000..a4942c972d4 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/S3Factory.py @@ -0,0 +1,12 @@ +import factory +from marvin.integration.lib.newbase import S3 +class S3Factory(factory.Factory): + + FACTORY_FOR = S3 + + accesskey = None + bucket = None + secretkey = None + + + FACTORY_FOR = S3 diff --git a/tools/marvin/marvin/integration/lib/factory/SecondaryStorageFactory.py b/tools/marvin/marvin/integration/lib/factory/SecondaryStorageFactory.py new file mode 100644 index 00000000000..b44f1ede12e --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SecondaryStorageFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import SecondaryStorage +class SecondaryStorageFactory(factory.Factory): + + FACTORY_FOR = SecondaryStorage + + url = None diff --git a/tools/marvin/marvin/integration/lib/factory/SecurityGroupEgressFactory.py b/tools/marvin/marvin/integration/lib/factory/SecurityGroupEgressFactory.py new file mode 100644 index 00000000000..19e715db9d4 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SecurityGroupEgressFactory.py @@ -0,0 +1,11 @@ +import factory +from marvin.integration.lib.newbase import SecurityGroupEgress +class SecurityGroupEgressFactory(factory.Factory): + + FACTORY_FOR = SecurityGroupEgress + + + + FACTORY_FOR = SecurityGroupEgress + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/SecurityGroupIngressFactory.py b/tools/marvin/marvin/integration/lib/factory/SecurityGroupIngressFactory.py new file mode 100644 index 00000000000..d0f44476915 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SecurityGroupIngressFactory.py @@ -0,0 +1,11 @@ +import factory +from marvin.integration.lib.newbase import SecurityGroupIngress +class SecurityGroupIngressFactory(factory.Factory): + + FACTORY_FOR = SecurityGroupIngress + + + + FACTORY_FOR = SecurityGroupIngress + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/ServiceForRouterFactory.py b/tools/marvin/marvin/integration/lib/factory/ServiceForRouterFactory.py new file mode 100644 index 00000000000..faa7d7dc2fb --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ServiceForRouterFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import ServiceForRouter +class ServiceForRouterFactory(factory.Factory): + + FACTORY_FOR = ServiceForRouter + + id = None + serviceofferingid = None diff --git a/tools/marvin/marvin/integration/lib/factory/ServiceForSystemVmFactory.py b/tools/marvin/marvin/integration/lib/factory/ServiceForSystemVmFactory.py new file mode 100644 index 00000000000..42ee08183cb --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ServiceForSystemVmFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import ServiceForSystemVm +class ServiceForSystemVmFactory(factory.Factory): + + FACTORY_FOR = ServiceForSystemVm + + id = None + serviceofferingid = None diff --git a/tools/marvin/marvin/integration/lib/factory/ServiceForVirtualMachineFactory.py b/tools/marvin/marvin/integration/lib/factory/ServiceForVirtualMachineFactory.py new file mode 100644 index 00000000000..28845946756 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ServiceForVirtualMachineFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import ServiceForVirtualMachine +class ServiceForVirtualMachineFactory(factory.Factory): + + FACTORY_FOR = ServiceForVirtualMachine + + id = None + serviceofferingid = None diff --git a/tools/marvin/marvin/integration/lib/factory/SnapshotPoliciesFactory.py b/tools/marvin/marvin/integration/lib/factory/SnapshotPoliciesFactory.py new file mode 100644 index 00000000000..bf4cd1679a5 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SnapshotPoliciesFactory.py @@ -0,0 +1,10 @@ +import factory +from marvin.integration.lib.newbase import SnapshotPolicies +class SnapshotPoliciesFactory(factory.Factory): + + FACTORY_FOR = SnapshotPolicies + + volumeid = None + + + FACTORY_FOR = SnapshotPolicies diff --git a/tools/marvin/marvin/integration/lib/factory/StaticNatFactory.py b/tools/marvin/marvin/integration/lib/factory/StaticNatFactory.py new file mode 100644 index 00000000000..817fb27a2a0 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/StaticNatFactory.py @@ -0,0 +1,13 @@ +import factory +from marvin.integration.lib.newbase import StaticNat +class StaticNatFactory(factory.Factory): + + FACTORY_FOR = StaticNat + + ipaddressid = None + virtualmachineid = None + + + FACTORY_FOR = StaticNat + + ipaddressid = None diff --git a/tools/marvin/marvin/integration/lib/factory/StorageMaintenanceFactory.py b/tools/marvin/marvin/integration/lib/factory/StorageMaintenanceFactory.py new file mode 100644 index 00000000000..90335c08221 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/StorageMaintenanceFactory.py @@ -0,0 +1,12 @@ +import factory +from marvin.integration.lib.newbase import StorageMaintenance +class StorageMaintenanceFactory(factory.Factory): + + FACTORY_FOR = StorageMaintenance + + id = None + + + FACTORY_FOR = StorageMaintenance + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/SupportedNetworkServicesFactory.py b/tools/marvin/marvin/integration/lib/factory/SupportedNetworkServicesFactory.py new file mode 100644 index 00000000000..d82ab68c949 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SupportedNetworkServicesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import SupportedNetworkServices +class SupportedNetworkServicesFactory(factory.Factory): + + FACTORY_FOR = SupportedNetworkServices diff --git a/tools/marvin/marvin/integration/lib/factory/SwiftFactory.py b/tools/marvin/marvin/integration/lib/factory/SwiftFactory.py new file mode 100644 index 00000000000..a52da8ea82f --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SwiftFactory.py @@ -0,0 +1,10 @@ +import factory +from marvin.integration.lib.newbase import Swift +class SwiftFactory(factory.Factory): + + FACTORY_FOR = Swift + + url = None + + + FACTORY_FOR = Swift diff --git a/tools/marvin/marvin/integration/lib/factory/SystemVmFactory.py b/tools/marvin/marvin/integration/lib/factory/SystemVmFactory.py new file mode 100644 index 00000000000..65c4311f755 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/SystemVmFactory.py @@ -0,0 +1,32 @@ +import factory +from marvin.integration.lib.newbase import SystemVm +class SystemVmFactory(factory.Factory): + + FACTORY_FOR = SystemVm + + hostid = None + virtualmachineid = None + + + FACTORY_FOR = SystemVm + + id = None + + + FACTORY_FOR = SystemVm + + + + FACTORY_FOR = SystemVm + + id = None + + + FACTORY_FOR = SystemVm + + id = None + + + FACTORY_FOR = SystemVm + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/TemplatePermissionsFactory.py b/tools/marvin/marvin/integration/lib/factory/TemplatePermissionsFactory.py new file mode 100644 index 00000000000..88f2493137e --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/TemplatePermissionsFactory.py @@ -0,0 +1,12 @@ +import factory +from marvin.integration.lib.newbase import TemplatePermissions +class TemplatePermissionsFactory(factory.Factory): + + FACTORY_FOR = TemplatePermissions + + id = None + + + FACTORY_FOR = TemplatePermissions + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/ToLoadBalancerRuleFactory.py b/tools/marvin/marvin/integration/lib/factory/ToLoadBalancerRuleFactory.py new file mode 100644 index 00000000000..57ad32a3313 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/ToLoadBalancerRuleFactory.py @@ -0,0 +1,8 @@ +import factory +from marvin.integration.lib.newbase import ToLoadBalancerRule +class ToLoadBalancerRuleFactory(factory.Factory): + + FACTORY_FOR = ToLoadBalancerRule + + id = None + virtualmachineids = None diff --git a/tools/marvin/marvin/integration/lib/factory/TrafficMonitorFactory.py b/tools/marvin/marvin/integration/lib/factory/TrafficMonitorFactory.py new file mode 100644 index 00000000000..cc6db015d66 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/TrafficMonitorFactory.py @@ -0,0 +1,18 @@ +import factory +from marvin.integration.lib.newbase import TrafficMonitor +class TrafficMonitorFactory(factory.Factory): + + FACTORY_FOR = TrafficMonitor + + url = None + zoneid = None + + + FACTORY_FOR = TrafficMonitor + + zoneid = None + + + FACTORY_FOR = TrafficMonitor + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/TrafficTypeFactory.py b/tools/marvin/marvin/integration/lib/factory/TrafficTypeFactory.py new file mode 100644 index 00000000000..78f61a71812 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/TrafficTypeFactory.py @@ -0,0 +1,23 @@ +import factory +from marvin.integration.lib.newbase import TrafficType +class TrafficTypeFactory(factory.Factory): + + FACTORY_FOR = TrafficType + + physicalnetworkid = None + traffictype = None + + + FACTORY_FOR = TrafficType + + physicalnetworkid = None + + + FACTORY_FOR = TrafficType + + id = None + + + FACTORY_FOR = TrafficType + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/TrafficTypeImplementorsFactory.py b/tools/marvin/marvin/integration/lib/factory/TrafficTypeImplementorsFactory.py new file mode 100644 index 00000000000..3879caf071b --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/TrafficTypeImplementorsFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import TrafficTypeImplementors +class TrafficTypeImplementorsFactory(factory.Factory): + + FACTORY_FOR = TrafficTypeImplementors diff --git a/tools/marvin/marvin/integration/lib/factory/UsageRecordsFactory.py b/tools/marvin/marvin/integration/lib/factory/UsageRecordsFactory.py new file mode 100644 index 00000000000..045bdd07d88 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/UsageRecordsFactory.py @@ -0,0 +1,14 @@ +import factory +from marvin.integration.lib.newbase import UsageRecords +class UsageRecordsFactory(factory.Factory): + + FACTORY_FOR = UsageRecords + + enddate = None + startdate = None + + + FACTORY_FOR = UsageRecords + + enddate = None + startdate = None diff --git a/tools/marvin/marvin/integration/lib/factory/UsageTypesFactory.py b/tools/marvin/marvin/integration/lib/factory/UsageTypesFactory.py new file mode 100644 index 00000000000..6778df45e28 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/UsageTypesFactory.py @@ -0,0 +1,5 @@ +import factory +from marvin.integration.lib.newbase import UsageTypes +class UsageTypesFactory(factory.Factory): + + FACTORY_FOR = UsageTypes diff --git a/tools/marvin/marvin/integration/lib/factory/VMPasswordFactory.py b/tools/marvin/marvin/integration/lib/factory/VMPasswordFactory.py new file mode 100644 index 00000000000..b1cd5bf1774 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/VMPasswordFactory.py @@ -0,0 +1,7 @@ +import factory +from marvin.integration.lib.newbase import VMPassword +class VMPasswordFactory(factory.Factory): + + FACTORY_FOR = VMPassword + + id = None diff --git a/tools/marvin/marvin/integration/lib/factory/VpnUserFactory.py b/tools/marvin/marvin/integration/lib/factory/VpnUserFactory.py new file mode 100644 index 00000000000..1dce088e9b4 --- /dev/null +++ b/tools/marvin/marvin/integration/lib/factory/VpnUserFactory.py @@ -0,0 +1,17 @@ +import factory +from marvin.integration.lib.newbase import VpnUser +class VpnUserFactory(factory.Factory): + + FACTORY_FOR = VpnUser + + password = None + username = None + + + FACTORY_FOR = VpnUser + + + + FACTORY_FOR = VpnUser + + username = None