first two syscalls, now to start client
This commit is contained in:
parent
869999fc3e
commit
d7a1eb7e30
1 changed files with 42 additions and 1 deletions
|
|
@ -1,6 +1,10 @@
|
||||||
package kubelwagen
|
package kubelwagen
|
||||||
|
|
||||||
import "github.com/hanwen/go-fuse/fuse/pathfs"
|
import (
|
||||||
|
"github.com/hanwen/go-fuse/fuse"
|
||||||
|
"github.com/hanwen/go-fuse/fuse/pathfs"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
type WsFs struct {
|
type WsFs struct {
|
||||||
pathfs.FileSystem
|
pathfs.FileSystem
|
||||||
|
|
@ -33,3 +37,40 @@ func getChannel() chan Response {
|
||||||
func (fs *WsFs) String() string {
|
func (fs *WsFs) String() string {
|
||||||
return "kubelwagen"
|
return "kubelwagen"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (fs *WsFs) OpenDir(name string, context *fuse.Context) ([]fuse.DirEntry, fuse.Status) {
|
||||||
|
r := Request{
|
||||||
|
Method: MethodOpenDir,
|
||||||
|
Path: name,
|
||||||
|
}
|
||||||
|
c := getChannel()
|
||||||
|
fs.req <- RequestCallback{
|
||||||
|
message: r,
|
||||||
|
response: c,
|
||||||
|
}
|
||||||
|
resp, ok := <-c
|
||||||
|
if !ok {
|
||||||
|
logrus.Errorln("Response to request channel closed")
|
||||||
|
return fs.FileSystem.OpenDir(name, context)
|
||||||
|
}
|
||||||
|
return resp.Dirents, resp.Code
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *WsFs) GetAttr(name string, context *fuse.Context) (*fuse.Attr, fuse.Status) {
|
||||||
|
r := Request{
|
||||||
|
Method: MethodGetAttr,
|
||||||
|
Path: name,
|
||||||
|
}
|
||||||
|
c := getChannel()
|
||||||
|
fs.req <- RequestCallback{
|
||||||
|
message: r,
|
||||||
|
response: c,
|
||||||
|
}
|
||||||
|
resp, ok := <-c
|
||||||
|
if !ok {
|
||||||
|
logrus.Errorln("Response to request channel closed")
|
||||||
|
return fs.FileSystem.GetAttr(name, context)
|
||||||
|
}
|
||||||
|
return resp.Stat, resp.Code
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue