Spring Modularization

ACS is now comprised of a hierarchy of spring application contexts.
Each plugin can contribute configuration files to add to an existing
module or create it's own module.

Additionally, for the mgmt server, ACS custom AOP is no longer used
and instead we use Spring AOP to manage interceptors.
Configuration to enable Spring Modularization

All of the code changes for the Spring Modularization will work in
a modularized context or a non-modularized context.  This commit
is the final commit to turn modularization on.  Revert this commit
to disable the modularization and go back to monolithic Spring
configuration.
Move ConfigurationDao and ConfigDepot to system context

Previously ConfigurationDao and ConfigDepot was in the bootstrap context
which was not needed.  Moving down to system to be more consistent with
the database upgrade checks.
Make SnapshotStrategy and DataMotionStrategy discovered and registered
=Comment the test for now to unblock everyone. Will file a bug and fix it
ConcurrentHashMap will through NPE on null key
Fix vmware code inclusion into systemvm.iso and other random nonoss->noredist
Fix DatabaseUpgradeChecker in standalone context

When running DatabaseUpgradeChecker as a standalone program _dao will not
be injected.  Still create an instance of VersionDaoImpl in constructor
and when DatabaseUpgradeChecker is ran in the mgmt server it will be
overwritten by the injected value.
New Transaction API

Introduction of a new Transaction API that is more consistent with the style
of Spring's transaction managment.  The existing Transaction class was renamed
to TransactionLegacy.  All of the non-DAO code in the management server has been
updated to use the new Transaction API.
Removed unneeded method
CLOUDSTACK-4882:
list Clusters/pods/zones API not accounting for reserved in the used capacity percentage.
Fix listCapacity cmd for reserved as well
Signed off by : nitin mehta<nitin.mehta@citrix.com>
Summary: Updated Ethernet regex for vlan-tagged "p1p1.2" style interfaces

Detail: Checks for other Ethernet interface names uses startsWith(),
whereas the p1p1 style interface uses a regex that doesn't allow for
tailing characters, and so blocks vlan IDs. Fixed.

BUG-ID: CLOUDSTACK-4884
Bugfix-for: 4.2.1
Reviewed-by:
Reported-by:
Signed-off-by: John Kinsella <jlk@stratosec.co> 1381965250 -0700
Random cleanup
CLOUDSTACK: 4705 - Fixed memory limits - domain limits test cases. Fixed attribute error

Signed-off-by: venkataswamybabu budumuru <venkataswamybabu.budumuru@citrix.com>
(cherry picked from commit 7854dbc2134a285c2f81b80cf8dfa3047ade50e5)
CLOUDSTACK-4747: Rename testcase name to use lesser characters

Renamed testcase name and also initialised _cleanup so that
it does not break on non-NS Cloudstack setup.

Signed-off-by: venkataswamybabu budumuru <venkataswamybabu.budumuru@citrix.com>
CLOUDSTACK-4682: VMs are getting deployed with shared service offering and local compute offering
VM deployment is fine, issue is in attach volume where all possible scenarios are not handled.
The following needs to be logic of attached volume:
1. if data volume scope is zone then allow attach (this is already there)
2. if data volume scope is cluster
   a. if root volume scope is host, allow if both are in same cluster (already there)
   b. if root volume scope is zone, allow if vm and data volume in same cluster (fixed as part of this commit)
3. if data volume scope is host allow if vm and data volume in same host (fixed as part of this commit)
CLOUDSTACK-4551: Migrating the data volume from NFS to local storage ,underlying disk offering is not changed.
Even though the volume may get migrated from shared to local storage, it is not possible to update the disk offering.
The fix is to disallow migration from shared to local store.
CLOUDSTACK-4766: Add timeout if vm does not reach running state

The tests use to wait for ever for the vm to attain Running state.
Added a timeout so it does not get into infinite loop.

Signed-off-by: venkataswamybabu budumuru <venkataswamybabu.budumuru@citrix.com>
(cherry picked from commit e3bcdc16a11d7452b5bf6ce5e5993dcd008526a6)
CLOUDSTACK-702: Verify Userdata,password services 1.Added two tests to vefiy userdata and password services on alias ip on VR

Conflicts:

	test/integration/component/maint/test_multiple_ip_ranges.py

Signed-off-by: sanjeevneelarapu <sanjeev.neelarapu@citrix.com>
Signed-off-by: venkataswamybabu budumuru <venkataswamybabu.budumuru@citrix.com>
Fix systemvm build scripts with the new location of the systemvm patches.

And wondering why they are included here and not in the systemvm.iso.

Also giving the systemvm a little more space to fix the out-of-diskspace error during the build