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

Refactor the code #135

Merged
merged 1 commit into from
Dec 9, 2018
Merged

Conversation

leakingtapan
Copy link
Contributor

  1. Split NewDriver into two methods NewDriver and NewMockDriver.
    So that one is only takes in endpoint and serves as production uses and
    the other create driver with mock dependencies
  2. Move controller capability, node capability and volume capability out
    of driver struct since they are constant that should never change for a
    specific version of driver

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: leakingtapan

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Dec 3, 2018
@coveralls
Copy link

coveralls commented Dec 3, 2018

Pull Request Test Coverage Report for Build 212

  • 1 of 18 (5.56%) changed or added relevant lines in 3 files are covered.
  • 8 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-1.9%) to 49.099%

Changes Missing Coverage Covered Lines Changed/Added Lines %
pkg/driver/controller.go 1 2 50.0%
pkg/driver/node.go 0 1 0.0%
pkg/driver/driver.go 0 15 0.0%
Files with Coverage Reduction New Missed Lines %
pkg/driver/driver.go 8 0.0%
Totals Coverage Status
Change from base Build 210: -1.9%
Covered Lines: 545
Relevant Lines: 1110

💛 - Coveralls

Copy link
Member

@bertinatto bertinatto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't you want to merge this into master rather than next?

pkg/driver/driver.go Outdated Show resolved Hide resolved
}

// controller capability
controllerCaps = []csi.ControllerServiceCapability_RPC_Type{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if making these fields global is a better practice. It'd make it difficult to create a driver with custom capabilities for testing, for example.

Another option would be to create functions to set up and return the caps, and use these function in New*Driver().

If we want to keep it like this, we may want to name these vars like defaultVolume... and use these names in the comments (e.g., defaultVolumeCapabilities represents the EBS volume....

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if making these fields global is a better practice. It'd make it difficult to create a driver with custom capabilities for testing, for example.

I feel we will never create a CSI EBS driver with a different capability eg, volume capability of MULTI_NODE_MULTI_WRITER since that is limited by EBS; or we will create a driver whose controller service capability is configurable, eg CREATE_DELETE_VOLUME is configurable since we always want dynamic provisioning.

I kept variable name but updated the comments of those variable though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't feel like moving those vars to a global scope would make the code better, even though they might not be ever changed.

I agree that initializing them in NewDriver feels messy, but I'd rather create functions that return the default values and use those functions in NewDriver (if I'm not mistaken GCP driver does something like that).

However, I don't want to block this PR from being merged, so feel free to merge it if you think it's OK as is.

pkg/driver/controller_test.go Outdated Show resolved Hide resolved
@leakingtapan leakingtapan force-pushed the next branch 2 times, most recently from 1a65009 to eea62c5 Compare December 6, 2018 22:10
1. Split `NewDriver` into two methods `NewDriver` and `NewFakeDriver`.
So that one only takes in endpoint and serves as production uses and
the other create driver with mock dependencies
2. Move controller capability, node capability and volume capability out
of driver struct since they are constant that should never change for a
specific version of driver
@leakingtapan
Copy link
Contributor Author

@bertinatto yes, its going to be merged into master

@bertinatto
Copy link
Member

@leakingtapan: ah, OK. I just noticed that next is your branch, not the target branch.

@leakingtapan leakingtapan merged commit 655725c into kubernetes-sigs:master Dec 9, 2018
@leakingtapan leakingtapan deleted the next branch December 9, 2018 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants