Commit Graph

280 Commits

Author SHA1 Message Date
Brendan Ashworth c59b995f7b build: ditch verifiers on make (#4679)
This commit ditches running verifiers automatically when just building
the server. It retains the verifiers when running tests.

There is very little point to running the verifiers each time a
developer builds the library but has no intent of running the tests.
They're expensive in time; this commit halves the build time on my
system, from 57 seconds to 29 seconds. This is because verifiers updates
the libraries from GitHub each time, which is slightly wasteful.
Additionally, computing cyclomatic complexity is expensive
computationally and isn't necessary to build the library.

Additionally, this allows the library to be built offline. It no longer
requires internet to run make.
2017-07-15 12:12:03 -07:00
Harshavardhana a86dc8a4c5 cleanup makefile and enable CGO_ENABLED=0 (#4598) 2017-06-26 18:07:06 -07:00
Harshavardhana 432bf7d99e Fail if formatting is wrong in our CI tests. (#4459)
We didn't fail before, we should helps in avoiding
formatting issues to creep into the codebase.
2017-06-02 14:05:51 -07:00
Harshavardhana b78f6fbcc5 Do not send envVars in ServerInfo() (#4422)
Sending envVars along with access and secret
exposes the entire minio server's sensitive
information. This will be an unexpected
situation for all users.

If at all we need to look for things like if
credentials are set through env, we should
only have access to only this information
not the entire set of system envs.
2017-05-24 21:09:23 -07:00
Harshavardhana dc365bca44 build: -s -w should be added by gen-ldflags.go (#4172) 2017-04-24 23:01:38 -07:00
Harshavardhana 214279aa57 build: Reduce binary size by using -s -w (#4027)
Refer #3939
2017-04-01 01:06:16 -07:00
Harshavardhana 4de6b15fca vet: Fix all the go vet complaints (#4029)
```
go tool vet -atomic -bool -copylocks -nilfunc \
   -printf -shadow -rangeloops -unreachable \
   -unsafeptr -unusedresult cmd/
```
2017-04-01 01:06:06 -07:00
Harshavardhana 28eff0f6c1 build: Improve build messaging, say where we built Minio. (#3973) 2017-03-25 00:33:57 -07:00
Harshavardhana 43317530d5 Fix odd shadowing bug in XL init. (#3874)
Fixes #3873
2017-03-08 20:42:45 -08:00
Bala FA 440866d26c Move go version check into main() (#3734)
Previously the check was done in init().  This patch moves into main
for unit testable friendly function.
2017-02-11 01:27:27 -08:00
Harshavardhana 464f9d34d6 Remove all references to GO15VENDOREXPERIMENT 2017-01-06 18:42:32 -08:00
Anand Babu (AB) Periasamy f53fcdf10e keep make messages consistent (#3437) 2016-12-13 00:26:45 -08:00
Harshavardhana d31f256020 Fail on lint errors during CI build. 2016-12-02 18:08:12 -08:00
Harshavardhana 6efee2072d objectLayer: Check for `format.json` in a wrapped disk. (#3311)
This is needed to validate if the `format.json` indeed exists
when a fresh node is brought online.

This wrapped implementation also connects to the remote node
by attempting a re-login. Subsequently after a successful
connect `format.json` is validated as well.

Fixes #3207
2016-11-23 15:48:10 -08:00
Anis Elleuch 5741a53d46 More portable way to list files to be spellchecked and include docs/ directory (#3220) 2016-11-09 15:17:47 -08:00
Harshavardhana bccf549463 server: Move all the top level files into cmd folder. (#2490)
This change brings a change which was done for the 'mc'
package to allow for clean repo and have a cleaner
github drop in experience.
2016-08-18 16:23:42 -07:00
Harshavardhana 0a3d43273f vendor: sha256 32bit updated. (#2459) 2016-08-16 16:19:29 -07:00
Harshavardhana 76d56c6ff2 typo: Fix typos across the codebase. (#2442) 2016-08-15 02:44:48 -07:00
Harshavardhana 90c20a8c11 Add codecov for minio. (#2359) 2016-08-04 16:48:50 -07:00
Harshavardhana 3fa95f5263 docker: Remove unneeded docker files and makefile tags. 2016-06-21 15:31:30 -07:00
Harshavardhana a98a7fb1ad Implement XL layer - preliminary work. 2016-04-25 12:47:31 -07:00
Harshavardhana ff4e04d942 atomic/fs: use safe package for atomic writes, even in multipart. 2016-04-06 16:05:30 -07:00
Harshavardhana 379e0abf03 cleanup: Remove old donut/xl code and erasure implementation.
This is a change to bring in 'klauspost/reedsolomon' library
in #1270 patch.
2016-04-02 17:30:35 -07:00
Harshavardhana 59ee5a547c release: gz doesn't preserve permissions use tar.gz
And fix various other issues with release script.
2016-03-26 23:44:32 -07:00
Anis Elleuch 663f24064b Add simple FreeBSD support, make the minio project compilable 2016-03-26 22:39:34 +01:00
Harshavardhana 1b0bc814c4 docker: Fix docker Makefile. 2016-03-24 22:53:13 -07:00
Harshavardhana 1ef5ab3c28 docker: Fix docker command entry. 2016-03-24 20:38:36 -07:00
Harshavardhana 41cba3a457 buildscripts: compress release binaries.
Fix update command as well to show compressed files in updates.
2016-03-18 23:30:54 -07:00
Harshavardhana 024c00addd build: Fix release tag. 2016-02-23 16:56:41 -08:00
Harshavardhana 223245cc45 build: Add release builds, now generated with 'make release'
Currently supported platforms are

    - linux{amd64,arm,386}
    - winows{amd64,386}
    - darwin{amd64}
2016-02-23 15:14:02 -08:00
Harshavardhana 408aa72146 build/vet: Fix all the shadowing reports with go1.6
Golang 1.6 is default version for the build now.

Additionally set 'GODEBUG=cgocheck=0' for now, until
we fix the erasure coding package.

Readmore here https://tip.golang.org/doc/go1.6#cgo
2016-02-23 14:34:39 -08:00
Harshavardhana 2181003609 web: Removing dependency for gpg and downloading assets.
Assets are vendorized from now on and updated for each release.
2016-02-23 13:32:12 -08:00
Harshavardhana 354229732b docker: Make sure that we properly check for containers. 2016-02-18 13:39:44 -08:00
Harshavardhana 9e10ee7e47 cpu: Remove pkg/cpu in favor of better klauspost/cpuid.
Fixes #1128
2016-02-15 13:50:33 -08:00
Harshavardhana ebdbe2db44 build: Simplify and build only with Makefiles.
Configure is not portable.
2016-02-13 01:19:13 -08:00
Harshavardhana 62f6ffb6db xl: Moved to minio/minio - fixes #1112 2016-02-11 15:43:36 -08:00
Harshavardhana 70bbf4c8ec build: Change UI assets location. 2016-02-10 16:10:33 -08:00
Harshavardhana 98ee5fcf55 build: Add spelling checks and check if curl is installed. 2016-02-10 00:18:05 -08:00
Harshavardhana 2c6da82788 build: Cleanup assets file upon make clean. 2016-02-07 10:55:51 -08:00
Harshavardhana c9d2904e42 docker: Fix docker build. 2016-02-04 18:22:37 -08:00
Harshavardhana a066184bed ui-assets: Integrate UI assets. 2016-02-04 18:07:05 -08:00
Karthic Rao b457a61cb2 Minor changes to Makefile to avoid the make failure when GOPATH/bin is not part of PATH 2016-01-20 14:46:12 +05:30
Harshavardhana 023f799820 build: Do not hardcode docker binary path
Fixes #1035
2016-01-15 10:36:45 -08:00
Harshavardhana 661229d7f7 doc: Add MAINTAINERS.md 2015-12-02 10:50:54 -08:00
Harshavardhana c22eb6d2c5 makefile: Fix docker image 2015-11-28 12:10:13 -08:00
Harshavardhana c67a8cb6e5 build: Attempt to enable windows compilation 2015-11-08 03:40:53 -08:00
Krishna Srinivas f77851bee0 docker: second --ldflags was overriding the first --ldflags option 2015-11-07 15:21:01 -08:00
Harshavardhana 2f98fa0a14 build: update LDFLAGS for windows 2015-11-07 00:12:35 -08:00
Krishna Srinivas 440bec28d9 docker: the docker image will now contain just the static binary 2015-11-06 20:44:58 -08:00
Harshavardhana 7845515f36 build: Versioning now populated through ldflags 2015-11-02 02:37:26 -08:00
Anand Babu (AB) Periasamy 588833d06f build time constants 2015-10-26 02:41:04 -07:00
Anand Babu (AB) Periasamy a8f75f5cc1 added pkg-update to update a vendorized package 2015-10-23 19:29:44 -07:00
Harshavardhana 1f66f4869b Fix all remaining windows path issues. 2015-10-22 00:05:10 -07:00
Harshavardhana 47f1ffa1f3 Implement update command 2015-10-17 15:04:54 -07:00
Harshavardhana c9af01d807 Enhance listing further, this time handle cases related to common prefixes 2015-10-16 23:11:41 -07:00
Harshavardhana 762b798767 Migrate this project to minio micro services code 2015-10-16 11:26:08 -07:00
Harshavardhana d54488f144 Move all server and controller packages into top-level 2015-09-19 01:07:42 -07:00
Anand Babu (AB) Periasamy d1f1b7ac31 new version format and some cleanup 2015-09-18 23:27:04 -07:00
Harshavardhana bd33ccc3a2 Run tests only on travis, local builds just do govet, golint and gofmt 2015-09-17 22:31:11 -07:00
Harshavardhana 7093a05ab1 Version is a package now, will be re-used across codebase. 2015-09-17 20:17:33 -07:00
Harshavardhana 1887114444 Fix all the golint complaints about newly added changes
Do not use func(this *server), such generic names should not be used
for writing struct methods.
2015-09-17 18:53:42 -07:00
Harshavardhana 1e2c010174 Avoid shadowing variables and enable checks to avoid them during build 2015-09-09 15:14:55 -07:00
Harshavardhana d0f945f8e7 Simplify erasure package for OSX 2015-09-05 20:19:43 -07:00
Harshavardhana e6a072e0ad Add package add and remove commands to Makefile 2015-08-22 22:23:36 -07:00
Harshavardhana 988d39a5b6 Migrate to golang1.5 release with GO15VENDOREXPERIMENT=1 enabled 2015-08-22 18:35:37 -07:00
Harshavardhana 74587886d2 Refactoring minio server command and flags 2015-08-20 13:07:33 -07:00
Harshavardhana 61175ef091 Migrate to govendor to avoid limitations of godep
- over the course of a project history every maintainer needs to update
  its dependency packages, the problem essentially with godep is manipulating
  GOPATH - this manipulation leads to static objects created at different locations
  which end up conflicting with the overall functionality of golang.

  This also leads to broken builds. There is no easier way out of this other than
  asking developers to do 'godep restore' all the time. Which perhaps as a practice
  doesn't sound like a clean solution. On the other hand 'godep restore' has its own
  set of problems.

- govendor is a right tool but a stop gap tool until we wait for golangs official
  1.5 version which fixes this vendoring issue once and for all.

- govendor provides consistency in terms of how import paths should be handled unlike
  manipulation GOPATH.

  This has advantages
    - no more compiled objects being referenced in GOPATH and build time GOPATH
      manging which leads to conflicts.
    - proper import paths referencing the exact package a project is dependent on.

 govendor is simple and provides the minimal necessary tooling to achieve this.

 For now this is the right solution.
2015-08-12 19:24:57 -07:00
Harshavardhana 5d3379ed7e deprecate 'make.go', go back to Makefile - make.go is not genversion.go 2015-07-31 17:16:54 -07:00
Harshavardhana aabfd541e1 Merge cmd/donut into minio cmd, deprecate controller RPC request 2015-07-31 12:57:15 -07:00
Harshavardhana e4543489fe Use updatedeps script to update godeps 2015-07-16 12:57:32 -07:00
Harshavardhana 4498662c16 Remove scsi non portable code, instead "donut make" implements functionality to instantiate a donut 2015-07-15 11:55:57 -07:00
Harshavardhana 1e80925ca7 Remove dependency on minio/cli for make.go fixes #738 2015-07-13 11:39:28 -07:00
Harshavardhana 55e4d0c6a5 mkdonut now creates a donut processing cli args 2015-07-12 21:21:31 -07:00
Harshavardhana 7615a6bfe5 HEAD shouldn't have any body, handle it in writeErrorResponse() 2015-07-11 10:34:55 -07:00
Harshavardhana 5cfb05465e Add cache, donut tests separately - fix behavior differences
Remove priority queue, implement it using a simpler channels
2015-07-02 21:04:04 -07:00
Harshavardhana 8bde4d4e34 Migrating minio server build to do 'go run make.go' style like mc 2015-06-16 20:23:02 -07:00
Harshavardhana 5101273ec7 Do not attempt to restore while saving new deps 2015-06-04 16:32:35 -07:00
Harshavardhana 5d484e2770 Implement custom date command for cross platform portability 2015-06-04 12:32:23 -07:00
Harshavardhana 82a0eac659 Add filesystem factory functions and add related cli options 2015-05-30 03:23:06 -07:00
Harshavardhana 554a244b47 Add donut OSX support 2015-05-26 02:14:34 -07:00
Harshavardhana f00bfd38da Bump gocyclo back to 16 2015-05-19 18:32:50 -07:00
Harshavardhana de56909d55 More scripts and code from Minio-io to minio 2015-05-11 16:43:38 -07:00
Harshavardhana 8d06504068 Change all minio-io path to minio 2015-05-11 16:23:10 -07:00
Harshavardhana bbace9ac2e Make buildDate universal 2015-04-30 21:16:49 -07:00
Harshavardhana a60d279817 bump up gocyclo to 18 2015-04-29 15:34:00 -07:00
Anand Babu (AB) Periasamy b8eb34aded cleaning make:clean 2015-04-28 21:24:59 -07:00
Harshavardhana 096a994c7b Add build date using ldflags 2015-04-27 13:08:51 -07:00
Anand Babu (AB) Periasamy b010fd0ff3 Version is now based on MD5SUM of its binary 2015-04-24 21:51:52 -07:00
Harshavardhana c5d8ca245d Memory now handles submitting large files - fixes #482 2015-04-24 15:22:22 -07:00
Harshavardhana 97d1f03a87 Fix build for travis 2015-04-11 17:31:01 -07:00
Harshavardhana c63bdf79fa Remove docs, minimal docs going to be at minio.io instead and rest amazon docs 2015-04-10 21:21:59 -07:00
Harshavardhana 7fd1cc073c Add everything back into one project hood, still missing iodine 2015-04-08 17:47:56 -07:00
Harshavardhana 637d2d687a Add full rebuild for minio command to avoid godep stale issues 2015-04-02 16:11:52 -07:00
Harshavardhana 9c0b17c239 Build everything by default 2015-04-02 14:34:05 -07:00
Frederick F. Kautz IV a689769245 Updating godep to minio-io/godep 2015-04-01 20:57:27 -07:00
Harshavardhana 92f408af5d Add erasure to godep 2015-04-01 16:56:43 -07:00
Harshavardhana 4d57ca7c44 Update makefile 2015-03-25 23:10:03 -07:00
Anand Babu (AB) Periasamy e14ba846b5 make clean build-constants.go 2015-03-25 23:04:27 -07:00
Anand Babu (AB) Periasamy 3c4aa85c69 git commit hash generator 2015-03-25 22:57:30 -07:00
Harshavardhana 58082cd8dc Add gocyclo into source build, choosing cyclomatic complexity tolerance of 15 and below 2015-03-25 15:57:17 -07:00
Harshavardhana b952855779 Add strict checks with vet, golint and gofmt 2015-03-09 16:17:38 -07:00
Harshavardhana d992bccd9a Move pkg/storage/erasure to pkg/encoding/erasure - and other cleanups 2015-03-07 00:16:48 -08:00
Harshavardhana e5af8a3f5d Further fixes -
- All test files have been renamed to their respective <package>_test name,
    this is done in accordance with
      - https://github.com/golang/go/wiki/CodeReviewComments#import-dot
        imports are largely used in testing, but to avoid namespace collision
        and circular dependencies

  - Never use _* in package names other than "_test" change fragment_v1 to expose
    fragment just like 'gopkg.in/check.v1'
2015-03-06 02:04:21 -08:00
Harshavardhana 3a3c8645fc Update comments across the codebase 2015-03-03 02:39:38 -08:00
Harshavardhana c3ad0906e0 Add deadcode code which recursivley goes into all directories and verifies dangling variables. 2015-03-02 18:44:20 -08:00
Anand Babu (AB) Periasamy 6fc11932ec make test -> test-all 2015-02-23 11:03:40 -08:00
Harshavardhana a3fe948c8b Remove setup development environment script 2015-02-21 21:38:04 -08:00
Harshavardhana 741e14f749 Remove go cover and remove unncessary Makefiles 2015-02-20 17:44:26 -08:00
Harshavardhana 0a1a47da1b remove govet dependency for now 2015-02-18 15:51:31 -08:00
Harshavardhana fab954f13f Run govet and fix 2015-02-18 15:33:55 -08:00
Harshavardhana 79455c3f9d No symlink, fail when not in GOPATH 2015-02-18 14:35:49 -08:00
Harshavardhana 0d91e7d540 Move to devscripts to avoid top level dir clutter 2015-02-14 17:28:55 -08:00
Harshavardhana d036bf3a2a Restructure docs and move mkdocs.yml to top-level 2015-02-08 17:40:39 -08:00
Harshavardhana 19267fa29a Create the non-existent directory 2015-02-05 10:57:26 -08:00
Frederick F. Kautz IV 0646e7ae40 Fixing symlink test to not link if file exists 2015-02-03 17:15:57 -08:00
Harshavardhana 88af9ba666 Consolidate developers docs and Makefile, create symlink automatically 2015-02-01 21:18:46 -08:00
Frederick F. Kautz IV 84c5df8441 Using generic make test ./... and make build ./..., disabled signers code for now to fix build. 2015-01-30 10:58:47 -08:00
Harshavardhana ac99968796 Add x509 tests and should be part of the build 2015-01-28 17:12:59 -08:00
Harshavardhana d78cd581c5 Authorization validation in accordance with S3 signer AWSv2 2015-01-28 16:14:08 -08:00
Harshavardhana 07a1ad8b2d Remote syso files in 'make clean' 2015-01-27 13:13:25 -08:00
Harshavardhana 2547163cb2 Add erasure package in its full form v1.0 2015-01-27 12:55:17 -08:00
Harshavardhana 4c0804c5bc Cosmetic change 'minio' to be installed with Makefile 2015-01-25 17:45:00 -08:00
Harshavardhana 01d15ca3b2 Implement crc32c for Darwin, update documentation 2015-01-23 19:43:51 -08:00
Harshavardhana 3d43305b1f Make gcc mandatory on OSX, since clang lacks certain GAS features 2015-01-22 18:33:35 -08:00
Harshavardhana 8582391ef6 Add arch=osx for isal to compile properly on MacOSX 2015-01-21 15:04:54 -08:00
Harshavardhana e7c74fdde2 Add ARCH flags 2015-01-21 13:52:42 -08:00
Harshavardhana 9401262f75 Remove linux specific code for now, bring them in later 2015-01-21 13:47:50 -08:00
Harshavardhana 5b67da7d96 Add PutBucket and ListBuckets service 2015-01-21 00:52:59 -08:00
Frederick F. Kautz IV f550e84cf4 Removing old server
Removing storage drivers
2015-01-18 14:54:46 -08:00
Harshavardhana 68de9ac19e Further restructure 2015-01-14 12:40:43 -08:00
Anand Babu (AB) Periasamy d4d43fa018 clean isal files as well 2015-01-14 11:53:46 -08:00
Harshavardhana 432275e966 Full restructure in accordance with
- pkg/{subsystem}/{package} style
  - modify Makefile to reflect the new style,
    consolidate various entries
  - add a dummy ``main.go`` at top level
2015-01-14 11:29:04 -08:00
Harshavardhana f347a1e590 Merge with Intel ISAL changes from github.com/minio-io/isal
- These changes bring in a much needed Mac OSX port for
    Intel ISAL library
  - At the current stage this MacOSX part of code is
    considered beta
  - pkg/cpu now supports OSX
  - pkg/checksum/crc32c - is still WIP, rest of the packages
    have been validated
2015-01-11 00:39:39 -08:00
Frederick F. Kautz IV 992dea1bf3 Adding index command 2015-01-06 22:26:09 +13:00
Harshavardhana fff6b589cf Rename split-file --> split 2015-01-03 18:03:21 -08:00
Harshavardhana 6b36b5c551 A full restructure 2014-12-29 21:22:26 -08:00
Harshavardhana 13650e088c Implement md5c function, slower than Golang's implementation
keeping it in repo to make further improvements and also rename

        minio-hash ---> crypto
2014-12-21 03:50:33 -08:00
Frederick F. Kautz IV 25c8bfee24 Adding minio-hash to install via Makefile 2014-12-21 23:16:29 +13:00
Frederick F. Kautz IV ff55d40432 Adding md5, sha256, sha512 to Makefile 2014-12-21 13:40:09 +13:00
Harshavardhana d4c05f11c7 Update documentation 2014-12-20 09:09:35 -08:00
Harshavardhana 5268a62166 Add minio-cli stub generator 2014-12-19 00:00:14 -08:00
Harshavardhana e1b6f5391f Add pkgs/scsi to build 2014-12-17 03:36:10 -08:00
Harshavardhana 3ec5c2fb8f Implement commands
Commands implemented

   $ minio put <objectname> <file>
   $ minio encode <objectname>
   $ minio get <objectname>
   $ minio list

TODO :

   $ minio init
   $ minio verify
    ...
    ...
2014-12-15 14:59:15 -08:00
Frederick F. Kautz IV 05baa6d9a2 Removing fsstorage 2014-12-15 19:15:22 +13:00
Harshavardhana 0148237e22 Refactor checksum code, and add Objectname hashing per uploaded objects
Add placeholder sha256, sha512 implementations from Intel with AVX, AVX2
and SSE4.1 extensions - with some boilerplate Go code.
2014-12-13 21:42:23 -08:00
Harshavardhana fc50291cac fsStorage should use appendStorage with offsets
- also takes in 'blockSize' cli option.
 - robustness fixes
2014-12-12 17:18:16 -08:00
Harshavardhana 235949eafe Build fixes after moving to go1.4 2014-12-11 20:57:00 -08:00
Harshavardhana c0724b38b9 Ignore io.EOF for gob decoding 2014-12-11 01:45:58 -08:00
Frederick F. Kautz IV 568ca4e1bc erasure encoded demo 2014-12-11 00:32:32 -08:00
Frederick F. Kautz IV e670608226 Fixing build 2014-12-10 17:43:16 -08:00