marvin_refactor: code generator for marvin base library

The generateBase.py will give out Entity.(create|update|list|delete)
style python modules for use by the integration library.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
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 <tsp@apache.org>
marvin_refactor: factory info required only for create-able entities

entities come in to life on 'create', 'deploy', 'associate', 'register'

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: split base into multiple modules

Each entity goes into its own module
Append ASF license header to the entity

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: fixing the imports

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: create takes factories not reqd args

- Let all entities inherit from CloudStackEntity
- create and list are classmethods since they work without need for an
  entity to exist
- create takes only factories by default. no need for long param list.
    Entitiy.create(apiclient) will give entity out of default factory
- Use entityFactory.attributes() to init entities

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: add body to all the entities in base

- don't do package import of cloudstackentity
- create() and list() method will return obj(s) of type(Entity)

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_factories: inherit from ABSTRACT_FACTORY

This is done to remove dependency on an ORM.

+ Additional APIs from multiple ip per nic.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
removing unused commented dependencies

removing the spring related dependencies that were commented out.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
simulator: removing cyclic dependency from simulator

The database creator caused a cyclic dependecny in the simulator which
is removed with this commit. Additionally the simulator profile is now
merged with developer profile and a test for server health is included

Steps to run:
$ mvn -Pdeveloper clean install
$ mvn -Pdeveloper -pl developer -Ddeploydb
$ mvn -Pdeveloper -pl developer -Ddeploydb-simulator
$ mvn -pl client jetty:run

To deploy an adv. zone and test the server health:
$ mvn -Pdeveloper,marvin -Dmarvin.config=`find . -name simulator.cfg` -pl :cloud-marvin test
marvin_refactor: VNS device APIs, VMSnapshot APIs, changes to factory creation

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: base dict object updated as **kwargs from factory

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: fixing unittests

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
marvin_refactor: update the entity dict but not through optional kwargs

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
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 <tsp@apache.org>
marvin_refactor: create takes factories not reqd args

- Let all entities inherit from CloudStackEntity
- create and list are classmethods since they work without need for an
  entity to exist
- create takes only factories by default. no need for long param list.
    Entitiy.create(apiclient) will give entity out of default factory
- Use entityFactory.attributes() to init entities

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
new pom for dbcreator classes

reuse the setup as a cloudstack-setup-db project
removing unused commented dependencies

removing the spring related dependencies that were commented out.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
simulator: removing cyclic dependency from simulator

The database creator caused a cyclic dependecny in the simulator which
is removed with this commit. Additionally the simulator profile is now
merged with developer profile and a test for server health is included

Steps to run:
$ mvn -Pdeveloper clean install
$ mvn -Pdeveloper -pl developer -Ddeploydb
$ mvn -Pdeveloper -pl developer -Ddeploydb-simulator
$ mvn -pl client jetty:run

To deploy an adv. zone and test the server health:
$ mvn -Pdeveloper,marvin -Dmarvin.config=`find . -name simulator.cfg` -pl :cloud-marvin test
marvin_refactor: VNS device APIs, VMSnapshot APIs, changes to factory creation

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