// Push pushes a plugin to the store. func (pm *Manager) Push(name string, metaHeader http.Header, authConfig *types.AuthConfig) error { p, err := pm.pluginStore.GetByName(name) if err != nil { return err } dest := filepath.Join(pm.libRoot, p.GetID()) config, err := ioutil.ReadFile(filepath.Join(dest, "config.json")) if err != nil { return err } var dummy types.Plugin err = json.Unmarshal(config, &dummy) if err != nil { return err } rootfs, err := archive.Tar(p.Rootfs, archive.Gzip) if err != nil { return err } defer rootfs.Close() _, err = distribution.Push(name, pm.registryService, metaHeader, authConfig, ioutil.NopCloser(bytes.NewReader(config)), rootfs) // XXX: Ignore returning digest for now. // Since digest needs to be written to the ProgressWriter. return err }
// Push pushes a plugin to the store. func (pm *Manager) Push(name string, metaHeader http.Header, authConfig *types.AuthConfig) error { p, err := pm.get(name) dest := filepath.Join(pm.libRoot, p.P.ID) config, err := os.Open(filepath.Join(dest, "manifest.json")) if err != nil { return err } rootfs, err := archive.Tar(filepath.Join(dest, "rootfs"), archive.Gzip) if err != nil { return err } _, err = distribution.Push(name, pm.registryService, metaHeader, authConfig, config, rootfs) // XXX: Ignore returning digest for now. // Since digest needs to be written to the ProgressWriter. return nil }