mirror of https://github.com/minio/minio.git
				
				
				
			
							parent
							
								
									7488c77e7c
								
							
						
					
					
						commit
						d73d756a80
					
				|  | @ -12,7 +12,7 @@ jobs: | ||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|         go-version: [1.16.x] |         go-version: [1.16.x] | ||||||
|         os: [ubuntu-latest, windows-latest] |         os: [ubuntu-latest, windows-latest, macos-latest] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v2 | ||||||
|       - uses: actions/setup-node@v1 |       - uses: actions/setup-node@v1 | ||||||
|  | @ -21,6 +21,13 @@ jobs: | ||||||
|       - uses: actions/setup-go@v2 |       - uses: actions/setup-go@v2 | ||||||
|         with: |         with: | ||||||
|           go-version: ${{ matrix.go-version }} |           go-version: ${{ matrix.go-version }} | ||||||
|  |       - name: Build on ${{ matrix.os }} | ||||||
|  |         if: matrix.os == 'macos-latest' | ||||||
|  |         env: | ||||||
|  |           CGO_ENABLED: 0 | ||||||
|  |           GO111MODULE: on | ||||||
|  |         run: | | ||||||
|  |           make test | ||||||
|       - name: Build on ${{ matrix.os }} |       - name: Build on ${{ matrix.os }} | ||||||
|         if: matrix.os == 'windows-latest' |         if: matrix.os == 'windows-latest' | ||||||
|         env: |         env: | ||||||
|  | @ -42,8 +49,6 @@ jobs: | ||||||
|           curl -L -o nancy https://github.com/sonatype-nexus-community/nancy/releases/download/${nancy_version}/nancy-${nancy_version}-linux-amd64 && chmod +x nancy |           curl -L -o nancy https://github.com/sonatype-nexus-community/nancy/releases/download/${nancy_version}/nancy-${nancy_version}-linux-amd64 && chmod +x nancy | ||||||
|           go list -m all | ./nancy sleuth |           go list -m all | ./nancy sleuth | ||||||
|           make |           make | ||||||
|           diff -au <(gofmt -s -d cmd) <(printf "") |  | ||||||
|           diff -au <(gofmt -s -d pkg) <(printf "") |  | ||||||
|           make test-race |           make test-race | ||||||
|           make crosscompile |           make crosscompile | ||||||
|           make verify |           make verify | ||||||
|  |  | ||||||
|  | @ -17,6 +17,8 @@ linters: | ||||||
|     - gosimple |     - gosimple | ||||||
|     - deadcode |     - deadcode | ||||||
|     - structcheck |     - structcheck | ||||||
|  |     - gomodguard | ||||||
|  |     - gofmt | ||||||
| 
 | 
 | ||||||
| issues: | issues: | ||||||
|   exclude-use-default: false |   exclude-use-default: false | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										14
									
								
								Makefile
								
								
								
								
							|  | @ -17,32 +17,22 @@ checks: | ||||||
| getdeps: | getdeps: | ||||||
| 	@mkdir -p ${GOPATH}/bin | 	@mkdir -p ${GOPATH}/bin | ||||||
| 	@which golangci-lint 1>/dev/null || (echo "Installing golangci-lint" && curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH)/bin v1.27.0) | 	@which golangci-lint 1>/dev/null || (echo "Installing golangci-lint" && curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH)/bin v1.27.0) | ||||||
| 	@which ruleguard 1>/dev/null || (echo "Installing ruleguard" && go get github.com/quasilyte/go-ruleguard/cmd/ruleguard@v0.2.1) |  | ||||||
| 	@which msgp 1>/dev/null || (echo "Installing msgp" && go get github.com/tinylib/msgp@v1.1.3) | 	@which msgp 1>/dev/null || (echo "Installing msgp" && go get github.com/tinylib/msgp@v1.1.3) | ||||||
| 	@which stringer 1>/dev/null || (echo "Installing stringer" && go get golang.org/x/tools/cmd/stringer) | 	@which stringer 1>/dev/null || (echo "Installing stringer" && go get golang.org/x/tools/cmd/stringer) | ||||||
| 
 | 
 | ||||||
| crosscompile: | crosscompile: | ||||||
| 	@(env bash $(PWD)/buildscripts/cross-compile.sh) | 	@(env bash $(PWD)/buildscripts/cross-compile.sh) | ||||||
| 
 | 
 | ||||||
| verifiers: getdeps fmt lint ruleguard check-gen | verifiers: getdeps lint check-gen | ||||||
| 
 | 
 | ||||||
| check-gen: | check-gen: | ||||||
| 	@go generate ./... >/dev/null | 	@go generate ./... >/dev/null | ||||||
| 	@(! git diff --name-only | grep '_gen.go$$') || (echo "Non-committed changes in auto-generated code is detected, please commit them to proceed." && false) | 	@(! git diff --name-only | grep '_gen.go$$') || (echo "Non-committed changes in auto-generated code is detected, please commit them to proceed." && false) | ||||||
| 
 | 
 | ||||||
| fmt: |  | ||||||
| 	@echo "Running $@ check" |  | ||||||
| 	@GO111MODULE=on gofmt -d cmd/ |  | ||||||
| 	@GO111MODULE=on gofmt -d pkg/ |  | ||||||
| 
 |  | ||||||
| lint: | lint: | ||||||
| 	@echo "Running $@ check" | 	@echo "Running $@ check" | ||||||
| 	@GO111MODULE=on ${GOPATH}/bin/golangci-lint cache clean | 	@GO111MODULE=on ${GOPATH}/bin/golangci-lint cache clean | ||||||
| 	@GO111MODULE=on ${GOPATH}/bin/golangci-lint run --timeout=10m --config ./.golangci.yml | 	@GO111MODULE=on ${GOPATH}/bin/golangci-lint run --build-tags kqueue --timeout=10m --config ./.golangci.yml | ||||||
| 
 |  | ||||||
| ruleguard: |  | ||||||
| 	@echo "Running $@ check" |  | ||||||
| 	@${GOPATH}/bin/ruleguard -rules ruleguard.rules.go github.com/minio/minio/... |  | ||||||
| 
 | 
 | ||||||
| # Builds minio, runs the verifiers then runs the tests.
 | # Builds minio, runs the verifiers then runs the tests.
 | ||||||
| check: test | check: test | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // TODO: if possible implement for non-linux platforms, not a priority at the moment
 | // TODO: if possible implement for non-linux platforms, not a priority at the moment
 | ||||||
|  | //nolint:deadcode
 | ||||||
