Commit Graph

274 Commits

Author SHA1 Message Date
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
Harshavardhana
f6a5b61b00 Make get/put more robust
- init folder if not present already in 'get()' call
  - put.go was referencing wrong args - fix it
  - if no OBJECTNAME is specified during 'get' - grab a
    list of files under "~/.minio"
  - Provide new API GetList() for ObjectStorage struct
2014-12-09 03:32:31 -08:00
Harshavardhana
43680cd7b6 Add sha1 - AVX2 supported fast implementation, with some crc32c cleanup 2014-12-09 01:00:02 -08:00
Harshavardhana
7314b5e37d Fixes #71 - some crazy races inside erasure and simplify the code
- This change also brings in changing 'unsigned char' to 'uint8_t'
for brevity
2014-12-07 01:33:49 -08:00
Harshavardhana
c3fca84f25 Add git and mercurial as dependencies 2014-12-04 01:56:08 -08:00
Harshavardhana
fb34c5290c Fast CRC implementations ported from Intel's efforts
Provides fast CRC32C with PCLMULQDQ instructions in Golang

The white papers on CRC32C calculations with PCLMULQDQ instruction can be
  downloaded from:

http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/crc-iscsi-polynomial-crc32-instruction-paper.pdf
http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-paper.pdf
2014-12-03 01:20:31 -08:00
Harshavardhana
6e4583ef1d Build restructure top level 2014-12-01 14:45:50 -08:00