cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ni...@apache.org
Subject [09/55] [abbrv] git commit: updated refs/heads/cs2163 to 8d53b1e
Date Mon, 13 May 2013 11:08:01 GMT
CLOUDSTACK-747: Internal LB between VPC tiers support

Squashed commit of the following:

commit def0861d5a12202260cb6672c12d77075a0de26e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu May 9 10:53:09 2013 -0700

    Inernallb: added internalLbVm to the list of network elements for nonoss build

commit 56d94fc074db52ef00ace1703081a342dfb63db0
Merge: d828c15 8f9a42e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu May 9 09:51:36 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
    	server/src/com/cloud/network/vpc/VpcManagerImpl.java

commit d828c154fd05fbfeb9c142b27e3d26e7dd755c77
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed May 8 14:58:22 2013 -0700

    internallb: Fixed nonoss build

commit 1b8a6986a6fd1808ba7285589f9a007b52feb7e5
Merge: 9e74fa9 738d35a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed May 8 13:20:07 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	api/src/com/cloud/async/AsyncJob.java
    	api/src/com/cloud/network/NetworkModel.java
    	api/src/com/cloud/network/rules/LoadBalancerContainer.java
    	api/src/org/apache/cloudstack/api/BaseCmd.java
    	api/src/org/apache/cloudstack/api/ResponseGenerator.java
    	api/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerContainer.java
    	client/tomcatconf/commands.properties.in
    	engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
    	server/src/com/cloud/api/ApiResponseHelper.java
    	server/src/com/cloud/network/NetworkManagerImpl.java
    	server/src/com/cloud/network/NetworkModelImpl.java
    	server/src/com/cloud/network/NetworkServiceImpl.java
    	server/src/com/cloud/server/ManagementServerImpl.java
    	server/test/com/cloud/network/MockNetworkModelImpl.java
    	server/test/com/cloud/vpc/MockNetworkManagerImpl.java
    	server/test/com/cloud/vpc/MockNetworkModelImpl.java
    	server/test/resources/appLoadBalancer.xml
    	setup/db/db/schema-410to420.sql
    	test/integration/component/test_multiple_ip_ranges.py
    	test/integration/smoke/test_guest_vlan_range.py
    	tools/marvin/marvin/integration/lib/base.py

commit 9e74fa94067997f0ae6d469f3564df602dd274a6
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Thu May 9 00:11:40 2013 +0530

    marvin changes for internallbvm provider

    - changed the simulator context to load the internallb bean
    - fixed deployDataCenter to use the additional provider by default
    - fixed the sandbox script and the setup script for simulator checkin
      tests

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

commit 0a2d49301b170171ebe8d6646236854f488d06ba
Author: Jessica Wang <jessicawang@apache.org>
Date:   Tue May 7 15:50:41 2013 -0700

    Internal LB - UI - zone wizard - advanced zone - enable internal LB element, enable internal LB provider.

commit 43e1667f90b01e2b4095009b997b3b2665087fb4
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue May 7 13:26:53 2013 -0700

    Moved all DAOs and VOs to the cloud-engine-schema project

commit 2fd94c8bbe24da86e6bd004ee8165e08038a3e1d
Author: Radhika PC <radhika.puthiyetath@citrix.com>
Date:   Tue May 7 18:26:08 2013 +0530

    CLOUDSTACK-893 api

commit 12b64d6c00940a4b5c4aa059f2c36ae7cc1b79bd
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 17:06:15 2013 +0530

    Fixing the gmaven configuration for marvin/pom.xml

    For the marvin checkin test custom properties had a typo when run for
    the *nix environment.

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

commit 1e4274dd9f55a6eea7121d50e361babcafe70725
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 15:28:43 2013 +0530

    Renaming TesDedicateVlanRange -> TestDedicateVlanRange

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

commit 9264ac526f854c980afb669631177c99e4bbbed7
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 15:28:20 2013 +0530

    Adding isolation method to the zone creation of marvin

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

commit 3a0dc67de0285fffa7739b25286df71f92470ddf
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 15:27:26 2013 +0530

    adding ACL for dedicateGuestVlanRange set of APIs

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

commit 79f6e11368d4b6227e9055bb58cce8e5b9872cfe
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 15:26:48 2013 +0530

    add debug logs when access checkers fail to find API

    When the access checkers fail for api discovery, we fail silently.
    instead record a debug message.

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

commit 92cb7d3e0f3ef052104f698e005ab8dd243f9885
Author: Hugo Trippaers <trippie@gmail.com>
Date:   Tue May 7 11:44:23 2013 +0200

    commit e0d8f01ecd92a1a7b74558d02a28be3b2f20a10d enabled all tests. Fix
    AWSAPI build by removing broken tests and excluding failing tests.

commit 4a391464c7359689915c4230dfa07d728acfb752
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date:   Tue May 7 10:57:23 2013 +0200

    commit e0d8f01ecd92a1a7b74558d02a28be3b2f20a10d enabled all tests, but the tests in vmware-base are horribly broken and will not compile with the current CloudStack.

    Removing the tests to fix the nonoss build and they are so broken they should be rewritten from scratch anyway.

commit 2ca03a851360c733ddacbe6a5490b6812dfc6bec
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 13:51:34 2013 +0530

    moving test data to top level dictionary

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

commit ceaa4e1b0d77ccb811a7e1f56ae212034b3f4a90
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 13:50:56 2013 +0530

    Adding tracelogs to the API discovery service

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

commit a3f5f01c7e78e045fdc1302ab484282b0d43e014
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Tue May 7 13:50:12 2013 +0530

    dedicateGuestVlanRange is admin only API

    Adding ACL for the dedicateGuestVlanRange API.

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

commit 1c4c80fe91c7aeec0689fa9a06ae80d2bdf1b0c0
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date:   Tue May 7 09:58:16 2013 +0200

    Recent pom switcharoo caused the client to lose the dependecy on console-proxy, which it needs to include the systemvm

commit 8103f3c386a8f57c520388ea73965a4cb7f15b91
Author: Radhika PC <radhika.puthiyetath@citrix.com>
Date:   Tue May 7 11:30:17 2013 +0530

    CLOUDSTACK-893 first cut

commit 67d0411d739417aae4910251e86981e6d1340da0
Author: Dave Cahill <dcahill@midokura.com>
Date:   Fri Apr 19 17:31:44 2013 +0900

    Add docs for MidoNet networking plugin [CLOUDSTACK-996]

    Signed-off-by: Dave Cahill <dcahill@midokura.com>

commit c745e6d28e63ef1cacdf18a98ce47d162d260978
Author: Alex Huang <alex.huang@gmail.com>
Date:   Mon May 6 16:34:03 2013 -0700

    Fixed up the simulator to run with windows paths in cygwin

commit be91c037021ad17f16b22599acbdd46062a665a8
Author: Alex Huang <alex.huang@gmail.com>
Date:   Mon May 6 10:34:22 2013 -0700

    Moved over the VLAN daos

commit dcc09f8472d4c94cebae5b430b7eb983037a9935
Author: Alex Huang <alex.huang@gmail.com>
Date:   Mon May 6 06:31:47 2013 -0700

    Missing file and updated .gitignore

commit e9953cd1a8b1247ce569d22ffa820f51d072c841
Author: Alex Huang <alex.huang@gmail.com>
Date:   Mon May 6 06:29:59 2013 -0700

    Fixed up unit testing to use only an in class TestConfiguration

commit 67275714035ea2a55c11ee7acf1e915598670845
Author: Alex Huang <alex.huang@gmail.com>
Date:   Thu May 2 15:20:49 2013 -0700

    Fixed an incorrect unit test for affinity group.  Removed some useless pom.xml.

commit d015fb352023a5d2ec07b4d66612836e0a928679
Author: Alex Huang <alex.huang@gmail.com>
Date:   Thu May 2 06:50:38 2013 -0700

    Moved most of the VOs and DAOs from server package into engine-schema as well

commit 77547a58df5f529031516273015bb770717c5b88
Author: Alex Huang <alex.huang@gmail.com>
Date:   Wed May 1 15:15:57 2013 -0700

    Removed files that are no longer used and further separated out the files in the core project

commit 345f3d34828a9b573971104cbb6132a777a58ed4
Author: Alex Huang <alex.huang@gmail.com>
Date:   Wed May 1 05:46:15 2013 -0700

    Moved agent commands to core and out of api

commit e91ca00571ddf078150165a33cd3cbcee5564fe2
Author: Alex Huang <alex.huang@gmail.com>
Date:   Tue Apr 30 19:06:20 2013 -0700

    Removed framework-api which is completely useless.  Changed framework-ipc to reference gson itself.  Move VOs into engine-schema.

commit f64564e49001ee0f52120a10665979887fd0ebd1
Author: Dennis Lawler <dlawler@gmail.com>
Date:   Mon Apr 29 15:10:09 2013 -0700

    Removing filterwin2k option

    Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>

commit 944a7ea5d6e6728903074ec18754ce2041aaf7a3
Author: Wei Zhou <w.zhou@leaseweb.com>
Date:   Mon May 6 20:57:02 2013 +0100

    CLOUDSTACK-2319: fix "unable to add egress rules" in SecurityGroup

    Signed-off-by: Chip Childers <chip.childers@gmail.com>

commit ff7f8ba3623927b6cef2deb0069e7f839d933fd5
Author: Wei Zhou <w.zhou@leaseweb.com>
Date:   Mon May 6 20:56:06 2013 +0100

    CLOUDSTACK-2322: update network.gateway to fix deployVm error on
    SharedNetwork after ipv6 support

    Signed-off-by: Chip Childers <chip.childers@gmail.com>

commit a153373c7eade440c707bfaeeb9831f8179ab51a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon May 6 11:45:19 2013 -0700

    CLOUDSTACK-129: added new API - listNetworkIsolationMethods - for displaying isolation methods supported by the cloudStack

commit 46f59cd49effc43ffea610cc5b7cab90f601b011
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Mon May 6 20:39:36 2013 +0530

    Fixed the incorrect assertion in noncontiguous_vlan test

    The assertion fails if the VLAN is found in which case find returns a
    positive number. So here the assertion should infact assert < 0 result.

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

commit bd1dcc10b381b33ab5503f42075999365197168b
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Mon May 6 19:53:42 2013 +0530

    Affinity Groups requires multiple storage pools

    Fixing the affinity group test which would fail to find the appropriate
    storage pool to satisfy the anti-affinity group of the second VM

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

commit 7f853cdb8f8074408205f38c5e63c2dce187b40b
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Mon May 6 19:16:15 2013 +0530

    fixing double calls to VM deploy

    This fixes regression introduced in commit 2f40a90c that made duplicate
    calls to deployVirtualMachine.

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

commit 646e810fcf0f2c0c3fac02a37eb4301fd913b008
Author: Prasanna Santhanam <tsp@apache.org>
Date:   Mon May 6 18:51:53 2013 +0530

    fixing wildcard imports

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

commit b29b6e8525ed367cb6f481c7eb116abe1fb847a2
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date:   Fri May 3 14:03:53 2013 +0200

    BigSwitch should only respond if it is the actual provider on the network.

    This fixes an NPE during the release call.

commit 6fcc9b009b5609756fd5195847557b56f9642ecd
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date:   Thu May 2 17:38:27 2013 +0200

    Prevent Nicira NVP tags from exceeding the 40 character limit.

commit d8e61a1c0a02cef67377f1fd1f638d77652edecf
Author: Sanjay Tripathi <sanjay.tripathi@citrix.com>
Date:   Thu May 2 13:45:39 2013 +0530

    CLOUDSTACK-2188 : Parsing error with Download Monitor while checking the health of downloaded templates

    Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>

commit 5b6e1140f90b4625d02b9a0bb035342139c1b6f4
Author: Sebastien Goasguen <runseb@gmail.com>
Date:   Mon May 6 05:35:58 2013 -0400

    CLOUDSTACK-2339: Adding libcloud example

commit 7be62d2374ef5910728627b583ac33498ad7fdce
Author: Sebastien Goasguen <runseb@gmail.com>
Date:   Mon May 6 05:35:19 2013 -0400

    CLOUDSTACK-2338: Adding example of how to sign api requests in python

commit 156fd689026ca23e583fa32e5013183e13086a57
Author: Talluri <Srikanteswararao.Talluri@citrix.com>
Date:   Fri May 3 23:11:56 2013 +0530

    CLOUDSTACK-2323: fix test scripts to conform with library changes

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

commit 33ff5e91079b262562b17701d5266bcfd2674ffd
Author: sanjeevneelarapu <sanjeev.neelarapu@citrix.com>
Date:   Tue Apr 30 20:09:46 2013 +0530

    CLOUDSTACK-702: Tests for Multiple IP Ranges

    1.Deleting IP Range from the existing CIDR
    2.Add non-contiguous guest IP range in new CIDR
    3.Add overlapped guest IP range in existing CIDR

    Signed-off-by: sanjeevneelarapu <sanjeev.neelarapu@citrix.com>
    Signed-off-by: Prasanna Santhanam <tsp@apache.org>

commit 33059d1f66fdc7d925f6b087a97912b8bc4598d5
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date:   Mon May 6 14:08:40 2013 +0530

    scaleUp VM response change corresponding UI changes

commit 92e18d81060a9e766e1cfce3f41bbd6ddd6d5ff5
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date:   Mon May 6 13:45:32 2013 +0530

    CLOUDSTACK-2337:Resize button available for root/domain admin and normal users

commit d5cd3f7e006d688d052f7fe797180753dae989e7
Author: Likitha Shetty <likitha.shetty@citrix.com>
Date:   Wed May 1 13:47:26 2013 +0530

    Dedicate guest vlan range to account

commit 12c79c8377d45df2ccec217bbcb9023840a2c064
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date:   Sun May 5 12:02:32 2013 +0530

    scale up virtual machine response change in the backend

commit 94bac276228fb2ede08de063e1b789d917c8425f
Author: Rohit Yadav <bhaisaab@apache.org>
Date:   Sun May 5 09:58:04 2013 +0530

    appliance: Upgrade systemvm appliance from rc1 to Debian7 GA

    Signed-off-by: Rohit Yadav <bhaisaab@apache.org>

commit c598bb0038750c18223115026774c56de1366696
Author: Isaac Chiang <isaacchiang@gmail.com>
Date:   Sun May 5 01:57:35 2013 +0530

    CLOUDSTACK-2076:Listview widget infinte scrolling error

commit d0615ea9a1560b7330066544f5ddf4d5c2713f70
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date:   Sun May 5 01:15:14 2013 +0530

    CLOUDSTACK-2274:Detail view loading problem when deleting a zone

commit 733b513c3ac10dadf33f187d29651494197678b4
Author: Isaac Chiang <isaacchiang@gmail.com>
Date:   Sat May 4 13:41:02 2013 +0530

    CLOUDSTACK-2160:Refresh button functionality for security groups and statistics tab

commit 418d75d7a4dd4f9785846e3ecbe9f0135d751fe3
Author: Marcus Sorensen <marcus@betterservers.com>
Date:   Fri May 3 14:09:52 2013 -0600

    Summary: Release old DHCP entries

    Detail: Refresh dnsmasq with updated entries live, no outage

    BUG-ID: CLOUDSTACK-2299
    Submitted-by: Dennis Lawler <dlawler@gmail.com>
    Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1367611792 -0600

commit b3dce6457739c0f737ed8f2f61ad108bfee13eba
Author: Kelven Yang <kelveny@gmail.com>
Date:   Tue May 7 10:57:19 2013 -0700

    fix unitest

commit b17885f0f68affe060a95e3f264b9ac5e3a98a4b
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue May 7 09:55:47 2013 -0700

    InternalLb: some fixes to the unittest

commit 1cff609347eed3fb3a5e2e3a76b2f36404ea0b81
Merge: 053e184 a3a5c13
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri May 3 11:23:08 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	server/src/com/cloud/network/NetworkModelImpl.java
    	server/src/com/cloud/network/NetworkServiceImpl.java
    	server/src/com/cloud/server/ManagementServerImpl.java
    	server/test/com/cloud/network/MockNetworkManagerImpl.java
    	server/test/com/cloud/vpc/MockNetworkManagerImpl.java

commit 053e18454d105e9785768123259bacc48383bcea
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri May 3 11:07:07 2013 -0700

    InternalLB: marvin integration test for internal lb feature

commit 2e8e2f98f59eecfc37a2645bd353de7f592d8149
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed May 1 13:53:20 2013 -0700

    InternalLB: don't allow to upgrade the network from the network offering with internal LB to the offering with public LB, and vice versa

commit c773d204c8e3b4715b3466f732bdff3100f58cfe
Author: Chiradeep Vittal <chiradeep@apache.org>
Date:   Wed May 1 13:21:52 2013 -0700

    Internal LB: if we detect that we are inside an internal lb vm, call out to the ilb script to perform LB configuration

    Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>

commit 8c8845bf77f1258e54998f509df6163df82ce24e
Merge: 7e95545 471ca30
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed May 1 10:14:06 2013 -0700

    Merge branch 'master' into internallb1

commit 7e9554596f3d0e1d68ada880c2c17c01a526b0f5
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed May 1 10:01:16 2013 -0700

    InternalLb: boot args parameters cleanup for the internal lb vm

commit b7cf8700749893abcac1d3a3d20ec32c4cb5d37f
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 30 10:31:28 2013 -0700

    InternalLb: more unittests for internal lb element

commit 63bb98ebe2fa8279138f8b32aa4264b547726224
Author: Chiradeep Vittal <chiradeep@apache.org>
Date:   Mon Apr 29 18:29:25 2013 -0700

    allow ssh on eth1

    Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>

commit ca1c313c2901a2ce1e7e6e3ce3a566bbf4c817b4
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 29 17:58:45 2013 -0700

    InternalLb: DB upgrade - update existing physical networks with InternalLbVm provider

commit ed50caa01c12320c4fa5ff7d4e0818840a6c764d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 29 17:48:36 2013 -0700

    InternalLbVM: handle the scenario when sourceIpAddress is not passed when create internal Lb rule

commit 4c22c911a9ca5d7e05e9eaf0e971cbe56345fa52
Author: Chiradeep Vittal <chiradeep@apache.org>
Date:   Mon Apr 29 15:56:00 2013 -0700

    backend support for Internal LB

    Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>

commit 7b24a7640c53e5b5ab4493de309b43714f4646c6
Merge: 440e848 a0dbf89
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 29 15:49:48 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	server/src/com/cloud/api/ApiResponseHelper.java
    	server/src/com/cloud/api/query/QueryManagerImpl.java
    	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
    	server/src/com/cloud/network/NetworkManagerImpl.java
    	server/src/com/cloud/network/firewall/FirewallManagerImpl.java
    	setup/db/db/schema-410to420.sql

commit 440e8484d66e3e0366b6d61f930fa13a07d0ce5f
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 29 13:27:06 2013 -0700

    InternalLB: unittests for InternalLoadBalancerVMManager

commit 63babe4b7e8baa1027ac66a7d0b505caafc36d5e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 26 13:44:01 2013 -0700

    InternalLb:

    1) Added unittests for InternalLoadBalancerVMService
    2) Added unittests for InternalLoadBalancerElementService

commit 4f9c47ce54915f9c9eb8042936f3a1b19553399d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 25 14:46:42 2013 -0700

    InternalLb: create internal lb vm specific service offering

commit 408ee59d1fe64ce5d6a5e57b76e25cc505fda5dc
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 24 17:08:08 2013 -0700

    Internallb: new set of Web services APIs for managing Internal LB VMs

commit 7680e1cc10b4e48be78668b31ba1af44d1528a67
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 24 17:08:08 2013 -0700

    Internallb:

    1) InternalLb and PublicLb can't be enabled on the same network offering
    2) Can have internalLb only on VPC tier

commit d73ca7ef73ce8f16cd355e48a96c0fc35b037fed
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 24 13:02:32 2013 -0700

    InternalLb:
    1) fixed the bug when the guest nic on internal lb vm wasnt set to be default
    2) Don't send the rules to the internal lb vm if its in Stopped state

commit ca2fc30655eace01857181ac50789a6632f51d29
Merge: 8057567 04a2b2d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 23 16:56:11 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	server/src/com/cloud/network/vpc/VpcManagerImpl.java
    	server/src/com/cloud/server/ManagementServerImpl.java
    	setup/db/db/schema-410to420.sql

commit 8057567aaab5000b2f6d3aec8ace65631092adc1
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 23 13:15:36 2013 -0700

    Internallb: more unittests for ApplicationLoadBalancerService

commit 35c0273b857073a7018fb1a59a33f43f6f112a9c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 19 16:17:45 2013 -0700

    InternalLb: unittests for ApplicationLoadBalancerService

commit 69b23f700348a56f97bc2118166799332a47b3a5
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 18 14:01:10 2013 -0700

    InternalLb: create/configure/listInternalLoadBalancerElement - fixes to the API response

commit a3321ce617eab795288ab75357345d45794db93d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 18 13:31:16 2013 -0700

    Internal LB : renamed the classes responsible for managing internal lb elements. Now the names are InternalLoadBalancerVMManager, InternalLoadBalancerVMService and InternalLoadBalancerVMManagerImpl

commit 2baf7c365c4847ae49cd90ee25d4e3d7d346464d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 18 10:02:17 2013 -0700

    Internallb: verify requested IP for LB rule (if specified) against guest network cidr

commit 0cfe96bd00a79ccb9ddebed760c6dde257599074
Merge: 501f2ff 11162f5
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 17 15:41:51 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	api/src/com/cloud/network/IpAddress.java
    	server/src/com/cloud/network/NetworkServiceImpl.java
    	setup/db/db/schema-410to420.sql

commit 501f2ffa0b07e80c17e4d6f7a73721d034c8e46a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 16 17:03:50 2013 -0700

    InternalLb: validate source ip network as a part of LB rule creation

commit 4d9a7dfd85f010918749dfe3166d75fe4db68d90
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 16 16:03:32 2013 -0700

    InternalLB: in VPC, restrict public LB to one tier only. Internal LB can be supported on multiple tiers

commit 8689bf9eb38a416997d5ae4d326c51b57b57553e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 16 15:59:56 2013 -0700

    Internal LB: added internal lb vm to the list of supported providers in VPC default offering

commit b7709b89ff94a7c1eeb0e6dff0eca6220a0aed25
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 16 11:04:22 2013 -0700

    Internal Lb: added 2 boolean fields - internal_lb and public_lb - to the network offering. Define if internal or public LB service is supported. In the current release it's either one or another; in the future releases we might support both on the same network

commit 014689e45eeaedd9b695ec20dfb2db631f433e14
Merge: b3b16ba 90e8158
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 16 09:55:45 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	api/src/com/cloud/network/Network.java
    	plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
    	server/src/com/cloud/network/NetworkManagerImpl.java
    	server/src/com/cloud/network/NetworkServiceImpl.java
    	server/test/com/cloud/network/MockNetworkManagerImpl.java
    	server/test/com/cloud/vpc/MockNetworkManagerImpl.java
    	setup/db/db/schema-410to420.sql

commit b3b16bae48976c027e3439f2e0a84cfb2cb72166
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 15 17:00:31 2013 -0700

    InternalLB: allow to specify more than one provider for the LB service when create network offering as diff providers can support internal and public LB for the same network

commit a4fc1d7d65191da6a49bce9fa0a64ce6e46ac85d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 15 13:45:25 2013 -0700

    Internal LB:

    1) Added network_offering_details DB table and corresponding VO/DAO objects. Change createNetworkOffering web services api to accept the map of key/value pairs as details.
    2) Allow to have multiple providers for the same service for the network to support the case when LB service can have separate providers for Internal LB and Public LB

commit 4530cebf2bef515f86fa29b3798d51e81089f92f
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 15 10:06:10 2013 -0700

    InternalLbVm: support for start/stop Internal lb vm

commit ae69f0ae5612834b8bc911bd074cfb050c0b164c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 12 17:25:02 2013 -0700

    InternalLb: fixed prepare() in InternalLbElement - have to prepare nics of User vms only

commit 888a83c22111f3792850e6bb6235d30a93408d1d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 12 15:58:27 2013 -0700

    InternalLb: Start/deploy internal LB vms for the existing LB rules as a part of network implement

commit 3b41d5bee1ac04d3e9cf837a2be4398b7597d1a0
Merge: bb73531 4b1a9f1
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 12 15:32:40 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	server/src/com/cloud/network/NetworkModelImpl.java
    	server/src/com/cloud/server/ManagementServerImpl.java

commit bb73531fed72cc81012624fd3bae5ec22d23daa2
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 12 15:13:55 2013 -0700

    Internal Lb: list internal lb vms as a part of listRouters response. Introduced new parameter - role (can be virtual_router or internal_lb_vm)

commit c113ea184b575ccae5d2be411c5bbc345473e35e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 12 12:00:09 2013 -0700

    Add Internal Lb Provider/Element as a part of adding a physical network

commit 78c9db79dae3bc38699050b05baae32fd02204f6
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 12 10:05:28 2013 -0700

    InternalLbVm: destroy the internal lb vm when the last rule for the ip is being revoked

commit af6201257b28a0d9177330c8c76b0ec979725870
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 11 16:55:37 2013 -0700

    Internal LB: fixed some bugs in internal lb vm startup process

commit 1db240c2b668e6cbbea4e09979c34d84fe54a624
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 11 14:23:55 2013 -0700

    InternalLb: fixed searchCriteria constructor in ApplicationLoadBalancerDaoImpl

commit 3795048fcc68ef23c24d82c9064946dfc082b1b6
Merge: f4c2b53 5f8a278
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 11 14:09:31 2013 -0700

    Merge branch 'master' into internallb1

    Conflicts:
    	api/src/com/cloud/async/AsyncJob.java
    	api/src/org/apache/cloudstack/api/ApiConstants.java
    	api/src/org/apache/cloudstack/api/BaseCmd.java
    	api/src/org/apache/cloudstack/api/ResponseGenerator.java
    	client/tomcatconf/commands.properties.in
    	server/src/com/cloud/api/ApiDBUtils.java
    	server/src/com/cloud/api/ApiResponseHelper.java
    	server/src/com/cloud/server/ManagementServerImpl.java
    	setup/db/db/schema-410to420.sql

commit f4c2b53c218b2d11d510b9acc6baeb0d62042e5c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 11 13:46:47 2013 -0700

    InternalLB: modified InternalLbElement to start the Internal Lb vm for each ip address (if not already started)

commit 76a4b1cf81610d931d6098ca94fa509c9ba2e274
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 11 11:41:47 2013 -0700

    InternalLB: added logic for acquiring guest ip address for the Internal LB rule

commit 915e39fbaa9a6b6898e2aa13cbf8ef60a7b9d70e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 11 10:19:18 2013 -0700

    Removed unused methods doing ipAllocation from GuestNetworkGuru and NetworkServiceImpl. The correct method is located in NetworkModelImpl

commit 3f2a62c7f62d23da23f65ff3842049243ef268e3
Merge: 20beb7a a0b5ebc
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 10 17:16:07 2013 -0700

    Merge branch 'master' into internallb1

commit 20beb7a16c1a592cd7500148ea8988fe119d34fb
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 10 15:28:12 2013 -0700

    Internal LB: applyLoadBalancerRules - put not null check for sourceIpAddressId (can be null when Schema is not Public)

commit 87e5f5b9a6b006893ee30662fc06ea430e7b70dc
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Wed Apr 10 15:17:58 2013 -0700

    Internal LB: intermediate checkin - added InternalLBAppliance manager and managerImpl

commit 53b9c0d142bd2b99dd00c17987dcf5dc54e3ef56
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 9 17:55:10 2013 -0700

    Internal LB: added @Since to API docs for Internal LB related commands

commit 867b305ea852dcbe224645dc4e5ffb950d8db8f7
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 9 17:51:19 2013 -0700

    Internal LB: Made InternalLbElement to extend the ip deployer as the LB service implements IPDeployerRequester

commit 7b9af2809410132db451e48b7b829bf019512a92
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 9 15:45:30 2013 -0700

    InternalLb: new set of Web Services APIs to add InternalLB as a network element to the cloudStack (the element is packaged as an independent plugin). New APIs:

    1) configureInternalLoadBalancerElement
    2) createInternalLoadBalancerElement
    3) listInternalLoadBalancerElements

commit 039e303d4aec5618cc3914ee1a581d2f7b926e1c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 9 14:01:11 2013 -0700

    InternalLB: Modified pluggable service VirtualRouterElementService to accept only VirtualRouter and VpcVirtualRouter as a VirtualRouterProvider type when add/configure elements. Other VirtualRouterProviderTypes are are taken care by elb/internal lb plugins.

commit f0018b451281bf02964dbe71d704c9a931783cae
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Tue Apr 9 12:56:42 2013 -0700

    Internal LB:

    1)Added InternalLoadBalancerManager and corresponding Impl
    2)Add InternalLbVm as a default CS provider. DB upgrade is covered as well

commit e344cf250af6a67a17f082f1c646e6ef5ce9a0a7
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 8 16:57:47 2013 -0700

    InternalLB - removed unused code from LoadBalancerDao

commit 3588f468482e43181802730ed5a059897eb85458
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 8 16:23:03 2013 -0700

    Internal LB - added network-element plugin for internal lb service

commit 76325e61681c7e191308b27514ba69e523cf12bd
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 8 13:58:08 2013 -0700

    Internal Lb:

    1) When network has both kinds of LB rules - Public and Internal - never send them in the same set to the provider
    2) Added extra checks on the provider side to validate if the schema - Public or Internal - is supported.

commit 56c2fe1d376c407a248fba789dd67ff36493a0ed
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 8 12:34:59 2013 -0700

    InternalLB:

    1) Added new capability for the LB service - LbSchemes. Can take 2 values - Internal and Public.
    2) F5 and Netscaler LB providers - changes all LB related methods to accept LoadBalancingRule instead of ? extends FirewallRule.

commit 34bcb2d026e1951f7b115d71830c69e1ad5ed89a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Mon Apr 8 12:11:11 2013 -0700

    InternalLB: implemented list/delete/create web services API commands that will be used for Internal LB creation

commit 9ab31e11f7ebd431f9ebdf9d8582f5c126b14928
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Fri Apr 5 15:59:55 2013 -0700

    InternalLB: change LoadBalancingRule - reference sourceIpAddress of th load balancer by its value, not DB id

commit 08f855d4e4b3888b3b4a163ce73c0e444b91e6b7
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date:   Thu Apr 4 09:26:21 2013 -0700

    InternalLB:

    1) Added new set of Interfaces - including the new VO - for the internal load balancer
    2) DB change - added source_ip_address/source_ip_address_network_id/scheme (Internal/Public) fields to the load_balancer table


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2660a6b7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2660a6b7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2660a6b7

Branch: refs/heads/cs2163
Commit: 2660a6b7a7f226ab757d2175222db62571813120
Parents: 8f9a42e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Authored: Thu May 9 11:05:54 2013 -0700
Committer: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Committed: Thu May 9 11:54:41 2013 -0700

----------------------------------------------------------------------
 api/src/com/cloud/async/AsyncJob.java              |    2 +
 api/src/com/cloud/event/EventTypes.java            |   24 +-
 api/src/com/cloud/network/IpAddress.java           |    3 +
 api/src/com/cloud/network/Network.java             |   19 +-
 api/src/com/cloud/network/NetworkModel.java        |    7 +
 .../network/VirtualNetworkApplianceService.java    |    2 +
 .../com/cloud/network/VirtualRouterProvider.java   |    3 +-
 .../com/cloud/network/lb/LoadBalancingRule.java    |   83 +-
 .../network/lb/LoadBalancingRulesService.java      |   16 +-
 .../com/cloud/network/router/VirtualRouter.java    |    2 +-
 api/src/com/cloud/network/rules/LoadBalancer.java  |   10 +-
 .../cloud/network/rules/LoadBalancerContainer.java |   33 +
 api/src/com/cloud/offering/NetworkOffering.java    |   11 +
 api/src/com/cloud/offering/ServiceOffering.java    |    1 +
 api/src/com/cloud/vm/VirtualMachine.java           |    3 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    6 +
 api/src/org/apache/cloudstack/api/BaseCmd.java     |    7 +
 .../apache/cloudstack/api/ResponseGenerator.java   |   44 +-
 .../ConfigureInternalLoadBalancerElementCmd.java   |  114 ++
 .../CreateInternalLoadBalancerElementCmd.java      |  116 ++
 .../admin/internallb/ListInternalLBVMsCmd.java     |  151 +++
 .../ListInternalLoadBalancerElementsCmd.java       |   99 ++
 .../admin/internallb/StartInternalLBVMCmd.java     |  120 ++
 .../admin/internallb/StopInternalLBVMCmd.java      |  123 ++
 .../admin/network/CreateNetworkOfferingCmd.java    |   15 +-
 .../router/CreateVirtualRouterElementCmd.java      |   21 +-
 .../api/command/admin/router/ListRoutersCmd.java   |    7 +-
 .../api/command/admin/router/StartRouterCmd.java   |   10 +-
 .../api/command/admin/router/StopRouterCmd.java    |   11 +-
 .../CreateApplicationLoadBalancerCmd.java          |  218 ++++
 .../loadbalancer/CreateLoadBalancerRuleCmd.java    |    6 +-
 .../DeleteApplicationLoadBalancerCmd.java          |  116 ++
 .../ListApplicationLoadBalancersCmd.java           |  131 ++
 .../ApplicationLoadBalancerInstanceResponse.java   |   63 +
 .../response/ApplicationLoadBalancerResponse.java  |  142 +++
 .../ApplicationLoadBalancerRuleResponse.java       |   51 +
 .../api/response/DomainRouterResponse.java         |   13 +-
 .../InternalLoadBalancerElementResponse.java       |   51 +
 .../api/response/NetworkOfferingResponse.java      |    9 +
 .../response/VirtualRouterProviderResponse.java    |    1 +
 .../InternalLoadBalancerElementService.java        |   56 +
 .../lb/ApplicationLoadBalancerContainer.java       |   28 +
 .../network/lb/ApplicationLoadBalancerRule.java    |   24 +
 .../network/lb/ApplicationLoadBalancerService.java |   42 +
 .../network/lb/InternalLoadBalancerVMService.java  |   34 +
 .../org/apache/cloudstack/query/QueryService.java  |    3 +
 client/pom.xml                                     |    5 +
 client/tomcatconf/applicationContext.xml.in        |    9 +-
 client/tomcatconf/commands.properties.in           |   16 +
 client/tomcatconf/componentContext.xml.in          |    2 +
 client/tomcatconf/nonossComponentContext.xml.in    |    2 +
 client/tomcatconf/simulatorComponentContext.xml.in |    1 +
 .../com/cloud/network/dao/FirewallRulesDao.java    |    1 -
 .../src/com/cloud/network/dao/IPAddressVO.java     |    9 +-
 .../src/com/cloud/network/dao/LoadBalancerDao.java |   10 +-
 .../com/cloud/network/dao/LoadBalancerDaoImpl.java |   74 +-
 .../src/com/cloud/network/dao/LoadBalancerVO.java  |   18 +
 .../cloud/network/dao/NetworkServiceMapDao.java    |    1 +
 .../network/dao/NetworkServiceMapDaoImpl.java      |    9 +
 .../src/com/cloud/network/dao/NetworkVO.java       |    3 -
 .../com/cloud/network/rules/FirewallRuleVO.java    |    2 -
 .../cloud/offerings/NetworkOfferingDetailsVO.java  |   90 ++
 .../src/com/cloud/offerings/NetworkOfferingVO.java |   44 +-
 .../cloud/offerings/dao/NetworkOfferingDao.java    |    4 +
 .../offerings/dao/NetworkOfferingDaoImpl.java      |   24 +
 .../offerings/dao/NetworkOfferingDetailsDao.java   |   31 +
 .../dao/NetworkOfferingDetailsDaoImpl.java         |   79 ++
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   95 ++-
 engine/schema/src/com/cloud/vm/dao/NicDao.java     |    2 +-
 engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java |    2 +-
 .../lb/ApplicationLoadBalancerRuleVO.java          |  133 ++
 .../lb/dao/ApplicationLoadBalancerRuleDao.java     |   35 +
 .../lb/dao/ApplicationLoadBalancerRuleDaoImpl.java |  115 ++
 .../debian/config/etc/init.d/cloud-early-config    |   26 +
 .../debian/config/etc/iptables/iptables-ilbvm      |   33 +
 .../systemvm/debian/config/opt/cloud/bin/ilb.sh    |  211 ++++
 .../debian/config/opt/cloud/bin/patchsystemvm.sh   |   23 +
 .../config/opt/cloud/bin/vpc_loadbalancer.sh       |   23 +
 .../element/ElasticLoadBalancerElement.java        |   22 +-
 .../network/lb/ElasticLoadBalancerManager.java     |    4 +-
 .../network/lb/ElasticLoadBalancerManagerImpl.java |   32 +-
 .../element/F5ExternalLoadBalancerElement.java     |   87 ++-
 .../network-elements/internal-loadbalancer/pom.xml |   50 +
 .../element/InternalLoadBalancerElement.java       |  548 +++++++++
 .../network/lb/InternalLoadBalancerVMManager.java  |   90 ++
 .../lb/InternalLoadBalancerVMManagerImpl.java      |  951 +++++++++++++++
 .../ElementChildTestConfiguration.java             |  124 ++
 .../InternalLbElementServiceTest.java              |  190 +++
 .../internallbelement/InternalLbElementTest.java   |  226 ++++
 .../internallbvmmgr/InternalLBVMManagerTest.java   |  388 ++++++
 .../internallbvmmgr/InternalLBVMServiceTest.java   |  291 +++++
 .../internallbvmmgr/LbChildTestConfiguration.java  |  170 +++
 .../test/resources/lb_element.xml                  |   46 +
 .../test/resources/lb_mgr.xml                      |   46 +
 .../test/resources/lb_svc.xml                      |   46 +
 .../cloud/network/element/NetscalerElement.java    |  108 ++-
 plugins/pom.xml                                    |    1 +
 server/src/com/cloud/api/ApiDBUtils.java           |   10 +-
 server/src/com/cloud/api/ApiResponseHelper.java    |  108 ++-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   45 +-
 .../api/query/dao/DomainRouterJoinDaoImpl.java     |    9 +-
 .../com/cloud/api/query/vo/DomainRouterJoinVO.java |   17 +-
 server/src/com/cloud/configuration/Config.java     |    5 +-
 .../cloud/configuration/ConfigurationManager.java  |   10 +-
 .../configuration/ConfigurationManagerImpl.java    |  123 ++-
 .../network/ExternalLoadBalancerDeviceManager.java |    6 +-
 .../ExternalLoadBalancerDeviceManagerImpl.java     |   33 +-
 .../ExternalLoadBalancerUsageManagerImpl.java      |   34 +-
 server/src/com/cloud/network/NetworkManager.java   |    3 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |  103 ++-
 server/src/com/cloud/network/NetworkModelImpl.java |   57 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |   68 +-
 .../network/element/VirtualRouterElement.java      |   56 +-
 .../network/firewall/FirewallManagerImpl.java      |   77 +-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |   43 +-
 .../com/cloud/network/lb/LBHealthCheckManager.java |    4 +-
 .../cloud/network/lb/LBHealthCheckManagerImpl.java |    9 +-
 .../network/lb/LoadBalancingRulesManager.java      |   24 +-
 .../network/lb/LoadBalancingRulesManagerImpl.java  |  402 +++++--
 .../router/VirtualNetworkApplianceManager.java     |    4 +
 .../router/VirtualNetworkApplianceManagerImpl.java |   59 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |    2 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   14 +-
 .../com/cloud/server/ConfigurationServerImpl.java  |   14 +-
 .../src/com/cloud/server/ManagementServerImpl.java |  580 +++++++--
 .../lb/ApplicationLoadBalancerManagerImpl.java     |  524 ++++++++
 .../com/cloud/network/MockNetworkManagerImpl.java  |   27 +-
 .../com/cloud/network/MockNetworkModelImpl.java    |   17 +
 .../cloud/vpc/MockConfigurationManagerImpl.java    |    2 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   56 +-
 .../test/com/cloud/vpc/MockNetworkModelImpl.java   |   17 +
 .../vpc/MockVpcVirtualNetworkApplianceManager.java |   14 +-
 .../cloud/vpc/dao/MockNetworkOfferingDaoImpl.java  |   12 +-
 .../vpc/dao/MockNetworkServiceMapDaoImpl.java      |    6 +
 .../cloudstack/lb/ApplicationLoadBalancerTest.java |  292 +++++
 .../cloudstack/lb/ChildTestConfiguration.java      |  103 ++
 .../networkoffering/CreateNetworkOfferingTest.java |   21 +-
 server/test/resources/appLoadBalancer.xml          |   43 +
 setup/db/db/schema-40to410.sql                     |    4 +-
 setup/db/db/schema-410to420.sql                    |   45 +-
 setup/dev/advanced.cfg                             |    4 +
 .../component/test_multiple_ip_ranges.py           |    1 +
 test/integration/smoke/test_guest_vlan_range.py    |   15 +
 test/integration/smoke/test_internal_lb.py         |  250 ++++
 tools/apidoc/gen_toc.py                            |    1 +
 tools/marvin/marvin/deployDataCenter.py            |   12 +
 .../marvin/marvin/sandbox/advanced/advanced_env.py |    5 +
 tools/marvin/marvin/sandbox/advanced/sandbox.cfg   |  209 ++++
 ui/scripts/zoneWizard.js                           |  104 ++
 149 files changed, 9493 insertions(+), 813 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/async/AsyncJob.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/async/AsyncJob.java b/api/src/com/cloud/async/AsyncJob.java
index d384a7a..ccdc406 100644
--- a/api/src/com/cloud/async/AsyncJob.java
+++ b/api/src/com/cloud/async/AsyncJob.java
@@ -50,7 +50,9 @@ public interface AsyncJob extends Identity, InternalIdentity {
         AutoScaleVmProfile,
         AutoScaleVmGroup,
         GlobalLoadBalancerRule,
+        LoadBalancerRule,
         AffinityGroup,
+        InternalLbVm,
         DedicatedGuestVlanRange
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/event/EventTypes.java b/api/src/com/cloud/event/EventTypes.java
index 26c40ab..45a904e 100755
--- a/api/src/com/cloud/event/EventTypes.java
+++ b/api/src/com/cloud/event/EventTypes.java
@@ -16,6 +16,9 @@
 // under the License.
 package com.cloud.event;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import com.cloud.configuration.Configuration;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.Pod;
@@ -23,8 +26,18 @@ import com.cloud.dc.StorageNetworkIpRange;
 import com.cloud.dc.Vlan;
 import com.cloud.domain.Domain;
 import com.cloud.host.Host;
-import com.cloud.network.*;
-import com.cloud.network.as.*;
+import com.cloud.network.GuestVlan;
+import com.cloud.network.Network;
+import com.cloud.network.PhysicalNetwork;
+import com.cloud.network.PhysicalNetworkServiceProvider;
+import com.cloud.network.PhysicalNetworkTrafficType;
+import com.cloud.network.PublicIpAddress;
+import com.cloud.network.RemoteAccessVpn;
+import com.cloud.network.as.AutoScaleCounter;
+import com.cloud.network.as.AutoScalePolicy;
+import com.cloud.network.as.AutoScaleVmGroup;
+import com.cloud.network.as.AutoScaleVmProfile;
+import com.cloud.network.as.Condition;
 import com.cloud.network.router.VirtualRouter;
 import com.cloud.network.rules.LoadBalancer;
 import com.cloud.network.rules.StaticNat;
@@ -43,9 +56,6 @@ import com.cloud.user.Account;
 import com.cloud.user.User;
 import com.cloud.vm.VirtualMachine;
 
-import java.util.HashMap;
-import java.util.Map;
-
 public class EventTypes {
 
     //map of Event and corresponding entity for which Event is applicable
@@ -389,11 +399,15 @@ public class EventTypes {
     public static final String EVENT_AFFINITY_GROUP_ASSIGN = "AG.ASSIGN";
     public static final String EVENT_AFFINITY_GROUP_REMOVE = "AG.REMOVE";
     public static final String EVENT_VM_AFFINITY_GROUP_UPDATE = "VM.AG.UPDATE";
+    
+    public static final String EVENT_INTERNAL_LB_VM_START = "INTERNALLBVM.START";
+    public static final String EVENT_INTERNAL_LB_VM_STOP = "INTERNALLBVM.STOP";
 
     // Dedicated guest vlan range
     public static final String EVENT_GUEST_VLAN_RANGE_DEDICATE  = "GUESTVLANRANGE.DEDICATE";
     public static final String EVENT_DEDICATED_GUEST_VLAN_RANGE_RELEASE  = "GUESTVLANRANGE.RELEASE";
 
+
     static {
 
         // TODO: need a way to force author adding event types to declare the entity details as well, with out braking

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/IpAddress.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/IpAddress.java b/api/src/com/cloud/network/IpAddress.java
index 71c9b4e..c48e8b9 100644
--- a/api/src/com/cloud/network/IpAddress.java
+++ b/api/src/com/cloud/network/IpAddress.java
@@ -81,4 +81,7 @@ public interface IpAddress extends ControlledEntity, Identity, InternalIdentity
     Long getVpcId();
 
     String getVmIp();
+    
+    Long getNetworkId();
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/Network.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/Network.java b/api/src/com/cloud/network/Network.java
index 4472dba..fa062c6 100644
--- a/api/src/com/cloud/network/Network.java
+++ b/api/src/com/cloud/network/Network.java
@@ -16,18 +16,19 @@
 // under the License.
 package com.cloud.network;
 
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.api.Identity;
+import org.apache.cloudstack.api.InternalIdentity;
+
 import com.cloud.network.Networks.BroadcastDomainType;
 import com.cloud.network.Networks.Mode;
 import com.cloud.network.Networks.TrafficType;
 import com.cloud.utils.fsm.StateMachine2;
 import com.cloud.utils.fsm.StateObject;
-import org.apache.cloudstack.acl.ControlledEntity;
-import org.apache.cloudstack.api.Identity;
-import org.apache.cloudstack.api.InternalIdentity;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * owned by an account.
@@ -50,7 +51,7 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
                 Capability.MultipleIps, Capability.TrafficStatistics, Capability.SupportedTrafficDirection, Capability.SupportedEgressProtocols);
         public static final Service Lb = new Service("Lb", Capability.SupportedLBAlgorithms, Capability.SupportedLBIsolation,
                 Capability.SupportedProtocols, Capability.TrafficStatistics, Capability.LoadBalancingSupportedIps,
-                Capability.SupportedStickinessMethods, Capability.ElasticLb);
+                Capability.SupportedStickinessMethods, Capability.ElasticLb, Capability.LbSchemes);
         public static final Service UserData = new Service("UserData");
         public static final Service SourceNat = new Service("SourceNat", Capability.SupportedSourceNatTypes, Capability.RedundantRouter);
         public static final Service StaticNat = new Service("StaticNat", Capability.ElasticIp);
@@ -124,6 +125,7 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
         public static final Provider None = new Provider("None", false);
         // NiciraNvp is not an "External" provider, otherwise we get in trouble with NetworkServiceImpl.providersConfiguredForExternalNetworking 
         public static final Provider NiciraNvp = new Provider("NiciraNvp", false);
+        public static final Provider InternalLbVm = new Provider("InternalLbVm", false);
         public static final Provider CiscoVnmc = new Provider("CiscoVnmc", true);
 
         private String name;
@@ -177,6 +179,7 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
         public static final Capability SupportedTrafficDirection = new Capability("SupportedTrafficDirection");
         public static final Capability SupportedEgressProtocols = new Capability("SupportedEgressProtocols");
         public static final Capability HealthCheckPolicy = new Capability("HealthCheckPolicy");
+        public static final Capability LbSchemes = new Capability("LbSchemes");
 
         private String name;
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/NetworkModel.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/NetworkModel.java b/api/src/com/cloud/network/NetworkModel.java
index 555a09f..f84a8b0 100644
--- a/api/src/com/cloud/network/NetworkModel.java
+++ b/api/src/com/cloud/network/NetworkModel.java
@@ -33,6 +33,7 @@ import com.cloud.network.Networks.TrafficType;
 import com.cloud.network.element.NetworkElement;
 import com.cloud.network.element.UserDataServiceProvider;
 import com.cloud.offering.NetworkOffering;
+import com.cloud.offering.NetworkOffering.Detail;
 import com.cloud.user.Account;
 import com.cloud.vm.Nic;
 import com.cloud.vm.NicProfile;
@@ -264,5 +265,11 @@ public interface NetworkModel {
 
     Nic getPlaceholderNicForRouter(Network network, Long podId);
     
+    IpAddress getPublicIpAddress(String ipAddress, long zoneId);
+
+    List<String> getUsedIpsInNetwork(Network network);
+
+    Map<Detail, String> getNtwkOffDetails(long offId);
+
     Networks.IsolationType[] listNetworkIsolationMethods();
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/VirtualNetworkApplianceService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/VirtualNetworkApplianceService.java b/api/src/com/cloud/network/VirtualNetworkApplianceService.java
index 250ecb2..58eead2 100644
--- a/api/src/com/cloud/network/VirtualNetworkApplianceService.java
+++ b/api/src/com/cloud/network/VirtualNetworkApplianceService.java
@@ -63,5 +63,7 @@ public interface VirtualNetworkApplianceService {
     VirtualRouter startRouter(long id) throws ResourceUnavailableException, InsufficientCapacityException, ConcurrentOperationException;
 
     VirtualRouter destroyRouter(long routerId, Account caller, Long callerUserId) throws ResourceUnavailableException, ConcurrentOperationException;
+    
+    VirtualRouter findRouter(long routerId);
 
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/VirtualRouterProvider.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/VirtualRouterProvider.java b/api/src/com/cloud/network/VirtualRouterProvider.java
index ed6a274..f67686e 100644
--- a/api/src/com/cloud/network/VirtualRouterProvider.java
+++ b/api/src/com/cloud/network/VirtualRouterProvider.java
@@ -23,7 +23,8 @@ public interface VirtualRouterProvider extends InternalIdentity, Identity {
     public enum VirtualRouterProviderType {
         VirtualRouter,
         ElasticLoadBalancerVm,
-        VPCVirtualRouter
+        VPCVirtualRouter,
+        InternalLbVm
     }
 
     public VirtualRouterProviderType getType();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/lb/LoadBalancingRule.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/lb/LoadBalancingRule.java b/api/src/com/cloud/network/lb/LoadBalancingRule.java
index 3e11e8c..4b37782 100644
--- a/api/src/com/cloud/network/lb/LoadBalancingRule.java
+++ b/api/src/com/cloud/network/lb/LoadBalancingRule.java
@@ -25,111 +25,83 @@ import com.cloud.network.as.Condition;
 import com.cloud.network.as.Counter;
 import com.cloud.network.rules.FirewallRule;
 import com.cloud.network.rules.LoadBalancer;
+import com.cloud.network.rules.LoadBalancerContainer.Scheme;
 import com.cloud.utils.Pair;
+import com.cloud.utils.net.Ip;
 
-public class LoadBalancingRule implements FirewallRule, LoadBalancer {
+public class LoadBalancingRule {
     private LoadBalancer lb;
+    private Ip sourceIp;
     private List<LbDestination> destinations;
     private List<LbStickinessPolicy> stickinessPolicies;
     private LbAutoScaleVmGroup autoScaleVmGroup;
     private List<LbHealthCheckPolicy> healthCheckPolicies;
 
     public LoadBalancingRule(LoadBalancer lb, List<LbDestination> destinations,
-            List<LbStickinessPolicy> stickinessPolicies, List<LbHealthCheckPolicy> healthCheckPolicies) {
+            List<LbStickinessPolicy> stickinessPolicies, List<LbHealthCheckPolicy> healthCheckPolicies, Ip sourceIp) {
         this.lb = lb;
         this.destinations = destinations;
         this.stickinessPolicies = stickinessPolicies;
         this.healthCheckPolicies = healthCheckPolicies;
+        this.sourceIp = sourceIp;
     }
 
-    @Override
     public long getId() {
         return lb.getId();
     }
 
-    @Override
-    public long getAccountId() {
-        return lb.getAccountId();
-    }
-
-    @Override
-    public long getDomainId() {
-        return lb.getDomainId();
-    }
-
-    @Override
     public String getName() {
         return lb.getName();
     }
 
-    @Override
     public String getDescription() {
         return lb.getDescription();
     }
 
-    @Override
     public int getDefaultPortStart() {
         return lb.getDefaultPortStart();
     }
 
-    @Override
     public int getDefaultPortEnd() {
         return lb.getDefaultPortEnd();
     }
 
-    @Override
     public String getAlgorithm() {
         return lb.getAlgorithm();
     }
 
-    @Override
     public String getUuid() {
         return lb.getUuid();
     }
 
-    @Override
     public String getXid() {
         return lb.getXid();
     }
 
-    @Override
-    public Long getSourceIpAddressId() {
-        return lb.getSourceIpAddressId();
-    }
-
-    @Override
     public Integer getSourcePortStart() {
         return lb.getSourcePortStart();
     }
 
-    @Override
     public Integer getSourcePortEnd() {
         return lb.getSourcePortEnd();
     }
 
-    @Override
     public String getProtocol() {
         return lb.getProtocol();
     }
 
-    @Override
-    public Purpose getPurpose() {
-        return Purpose.LoadBalancing;
+    public FirewallRule.Purpose getPurpose() {
+        return FirewallRule.Purpose.LoadBalancing;
     }
 
-    @Override
-    public State getState() {
+    public FirewallRule.State getState() {
         return lb.getState();
     }
 
-    @Override
     public long getNetworkId() {
         return lb.getNetworkId();
     }
 
-    public LoadBalancer getLb() {
-        return lb;
-    }
 
     public void setDestinations(List<LbDestination> destinations) {
         this.destinations = destinations;
@@ -287,36 +259,6 @@ public class LoadBalancingRule implements FirewallRule, LoadBalancer {
         }
     }
 
-    @Override
-    public Integer getIcmpCode() {
-        return null;
-    }
-
-    @Override
-    public Integer getIcmpType() {
-        return null;
-    }
-
-    @Override
-    public List<String> getSourceCidrList() {
-        return null;
-    }
-
-    @Override
-    public Long getRelated() {
-        return null;
-    }
-
-    @Override
-    public TrafficType getTrafficType() {
-        return null;
-    }
-
-    @Override
-    public FirewallRuleType getType() {
-        return FirewallRuleType.User;
-    }
-
     public LbAutoScaleVmGroup getAutoScaleVmGroup() {
         return autoScaleVmGroup;
     }
@@ -473,4 +415,11 @@ public class LoadBalancingRule implements FirewallRule, LoadBalancer {
         }
     }
 
+    public Ip getSourceIp() {
+        return sourceIp;
+    }
+
+    public Scheme getScheme() {
+        return lb.getScheme();
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/lb/LoadBalancingRulesService.java b/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
index ed39bed..5fc41e3 100644
--- a/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
+++ b/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
@@ -17,10 +17,10 @@
 package com.cloud.network.lb;
 
 import java.util.List;
+import java.util.Map;
 
 import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd;
 import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd;
-import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd;
 import org.apache.cloudstack.api.command.user.loadbalancer.ListLBHealthCheckPoliciesCmd;
 import org.apache.cloudstack.api.command.user.loadbalancer.ListLBStickinessPoliciesCmd;
 import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleInstancesCmd;
@@ -30,12 +30,13 @@ import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRul
 import com.cloud.exception.InsufficientAddressCapacityException;
 import com.cloud.exception.NetworkRuleConflictException;
 import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
 import com.cloud.network.rules.HealthCheckPolicy;
 import com.cloud.network.rules.LoadBalancer;
+import com.cloud.network.rules.LoadBalancerContainer.Scheme;
 import com.cloud.network.rules.StickinessPolicy;
 import com.cloud.uservm.UserVm;
 import com.cloud.utils.Pair;
+import com.cloud.utils.net.Ip;
 
 
 public interface LoadBalancingRulesService {
@@ -49,7 +50,9 @@ public interface LoadBalancingRulesService {
      * @return the newly created LoadBalancerVO if successful, null otherwise
      * @throws InsufficientAddressCapacityException
      */
-    LoadBalancer createLoadBalancerRule(CreateLoadBalancerRuleCmd lb, boolean openFirewall) throws NetworkRuleConflictException, InsufficientAddressCapacityException;
+    LoadBalancer createPublicLoadBalancerRule(String xId, String name, String description, 
+            int srcPortStart, int srcPortEnd, int defPortStart, int defPortEnd, Long ipAddrId, String protocol, String algorithm,
+            long networkId, long lbOwnerId, boolean openFirewall) throws NetworkRuleConflictException, InsufficientAddressCapacityException;
 
     LoadBalancer updateLoadBalancerRule(UpdateLoadBalancerRuleCmd cmd);
 
@@ -134,8 +137,9 @@ public interface LoadBalancingRulesService {
 
     List<? extends HealthCheckPolicy> searchForLBHealthCheckPolicies(ListLBHealthCheckPoliciesCmd cmd);
 
-    List<LoadBalancingRule> listByNetworkId(long networkId);
-
     LoadBalancer findById(long LoadBalancer);
-   public void updateLBHealthChecks() throws ResourceUnavailableException;
+    
+    public void updateLBHealthChecks(Scheme scheme) throws ResourceUnavailableException;
+
+    Map<Ip, UserVm> getLbInstances(long lbId);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/router/VirtualRouter.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/router/VirtualRouter.java b/api/src/com/cloud/network/router/VirtualRouter.java
index d7239dd..2311f48 100755
--- a/api/src/com/cloud/network/router/VirtualRouter.java
+++ b/api/src/com/cloud/network/router/VirtualRouter.java
@@ -23,7 +23,7 @@ import com.cloud.vm.VirtualMachine;
  */
 public interface VirtualRouter extends VirtualMachine {
 	public enum Role {
-		VIRTUAL_ROUTER, LB
+		VIRTUAL_ROUTER, LB, INTERNAL_LB_VM
 	}
     Role getRole();
     boolean getIsRedundantRouter();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/rules/LoadBalancer.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/LoadBalancer.java b/api/src/com/cloud/network/rules/LoadBalancer.java
index ab6085a..e6dadca 100644
--- a/api/src/com/cloud/network/rules/LoadBalancer.java
+++ b/api/src/com/cloud/network/rules/LoadBalancer.java
@@ -19,16 +19,10 @@ package com.cloud.network.rules;
 /**
  * Definition for a LoadBalancer
  */
-public interface LoadBalancer extends FirewallRule {
-
-    String getName();
-
-    String getDescription();
-
+public interface LoadBalancer extends FirewallRule, LoadBalancerContainer {
+    
     int getDefaultPortStart();
 
     int getDefaultPortEnd();
 
-    String getAlgorithm();
-
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/network/rules/LoadBalancerContainer.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/LoadBalancerContainer.java b/api/src/com/cloud/network/rules/LoadBalancerContainer.java
new file mode 100644
index 0000000..9d5ea59
--- /dev/null
+++ b/api/src/com/cloud/network/rules/LoadBalancerContainer.java
@@ -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.
+package com.cloud.network.rules;
+
+public interface LoadBalancerContainer {
+    
+    public enum Scheme {
+        Public, Internal;
+    }
+
+    String getName();
+
+    String getDescription();
+    
+    String getAlgorithm();
+    
+    Scheme getScheme();
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/offering/NetworkOffering.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/offering/NetworkOffering.java b/api/src/com/cloud/offering/NetworkOffering.java
index 6f0b993..72e2a2b 100644
--- a/api/src/com/cloud/offering/NetworkOffering.java
+++ b/api/src/com/cloud/offering/NetworkOffering.java
@@ -16,6 +16,8 @@
 // under the License.
 package com.cloud.offering;
 
+import java.util.Map;
+
 import org.apache.cloudstack.acl.InfrastructureEntity;
 import org.apache.cloudstack.api.Identity;
 import org.apache.cloudstack.api.InternalIdentity;
@@ -38,6 +40,11 @@ public interface NetworkOffering extends InfrastructureEntity, InternalIdentity,
         Disabled,
         Enabled
     }
+    
+    public enum Detail {
+        InternalLbProvider,
+        PublicLbProvider
+    }
 
     public final static String SystemPublicNetwork = "System-Public-Network";
     public final static String SystemControlNetwork = "System-Control-Network";
@@ -116,5 +123,9 @@ public interface NetworkOffering extends InfrastructureEntity, InternalIdentity,
     boolean isInline();
 
     boolean getIsPersistent();
+    
+    boolean getInternalLb();
+
+    boolean getPublicLb();
 
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/offering/ServiceOffering.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/offering/ServiceOffering.java b/api/src/com/cloud/offering/ServiceOffering.java
index d6c215f..165369c 100755
--- a/api/src/com/cloud/offering/ServiceOffering.java
+++ b/api/src/com/cloud/offering/ServiceOffering.java
@@ -30,6 +30,7 @@ public interface ServiceOffering extends InfrastructureEntity, InternalIdentity,
     public static final String ssvmDefaultOffUniqueName = "Cloud.com-SecondaryStorage";
     public static final String routerDefaultOffUniqueName = "Cloud.Com-SoftwareRouter";
     public static final String elbVmDefaultOffUniqueName = "Cloud.Com-ElasticLBVm";
+    public static final String internalLbVmDefaultOffUniqueName = "Cloud.Com-InternalLBVm";
 
     public enum StorageType {
         local,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/com/cloud/vm/VirtualMachine.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/vm/VirtualMachine.java b/api/src/com/cloud/vm/VirtualMachine.java
index 8f807d4..ce9add6 100755
--- a/api/src/com/cloud/vm/VirtualMachine.java
+++ b/api/src/com/cloud/vm/VirtualMachine.java
@@ -186,6 +186,7 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, I
         SecondaryStorageVm,
         ElasticIpVm,
         ElasticLoadBalancerVm,
+        InternalLoadBalancerVm,
 
         /*
          * UserBareMetal is only used for selecting VirtualMachineGuru, there is no
@@ -196,7 +197,7 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, I
         public static boolean isSystemVM(VirtualMachine.Type vmtype) {
             if (DomainRouter.equals(vmtype)
                     || ConsoleProxy.equals(vmtype)
-                    || SecondaryStorageVm.equals(vmtype)) {
+                    || SecondaryStorageVm.equals(vmtype) || InternalLoadBalancerVm.equals(vmtype)) {
                 return true;
             }
             return false;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index d57fe05..c76506a 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -480,6 +480,12 @@ public class ApiConstants {
     public static final String HEALTHCHECK_HEALTHY_THRESHOLD = "healthythreshold";
     public static final String HEALTHCHECK_UNHEALTHY_THRESHOLD = "unhealthythreshold";
     public static final String HEALTHCHECK_PINGPATH = "pingpath";
+    public static final String SOURCE_PORT = "sourceport";
+    public static final String INSTANCE_PORT = "instanceport";
+    public static final String SOURCE_IP = "sourceipaddress";
+    public static final String SOURCE_IP_NETWORK_ID = "sourceipaddressnetworkid";
+    public static final String SCHEME = "scheme";
+    public static final String PROVIDER_TYPE = "providertype";
     public static final String AFFINITY_GROUP_IDS = "affinitygroupids";
     public static final String AFFINITY_GROUP_NAMES = "affinitygroupnames";
     public static final String ASA_INSIDE_PORT_PROFILE = "insideportprofile";

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/BaseCmd.java b/api/src/org/apache/cloudstack/api/BaseCmd.java
index 48d18d0..8d66a83 100644
--- a/api/src/org/apache/cloudstack/api/BaseCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseCmd.java
@@ -28,6 +28,9 @@ import java.util.regex.Pattern;
 import javax.inject.Inject;
 
 import org.apache.cloudstack.affinity.AffinityGroupService;
+import org.apache.cloudstack.network.element.InternalLoadBalancerElementService;
+import org.apache.cloudstack.network.lb.ApplicationLoadBalancerService;
+import org.apache.cloudstack.network.lb.InternalLoadBalancerVMService;
 import org.apache.cloudstack.query.QueryService;
 import org.apache.cloudstack.usage.UsageService;
 import org.apache.log4j.Logger;
@@ -139,7 +142,11 @@ public abstract class BaseCmd {
     @Inject public VMSnapshotService _vmSnapshotService;
     @Inject public DataStoreProviderApiService dataStoreProviderApiService;
     @Inject public VpcProvisioningService _vpcProvSvc;
+    @Inject public ApplicationLoadBalancerService _newLbSvc;
+    @Inject public ApplicationLoadBalancerService _appLbService;
     @Inject public AffinityGroupService _affinityGroupService;
+    @Inject public InternalLoadBalancerElementService _internalLbElementSvc;
+    @Inject public InternalLoadBalancerVMService _internalLbSvc;
     @Inject public NetworkModel _ntwkModel;
 
     public abstract void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/org/apache/cloudstack/api/ResponseGenerator.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ResponseGenerator.java b/api/src/org/apache/cloudstack/api/ResponseGenerator.java
index 3433003..ab8f995 100644
--- a/api/src/org/apache/cloudstack/api/ResponseGenerator.java
+++ b/api/src/org/apache/cloudstack/api/ResponseGenerator.java
@@ -19,14 +19,15 @@ package org.apache.cloudstack.api;
 import java.text.DecimalFormat;
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Map;
 
-import com.cloud.vm.NicSecondaryIp;
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.affinity.AffinityGroupResponse;
 import org.apache.cloudstack.api.ApiConstants.HostDetails;
 import org.apache.cloudstack.api.ApiConstants.VMDetails;
 import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
 import org.apache.cloudstack.api.response.AccountResponse;
+import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
 import org.apache.cloudstack.api.response.AsyncJobResponse;
 import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
 import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
@@ -44,11 +45,15 @@ import org.apache.cloudstack.api.response.EventResponse;
 import org.apache.cloudstack.api.response.ExtractResponse;
 import org.apache.cloudstack.api.response.FirewallResponse;
 import org.apache.cloudstack.api.response.FirewallRuleResponse;
+import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
 import org.apache.cloudstack.api.response.GuestOSResponse;
+import org.apache.cloudstack.api.response.GuestVlanRangeResponse;
+import org.apache.cloudstack.api.response.HostForMigrationResponse;
 import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.api.response.HypervisorCapabilitiesResponse;
 import org.apache.cloudstack.api.response.IPAddressResponse;
 import org.apache.cloudstack.api.response.InstanceGroupResponse;
+import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
 import org.apache.cloudstack.api.response.IpForwardingRuleResponse;
 import org.apache.cloudstack.api.response.IsolationMethodResponse;
 import org.apache.cloudstack.api.response.LBHealthCheckResponse;
@@ -84,6 +89,7 @@ import org.apache.cloudstack.api.response.SnapshotResponse;
 import org.apache.cloudstack.api.response.SnapshotScheduleResponse;
 import org.apache.cloudstack.api.response.StaticRouteResponse;
 import org.apache.cloudstack.api.response.StorageNetworkIpRangeResponse;
+import org.apache.cloudstack.api.response.StoragePoolForMigrationResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.SwiftResponse;
 import org.apache.cloudstack.api.response.SystemVmInstanceResponse;
@@ -103,6 +109,7 @@ import org.apache.cloudstack.api.response.VpcOfferingResponse;
 import org.apache.cloudstack.api.response.VpcResponse;
 import org.apache.cloudstack.api.response.VpnUsersResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
 import org.apache.cloudstack.region.Region;
 import org.apache.cloudstack.usage.Usage;
 
@@ -119,10 +126,25 @@ import com.cloud.domain.Domain;
 import com.cloud.event.Event;
 import com.cloud.host.Host;
 import com.cloud.hypervisor.HypervisorCapabilities;
-import com.cloud.network.*;
+import com.cloud.network.GuestVlan;
+import com.cloud.network.IpAddress;
+import com.cloud.network.Network;
 import com.cloud.network.Network.Service;
 import com.cloud.network.Networks.IsolationType;
-import com.cloud.network.as.*;
+import com.cloud.network.PhysicalNetwork;
+import com.cloud.network.PhysicalNetworkServiceProvider;
+import com.cloud.network.PhysicalNetworkTrafficType;
+import com.cloud.network.RemoteAccessVpn;
+import com.cloud.network.Site2SiteCustomerGateway;
+import com.cloud.network.Site2SiteVpnConnection;
+import com.cloud.network.Site2SiteVpnGateway;
+import com.cloud.network.VirtualRouterProvider;
+import com.cloud.network.VpnUser;
+import com.cloud.network.as.AutoScalePolicy;
+import com.cloud.network.as.AutoScaleVmGroup;
+import com.cloud.network.as.AutoScaleVmProfile;
+import com.cloud.network.as.Condition;
+import com.cloud.network.as.Counter;
 import com.cloud.network.router.VirtualRouter;
 import com.cloud.network.rules.FirewallRule;
 import com.cloud.network.rules.HealthCheckPolicy;
@@ -145,7 +167,12 @@ import com.cloud.projects.ProjectAccount;
 import com.cloud.projects.ProjectInvitation;
 import com.cloud.region.ha.GlobalLoadBalancerRule;
 import com.cloud.server.ResourceTag;
-import com.cloud.storage.*;
+import com.cloud.storage.GuestOS;
+import com.cloud.storage.S3;
+import com.cloud.storage.Snapshot;
+import com.cloud.storage.StoragePool;
+import com.cloud.storage.Swift;
+import com.cloud.storage.Volume;
 import com.cloud.storage.snapshot.SnapshotPolicy;
 import com.cloud.storage.snapshot.SnapshotSchedule;
 import com.cloud.template.VirtualMachineTemplate;
@@ -153,11 +180,12 @@ import com.cloud.user.Account;
 import com.cloud.user.User;
 import com.cloud.user.UserAccount;
 import com.cloud.uservm.UserVm;
+import com.cloud.utils.net.Ip;
 import com.cloud.vm.InstanceGroup;
 import com.cloud.vm.Nic;
-import com.cloud.vm.snapshot.VMSnapshot;
+import com.cloud.vm.NicSecondaryIp;
 import com.cloud.vm.VirtualMachine;
-import org.apache.cloudstack.api.response.*;
+import com.cloud.vm.snapshot.VMSnapshot;
 
 public interface ResponseGenerator {
     UserResponse createUserResponse(UserAccount user);
@@ -397,9 +425,13 @@ public interface ResponseGenerator {
     NicSecondaryIpResponse createSecondaryIPToNicResponse(NicSecondaryIp result);
     public NicResponse createNicResponse(Nic result);
 
+    ApplicationLoadBalancerResponse createLoadBalancerContainerReponse(ApplicationLoadBalancerRule lb, Map<Ip, UserVm> lbInstances);
+    
     AffinityGroupResponse createAffinityGroupResponse(AffinityGroup group);
 
     Long getAffinityGroupId(String name, long entityOwnerId);
 
+    InternalLoadBalancerElementResponse createInternalLbElementResponse(VirtualRouterProvider result);
+    
     IsolationMethodResponse createIsolationMethodResponse(IsolationType method);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
new file mode 100644
index 0000000..7c3d1e9
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
@@ -0,0 +1,114 @@
+// 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.
+
+package org.apache.cloudstack.api.command.admin.internallb;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
+import org.apache.cloudstack.network.element.InternalLoadBalancerElementService;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.VirtualRouterProvider;
+import com.cloud.user.Account;
+import com.cloud.user.UserContext;
+
+@APICommand(name = "configureInternalLoadBalancerElement", responseObject=InternalLoadBalancerElementResponse.class,
+            description="Configures an Internal Load Balancer element.", since="4.2.0")
+public class ConfigureInternalLoadBalancerElementCmd extends BaseAsyncCmd {
+    public static final Logger s_logger = Logger.getLogger(ConfigureInternalLoadBalancerElementCmd.class.getName());
+    private static final String s_name = "configureinternalloadbalancerelementresponse";
+
+    @Inject
+    private List<InternalLoadBalancerElementService> _service;
+
+    /////////////////////////////////////////////////////
+    //////////////// API parameters /////////////////////
+    /////////////////////////////////////////////////////
+
+    @Parameter(name=ApiConstants.ID, type=CommandType.UUID, entityType = InternalLoadBalancerElementResponse.class,
+            required=true, description="the ID of the internal lb provider")
+    private Long id;
+
+    @Parameter(name=ApiConstants.ENABLED, type=CommandType.BOOLEAN, required=true, description="Enables/Disables the Internal Load Balancer element")
+    private Boolean enabled;
+
+    /////////////////////////////////////////////////////
+    /////////////////// Accessors ///////////////////////
+    /////////////////////////////////////////////////////
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public Boolean getEnabled() {
+        return enabled;
+    }
+
+    /////////////////////////////////////////////////////
+    /////////////// API Implementation///////////////////
+    /////////////////////////////////////////////////////
+
+    @Override
+    public String getCommandName() {
+        return s_name;
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+        return Account.ACCOUNT_ID_SYSTEM;
+    }
+
+    @Override
+    public String getEventType() {
+        return EventTypes.EVENT_NETWORK_ELEMENT_CONFIGURE;
+    }
+
+    @Override
+    public String getEventDescription() {
+        return  "configuring internal load balancer element: " + id;
+    }
+
+    @Override
+    public void execute() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException{
+        s_logger.debug("hello alena");
+        UserContext.current().setEventDetails("Internal load balancer element: " + id);
+        s_logger.debug("hello alena");
+        VirtualRouterProvider result = _service.get(0).configureInternalLoadBalancerElement(getId(), getEnabled());
+        s_logger.debug("hello alena");
+        if (result != null){
+            InternalLoadBalancerElementResponse routerResponse = _responseGenerator.createInternalLbElementResponse(result);
+            routerResponse.setResponseName(getCommandName());
+            this.setResponseObject(routerResponse);
+        } else {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to configure the internal load balancer element");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2660a6b7/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
new file mode 100644
index 0000000..2902f7a
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
@@ -0,0 +1,116 @@
+// 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.
+package org.apache.cloudstack.api.command.admin.internallb;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseAsyncCreateCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
+import org.apache.cloudstack.api.response.ProviderResponse;
+import org.apache.cloudstack.network.element.InternalLoadBalancerElementService;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.network.VirtualRouterProvider;
+import com.cloud.user.Account;
+import com.cloud.user.UserContext;
+
+@APICommand(name = "createInternalLoadBalancerElement", responseObject=InternalLoadBalancerElementResponse.class, description="Create an Internal Load Balancer element.",since="4.2.0")
+public class CreateInternalLoadBalancerElementCmd extends BaseAsyncCreateCmd {
+    public static final Logger s_logger = Logger.getLogger(CreateInternalLoadBalancerElementCmd.class.getName());
+    private static final String s_name = "createinternalloadbalancerelementresponse";
+
+    @Inject
+    private List<InternalLoadBalancerElementService> _service;
+
+    /////////////////////////////////////////////////////
+    //////////////// API parameters /////////////////////
+    /////////////////////////////////////////////////////
+
+    @Parameter(name=ApiConstants.NETWORK_SERVICE_PROVIDER_ID, type=CommandType.UUID, entityType = ProviderResponse.class, required=true, description="the network service provider ID of the internal load balancer element")
+    private Long nspId;
+
+    /////////////////////////////////////////////////////
+    /////////////////// Accessors ///////////////////////
+    /////////////////////////////////////////////////////
+
+    public void setNspId(Long nspId) {
+        this.nspId = nspId;
+    }
+
+    public Long getNspId() {
+        return nspId;
+    }
+
+    /////////////////////////////////////////////////////
+    /////////////// API Implementation///////////////////
+    /////////////////////////////////////////////////////
+
+
+
+    @Override
+    public String getCommandName() {
+        return s_name;
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+        return Account.ACCOUNT_ID_SYSTEM;
+    }
+
+    @Override
+    public void execute(){
+        UserContext.current().setEventDetails("Virtual router element Id: "+getEntityId());
+        VirtualRouterProvider result = _service.get(0).getInternalLoadBalancerElement(getEntityId());
+        if (result != null) {
+            InternalLoadBalancerElementResponse response = _responseGenerator.createInternalLbElementResponse(result);
+            response.setResponseName(getCommandName());
+            this.setResponseObject(response);
+        }else {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add Virtual Router entity to physical network");
+        }
+    }
+
+    @Override
+    public void create() throws ResourceAllocationException {
+        VirtualRouterProvider result = _service.get(0).addInternalLoadBalancerElement(getNspId());
+        if (result != null) {
+            setEntityId(result.getId());
+            setEntityUuid(result.getUuid());
+        } else {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add Internal Load Balancer entity to physical network");
+        }
+    }
+
+    @Override
+    public String getEventType() {
+        return EventTypes.EVENT_SERVICE_PROVIDER_CREATE;
+    }
+
+    @Override
+    public String getEventDescription() {
+        return  "Adding physical network element Internal Load Balancer: " + getEntityId();
+    }
+}


Mime
View raw message