| func setInternalTCPParameters(c syscall.RawConn) error { | func setInternalTCPParameters(c syscall.RawConn) error { | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -15,7 +15,9 @@ | ||||||
| #  limitations under the License. | #  limitations under the License. | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| SPOTBUGS_VERSION="4.1.2" ## needed since 8.0.2 release | set -x | ||||||
|  | SPOTBUGS_VERSION="4.2.2" ## needed since 8.0.2 release | ||||||
|  | JUNIT_VERSION="4.12" ## JUNIT version | ||||||
| MINIO_JAVA_VERSION=$(curl --retry 10 -s "https://repo1.maven.org/maven2/io/minio/minio/maven-metadata.xml" | sed -n "/<latest>/{s/<.[^>]*>//g;p;q}" | sed "s/  *//g") | MINIO_JAVA_VERSION=$(curl --retry 10 -s "https://repo1.maven.org/maven2/io/minio/minio/maven-metadata.xml" | sed -n "/<latest>/{s/<.[^>]*>//g;p;q}" | sed "s/  *//g") | ||||||
| if [ -z "$MINIO_JAVA_VERSION" ]; then | if [ -z "$MINIO_JAVA_VERSION" ]; then | ||||||
|     echo "unable to get latest minio-java version from maven" |     echo "unable to get latest minio-java version from maven" | ||||||
|  | @ -23,10 +25,12 @@ if [ -z "$MINIO_JAVA_VERSION" ]; then | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| test_run_dir="$MINT_RUN_CORE_DIR/minio-java" | test_run_dir="$MINT_RUN_CORE_DIR/minio-java" | ||||||
|  | mkdir -p ${test_run_dir} | ||||||
| git clone --quiet https://github.com/minio/minio-java.git "$test_run_dir/minio-java.git" | git clone --quiet https://github.com/minio/minio-java.git "$test_run_dir/minio-java.git" | ||||||
| (cd "$test_run_dir/minio-java.git"; git checkout --quiet "tags/${MINIO_JAVA_VERSION}") | (cd "$test_run_dir/minio-java.git"; git checkout --quiet "tags/${MINIO_JAVA_VERSION}") | ||||||
| $WGET --output-document="$test_run_dir/minio-${MINIO_JAVA_VERSION}-all.jar" "https://repo1.maven.org/maven2/io/minio/minio/${MINIO_JAVA_VERSION}/minio-${MINIO_JAVA_VERSION}-all.jar" | $WGET --output-document="$test_run_dir/minio-${MINIO_JAVA_VERSION}-all.jar" "https://repo1.maven.org/maven2/io/minio/minio/${MINIO_JAVA_VERSION}/minio-${MINIO_JAVA_VERSION}-all.jar" | ||||||
| $WGET --output-document="$test_run_dir/spotbugs-annotations-${SPOTBUGS_VERSION}.jar" "https://repo1.maven.org/maven2/com/github/spotbugs/spotbugs-annotations/${SPOTBUGS_VERSION}/spotbugs-annotations-${SPOTBUGS_VERSION}.jar" | $WGET --output-document="$test_run_dir/spotbugs-annotations-${SPOTBUGS_VERSION}.jar" "https://repo1.maven.org/maven2/com/github/spotbugs/spotbugs-annotations/${SPOTBUGS_VERSION}/spotbugs-annotations-${SPOTBUGS_VERSION}.jar" | ||||||
| javac -cp "$test_run_dir/minio-${MINIO_JAVA_VERSION}-all.jar:$test_run_dir/spotbugs-annotations-${SPOTBUGS_VERSION}.jar" "${test_run_dir}/minio-java.git/functional"/*.java | $WGET --output-document="$test_run_dir/junit-${JUNIT_VERSION}.jar" "https://repo1.maven.org/maven2/junit/junit/${JUNIT_VERSION}/junit-${JUNIT_VERSION}.jar" | ||||||
|  | javac -cp "$test_run_dir/minio-${MINIO_JAVA_VERSION}-all.jar:$test_run_dir/spotbugs-annotations-${SPOTBUGS_VERSION}.jar:$test_run_dir/junit-${JUNIT_VERSION}.jar" "${test_run_dir}/minio-java.git/functional"/*.java | ||||||
| cp -a "${test_run_dir}/minio-java.git/functional"/*.class "$test_run_dir/" | cp -a "${test_run_dir}/minio-java.git/functional"/*.class "$test_run_dir/" | ||||||
| rm -fr "$test_run_dir/minio-java.git" | rm -fr "$test_run_dir/minio-java.git" | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ git | ||||||
| python3-pip | python3-pip | ||||||
| nodejs | nodejs | ||||||
| openjdk-8-jdk | openjdk-8-jdk | ||||||
| openjdk-8-jre |  | ||||||
| dirmngr | dirmngr | ||||||
| apt-transport-https | apt-transport-https | ||||||
| dotnet-sdk-2.1 | dotnet-sdk-2.1 | ||||||
|  |  | ||||||
|  | @ -38,7 +38,7 @@ $APT update | ||||||
| $APT install gnupg ca-certificates | $APT install gnupg ca-certificates | ||||||
| 
 | 
 | ||||||
| # download and install golang | # download and install golang | ||||||
| GO_VERSION="1.15.2" | GO_VERSION="1.16" | ||||||
| GO_INSTALL_PATH="/usr/local" | GO_INSTALL_PATH="/usr/local" | ||||||
| download_url="https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | download_url="https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | ||||||
| if ! $WGET --output-document=- "$download_url" | tar -C "${GO_INSTALL_PATH}" -zxf -; then | if ! $WGET --output-document=- "$download_url" | tar -C "${GO_INSTALL_PATH}" -zxf -; then | ||||||
|  |  | ||||||
|  | @ -0,0 +1,80 @@ | ||||||
|  | github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= | ||||||
|  | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
|  | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
|  | github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= | ||||||
|  | github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= | ||||||
|  | github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= | ||||||
|  | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
|  | github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= | ||||||
|  | github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
|  | github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | ||||||
|  | github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= | ||||||
|  | github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= | ||||||
|  | github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= | ||||||
|  | github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | ||||||
|  | github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= | ||||||
|  | github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= | ||||||
|  | github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | ||||||
|  | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= | ||||||
|  | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | ||||||
|  | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | ||||||
|  | github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | ||||||
|  | github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | ||||||
|  | github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= | ||||||
|  | github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= | ||||||
|  | github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4= | ||||||
|  | github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | ||||||
|  | github.com/minio/minio-go/v7 v7.0.7 h1:Qld/xb8C1Pwbu0jU46xAceyn9xXKCMW+3XfNbpmTB70= | ||||||
|  | github.com/minio/minio-go/v7 v7.0.7/go.mod h1:pEZBUa+L2m9oECoIA6IcSK8bv/qggtQVLovjeKK5jYc= | ||||||
|  | github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= | ||||||
|  | github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= | ||||||
|  | github.com/minio/sio v0.2.1 h1:NjzKiIMSMcHediVQR0AFVx2tp7Wxh9tKPfDI3kH7aHQ= | ||||||
|  | github.com/minio/sio v0.2.1/go.mod h1:8b0yPp2avGThviy/+OCJBI6OMpvxoUuiLvE6F1lebhw= | ||||||
|  | github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | ||||||
|  | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||||
|  | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||||||
|  | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= | ||||||
|  | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||||||
|  | github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | ||||||
|  | github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= | ||||||
|  | github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | ||||||
|  | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
|  | github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= | ||||||
|  | github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= | ||||||
|  | github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= | ||||||
|  | github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= | ||||||
|  | github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= | ||||||
|  | github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= | ||||||
|  | github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | ||||||
|  | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
|  | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||||
|  | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
|  | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||||
|  | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
|  | golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
|  | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
|  | golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA0mnthyA/nZ00AqCUo7vHg= | ||||||
|  | golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
|  | golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||||
|  | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||||
|  | golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= | ||||||
|  | golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | ||||||
|  | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
|  | golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
|  | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo= | ||||||
|  | golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
|  | golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= | ||||||
|  | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
|  | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
|  | golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||||
|  | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|  | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|  | gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww= | ||||||
|  | gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
|  | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|  | gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||||
|  | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| // +build darwin freebsd dragonfly
 | // +build darwin dragonfly
 | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. |  * MinIO Cloud Storage, (C) 2015-2021 MinIO, Inc. | ||||||
|  * |  * | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  * you may not use this file except in compliance with the License. |  * you may not use this file except in compliance with the License. | ||||||
|  | @ -30,12 +30,12 @@ func GetInfo(path string) (info Info, err error) { | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return Info{}, err | 		return Info{}, err | ||||||
| 	} | 	} | ||||||
| 	reservedBlocks := uint64(s.Bfree) - uint64(s.Bavail) | 	reservedBlocks := s.Bfree - s.Bavail | ||||||
| 	info = Info{ | 	info = Info{ | ||||||
| 		Total:  uint64(s.Bsize) * (uint64(s.Blocks) - reservedBlocks), | 		Total:  uint64(s.Bsize) * (s.Blocks - reservedBlocks), | ||||||
| 		Free:   uint64(s.Bsize) * uint64(s.Bavail), | 		Free:   uint64(s.Bsize) * s.Bavail, | ||||||
| 		Files:  uint64(s.Files), | 		Files:  s.Files, | ||||||
| 		Ffree:  uint64(s.Ffree), | 		Ffree:  s.Ffree, | ||||||
| 		FSType: getFSType(s.Fstypename[:]), | 		FSType: getFSType(s.Fstypename[:]), | ||||||
| 	} | 	} | ||||||
| 	if info.Free > info.Total { | 	if info.Free > info.Total { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,46 @@ | ||||||
|  | // +build freebsd
 | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  |  * MinIO Cloud Storage, (C) 2021 MinIO, Inc. | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package disk | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"syscall" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // GetInfo returns total and free bytes available in a directory, e.g. `/`.
 | ||||||
|  | func GetInfo(path string) (info Info, err error) { | ||||||
|  | 	s := syscall.Statfs_t{} | ||||||
|  | 	err = syscall.Statfs(path, &s) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return Info{}, err | ||||||
|  | 	} | ||||||
|  | 	reservedBlocks := s.Bfree - uint64(s.Bavail) | ||||||
|  | 	info = Info{ | ||||||
|  | 		Total:  uint64(s.Bsize) * (s.Blocks - reservedBlocks), | ||||||
|  | 		Free:   uint64(s.Bsize) * uint64(s.Bavail), | ||||||
|  | 		Files:  s.Files, | ||||||
|  | 		Ffree:  uint64(s.Ffree), | ||||||
|  | 		FSType: getFSType(s.Fstypename[:]), | ||||||
|  | 	} | ||||||
|  | 	if info.Free > info.Total { | ||||||
|  | 		return info, fmt.Errorf("detected free space (%d) > total disk space (%d), fs corruption at (%s). please run 'fsck'", info.Free, info.Total, path) | ||||||
|  | 	} | ||||||
|  | 	info.Used = info.Total - info.Free | ||||||
|  | 	return info, nil | ||||||
|  | } | ||||||
|  | @ -19,7 +19,7 @@ package smart | ||||||
| import "math/big" | import "math/big" | ||||||
| 
 | 
 | ||||||
| // Defined in <linux/nvme_ioctl.h>
 | // Defined in <linux/nvme_ioctl.h>
 | ||||||
| //nolint:structcheck
 | //nolint:structcheck,deadcode
 | ||||||
| type nvmePassthruCommand struct { | type nvmePassthruCommand struct { | ||||||
| 	opcode      uint8 | 	opcode      uint8 | ||||||
| 	flags       uint8 | 	flags       uint8 | ||||||
|  | @ -59,6 +59,7 @@ type nvmeIdentPowerState struct { | ||||||
| 	Rsvd23          [9]byte | 	Rsvd23          [9]byte | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | //nolint:deadcode
 | ||||||
| type nvmeIdentController struct { | type nvmeIdentController struct { | ||||||
| 	VendorID     uint16                  // PCI Vendor ID
 | 	VendorID     uint16                  // PCI Vendor ID
 | ||||||
| 	Ssvid        uint16                  // PCI Subsystem Vendor ID
 | 	Ssvid        uint16                  // PCI Subsystem Vendor ID
 | ||||||
|  | @ -150,6 +151,7 @@ type nvmeIdentNamespace struct { | ||||||
| 	Vs      [3712]byte | 	Vs      [3712]byte | ||||||
| } // 4096 bytes
 | } // 4096 bytes
 | ||||||
| 
 | 
 | ||||||
|  | //nolint:deadcode
 | ||||||
| type nvmeSMARTLog struct { | type nvmeSMARTLog struct { | ||||||
| 	CritWarning      uint8 | 	CritWarning      uint8 | ||||||
| 	Temperature      [2]uint8 | 	Temperature      [2]uint8 | ||||||
|  | @ -174,6 +176,7 @@ type nvmeSMARTLog struct { | ||||||
| } // 512 bytes
 | } // 512 bytes
 | ||||||
| 
 | 
 | ||||||
| // NVMeDevice represents drive data about NVMe drives
 | // NVMeDevice represents drive data about NVMe drives
 | ||||||
|  | //nolint:structcheck
 | ||||||
| type NVMeDevice struct { | type NVMeDevice struct { | ||||||
| 	Name string | 	Name string | ||||||
| 	fd   int | 	fd   int | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| // +build darwin
 | // +build darwin
 | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  * MinIO Cloud Storage, (C) 2016,2017 MinIO, Inc. |  * MinIO Cloud Storage, (C) 2016-2021 MinIO, Inc. | ||||||
|  * |  * | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  * you may not use this file except in compliance with the License. |  * you may not use this file except in compliance with the License. | ||||||
|  | @ -33,9 +33,7 @@ func getHwMemsize() (uint64, error) { | ||||||
| 	// removes the last byte of the result if it's 0 :/
 | 	// removes the last byte of the result if it's 0 :/
 | ||||||
| 	totalString += "\x00" | 	totalString += "\x00" | ||||||
| 
 | 
 | ||||||
| 	total := uint64(binary.LittleEndian.Uint64([]byte(totalString))) | 	return binary.LittleEndian.Uint64([]byte(totalString)), nil | ||||||
| 
 |  | ||||||
| 	return total, nil |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetStats - return system statistics for macOS.
 | // GetStats - return system statistics for macOS.
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue