Loading go-apps/meep-sandbox-api/main.go +91 −26 Original line number Diff line number Diff line /* * MEC Sandbox API * Copyright (c) 2022 The AdvantEDGE Authors * * The MEC Sandbox API described using OpenAPI * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * API version: 0.0.3 * Contact: cti_support@etsi.org * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package main import ( "log" "net/http" "os" "os/signal" "syscall" "time" // WARNING! // Change this to a fully-qualified import path // once you place this file into your project. // For example, // // sw "github.com/myname/myrepo/go" // sw "./go" server "github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-rnis/server" log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/gorilla/handlers" ) func init() { // Log as JSON instead of the default ASCII formatter. log.MeepJSONLogInit("meep-sandbox-api") } func main() { log.Printf("Server started") log.Info(os.Args) log.Info("Starting Sandbox API Service") run := true go func() { sigchan := make(chan os.Signal, 10) signal.Notify(sigchan, syscall.SIGINT, syscall.SIGTERM) <-sigchan log.Info("Program killed !") // do last actions and wait for all write operations to end run = false }() go func() { // Initialize Sandbox API err := server.Init() if err != nil { log.Error("Failed to initialize Sanddbox API Service") run = false return } // Start Sandbox API Event Handler thread err = server.Run() if err != nil { log.Error("Failed to start Sandbox API Service") run = false return } // Start Sandbox API REST API Server router := server.NewRouter() methods := handlers.AllowedMethods([]string{"OPTIONS", "DELETE", "GET", "HEAD", "POST", "PUT"}) header := handlers.AllowedHeaders([]string{"content-type"}) log.Fatal(http.ListenAndServe(":80", handlers.CORS(methods, header)(router))) run = false }() router := sw.NewRouter() go func() { // Initialize Metrics Endpoint http.Handle("/metrics", promhttp.Handler()) log.Fatal(http.ListenAndServe(":9000", nil)) run = false }() log.Fatal(http.ListenAndServe(":8080", router)) count := 0 for { if !run { _ = server.Stop() log.Info("Ran for ", count, " seconds") break } time.Sleep(time.Second) count++ } } No newline at end of file Loading
go-apps/meep-sandbox-api/main.go +91 −26 Original line number Diff line number Diff line /* * MEC Sandbox API * Copyright (c) 2022 The AdvantEDGE Authors * * The MEC Sandbox API described using OpenAPI * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * API version: 0.0.3 * Contact: cti_support@etsi.org * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package main import ( "log" "net/http" "os" "os/signal" "syscall" "time" // WARNING! // Change this to a fully-qualified import path // once you place this file into your project. // For example, // // sw "github.com/myname/myrepo/go" // sw "./go" server "github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-rnis/server" log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/gorilla/handlers" ) func init() { // Log as JSON instead of the default ASCII formatter. log.MeepJSONLogInit("meep-sandbox-api") } func main() { log.Printf("Server started") log.Info(os.Args) log.Info("Starting Sandbox API Service") run := true go func() { sigchan := make(chan os.Signal, 10) signal.Notify(sigchan, syscall.SIGINT, syscall.SIGTERM) <-sigchan log.Info("Program killed !") // do last actions and wait for all write operations to end run = false }() go func() { // Initialize Sandbox API err := server.Init() if err != nil { log.Error("Failed to initialize Sanddbox API Service") run = false return } // Start Sandbox API Event Handler thread err = server.Run() if err != nil { log.Error("Failed to start Sandbox API Service") run = false return } // Start Sandbox API REST API Server router := server.NewRouter() methods := handlers.AllowedMethods([]string{"OPTIONS", "DELETE", "GET", "HEAD", "POST", "PUT"}) header := handlers.AllowedHeaders([]string{"content-type"}) log.Fatal(http.ListenAndServe(":80", handlers.CORS(methods, header)(router))) run = false }() router := sw.NewRouter() go func() { // Initialize Metrics Endpoint http.Handle("/metrics", promhttp.Handler()) log.Fatal(http.ListenAndServe(":9000", nil)) run = false }() log.Fatal(http.ListenAndServe(":8080", router)) count := 0 for { if !run { _ = server.Stop() log.Info("Ran for ", count, " seconds") break } time.Sleep(time.Second) count++ } } No newline at end of file