8 Commits

Author SHA1 Message Date
Dmitry Vyukov
a7b199253f all: use consistent file permissions
Currently we have unix permissions for new files/dirs
hardcoded throughout the code base. Some places use 0644,
some - 0640, some - 0600 and a variety of other constants.

Introduce osutil.MkdirAll/WriteFile that use the default
permissions and use them throughout the code base.

This makes permissions consistent and also allows to easily
change the permissions later if we change our minds.

Also merge pkg/fileutil into pkg/osutil as they become
dependent on each other. The line between them was poorly
defined anyway as both operate on files.
2017-07-03 14:00:47 +02:00
Dmitry Vyukov
b3ae011196 pkg/osutil: port to darwin 2017-06-26 13:43:20 +02:00
Dmitry Vyukov
fea266b33f pkg/osutil: add FilesExist/CopyFiles/LinkFiles functions
Will be required by the new build system.
2017-06-20 19:59:47 +02:00
Dmitry Vyukov
4799d21e01 pkg/osutil: fix IsExist
Currently it returns true for "/some/existing/file/foo"
because that returns ENOTDIR.
2017-06-19 16:44:39 +02:00
Dmitry Vyukov
b6e969be7a pkg/osutil: add helper function for SIGINT handling 2017-06-19 16:43:23 +02:00
Dmitry Vyukov
13c5bfcc6e pkg/osutil: add IsExist helper function 2017-06-17 12:11:24 +02:00
Dmitry Vyukov
af643baa32 vm: overhaul
VM infrastructure currently has several problems:
 - Config struct is complete mess with a superset of params for all VM types
 - verification of Config is mess spread across several places
 - there is no place where VM code could do global initialization
   like creating GCE connection, uploading GCE image to GCS,
   matching adb devices with consoles, etc
 - it hard to add private VM implementations
   such impl would need to add code to config package
   which would lead to constant merge conflicts
 - interface for VM implementation is mixed with interface for VM users
   this does not allow to provide best interface for both of them
 - there is no way to add common code for all VM implementations

This change solves these problems by:
 - splitting VM interface for users (vm package) and VM interface
   for VM implementations (vmimpl pacakge), this in turn allows
   to add common code
 - adding Pool concept that allows to do global initialization
   and config checking at the right time
 - decoupling manager config from VM-specific config
   each VM type now defines own config

Note: manager configs need to be changed after this change:
VM-specific parts are moved to own "vm" subobject.

Note: this change also drops "local" VM type.
Its story was long unclear and there is now syz-stress which solves the same problem.
2017-06-03 11:31:42 +02:00
Dmitry Vyukov
1a7e5fb38d pkg/kernel: add new package
Move functionality to build kernel/image
from syz-gce to a separate package.
2017-06-03 10:41:09 +02:00