From f9fcb3d9e6d602421a9690ad86f65adc273d9a51 Mon Sep 17 00:00:00 2001 From: Jacky Hu Date: Mon, 19 Mar 2018 19:15:35 +0800 Subject: [PATCH] Align model with v2 api To allow easier developement of features such as single create. Change-Id: Ic77ca8ae938c06e5ebed25d60d8b42241bf46414 --- octavia_dashboard/api/rest/lbaasv2.py | 66 +- .../project/lbaasv2/members/members.module.js | 4 +- .../workflow/listener/listener.controller.js | 2 +- .../listener/listener.controller.spec.js | 8 +- .../lbaasv2/workflow/listener/listener.html | 2 +- .../workflow/loadbalancer/loadbalancer.html | 4 +- .../workflow/members/members.controller.js | 4 +- .../members/members.controller.spec.js | 8 +- .../lbaasv2/workflow/members/members.html | 4 +- .../project/lbaasv2/workflow/model.service.js | 158 ++--- .../lbaasv2/workflow/model.service.spec.js | 666 +++++++++--------- .../workflow/monitor/monitor.help.html | 12 +- .../lbaasv2/workflow/monitor/monitor.html | 26 +- .../project/lbaasv2/workflow/pool/pool.html | 12 +- 14 files changed, 468 insertions(+), 508 deletions(-) diff --git a/octavia_dashboard/api/rest/lbaasv2.py b/octavia_dashboard/api/rest/lbaasv2.py index baa46fb8..e0f7ae8c 100644 --- a/octavia_dashboard/api/rest/lbaasv2.py +++ b/octavia_dashboard/api/rest/lbaasv2.py @@ -126,10 +126,10 @@ def create_loadbalancer(request): conn = _get_sdk_connection(request) loadbalancer = conn.load_balancer.create_load_balancer( project_id=request.user.project_id, - vip_subnet_id=data['loadbalancer']['subnet'], + vip_subnet_id=data['loadbalancer']['vip_subnet_id'], name=data['loadbalancer'].get('name'), description=data['loadbalancer'].get('description'), - vip_address=data['loadbalancer'].get('ip'), + vip_address=data['loadbalancer'].get('vip_address'), admin_state_up=data['loadbalancer'].get('admin_state_up') ) @@ -162,7 +162,7 @@ def create_listener(request, **kwargs): # https://bugs.launchpad.net/octavia/+bug/1714294 listener = conn.load_balancer.create_listener( protocol=data['listener']['protocol'], - protocol_port=data['listener']['port'], + protocol_port=data['listener']['protocol_port'], load_balancer_id=kwargs['loadbalancer_id'], name=data['listener'].get('name'), description=data['listener'].get('description'), @@ -227,23 +227,11 @@ def create_pool(request, **kwargs): """ data = request.DATA - session_persistence_type = data['pool'].get('type') - if session_persistence_type is None: - session_persistence = None - else: - cookie = data['pool'].get('cookie') - if session_persistence_type != 'APP_COOKIE': - cookie = None - session_persistence = { - 'type': session_persistence_type, - 'cookie_name': cookie - } - conn = _get_sdk_connection(request) pool = conn.load_balancer.create_pool( protocol=data['pool']['protocol'], - lb_algorithm=data['pool']['method'], - session_persistence=session_persistence, + lb_algorithm=data['pool']['lb_algorithm'], + session_persistence=data['pool'].get('session_persistence'), listener_id=kwargs['listener_id'], loadbalancer_id=kwargs['loadbalancer_id'], name=data['pool'].get('name'), @@ -273,14 +261,14 @@ def create_health_monitor(request, **kwargs): conn = _get_sdk_connection(request) health_mon = conn.load_balancer.create_health_monitor( type=data['monitor']['type'], - delay=data['monitor']['interval'], + delay=data['monitor']['delay'], timeout=data['monitor']['timeout'], - max_retries=data['monitor']['retry'], - max_retries_down=data['monitor']['retry_down'], + max_retries=data['monitor']['max_retries'], + max_retries_down=data['monitor']['max_retries_down'], pool_id=kwargs['pool_id'], - http_method=data['monitor'].get('method'), - url_path=data['monitor'].get('path'), - expected_codes=data['monitor'].get('status'), + http_method=data['monitor'].get('http_method'), + url_path=data['monitor'].get('url_path'), + expected_codes=data['monitor'].get('expected_codes'), admin_state_up=data['monitor'].get('admin_state_up') ) @@ -311,8 +299,8 @@ def add_member(request, **kwargs): member = conn.load_balancer.create_member( pool_id, address=member['address'], - protocol_port=member['port'], - subnet_id=member['subnet'], + protocol_port=member['protocol_port'], + subnet_id=member['subnet_id'], weight=member.get('weight'), monitor_address=monitor_address if monitor_address else None, monitor_port=member.get('monitor_port'), @@ -467,23 +455,11 @@ def update_pool(request, **kwargs): pool_id = data['pool'].get('id') loadbalancer_id = data.get('loadbalancer_id') - session_persistence_type = data['pool'].get('type') - if session_persistence_type is None: - session_persistence = None - else: - cookie = data['pool'].get('cookie') - if session_persistence_type != 'APP_COOKIE': - cookie = None - session_persistence = { - 'type': session_persistence_type, - 'cookie_name': cookie - } - conn = _get_sdk_connection(request) pool = conn.load_balancer.update_pool( pool=pool_id, - lb_algorithm=data['pool']['method'], - session_persistence=session_persistence, + lb_algorithm=data['pool']['lb_algorithm'], + session_persistence=data['pool'].get('session_persistence'), name=data['pool'].get('name'), description=data['pool'].get('description'), admin_state_up=data['pool'].get('admin_state_up') @@ -521,13 +497,13 @@ def update_monitor(request, **kwargs): conn = _get_sdk_connection(request) healthmonitor = conn.load_balancer.update_health_monitor( monitor_id, - delay=data['monitor'].get('interval'), + delay=data['monitor'].get('delay'), timeout=data['monitor'].get('timeout'), - max_retries=data['monitor'].get('retry'), - max_retries_down=data['monitor'].get('retry_down'), - http_method=data['monitor'].get('method'), - url_path=data['monitor'].get('path'), - expected_codes=data['monitor'].get('status'), + max_retries=data['monitor'].get('max_retries'), + max_retries_down=data['monitor'].get('max_retries_down'), + http_method=data['monitor'].get('http_method'), + url_path=data['monitor'].get('url_path'), + expected_codes=data['monitor'].get('expected_codes'), admin_state_up=data['monitor'].get('admin_state_up') ) diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/members/members.module.js b/octavia_dashboard/static/dashboard/project/lbaasv2/members/members.module.js index c1ad2606..f16fc973 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/members/members.module.js +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/members/members.module.js @@ -163,11 +163,11 @@ }, monitor_address: { label: gettext('Monitor Address'), - filters: ['noName'] + filters: ['noValue'] }, monitor_port: { label: gettext('Monitor Port'), - filters: ['noName'] + filters: ['noValue'] } }; } diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.js b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.js index 61358350..70716c54 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.js +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.js @@ -60,7 +60,7 @@ while (listenerPortExists(defaultPort)) { defaultPort += 1; } - $scope.model.spec.listener.port = defaultPort; + $scope.model.spec.listener.protocol_port = defaultPort; var members = $scope.model.members.concat($scope.model.spec.members); members.forEach(function setMemberPort(member) { diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.spec.js b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.spec.js index 1cfc9938..9eb9f574 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.spec.js +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.controller.spec.js @@ -32,7 +32,7 @@ }; listener = { protocol: null, - port: 80 + protocol_port: 80 }; scope = { model: { @@ -55,17 +55,17 @@ it('should update port on protocol change to HTTP', function() { ctrl.protocolChange('HTTP'); - expect(listener.port).toBe(81); + expect(listener.protocol_port).toBe(81); }); it('should update port on protocol change to TERMINATED_HTTPS', function() { ctrl.protocolChange('TERMINATED_HTTPS'); - expect(listener.port).toBe(443); + expect(listener.protocol_port).toBe(443); }); it('should update port on protocol change to TCP', function() { ctrl.protocolChange('TCP'); - expect(listener.port).toBeUndefined(); + expect(listener.protocol_port).toBeUndefined(); }); it('should update member ports on protocol change to TERMINATED_HTTPS', function() { diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.html b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.html index 6c7ac15d..1a26d935 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.html +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/listener/listener.html @@ -47,7 +47,7 @@ diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/loadbalancer/loadbalancer.html b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/loadbalancer/loadbalancer.html index 76f4bfb5..3342eeb2 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/loadbalancer/loadbalancer.html +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/loadbalancer/loadbalancer.html @@ -28,7 +28,7 @@ ng-class="{ 'has-error': loadBalancerDetailsForm.ip.$invalid && loadBalancerDetailsForm.ip.$dirty }"> {$ ::ctrl.ipError $} @@ -44,7 +44,7 @@ diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.js b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.js index 91f7d880..884ddfc6 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.js +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.js @@ -118,8 +118,8 @@ $scope.model.spec.members.push({ id: memberCounter++, address: null, - subnet: null, - port: { HTTP: 80 }[protocol], + subnet_id: null, + protocol_port: { HTTP: 80 }[protocol], weight: 1, monitor_address: null, monitor_port: null, diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.spec.js b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.spec.js index ae32b55c..ce1d9902 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.spec.js +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.controller.spec.js @@ -34,7 +34,7 @@ name: 'foo', description: 'bar', weight: 1, - port: 80, + protocol_port: 80, address: { ip: '1.2.3.4', subnet: '1' }, addresses: [{ ip: '1.2.3.4', subnet: '1' }, { ip: '2.3.4.5', subnet: '2' }] @@ -94,7 +94,7 @@ expect(model.spec.members.length).toBe(1); expect(model.spec.members[0].id).toBe(0); expect(model.spec.members[0].address).toBeNull(); - expect(model.spec.members[0].subnet).toBeNull(); + expect(model.spec.members[0].subnet_id).toBeNull(); }); it('should allocate a given member', function() { @@ -102,8 +102,8 @@ expect(model.spec.members.length).toBe(1); expect(model.spec.members[0].id).toBe(0); expect(model.spec.members[0].address).toEqual(model.members[0].address); - expect(model.spec.members[0].subnet).toBeUndefined(); - expect(model.spec.members[0].port).toEqual(model.members[0].port); + expect(model.spec.members[0].subnet_id).toBeUndefined(); + expect(model.spec.members[0].protocol_port).toEqual(model.members[0].protocol_port); }); it('should deallocate a given member', function() { diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.html b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.html index 7a9c2955..6d2acdb6 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.html +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.html @@ -68,7 +68,7 @@
@@ -78,7 +78,7 @@

