Skip to content

Commit

Permalink
Merge pull request #299 from Red-GV/hotel-reservation-mongo-db
Browse files Browse the repository at this point in the history
refactor: replace gopkg.in/mgo.v2 with go.mongodb.org/mongo-driver
  • Loading branch information
cdelimitrou authored Nov 29, 2023
2 parents bcaeae4 + 347e0fe commit 8369a69
Show file tree
Hide file tree
Showing 491 changed files with 96,047 additions and 18,121 deletions.
28 changes: 12 additions & 16 deletions hotelReservation/cmd/frontend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,39 +32,35 @@ func main() {
var result map[string]string
json.Unmarshal([]byte(byteValue), &result)

serv_port, _ := strconv.Atoi(result["FrontendPort"])
serv_ip := result["FrontendIP"]
knative_dns := result["KnativeDomainName"]
servPort, _ := strconv.Atoi(result["FrontendPort"])
servIP := result["FrontendIP"]
knativeDNS := result["KnativeDomainName"]

log.Info().Msgf("Read target port: %v", serv_port)
log.Info().Msgf("Read consul address: %v", result["consulAddress"])
log.Info().Msgf("Read jaeger address: %v", result["jaegerAddress"])
var (
// port = flag.Int("port", 5000, "The server port")
jaegeraddr = flag.String("jaegeraddr", result["jaegerAddress"], "Jaeger address")
consuladdr = flag.String("consuladdr", result["consulAddress"], "Consul address")
jaegerAddr = flag.String("jaegeraddr", result["jaegerAddress"], "Jaeger address")
consulAddr = flag.String("consuladdr", result["consulAddress"], "Consul address")
)
flag.Parse()
log.Info().Msgf("Initializing jaeger agent [service name: %v | host: %v]...", "frontend", *jaegeraddr)
tracer, err := tracing.Init("frontend", *jaegeraddr)
log.Info().Msgf("Initializing jaeger agent [service name: %v | host: %v]...", "frontend", *jaegerAddr)
tracer, err := tracing.Init("frontend", *jaegerAddr)
if err != nil {
log.Panic().Msgf("Got error while initializing jaeger agent: %v", err)
}
log.Info().Msg("Jaeger agent initialized")

log.Info().Msgf("Initializing consul agent [host: %v]...", *consuladdr)
registry, err := registry.NewClient(*consuladdr)
log.Info().Msgf("Initializing consul agent [host: %v]...", *consulAddr)
registry, err := registry.NewClient(*consulAddr)
if err != nil {
log.Panic().Msgf("Got error while initializing consul agent: %v", err)
}
log.Info().Msg("Consul agent initialized")

srv := &frontend.Server{
KnativeDns: knative_dns,
KnativeDns: knativeDNS,
Registry: registry,
Tracer: tracer,
IpAddr: serv_ip,
Port: serv_port,
IpAddr: servIP,
Port: servPort,
}

log.Info().Msg("Starting server...")
Expand Down
113 changes: 29 additions & 84 deletions hotelReservation/cmd/geo/db.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package main

import (
"context"
"fmt"
"strconv"

"github.com/rs/zerolog/log"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)

type point struct {
Expand All @@ -14,103 +16,46 @@ type point struct {
Plon float64 `bson:"lon"`
}

func initializeDatabase(url string) *mgo.Session {
session, err := mgo.Dial(url)
if err != nil {
log.Panic().Msg(err.Error())
}
// defer session.Close()
log.Info().Msg("New session successfull...")

func initializeDatabase(url string) (*mongo.Client, func()) {
log.Info().Msg("Generating test data...")
c := session.DB("geo-db").C("geo")
count, err := c.Find(&bson.M{"hotelId": "1"}).Count()
if err != nil {
log.Fatal().Msg(err.Error())
}
if count == 0 {
err = c.Insert(&point{"1", 37.7867, -122.4112})
if err != nil {
log.Fatal().Msg(err.Error())
}
}

count, err = c.Find(&bson.M{"hotelId": "2"}).Count()
if err != nil {
log.Fatal().Msg(err.Error())
}
if count == 0 {
err = c.Insert(&point{"2", 37.7854, -122.4005})
if err != nil {
log.Fatal().Msg(err.Error())
}
newPoints := []interface{}{
point{"1", 37.7867, -122.4112},
point{"2", 37.7854, -122.4005},
point{"3", 37.7854, -122.4071},
point{"4", 37.7936, -122.3930},
point{"5", 37.7831, -122.4181},
point{"6", 37.7863, -122.4015},
}

count, err = c.Find(&bson.M{"hotelId": "3"}).Count()
if err != nil {
log.Fatal().Msg(err.Error())
}
if count == 0 {
err = c.Insert(&point{"3", 37.7854, -122.4071})
if err != nil {
log.Fatal().Msg(err.Error())
}
}
for i := 7; i <= 80; i++ {
hotelID := strconv.Itoa(i)
lat := 37.7835 + float64(i)/500.0*3
lon := -122.41 + float64(i)/500.0*4

count, err = c.Find(&bson.M{"hotelId": "4"}).Count()
if err != nil {
log.Fatal().Msg(err.Error())
}
if count == 0 {
err = c.Insert(&point{"4", 37.7936, -122.3930})
if err != nil {
log.Fatal().Msg(err.Error())
}
newPoints = append(newPoints, point{hotelID, lat, lon})
}

count, err = c.Find(&bson.M{"hotelId": "5"}).Count()
uri := fmt.Sprintf("mongodb://%s", url)
log.Info().Msgf("Attempting connection to %v", uri)

opts := options.Client().ApplyURI(uri)
client, err := mongo.Connect(context.TODO(), opts)
if err != nil {
log.Fatal().Msg(err.Error())
}
if count == 0 {
err = c.Insert(&point{"5", 37.7831, -122.4181})
if err != nil {
log.Fatal().Msg(err.Error())
}
log.Panic().Msg(err.Error())
}
log.Info().Msg("Successfully connected to MongoDB")

count, err = c.Find(&bson.M{"hotelId": "6"}).Count()
collection := client.Database("geo-db").Collection("geo")
_, err = collection.InsertMany(context.TODO(), newPoints)
if err != nil {
log.Fatal().Msg(err.Error())
}
if count == 0 {
err = c.Insert(&point{"6", 37.7863, -122.4015})
if err != nil {
log.Fatal().Msg(err.Error())
}
}
log.Info().Msg("Successfully inserted test data into geo DB")

// add up to 80 hotels
for i := 7; i <= 80; i++ {
hotel_id := strconv.Itoa(i)
count, err = c.Find(&bson.M{"hotelId": hotel_id}).Count()
if err != nil {
return client, func() {
if err := client.Disconnect(context.TODO()); err != nil {
log.Fatal().Msg(err.Error())
}
lat := 37.7835 + float64(i)/500.0*3
lon := -122.41 + float64(i)/500.0*4
if count == 0 {
err = c.Insert(&point{hotel_id, lat, lon})
if err != nil {
log.Fatal().Msg(err.Error())
}
}
}

err = c.EnsureIndexKey("hotelId")
if err != nil {
log.Fatal().Msg(err.Error())
}

return session
}
38 changes: 15 additions & 23 deletions hotelReservation/cmd/geo/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,47 +33,39 @@ func main() {
var result map[string]string
json.Unmarshal([]byte(byteValue), &result)

log.Info().Msgf("Read database URL: %v", result["GeoMongoAddress"])
log.Info().Msg("Initializing DB connection...")
mongo_session := initializeDatabase(result["GeoMongoAddress"])
defer mongo_session.Close()
log.Info().Msg("Successfull")
mongoClient, mongoClose := initializeDatabase(result["GeoMongoAddress"])
defer mongoClose()

serv_port, _ := strconv.Atoi(result["GeoPort"])
serv_ip := result["GeoIP"]
servPort, _ := strconv.Atoi(result["GeoPort"])
servIP := result["GeoIP"]

log.Info().Msgf("Read target port: %v", serv_port)
log.Info().Msgf("Read consul address: %v", result["consulAddress"])
log.Info().Msgf("Read jaeger address: %v", result["jaegerAddress"])
var (
// port = flag.Int("port", 8083, "Server port")
jaegeraddr = flag.String("jaegeraddr", result["jaegerAddress"], "Jaeger address")
consuladdr = flag.String("consuladdr", result["consulAddress"], "Consul address")
jaegerAddr = flag.String("jaegeraddr", result["jaegerAddress"], "Jaeger address")
consulAddr = flag.String("consuladdr", result["consulAddress"], "Consul address")
)
flag.Parse()

log.Info().Msgf("Initializing jaeger agent [service name: %v | host: %v]...", "geo", *jaegeraddr)

tracer, err := tracing.Init("geo", *jaegeraddr)
log.Info().Msgf("Initializing jaeger agent [service name: %v | host: %v]...", "geo", *jaegerAddr)
tracer, err := tracing.Init("geo", *jaegerAddr)
if err != nil {
log.Panic().Msgf("Got error while initializing jaeger agent: %v", err)
}
log.Info().Msg("Jaeger agent initialized")

log.Info().Msgf("Initializing consul agent [host: %v]...", *consuladdr)
registry, err := registry.NewClient(*consuladdr)
log.Info().Msgf("Initializing consul agent [host: %v]...", *consulAddr)
registry, err := registry.NewClient(*consulAddr)
if err != nil {
log.Panic().Msgf("Got error while initializing consul agent: %v", err)
}
log.Info().Msg("Consul agent initialized")

srv := &geo.Server{
// Port: *port,
Port: serv_port,
IpAddr: serv_ip,
Tracer: tracer,
Registry: registry,
MongoSession: mongo_session,
Port: servPort,
IpAddr: servIP,
Tracer: tracer,
Registry: registry,
MongoClient: mongoClient,
}

log.Info().Msg("Starting server...")
Expand Down
Loading

0 comments on commit 8369a69

Please sign in to comment.