Skip to content

Commit

Permalink
Create 'lookup_oval_platform' database function
Browse files Browse the repository at this point in the history
  • Loading branch information
HoussemNasri committed Jan 17, 2024
1 parent 2fe3894 commit 1022484
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 6 deletions.
32 changes: 32 additions & 0 deletions schema/spacewalk/postgres/procs/lookup_oval_platform.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
--
-- Copyright (c) 2024 SUSE LLC
--
-- This software is licensed to you under the GNU General Public License,
-- version 2 (GPLv2). There is NO WARRANTY for this software, express or
-- implied, including the implied warranties of MERCHANTABILITY or FITNESS
-- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
-- along with this software; if not, see
-- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
--
-- Red Hat trademarks are not licensed under GPLv2. No permission is
-- granted to use or replicate Red Hat trademarks that are incorporated
-- in this software or its documentation.
--

create or replace function
lookup_oval_platform(platform_cpe_in in varchar)
returns numeric
as $$
declare
platform_cpe_in_val numeric;
begin
if not exists(select c from suseOVALPlatform c where cpe = platform_cpe_in) then
insert into suseovalplatform(id, cpe)
values (nextval('suse_oval_platform_id_seq'), platform_cpe_in);
end if;

select id into platform_cpe_in_val FROM suseOVALPlatform WHERE cpe = platform_cpe_in;

return platform_cpe_in_val;
end;
$$ language plpgsql;
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
create or replace function
lookup_oval_platform(platform_cpe_in in varchar)
returns numeric
as $$
declare
platform_cpe_in_val numeric;
begin
if not exists(select c from suseOVALPlatform c where cpe = platform_cpe_in) then
insert into suseovalplatform(id, cpe)
values (nextval('suse_oval_platform_id_seq'), platform_cpe_in);
end if;

select id into platform_cpe_in_val FROM suseOVALPlatform WHERE cpe = platform_cpe_in;

return platform_cpe_in_val;
end;
$$ language plpgsql;

CREATE OR REPLACE PROCEDURE
insert_product_vulnerable_packages(package_name_in varchar,fix_version_in varchar,product_cpe_in varchar,cve_name_in varchar)
AS
Expand All @@ -15,12 +33,7 @@ begin

SELECT id INTO cve_id_val FROM rhncve WHERE name = cve_name_in;

IF NOT exists(SELECT c FROM suseOVALPlatform c WHERE cpe = product_cpe_in) THEN
INSERT INTO suseovalplatform(id, cpe)
VALUES (nextval('suse_oval_platform_id_seq'), product_cpe_in);
END IF;

SELECT id INTO product_cpe_id_val FROM suseOVALPlatform WHERE cpe = product_cpe_in;
product_cpe_id_val := lookup_oval_platform(product_cpe_in);

IF NOT EXISTS(SELECT 1
FROM suseovalvulnerablepackage
Expand Down

0 comments on commit 1022484

Please sign in to comment.