From 838cf6526a615966dba8c14a95281cf3eb064523 Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Tue, 16 Jul 2019 23:31:25 +0200 Subject: [PATCH] go/svc: finish porting services to Bazel The following services were never ported: - cmc-proxy - arista-proxy - m6220-proxy - topo They now build. Change-Id: I0688bfe43cdff946e6662e21969ef539382c0e86 --- WORKSPACE | 133 +++++++++++++++++- go/proto/.gitignore | 1 - go/proto/BUILD.bazel | 8 -- go/proto/generate.go | 3 - go/svc/arista-proxy/BUILD.bazel | 16 --- go/svc/arista-proxy/proto/BUILD.bazel | 17 ++- go/svc/arista-proxy/{ => proto}/arista.proto | 2 +- go/svc/arista-proxy/proto/generate.go | 3 - go/svc/cmc-proxy/BUILD.bazel | 16 --- go/svc/cmc-proxy/proto/BUILD.bazel | 17 ++- go/svc/cmc-proxy/proto/generate.go | 3 - go/svc/cmc-proxy/{ => proto}/proxy.proto | 2 +- go/svc/m6220-proxy/BUILD.bazel | 18 +-- go/svc/m6220-proxy/main.go | 2 +- go/svc/m6220-proxy/proto/BUILD.bazel | 17 ++- go/svc/m6220-proxy/proto/generate.go | 3 - go/svc/m6220-proxy/{ => proto}/proxy.proto | 1 + go/svc/topo/BUILD.bazel | 19 +-- go/svc/topo/assets/BUILD | 17 +++ go/svc/topo/main.go | 3 +- go/svc/topo/proto/BUILD.bazel | 16 ++- go/svc/topo/proto/generate.go | 3 - .../topo/{config.proto => proto/topo.proto} | 3 +- go/svc/topo/service.go | 23 ++- go/svc/topo/state/BUILD.bazel | 2 +- go/svc/topo/state/state.go | 6 +- 26 files changed, 244 insertions(+), 110 deletions(-) delete mode 100644 go/proto/.gitignore delete mode 100644 go/proto/BUILD.bazel delete mode 100644 go/proto/generate.go rename go/svc/arista-proxy/{ => proto}/arista.proto (90%) delete mode 100644 go/svc/arista-proxy/proto/generate.go delete mode 100644 go/svc/cmc-proxy/proto/generate.go rename go/svc/cmc-proxy/{ => proto}/proxy.proto (76%) delete mode 100644 go/svc/m6220-proxy/proto/generate.go rename go/svc/m6220-proxy/{ => proto}/proxy.proto (78%) create mode 100644 go/svc/topo/assets/BUILD delete mode 100644 go/svc/topo/proto/generate.go rename go/svc/topo/{config.proto => proto/topo.proto} (88%) diff --git a/WORKSPACE b/WORKSPACE index 0b764bb1..aee5f12f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -104,7 +104,6 @@ http_file( downloaded_file_path = "factorio.tar.xz", ) - # Go rules http_archive( @@ -219,3 +218,135 @@ go_repository( commit = "72a7793efd38728796273861bb27d590cc33d9d4", importpath = "github.com/sebastiaanklippert/go-wkhtmltopdf", ) + +go_repository( + name = "com_github_ziutek_telnet", + commit = "c3b780dc415b28894076b4ec975ea3ea69e3980f", + importpath = "github.com/ziutek/telnet", +) + +go_repository( + name = "com_github_ybbus_jsonrpc", + commit = "94088458a1e880219bd312fc0ccb8548993ebf80", + importpath = "github.com/ybbus/jsonrpc", +) + +go_repository( + name = "com_github_digitalocean_go_netbox", + commit = "29433ec527e78486ea0a5758817ab672d977f90e", + importpath = "github.com/digitalocean/go-netbox", +) + +go_repository( + name = "com_github_cenkalti_backoff", + commit = "4b4cebaf850ec58f1bb1fec5bdebdf8501c2bc3f", + importpath = "github.com/cenkalti/backoff", +) + +go_repository( + name = "ml_vbom_util", + commit = "efcd4e0f97874370259c7d93e12aad57911dea81", + importpath = "vbom.ml/util", +) + +go_repository( + name = "com_github_go_openapi_strfmt", + commit = "6faa644e1cdafc07f7b38eb06c1af5f92128f289", + importpath = "github.com/go-openapi/strfmt", +) + +go_repository( + name = "com_github_go_openapi_swag", + commit = "de649ffb9e02183a414820c5b1b4582f7b009792", + importpath = "github.com/go-openapi/swag", +) + +go_repository( + name = "com_github_go_openapi_errors", + commit = "9b273e805998abc751853b4e1574d66e5df888b4", + importpath = "github.com/go-openapi/errors", +) + +go_repository( + name = "com_github_go_openapi_runtime", + commit = "58872d9a7ca5f28beff9effa19ac4c17d3e42cd3", + importpath = "github.com/go-openapi/runtime", +) + +go_repository( + name = "com_github_go_openapi_validate", + commit = "6405b9095e4c96aabb45856da08a9323d50d9336", + importpath = "github.com/go-openapi/validate", +) + +go_repository( + name = "com_github_mitchellh_mapstructure", + commit = "3536a929edddb9a5b34bd6861dc4a9647cb459fe", + importpath = "github.com/mitchellh/mapstructure", +) + +go_repository( + name = "org_mongodb_go_mongo_driver", + commit = "9ec4480161a76f5267d56fc836b7f6d357fd9209", + importpath = "go.mongodb.org/mongo-driver", +) + +go_repository( + name = "in_gopkg_yaml_v2", + commit = "51d6538a90f86fe93ac480b35f37b2be17fef232", + importpath = "gopkg.in/yaml.v2", +) + +go_repository( + name = "com_github_asaskevich_govalidator", + commit = "f61b66f89f4a311bef65f13e575bcf1a2ffadda6", + importpath = "github.com/asaskevich/govalidator", +) + +go_repository( + name = "com_github_go_openapi_spec", + commit = "bdfd7e07daecc404d77868a88b2364d0aed0ee5a", + importpath = "github.com/go-openapi/spec", +) + +go_repository( + name = "com_github_mailru_easyjson", + commit = "b2ccc519800e761ac8000b95e5d57c80a897ff9e", + importpath = "github.com/mailru/easyjson", +) + +go_repository( + name = "com_github_go_openapi_analysis", + commit = "48f4521ad6c3df9d6192efb04287c4a411e1f806", + importpath = "github.com/go-openapi/analysis", +) + +go_repository( + name = "com_github_go_openapi_jsonpointer", + commit = "a105a905c5e6ad147f08504784917f3e178e0ba5", + importpath = "github.com/go-openapi/jsonpointer", +) + +go_repository( + name = "com_github_go_openapi_loads", + commit = "8548893a17237be4a5b2f74773f23002f4179bbe", + importpath = "github.com/go-openapi/loads", +) + +go_repository( + name = "com_github_go_openapi_jsonreference", + commit = "2903bfd4bfbaf188694f1edf731f2725a8fa344f", + importpath = "github.com/go-openapi/jsonreference", +) + +go_repository( + name = "com_github_puerkitobio_purell", + commit = "44968752391892e1b0d0b821ee79e9a85fa13049", + importpath = "github.com/PuerkitoBio/purell", +) + +go_repository( + name = "com_github_puerkitobio_urlesc", + commit = "de5bf2ad457846296e2031421a34e2568e304e35", + importpath = "github.com/PuerkitoBio/urlesc", +) diff --git a/go/proto/.gitignore b/go/proto/.gitignore deleted file mode 100644 index 44edf7ff..00000000 --- a/go/proto/.gitignore +++ /dev/null @@ -1 +0,0 @@ -infra diff --git a/go/proto/BUILD.bazel b/go/proto/BUILD.bazel deleted file mode 100644 index d2f24fbb..00000000 --- a/go/proto/BUILD.bazel +++ /dev/null @@ -1,8 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["generate.go"], - importpath = "code.hackerspace.pl/hscloud/go/proto", - visibility = ["//visibility:public"], -) diff --git a/go/proto/generate.go b/go/proto/generate.go deleted file mode 100644 index 2f009cad..00000000 --- a/go/proto/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -//go:generate protoc -I../../proto ../../proto/infra/control.proto --go_out=plugins=grpc:. - -package proto diff --git a/go/svc/arista-proxy/BUILD.bazel b/go/svc/arista-proxy/BUILD.bazel index 0d88e087..56996077 100644 --- a/go/svc/arista-proxy/BUILD.bazel +++ b/go/svc/arista-proxy/BUILD.bazel @@ -1,19 +1,4 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") - -proto_library( - name = "proto_proto", - srcs = ["arista.proto"], - visibility = ["//visibility:public"], -) - -go_proto_library( - name = "proto_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "code.hackerspace.pl/hscloud/go/svc/arista-proxy", - proto = ":proto_proto", - visibility = ["//visibility:public"], -) go_library( name = "go_default_library", @@ -21,7 +6,6 @@ go_library( "main.go", "service.go", ], - embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/arista-proxy", visibility = ["//visibility:private"], deps = [ diff --git a/go/svc/arista-proxy/proto/BUILD.bazel b/go/svc/arista-proxy/proto/BUILD.bazel index ae4ee9b2..af116e39 100644 --- a/go/svc/arista-proxy/proto/BUILD.bazel +++ b/go/svc/arista-proxy/proto/BUILD.bazel @@ -1,8 +1,23 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") + +proto_library( + name = "proto_proto", + srcs = ["arista.proto"], + visibility = ["//visibility:public"], +) + +go_proto_library( + name = "proto_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "code.hackerspace.pl/hscloud/go/svc/arista-proxy/proto", + proto = ":proto_proto", + visibility = ["//visibility:public"], +) go_library( name = "go_default_library", - srcs = ["generate.go"], + embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/arista-proxy/proto", visibility = ["//visibility:public"], ) diff --git a/go/svc/arista-proxy/arista.proto b/go/svc/arista-proxy/proto/arista.proto similarity index 90% rename from go/svc/arista-proxy/arista.proto rename to go/svc/arista-proxy/proto/arista.proto index d6bf105e..d306b437 100644 --- a/go/svc/arista-proxy/arista.proto +++ b/go/svc/arista-proxy/proto/arista.proto @@ -1,6 +1,6 @@ syntax = "proto3"; - package proto; +option go_package = "code.hackerspace.pl/hscloud/go/svc/arista-proxy/proto"; message ShowVersionRequest { }; diff --git a/go/svc/arista-proxy/proto/generate.go b/go/svc/arista-proxy/proto/generate.go deleted file mode 100644 index 92f2720a..00000000 --- a/go/svc/arista-proxy/proto/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -//go:generate protoc -I.. ../arista.proto --go_out=plugins=grpc:. - -package proto diff --git a/go/svc/cmc-proxy/BUILD.bazel b/go/svc/cmc-proxy/BUILD.bazel index a142dc97..56f3495d 100644 --- a/go/svc/cmc-proxy/BUILD.bazel +++ b/go/svc/cmc-proxy/BUILD.bazel @@ -1,19 +1,4 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") - -proto_library( - name = "proto_proto", - srcs = ["proxy.proto"], - visibility = ["//visibility:public"], -) - -go_proto_library( - name = "proto_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "code.hackerspace.pl/hscloud/go/svc/cmc-proxy", - proto = ":proto_proto", - visibility = ["//visibility:public"], -) go_library( name = "go_default_library", @@ -21,7 +6,6 @@ go_library( "client.go", "main.go", ], - embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/cmc-proxy", visibility = ["//visibility:private"], deps = [ diff --git a/go/svc/cmc-proxy/proto/BUILD.bazel b/go/svc/cmc-proxy/proto/BUILD.bazel index e9249061..605570cc 100644 --- a/go/svc/cmc-proxy/proto/BUILD.bazel +++ b/go/svc/cmc-proxy/proto/BUILD.bazel @@ -1,8 +1,23 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") + +proto_library( + name = "proto_proto", + srcs = ["proxy.proto"], + visibility = ["//visibility:public"], +) + +go_proto_library( + name = "proto_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "code.hackerspace.pl/hscloud/go/svc/cmc-proxy/proto", + proto = ":proto_proto", + visibility = ["//visibility:public"], +) go_library( name = "go_default_library", - srcs = ["generate.go"], + embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/cmc-proxy/proto", visibility = ["//visibility:public"], ) diff --git a/go/svc/cmc-proxy/proto/generate.go b/go/svc/cmc-proxy/proto/generate.go deleted file mode 100644 index fc6193de..00000000 --- a/go/svc/cmc-proxy/proto/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -//go:generate protoc -I.. ../proxy.proto --go_out=plugins=grpc:. - -package proto diff --git a/go/svc/cmc-proxy/proxy.proto b/go/svc/cmc-proxy/proto/proxy.proto similarity index 76% rename from go/svc/cmc-proxy/proxy.proto rename to go/svc/cmc-proxy/proto/proxy.proto index f34b9050..a2316934 100644 --- a/go/svc/cmc-proxy/proxy.proto +++ b/go/svc/cmc-proxy/proto/proxy.proto @@ -1,6 +1,6 @@ syntax = "proto3"; - package proto; +option go_package = "code.hackerspace.pl/hscloud/go/svc/cmc-proxy/proto"; message GetKVMDataRequest { int64 blade_num = 1; diff --git a/go/svc/m6220-proxy/BUILD.bazel b/go/svc/m6220-proxy/BUILD.bazel index ee500a95..90bfb1e3 100644 --- a/go/svc/m6220-proxy/BUILD.bazel +++ b/go/svc/m6220-proxy/BUILD.bazel @@ -1,19 +1,4 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") - -proto_library( - name = "proto_proto", - srcs = ["proxy.proto"], - visibility = ["//visibility:public"], -) - -go_proto_library( - name = "proto_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "code.hackerspace.pl/hscloud/go/svc/m6220-proxy", - proto = ":proto_proto", - visibility = ["//visibility:public"], -) go_library( name = "go_default_library", @@ -21,13 +6,12 @@ go_library( "cli.go", "main.go", ], - embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/m6220-proxy", visibility = ["//visibility:private"], deps = [ "//go/mirko:go_default_library", - "//go/proto/infra:go_default_library", "//go/svc/m6220-proxy/proto:go_default_library", + "//proto/infra:go_default_library", "@com_github_golang_glog//:go_default_library", "@com_github_ziutek_telnet//:go_default_library", "@org_golang_google_grpc//codes:go_default_library", diff --git a/go/svc/m6220-proxy/main.go b/go/svc/m6220-proxy/main.go index 54ce4287..a2ca4dbf 100644 --- a/go/svc/m6220-proxy/main.go +++ b/go/svc/m6220-proxy/main.go @@ -14,8 +14,8 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - ipb "code.hackerspace.pl/hscloud/go/proto/infra" pb "code.hackerspace.pl/hscloud/go/svc/m6220-proxy/proto" + ipb "code.hackerspace.pl/hscloud/proto/infra" ) var ( diff --git a/go/svc/m6220-proxy/proto/BUILD.bazel b/go/svc/m6220-proxy/proto/BUILD.bazel index 5fb4facd..8cbed6be 100644 --- a/go/svc/m6220-proxy/proto/BUILD.bazel +++ b/go/svc/m6220-proxy/proto/BUILD.bazel @@ -1,8 +1,23 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") + +proto_library( + name = "proto_proto", + srcs = ["proxy.proto"], + visibility = ["//visibility:public"], +) + +go_proto_library( + name = "proto_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "code.hackerspace.pl/hscloud/go/svc/m6220-proxy/proto", + proto = ":proto_proto", + visibility = ["//visibility:public"], +) go_library( name = "go_default_library", - srcs = ["generate.go"], + embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/m6220-proxy/proto", visibility = ["//visibility:public"], ) diff --git a/go/svc/m6220-proxy/proto/generate.go b/go/svc/m6220-proxy/proto/generate.go deleted file mode 100644 index fc6193de..00000000 --- a/go/svc/m6220-proxy/proto/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -//go:generate protoc -I.. ../proxy.proto --go_out=plugins=grpc:. - -package proto diff --git a/go/svc/m6220-proxy/proxy.proto b/go/svc/m6220-proxy/proto/proxy.proto similarity index 78% rename from go/svc/m6220-proxy/proxy.proto rename to go/svc/m6220-proxy/proto/proxy.proto index d35a2c30..bc840ad6 100644 --- a/go/svc/m6220-proxy/proxy.proto +++ b/go/svc/m6220-proxy/proto/proxy.proto @@ -1,5 +1,6 @@ syntax = "proto3"; package proto; +option go_package = "code.hackerspace.pl/hscloud/go/svc/m6220-proxy/proto"; message RunCommandRequest { string command = 1; diff --git a/go/svc/topo/BUILD.bazel b/go/svc/topo/BUILD.bazel index 5e4abffc..93c92a5f 100644 --- a/go/svc/topo/BUILD.bazel +++ b/go/svc/topo/BUILD.bazel @@ -1,18 +1,4 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") - -proto_library( - name = "proto_proto", - srcs = ["config.proto"], - visibility = ["//visibility:public"], -) - -go_proto_library( - name = "proto_go_proto", - importpath = "code.hackerspace.pl/hscloud/go/svc/topo", - proto = ":proto_proto", - visibility = ["//visibility:public"], -) go_library( name = "go_default_library", @@ -20,19 +6,18 @@ go_library( "main.go", "service.go", ], - embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/topo", visibility = ["//visibility:private"], deps = [ "//go/mirko:go_default_library", - "//go/proto/infra:go_default_library", "//go/statusz:go_default_library", + "//go/svc/topo/assets:go_default_library", "//go/svc/topo/graph:go_default_library", "//go/svc/topo/proto:go_default_library", "//go/svc/topo/state:go_default_library", + "//proto/infra:go_default_library", "@com_github_digitalocean_go_netbox//netbox:go_default_library", "@com_github_digitalocean_go_netbox//netbox/client:go_default_library", - "@com_github_gobuffalo_packr//:go_default_library", "@com_github_golang_glog//:go_default_library", "@com_github_golang_protobuf//proto:go_default_library", "@ml_vbom_util//sortorder:go_default_library", diff --git a/go/svc/topo/assets/BUILD b/go/svc/topo/assets/BUILD new file mode 100644 index 00000000..f8d186ba --- /dev/null +++ b/go/svc/topo/assets/BUILD @@ -0,0 +1,17 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//extras:embed_data.bzl", "go_embed_data") + +go_embed_data( + name = "assets", + srcs = glob(["*.js"]), + package = "assets", + flatten = True, +) + +# keep +go_library( + name = "go_default_library", + srcs = [":assets"], + importpath = "code.hackerspace.pl/hscloud/go/svc/topo/assets", + visibility = ["//go/svc/topo:__pkg__"], +) diff --git a/go/svc/topo/main.go b/go/svc/topo/main.go index 4affd57f..4efe8783 100644 --- a/go/svc/topo/main.go +++ b/go/svc/topo/main.go @@ -13,9 +13,8 @@ import ( "github.com/golang/glog" "github.com/golang/protobuf/proto" - pb "code.hackerspace.pl/hscloud/go/svc/topo/proto" - "code.hackerspace.pl/hscloud/go/svc/topo/graph" + pb "code.hackerspace.pl/hscloud/go/svc/topo/proto" "code.hackerspace.pl/hscloud/go/svc/topo/state" ) diff --git a/go/svc/topo/proto/BUILD.bazel b/go/svc/topo/proto/BUILD.bazel index 01007dd9..b56fa572 100644 --- a/go/svc/topo/proto/BUILD.bazel +++ b/go/svc/topo/proto/BUILD.bazel @@ -1,8 +1,22 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") + +proto_library( + name = "proto_proto", + srcs = ["topo.proto"], + visibility = ["//visibility:public"], +) + +go_proto_library( + name = "proto_go_proto", + importpath = "code.hackerspace.pl/hscloud/go/svc/topo/proto", + proto = ":proto_proto", + visibility = ["//visibility:public"], +) go_library( name = "go_default_library", - srcs = ["generate.go"], + embed = [":proto_go_proto"], importpath = "code.hackerspace.pl/hscloud/go/svc/topo/proto", visibility = ["//visibility:public"], ) diff --git a/go/svc/topo/proto/generate.go b/go/svc/topo/proto/generate.go deleted file mode 100644 index f760a610..00000000 --- a/go/svc/topo/proto/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -//go:generate protoc -I.. ../config.proto --go_out=plugins=grpc:. - -package proto diff --git a/go/svc/topo/config.proto b/go/svc/topo/proto/topo.proto similarity index 88% rename from go/svc/topo/config.proto rename to go/svc/topo/proto/topo.proto index 33aadbeb..3f6e4044 100644 --- a/go/svc/topo/config.proto +++ b/go/svc/topo/proto/topo.proto @@ -1,6 +1,7 @@ syntax = "proto3"; -package proto; +package topo; +option go_package = "code.hackerspace.pl/hscloud/go/svc/topo/proto"; message Config { repeated Switch switch = 1; diff --git a/go/svc/topo/service.go b/go/svc/topo/service.go index 571eb972..fbbee921 100644 --- a/go/svc/topo/service.go +++ b/go/svc/topo/service.go @@ -7,13 +7,15 @@ import ( "sort" "strings" + "vbom.ml/util/sortorder" + "code.hackerspace.pl/hscloud/go/mirko" - ipb "code.hackerspace.pl/hscloud/go/proto/infra" "code.hackerspace.pl/hscloud/go/statusz" + ipb "code.hackerspace.pl/hscloud/proto/infra" + + "code.hackerspace.pl/hscloud/go/svc/topo/assets" "code.hackerspace.pl/hscloud/go/svc/topo/graph" "code.hackerspace.pl/hscloud/go/svc/topo/state" - "github.com/gobuffalo/packr" - "vbom.ml/util/sortorder" ) type Service struct { @@ -103,8 +105,19 @@ const switchportsFragment = ` ` func (s *Service) Setup(m *mirko.Mirko) { - assets := packr.NewBox("./assets") - m.HTTPMux().Handle("/assets/", http.StripPrefix("/assets/", http.FileServer(assets))) + m.HTTPMux().Handle("/assets/", http.StripPrefix("/assets/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + data, ok := assets.Data[r.RequestURI] + if !ok { + http.NotFound(w, r) + return + } + + if strings.HasSuffix(r.RequestURI, ".js") { + w.Header().Set("Content-Type", "text/javascript") + } + + w.Write(data) + }))) m.HTTPMux().HandleFunc("/debug/graphviz", s.httpHandleGraphviz) statusz.AddStatusPart("Switch Ports", switchportsFragment, s.statusHandleSwitchports) statusz.AddStatusPart("Topology", topologyFragment, func(ctx context.Context) interface{} { diff --git a/go/svc/topo/state/BUILD.bazel b/go/svc/topo/state/BUILD.bazel index 81985d2c..680e0877 100644 --- a/go/svc/topo/state/BUILD.bazel +++ b/go/svc/topo/state/BUILD.bazel @@ -7,8 +7,8 @@ go_library( visibility = ["//visibility:public"], deps = [ "//go/pki:go_default_library", - "//go/proto/infra:go_default_library", "//go/svc/topo/proto:go_default_library", + "//proto/infra:go_default_library", "@org_golang_google_grpc//:go_default_library", ], ) diff --git a/go/svc/topo/state/state.go b/go/svc/topo/state/state.go index 232f9b0d..08403e70 100644 --- a/go/svc/topo/state/state.go +++ b/go/svc/topo/state/state.go @@ -7,10 +7,10 @@ import ( "google.golang.org/grpc" - ipb "code.hackerspace.pl/hscloud/go/proto/infra" - pb "code.hackerspace.pl/hscloud/go/svc/topo/proto" - "code.hackerspace.pl/hscloud/go/pki" + ipb "code.hackerspace.pl/hscloud/proto/infra" + + pb "code.hackerspace.pl/hscloud/go/svc/topo/proto" ) type SwitchportState struct {