Skip to content
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

Align ubiquity glide #234

Closed
wants to merge 34 commits into from
Closed

Align ubiquity glide #234

wants to merge 34 commits into from

Conversation

beckmani
Copy link
Contributor

@beckmani beckmani commented Aug 16, 2018

Resolve Build conflict in Ubiquity-k8s


This change is Reviewable

shay-berman and others added 30 commits March 28, 2018 17:20
* place holders comments for potential idempotent fixes - unmount and mount flow
* mount idempotent - new mounter factory inteface to get relevant backend mounter(will be used in k8s side)
* mount idempotent : add new intefaces for slink manipulation for k8s controller.
* refactor IsDeviceMounted so it will return also the mountpaths of the given device if mounted
* Add idempotent handling to MountDeviceFlow (skip if already mounted)
* Add timeout for mount command (to be save from hanging if any)
* Add new error.go file for mounter utils (part of mount idempotent)
Merge v1.1.1 to dev branch (Add support for IBM Power Systems)
Refactor helper scripts to push images (rename scripts and fix manife…
* UB-624:Flex should NOT write its log into the flex driver directory

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* create log directory

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* add FLEX-LOG-ROTATE-MAXSIZE in config

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* update openssl to 1.0.2o-r0

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>
…212)

* MountDeviceFlow prevent mounting device if the mountpoint is already in use by other device. (Its a fix for PR #196)
* remove sqlite

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Remove the sqlite3

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Add ut for connection

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>
Added request id and go id to the ubiquity server logs


* UB-1099: add go_id:request_id to ubiquity server logs

* UB-1099: added back a go-logging import

* UB-1099: exidental enter

* UB-1099: code review fixes

* UB-1099: code review changes

* UB-1099: code review changes

* UB-1099: code review changes

* UB-1099: code revie changes

* UB-1099: code review fixes
…he PV existence) (#216)

* Refactor volumeNotFoundError in database to be standard error for StorageClient interface.

Move this error from scbe backend to be generic for ubiqutiy StorageClient interface,
So the plugins will be able to identify if the GetVolume interface fail to find the volume because an error or because it was not found in Ubiqutiy DB.
The first to use it in the plugin is the flex Unmount CLI to identify if PV exist in ubiquity before unmount start (for idempotent issue resolving)
In this PR I wanted to update the new logging to the following state:
in the ubiquity logger there we be shown the go routine id (and the pid will be removed from the log) : because the ubiquity server always runs in the same pid so no need to show it in the log since it does not give us any more information.
in flex logger we will show the pid only (the go id routine will be removed) : since every flex request will always have the same go routine id there is not need to show both the request id and the go routine id.
in provisioner log we will neither show the go routine id nor the pid of the process : since as for the flex logger each request will always have the same go routine id. and also like the ubiqity server the provisioner will always run with the same pid.
added timestamp to start server message:
2018-07-01 11:52:15.077 INFO storage_api_server.go:73 web_server::printStartMsg [NA:1] Starting Storage API server on port 9999 .... [] 2018-07-01 11:52:15.077 INFO storage_api_server.go:74 web_server::printStartMsg [NA:1] CTL-C to exit/stop Storage API server service []
Cleanup old ubiquity linux service, config files and few old deployment files
#223)

* UB-1387 : added log for idempotent issue when mount-point already exists *
#222)

* UB-1098: change logging message to warning instead of info for idempotent issues*
this PR will add an action name to each log line. (for example all oprerations that are part of Delete will have the request-action name in the log.
like : fd5dd389-7acb-11e8-88cd-54ee75515403-Delete )
* Set lumberjack version
* Set ginkgo to v1.5.0
* Set gomega to v1.4.0
* Use Docker caching in DockerFile
* Update dependencies
* Add k8s apmachinery to glide.yaml
* Add dependencies to testImport
we added 2 things to support ubiquity on Z:
1. runnig multipath AND with multipath -r
2. adding a timeout on the multipath command (10 seconds) due to env issues on Z that cause the multipath to be stuck sometimes
Don't want to see an error every time a volume is being discovered. so I removed the error message and am just returning the error.
…230)

* Expose the http response including the error reason to the plugins (instead of hiding the reason)
* Fix code review comments by Olga and Ran
In this PR , the following idempotent issue with Unmount flow is fixed:
if a discovery of a volume fails, no need to fail the Unmount command, just need to skip the UnmountDeviceFlow.

more info:
if volume's mpath NOT discovered (because the device does not exist at all in multipath -ll) then we should skip UnmountDeviceFlow instead of failing (reminder - the UnmountDeviceFlow is the flow that does umount the device and cleanup of the mpath device) .
Why its idempotent? - because there is a chance that unmount flow will fail at the end of UnmountDeviceFlow after it unmounts and cleans the mpath device. So to be idempotent the unmount needs to handle unmount request while the mpath device was already cleaned.
…ity server if volume is already detached (#231)

In the ubiquity server if the volume is already detached we will not fail the flow but succeed.
olgashtivelman and others added 4 commits August 8, 2018 17:04
This PR is to not allow attachement of 2 pods to one PVC.
currently this is allowed due to a fix of another idempotent issue.
we are checking if a PVC is already attached to another pod using the slinks - in the mount process we check if the /ubiquity/volume is already linked to a pod that is not the current pod - if so then we will fail the mount process.
also a mountlock is added to prevent operations during the mount happening for 2 different pods (and same PVC)
@beckmani beckmani closed this Aug 16, 2018
@coveralls
Copy link

Coverage Status

Coverage decreased (-2.8%) to 51.952% when pulling c458905 on align__ubiquity_glide into 05e861a on master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants