def create(self, context, loadbalancer):
        """
        Create a loadbalancer.
        """
        l = loadbalancer['loadbalancer']
        if (l['provider'] == ATTR_NOT_SPECIFIED):
            l['provider'] = "opencontrail"
        sas_obj = self.check_provider_exists(l['provider'])
        tenant_id = self._get_tenant_id_for_create(context, l)
        project = self._project_read(project_id=tenant_id)

        obj_uuid = uuidutils.generate_uuid()
        name = self._get_resource_name('loadbalancer', project, l['name'],
                                       obj_uuid)
        id_perms = IdPermsType(enable=True, description=l['description'])
        lb = Loadbalancer(name,
                          project,
                          uuid=obj_uuid,
                          loadbalancer_provider=l['provider'],
                          id_perms=id_perms,
                          display_name=l['name'])
        lb.set_service_appliance_set(sas_obj)

        vmi, vip_address = self._create_virtual_interface(
            project, obj_uuid, l['vip_subnet_id'], l.get('vip_address'))
        lb.set_virtual_machine_interface(vmi)

        l['provisioning_status'] = 'ACTIVE'
        l['operating_status'] = 'ONLINE'
        props = self.make_properties(l)
        props.set_vip_address(vip_address)
        lb.set_loadbalancer_properties(props)

        self._api.loadbalancer_create(lb)
        return self.make_dict(lb)
    def create(self, context, loadbalancer):
        """
        Create a loadbalancer.
        """
        l = loadbalancer['loadbalancer']
        if (l['provider'] == ATTR_NOT_SPECIFIED):
            l['provider'] = "opencontrail"
        sas_obj = self.check_provider_exists(l['provider'])
        tenant_id = self._get_tenant_id_for_create(context, l)
        project = self._project_read(project_id=tenant_id)

        obj_uuid = uuidutils.generate_uuid()
        name = self._get_resource_name('loadbalancer', project,
                                       l['name'], obj_uuid)
        id_perms = IdPermsType(enable=True, description=l['description'])
        lb = Loadbalancer(name, project, uuid=obj_uuid,
                          loadbalancer_provider=l['provider'],
                          id_perms=id_perms, display_name=l['name'])
        lb.set_service_appliance_set(sas_obj)

        vmi, vip_address = self._create_virtual_interface(project,
            obj_uuid, l['vip_subnet_id'], l.get('vip_address'))
        lb.set_virtual_machine_interface(vmi)

        l['provisioning_status'] = 'ACTIVE'
        l['operating_status'] = 'ONLINE'
        props = self.make_properties(l)
        props.set_vip_address(vip_address)
        lb.set_loadbalancer_properties(props)

        self._api.loadbalancer_create(lb)
        return self.make_dict(lb)