-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Storage support openstack swift #493
Storage support openstack swift #493
Conversation
@nevermosby We don't really use the "open-design" process. Just submit your intent as an issue or go even further with a PR with documentation or a minimal implementation. Please see #443 for an example of a proposal that will likely be successful. Mostly, we are interested in the following:
Glad to have you on board and I'm excited to see an implementation! |
@stevvooe Thank you very much for the information, we will submit an issue or a PR with further description and the feedback to your concerns. |
@nevermosby Hi. I implemented an Openstack Swift driver (https://github.com/lebauce/distribution/tree/swift-backend). There still are 2 tests that fail though. |
@lebauce great work! Is there any way we can work together to contribute for docker? Any thoughts are welcome. |
@lebauce @nevermosby this is exciting to see interest in building such a driver! Addressing @stevvooe questions would definitely help in getting this merged, and indeed combining efforts on this is certainly a good idea. Looking forward to it! |
@stevvooe, I work with @nevermosby. On your questions: Will there be a maintainer for at least 1 year? Can the driver be tested in our CI system for every PR? Will the integration with the particular driver complicate the build for other users who aren't using that driver? @lebauce, how does this sound to you? |
@stevvooe Hi !
|
@ojacques Sorry, I didn't see your answer before starting mine (see above). This sounds really good to me ! I think we agree on every point. |
@lebauce I am very glad to do the maintaining. |
@lebauce, @nevermosby would merging both branches in this PR would make most sense to avoid duplicate effort? Obviously @lebauce, your implementation was further along, so let us know how you would rather proceed. |
@ojacques @nevermosby It surely makes sense. It seems the PR was mostly about describing the proposal. The points where our 2 PR's differ is on the attribute names in the config file, and the environment variables for the test suite. Could you please take a look at the By the way, I also added the code to start a Swift server for testing if you do not have a real Swift server running. |
@lebauce the two documentation file is ok for me. For my local installed Swift server, I got the result with timeout error and did see the two containers had been created but with a mess of objects populated. For the Swift server started in the testsuite, I got some compile error: ./swift_test.go:54: swiftServer.AuthURL undefined (type *swifttest.SwiftServer has no field or method AuthURL) which might be caused by I believe the test file may not be your final version, please let me know if I can help with that. |
@nevermosby I made a few modifications to the ncw/swift library, I therefore updated the Godeps.json file. A 'go deps' should fix the 'AuthURL' issue. Regarding the errors with your local Swift server : are you running the test suite with 'go test -short' ? If not, could you try it ? One of the test uploads a 5Go file :-/ |
@lebauce the 'AuthURL' issue has been fixed. One minor issue is the import path for swiftest lib in 'go test -short' passed all the necessary test cases for local Swift server and the one started in the testsuite. However, normal 'go test' for two kinds of Swift server got timeout error, the local Swift server might be caused by low bandwidth of my local network. |
@nevermosby My bad. I forgot to modify the incluse, sorry. |
@lebauce I am not up to date on the full conversation, but the following must happen:
Unfortunately, the tests are a little aggressive with the amount of data they write. How long are they running against the swift server? |
@stevvooe @lebauce The test suite for swift driver has been run for several times with our local swift server built on a destop PC, the best result we have is it costs 3580s to pass the almost whole test cases without the one "TestConcurrentFileStreams", which always caused timeout error. We will try it again with a swift server built on HP public cloud to see whether the result would be better. |
@nevermosby Can you run the testsuite with "go test -timeout 9999999s" ? On my setup, the full suite takes a bit less than 30 minutes |
@lebauce yes, I tried it before. It turns out that it throws the timeout error with message: Besides, let's start the code merge work, this is my proposal to proceed:
|
@nevermosby @lebauce Any insight into the performance issues? If the performance is really that bad with the swift driver, the implementation would be unusable. Is this do to configuration or perhaps IO on the CI host? |
@stevvooe With the
The full test suite takes around 45 minutes :
The test Does the testsuite run in "full" mode in your CI, or in "short" mode ? |
@nevermosby I increased the timeout - it was only 60 seconds in my previous push :-/ (I also added a patch to the Swift bindings because of a bug in net/http : ncw/swift#41) Regarding the workflow you proposed, it sounds ok to me but maybe we can do something easier. Instead of you forking my repository and adding your work to it, you could just rebase your |
@lebauce Sounds great to me about your proposal, I will follow it up. |
@lebauce Interesting. The CI tests run the full suite. Mostly, we are ensuring that even after moving a large amount of data under different circumstances, no corruptions occurs. Given the performance you're seeing, it seems likely related to bandwidth. Let's see if we can get these running in the CI system used for this project and we'll work from there. Please ping @dmp42 if you need help getting setup. |
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Sylvain Baubeau <[email protected]>
Signed-off-by: Olivier Jacques <[email protected]>
Signed-off-by: Li Wenquan <[email protected]>
…ty v1.0 example Signed-off-by: Li Wenquan <[email protected]>
@snayakie Either way, these look like content checks, since they are HEAD requests. These could be perfectly normal for the request flow. |
@lebauce I did try "make test", no issues from that. But that doesn't test a running registry against my softlayer account. If there is any other test suite I can run against the registry, please let me know how. Unfortunately I can't give you any SoftLayer account with objectstorage myself, I just have my account, which there isn't any easy way to share. @stevvooe from your description, sounds like this is a non-issue. |
@snayakie Go to |
@lebauce The test result is "ok". Since this is a v1 authentication, I set the SWIFT_USERNAME, SWIFT_PASSWORD, SWIFT_AUTH_URL and SWIFT_CONTAINER_NAME. Then results are: $ export GOPATH= So it looks all good from this test. |
@stevvooe Yes, I think we are |
Storage support openstack swift
Grats, all! |
Thanks @stevvooe , all! |
…penstack-swift Storage support openstack swift
…penstack-swift Storage support openstack swift
Fixes: #220