Skip to content

Instantly share code, notes, and snippets.

@Slach
Last active February 8, 2018 14:04
Show Gist options
  • Save Slach/9ba4a19d95a52f133d61e7bcf6e52904 to your computer and use it in GitHub Desktop.
Save Slach/9ba4a19d95a52f133d61e7bcf6e52904 to your computer and use it in GitHub Desktop.
Gramework static WTF
.vagrant
*.log

Steps to reproduce

Run following shell commands

git clone git@gist.github.com:9ba4a19d95a52f133d61e7bcf6e52904.git ./gramework_wtf
cd gramework_wtf
vagrant up --provision
vagrant ssh gramework_wtf
screen -d -m "bash -c 'cd /vagrant && sudo GOPATH=/home/ubuntu/go go run gramework_wtf.go'"
exit


Expected resulst

Worked

Actual resulst

"Cannot open requested path"

package main
import (
grameworklog "github.com/apex/log"
grameworklog_json "github.com/apex/log/handlers/json"
"github.com/gramework/gramework"
"github.com/rs/zerolog/log"
"os"
)
func initGramework() (web *gramework.App) {
web = gramework.New()
logger := &grameworklog.Logger{
Handler: grameworklog_json.New(os.Stderr),
}
logger.Level = grameworklog.DebugLevel
web.Logger = logger
return web
}
func defineStaticRoutes(web *gramework.App, anomaliesDir string) {
if err := web.Use(web.CORSMiddleware("*")); err != nil {
log.Fatal().Err(err).Msg("failed use web.CORSMiddleware")
}
web.UsePre(func(ctx *gramework.Context) error {
log.Debug().Str("anomaliesDir", anomaliesDir).
Msgf("%s URI=%s", ctx.Method(), ctx.Request.URI().String())
return nil
})
staticHandler := web.ServeDirNoCacheCustom(anomaliesDir, 0, false, true, []string{})
web.GET("/anomalies/*any", staticHandler)
}
func main() {
web := initGramework()
defineStaticRoutes(web, "./")
if err := web.ListenAndServe("0.0.0.0:80"); err != nil {
log.Fatal().Err(err).Msg("listen socket initialization error")
}
}
<h1>Worked</h1>
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.box_check_update = false
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "256"
vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end
config.vm.define :gramework_wtf do |gramework_wtf|
gramework_wtf.vm.synced_folder "./", "/home/ubuntu/go/src/gist.github.com/9ba4a19d95a52f133d61e7bcf6e52904"
gramework_wtf.vm.host_name = "local-gramework-wtf-clickhouse-pro"
gramework_wtf.vm.network "private_network", ip: "172.16.88.88"
gramework_wtf.vm.network "forwarded_port", guest: 8666, host: 8666
gramework_wtf.vm.provision "shell", inline: <<-SHELL
set -xeuo pipefail
export DEBIAN_FRONTEND=noninteractive
export GOPATH=/home/ubuntu/go
apt-get update
apt-get install -y apt-transport-https software-properties-common
# gophers
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 136221EE520DDFAF0A905689B9316A7BC7917B12
add-apt-repository ppa:gophers/archive
apt-get update
apt-get install -y golang-1.9
ln -nvsf /usr/lib/go-1.9/bin/go /bin/go
ln -nvsf /usr/lib/go-1.9/bin/gofmt /bin/gofmt
mkdir -p /home/ubuntu/go/bin
bash -c "cd /home/ubuntu/go/src/gist.github.com/9ba4a19d95a52f133d61e7bcf6e52904 && go get -v ./..."
cd /vagrant && GOPATH=/home/ubuntu/go go run gramework_wtf.go
set +x
echo "gramework_wtf PROVISIONING DONE, use folloding scenario for reproduce bug"
echo "# vagrant ssh gramework_wtf"
echo "# sudo bash -c \\\"cd /vagrant && GOPATH=/home/ubuntu/go go run gramework_wtf.go \\\""
echo "Good Luck ;)"
SHELL
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment