9 image "bpa-restapi-agent/internal/app"
10 minio "bpa-restapi-agent/internal/storage"
12 "github.com/gorilla/mux"
15 // NewRouter creates a router that registers the various urls that are supported
16 func NewRouter(binaryClient image.ImageManager,
17 containerClient image.ImageManager,
18 osClient image.ImageManager) *mux.Router {
20 router := mux.NewRouter()
22 minioInfo, err := minio.Initialize()
24 log.Println("Error while initialize minio client: %s", err)
27 //Setup the image uploaad api handler here
28 if binaryClient == nil {
29 binaryClient = image.NewBinaryImageClient()
31 binaryHandler := imageHandler{client: binaryClient, minioI: minioInfo, storeName: "binary"}
32 imgRouter := router.PathPrefix("/v1").Subrouter()
33 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/binary_images", binaryHandler.createHandler).Methods("POST")
34 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/binary_images/{imgname}", binaryHandler.getHandler).Methods("GET")
35 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/binary_images/{imgname}", binaryHandler.deleteHandler).Methods("DELETE")
36 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/binary_images/{imgname}", binaryHandler.updateHandler).Methods("PUT")
37 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/binary_images/{imgname}", binaryHandler.patchHandler).Methods("PATCH")
39 //Setup the _image upload api handler here
40 if containerClient == nil {
41 containerClient = image.NewContainerImageClient()
43 containerHandler := imageHandler{client: containerClient, minioI: minioInfo, storeName: "container"}
44 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/container_images", containerHandler.createHandler).Methods("POST")
45 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/container_images/{imgname}", containerHandler.getHandler).Methods("GET")
46 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/container_images/{imgname}", containerHandler.deleteHandler).Methods("DELETE")
47 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/container_images/{imgname}", containerHandler.updateHandler).Methods("PUT")
48 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/container_images/{imgname}", containerHandler.patchHandler).Methods("PATCH")
50 //Setup the os_image upload api handler here
52 osClient = image.NewOSImageClient()
54 osHandler := imageHandler{client: osClient, minioI: minioInfo, storeName: "operatingsystem"}
55 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/os_images", osHandler.createHandler).Methods("POST")
56 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/os_images/{imgname}", osHandler.getHandler).Methods("GET")
57 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/os_images/{imgname}", osHandler.deleteHandler).Methods("DELETE")
58 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/os_images/{imgname}", osHandler.updateHandler).Methods("PUT")
59 imgRouter.HandleFunc("/baremetalcluster/{owner}/{clustername}/os_images/{imgname}", osHandler.patchHandler).Methods("PATCH")