Bump image, storage, and image-spec
Bump containers/image (pulling in its new dependency on ostree-go), containers/storage, and updated image-spec. This pulls in the OCI v1.0 specifications and code that allows us to support 1.0 images. Signed-off-by: Dan Walsh <dwalsh@redhat.com> Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
This commit is contained in:
parent
5138691c3b
commit
d76645680f
117 changed files with 3965 additions and 991 deletions
90
vendor/github.com/ostreedev/ostree-go/pkg/otbuiltin/init.go
generated
vendored
Normal file
90
vendor/github.com/ostreedev/ostree-go/pkg/otbuiltin/init.go
generated
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
package otbuiltin
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
"unsafe"
|
||||
|
||||
glib "github.com/ostreedev/ostree-go/pkg/glibobject"
|
||||
)
|
||||
|
||||
// #cgo pkg-config: ostree-1
|
||||
// #include <stdlib.h>
|
||||
// #include <glib.h>
|
||||
// #include <ostree.h>
|
||||
// #include "builtin.go.h"
|
||||
import "C"
|
||||
|
||||
// Declare variables for options
|
||||
var initOpts initOptions
|
||||
|
||||
// Contains all of the options for initializing an ostree repo
|
||||
type initOptions struct {
|
||||
Mode string // either bare, archive-z2, or bare-user
|
||||
|
||||
repoMode C.OstreeRepoMode
|
||||
}
|
||||
|
||||
// Instantiates and returns an initOptions struct with default values set
|
||||
func NewInitOptions() initOptions {
|
||||
io := initOptions{}
|
||||
io.Mode = "bare"
|
||||
io.repoMode = C.OSTREE_REPO_MODE_BARE
|
||||
return io
|
||||
}
|
||||
|
||||
// Initializes a new ostree repository at the given path. Returns true
|
||||
// if the repo exists at the location, regardless of whether it was initialized
|
||||
// by the function or if it already existed. Returns an error if the repo could
|
||||
// not be initialized
|
||||
func Init(path string, options initOptions) (bool, error) {
|
||||
initOpts = options
|
||||
err := parseMode()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
// Create a repo struct from the path
|
||||
var cerr *C.GError
|
||||
defer C.free(unsafe.Pointer(cerr))
|
||||
cpath := C.CString(path)
|
||||
defer C.free(unsafe.Pointer(cpath))
|
||||
pathc := C.g_file_new_for_path(cpath)
|
||||
defer C.g_object_unref(C.gpointer(pathc))
|
||||
crepo := C.ostree_repo_new(pathc)
|
||||
|
||||
// If the repo exists in the filesystem, return an error but set exists to true
|
||||
/* var exists C.gboolean = 0
|
||||
success := glib.GoBool(glib.GBoolean(C.ostree_repo_exists(crepo, &exists, &cerr)))
|
||||
if exists != 0 {
|
||||
err = errors.New("repository already exists")
|
||||
return true, err
|
||||
} else if !success {
|
||||
return false, generateError(cerr)
|
||||
}*/
|
||||
|
||||
cerr = nil
|
||||
created := glib.GoBool(glib.GBoolean(C.ostree_repo_create(crepo, initOpts.repoMode, nil, &cerr)))
|
||||
if !created {
|
||||
errString := generateError(cerr).Error()
|
||||
if strings.Contains(errString, "File exists") {
|
||||
return true, generateError(cerr)
|
||||
}
|
||||
return false, generateError(cerr)
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// Converts the mode string to a C.OSTREE_REPO_MODE enum value
|
||||
func parseMode() error {
|
||||
if strings.EqualFold(initOpts.Mode, "bare") {
|
||||
initOpts.repoMode = C.OSTREE_REPO_MODE_BARE
|
||||
} else if strings.EqualFold(initOpts.Mode, "bare-user") {
|
||||
initOpts.repoMode = C.OSTREE_REPO_MODE_BARE_USER
|
||||
} else if strings.EqualFold(initOpts.Mode, "archive-z2") {
|
||||
initOpts.repoMode = C.OSTREE_REPO_MODE_ARCHIVE_Z2
|
||||
} else {
|
||||
return errors.New("Invalid option for mode")
|
||||
}
|
||||
return nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue