docker-archive / go-p9p

A modern, performant 9P library for Go.
Apache License 2.0
206 stars 50 forks source link

ufs: added mostly working unix filesystem server session implementation #38

Closed progrium closed 6 years ago

progrium commented 7 years ago

This adds a real implementation of 9ps that doesn't depend on another project. This implementation was loosely based on the go9p project ufs implementation. It's not entirely complete, but enough to use 9pr directly with 9ps with a real filesystem.

Signed-off-by: Jeff Lindsay progrium@gmail.com

codecov[bot] commented 7 years ago

Codecov Report

Merging #38 into master will increase coverage by 0.06%. The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #38      +/-   ##
==========================================
+ Coverage    22.3%   22.37%   +0.06%     
==========================================
  Files          14       14              
  Lines        1179     1171       -8     
==========================================
- Hits          263      262       -1     
+ Misses        855      848       -7     
  Partials       61       61
Impacted Files Coverage Δ
transport.go 0% <0%> (ø) :arrow_up:
channel.go 54.31% <0%> (ø) :arrow_up:
server.go 0% <0%> (ø) :arrow_up:
encoding.go 50.65% <0%> (ø) :arrow_up:
readdir.go 0% <0%> (ø) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 87ae851...e571b90. Read the comment docs.

titanous commented 7 years ago

I was able to get this working with the Linux kernel 9p client with the commits from #39 and progrium/go-p9p#1.

GordonTheTurtle commented 7 years ago

Please sign your commits following these rules: https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work The easiest way to do this is to amend the last commit:

$ git clone -b "ufs" git@github.com:progrium/go-p9p.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842353879960
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

progrium commented 7 years ago

I believe all commits have DCO now.

progrium commented 7 years ago

Rebased with #39 since it's required for a working, mountable implementation. Also happened to rebase with #40 because it just makes sense. If for some reason these aren't desirable I can recreate this PR, but I figured these all make sense together.

stevvooe commented 6 years ago

LGTM