- Interval: + Delay: The interval between health checks. Must be greater than or equal to the timeout.

- Retries: + Max Retries: The number of allowed connection failures before marking the member as inactive. Must be a number from 1 to 10.

- Retries down: + Max Retries Down: The number of allowed connection failures before marking the member as error. Must be a number from 1 to 10. The default is 3. @@ -32,20 +32,20 @@

- HTTP method: + HTTP Method: The HTTP method used to perform the health check.

- Expected status codes: + Expected Codes: The expected HTTP status codes to get from a successful health check. Must be a single number, a comma separated list of numbers, or a range (two numbers separated by a hyphen).

- URL path: + URL Path: The target of the health check HTTP request to the member. Must be a valid URL path. diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/monitor/monitor.html b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/monitor/monitor.html index b04e70e9..bb00cf44 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/monitor/monitor.html +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/monitor/monitor.html @@ -6,7 +6,7 @@

{$ ::ctrl.retryDownError $} @@ -41,11 +41,11 @@
{$ ::ctrl.intervalError $} @@ -57,11 +57,11 @@
{$ ::ctrl.retryError $} @@ -91,10 +91,10 @@
- +
@@ -102,9 +102,9 @@
- + + ng-model="model.spec.monitor.expected_codes" ng-pattern="::ctrl.statusPattern"> {$ ::ctrl.statusError $} @@ -114,9 +114,9 @@
- + + ng-model="model.spec.monitor.url_path" ng-pattern="::ctrl.urlPathPattern"> {$ ::ctrl.pathError $} diff --git a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/pool/pool.html b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/pool/pool.html index 35aaaba8..8f630419 100644 --- a/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/pool/pool.html +++ b/octavia_dashboard/static/dashboard/project/lbaasv2/workflow/pool/pool.html @@ -31,7 +31,7 @@
@@ -64,17 +64,17 @@
-
+
- - + +