X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=scripts%2Finit%2Fgetsmeswagger.go;h=0e2c8ce27fd6062b97aac58db038c25288775958;hb=bd79b2498551ac511b56384d99414ff2aec52296;hp=65826a259e6390ceb42a448ef428531aba04fad6;hpb=347f178c656d82aa0c6d4ab56eb0846a94d7af40;p=nonrtric%2Fplt%2Frappmanager.git diff --git a/scripts/init/getsmeswagger.go b/scripts/init/getsmeswagger.go index 65826a2..0e2c8ce 100755 --- a/scripts/init/getsmeswagger.go +++ b/scripts/init/getsmeswagger.go @@ -3,6 +3,7 @@ // O-RAN-SC // %% // Copyright (C) 2023: Nordix Foundation +// Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. // %% // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,76 +21,83 @@ package main - import ( + "encoding/json" + "fmt" "github.com/getkin/kin-openapi/openapi3" log "github.com/sirupsen/logrus" "gopkg.in/yaml.v3" - "encoding/json" - "io/ioutil" + "io/ioutil" + "os" + "oransc.org/nonrtric/capifcore/internal/common" + "oransc.org/nonrtric/capifcore/internal/common29122" + "oransc.org/nonrtric/capifcore/internal/common29571" "oransc.org/nonrtric/capifcore/internal/invokermanagementapi" "oransc.org/nonrtric/capifcore/internal/providermanagementapi" "oransc.org/nonrtric/capifcore/internal/publishserviceapi" - "oransc.org/nonrtric/capifcore/internal/common" - "oransc.org/nonrtric/capifcore/internal/common29122" - "oransc.org/nonrtric/capifcore/internal/common29571" ) -func main() { - var swagger *openapi3.T - var err error - - swagger,err = providermanagementapi.GetSwagger() - if err == nil { - generateSwaggerYaml(swagger, "TS29222_CAPIF_API_Provider_Management_API.yaml") - } - - swagger,err = publishserviceapi.GetSwagger() - if err == nil { - generateSwaggerYaml(swagger, "TS29222_CAPIF_Publish_Service_API.yaml") - } - - swagger,err = invokermanagementapi.GetSwagger() - if err == nil { - generateSwaggerYaml(swagger, "TS29222_CAPIF_API_Invoker_Management_API.yaml") - } +type fn func() (swagger *openapi3.T, err error) - swagger,err = common.GetSwagger() - if err == nil { - generateSwaggerYaml(swagger, "CommonData.yaml") - } +var smeOpenApiFileLocation string = "../../openapi/sme/" - swagger,err = common29122.GetSwagger() - if err == nil { - generateSwaggerYaml(swagger, "TS29122_CommonData.yaml") - } +func main() { - swagger,err = common29571.GetSwagger() - if err == nil { - generateSwaggerYaml(swagger, "TS29571_CommonData.yaml") - } + var err error + fmt.Println("Generating SME openapi spec...") + os.MkdirAll(smeOpenApiFileLocation, 0755) + if err == nil { + generateAndCopySwagger("TS29222_CAPIF_API_Provider_Management_API.yaml", providermanagementapi.GetSwagger) + generateAndCopySwagger("TS29222_CAPIF_Publish_Service_API.yaml", publishserviceapi.GetSwagger) + generateAndCopySwagger("TS29222_CAPIF_API_Invoker_Management_API.yaml", invokermanagementapi.GetSwagger) + generateAndCopySwagger("CommonData.yaml", common.GetSwagger) + generateAndCopySwagger("TS29122_CommonData.yaml", common29122.GetSwagger) + generateAndCopySwagger("TS29571_CommonData.yaml", common29571.GetSwagger) + } } func generateSwaggerYaml(swagger *openapi3.T, filename string) { - jsondataarr, jsondataarrerr := json.Marshal(&swagger) - if jsondataarrerr != nil { - log.Fatalf("Error loading json data from swagger \n: %s", jsondataarrerr) - } + jsondataarr, jsondataarrerr := json.Marshal(&swagger) + if jsondataarrerr != nil { + log.Fatalf("Error loading json data from swagger \n: %s", jsondataarrerr) + } - var data map[string]interface{} - if err := json.Unmarshal(jsondataarr, &data); err != nil { - log.Fatalf("Error loading json data to map \n: %s", jsondataarrerr) - log.Fatal(err) - } + var data map[string]interface{} + if err := json.Unmarshal(jsondataarr, &data); err != nil { + log.Fatalf("Error loading json data to map \n: %s", jsondataarrerr) + log.Fatal(err) + } - yamldataarr, yamldataarrerr := yaml.Marshal(&data) - if yamldataarrerr != nil { - log.Fatalf("Error loading json data map to array \n: %s", yamldataarrerr) - } + yamldataarr, yamldataarrerr := yaml.Marshal(&data) + if yamldataarrerr != nil { + log.Fatalf("Error loading json data map to array \n: %s", yamldataarrerr) + } + + err2 := ioutil.WriteFile(filename, yamldataarr, 0755) + if err2 != nil { + log.Fatalf("Error writing provider yaml \n: %s", err2) + } +} - err2 := ioutil.WriteFile(filename, yamldataarr, 0755) - if err2 != nil { - log.Fatalf("Error writing provider yaml \n: %s", err2) - } -} \ No newline at end of file +func copy(srcFile string, targetFile string) error { + data, err := os.ReadFile(srcFile) + if err != nil { + return err + } + err = os.WriteFile(targetFile, data, 0644) + if err != nil { + return err + } + return nil +} + +func generateAndCopySwagger(openApiFileName string, getSwagger fn) { + fmt.Printf("Generating %s...\n", openApiFileName) + swagger, err := getSwagger() + if err == nil { + generateSwaggerYaml(swagger, openApiFileName) + fmt.Printf("Copying %s to %s \n", openApiFileName, smeOpenApiFileLocation + openApiFileName) + copy(openApiFileName, smeOpenApiFileLocation +openApiFileName) + } +}