def create_loadbalancer(self, context, loadbalancer): loadbalancer = loadbalancer.get('loadbalancer') loadbalancer['admin_state_up'] = True provider_name = self._get_provider_name(loadbalancer) lb_db = self.db.create_loadbalancer(context, loadbalancer) self.service_type_manager.add_resource_association( context, constants.LOADBALANCERV2, provider_name, lb_db.id) driver = self.drivers[provider_name] self._call_driver_operation( context, driver.load_balancer.create, lb_db) return self.db.get_loadbalancer(context, lb_db.id).to_dict()
def update_loadbalancer(self, context, id, loadbalancer): loadbalancer = loadbalancer.get('loadbalancer') old_lb = self.db.get_loadbalancer(context, id) self.db.test_and_set_status(context, models.LoadBalancer, id, constants.PENDING_UPDATE) try: updated_lb = self.db.update_loadbalancer( context, id, loadbalancer) except Exception as exc: self.db.update_status(context, models.LoadBalancer, id, old_lb.status) LOG.exception(exc) raise exc driver = self._get_driver_for_provider(old_lb.provider.provider_name) self._call_driver_operation(context, driver.load_balancer.update, updated_lb, old_db_entity=old_lb) return self.db.get_loadbalancer(context, updated_lb.id).to_dict()