本文整理汇总了Golang中github.com/openshift/origin/pkg/cmd/cli/describe.ImageStreamDescriber类的典型用法代码示例。如果您正苦于以下问题:Golang ImageStreamDescriber类的具体用法?Golang ImageStreamDescriber怎么用?Golang ImageStreamDescriber使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ImageStreamDescriber类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RunImportImage
// RunImportImage contains all the necessary functionality for the OpenShift cli import-image command.
func RunImportImage(f *clientcmd.Factory, out io.Writer, cmd *cobra.Command, args []string) error {
if len(args) == 0 || len(args[0]) == 0 {
return cmdutil.UsageError(cmd, "you must specify the name of an image stream.")
}
streamName := args[0]
namespace, _, err := f.DefaultNamespace()
if err != nil {
return err
}
osClient, _, err := f.Clients()
if err != nil {
return err
}
imageStreamClient := osClient.ImageStreams(namespace)
stream, err := imageStreamClient.Get(streamName)
if err != nil {
return err
}
if len(stream.Spec.DockerImageRepository) == 0 {
return errors.New("only image streams with spec.dockerImageRepository set may have images imported")
}
if stream.Annotations == nil {
stream.Annotations = make(map[string]string)
}
stream.Annotations[imageapi.DockerImageRepositoryCheckAnnotation] = ""
updatedStream, err := imageStreamClient.Update(stream)
if err != nil {
return err
}
resourceVersion := updatedStream.ResourceVersion
fmt.Fprintln(cmd.Out(), "Waiting for the import to complete, CTRL+C to stop waiting.")
updatedStream, err = waitForImport(imageStreamClient, stream.Name, resourceVersion)
if err != nil {
return fmt.Errorf("unable to determine if the import completed successfully - please run 'oc describe -n %s imagestream/%s' to see if the tags were updated as expected: %v", stream.Namespace, stream.Name, err)
}
fmt.Fprintln(cmd.Out(), "The import completed successfully.\n")
d := describe.ImageStreamDescriber{osClient}
info, err := d.Describe(updatedStream.Namespace, updatedStream.Name)
if err != nil {
return err
}
fmt.Fprintln(out, info)
return nil
}
示例2: RunImportImage
// RunImportImage contains all the necessary functionality for the OpenShift cli import-image command.
func RunImportImage(f *clientcmd.Factory, out io.Writer, cmd *cobra.Command, args []string) error {
if len(args) == 0 || len(args[0]) == 0 {
return cmdutil.UsageError(cmd, "you must specify the name of an image stream")
}
streamName := args[0]
namespace, _, err := f.DefaultNamespace()
if err != nil {
return err
}
osClient, _, err := f.Clients()
if err != nil {
return err
}
from := cmdutil.GetFlagString(cmd, "from")
confirm := cmdutil.GetFlagBool(cmd, "confirm")
imageStreamClient := osClient.ImageStreams(namespace)
stream, err := imageStreamClient.Get(streamName)
if err != nil {
if len(from) == 0 || !errors.IsNotFound(err) {
return err
}
if !confirm {
return fmt.Errorf("the image stream does not exist, pass --confirm to create")
}
stream = &imageapi.ImageStream{
ObjectMeta: kapi.ObjectMeta{Name: streamName},
Spec: imageapi.ImageStreamSpec{DockerImageRepository: from},
}
} else {
if len(stream.Spec.DockerImageRepository) == 0 {
if len(from) == 0 {
return fmt.Errorf("only image streams with spec.dockerImageRepository set may have images imported")
}
if !confirm {
return fmt.Errorf("the image stream already has an import repository set, pass --confirm to update")
}
stream.Spec.DockerImageRepository = from
} else {
if len(from) != 0 {
if from != stream.Spec.DockerImageRepository {
if !confirm {
return fmt.Errorf("the image stream has a different import spec %q, pass --confirm to update", stream.Spec.DockerImageRepository)
}
}
}
}
}
if stream.Annotations != nil {
delete(stream.Annotations, imageapi.DockerImageRepositoryCheckAnnotation)
}
if stream.CreationTimestamp.IsZero() {
stream, err = imageStreamClient.Create(stream)
} else {
stream, err = imageStreamClient.Update(stream)
}
if err != nil {
return err
}
resourceVersion := stream.ResourceVersion
fmt.Fprintln(cmd.Out(), "Waiting for the import to complete, CTRL+C to stop waiting.")
stream, err = waitForImport(imageStreamClient, stream.Name, resourceVersion)
if err != nil {
return fmt.Errorf("unable to determine if the import completed successfully - please run 'oc describe -n %s imagestream/%s' to see if the tags were updated as expected: %v", stream.Namespace, stream.Name, err)
}
fmt.Fprint(cmd.Out(), "The import completed successfully.", "\n\n")
d := describe.ImageStreamDescriber{Interface: osClient}
info, err := d.Describe(stream.Namespace, stream.Name)
if err != nil {
return err
}
fmt.Fprintln(out, info)
return nil
}
示例3: RunImportImage
//.........这里部分代码省略.........
}
}
stream.Spec.Tags[tag] = *existing
}
}
if len(from) == 0 {
// catch programmer error
return fmt.Errorf("unexpected error, from is empty")
}
// Attempt the new, direct import path
isi := &imageapi.ImageStreamImport{
ObjectMeta: kapi.ObjectMeta{
Name: stream.Name,
Namespace: namespace,
ResourceVersion: stream.ResourceVersion,
},
Spec: imageapi.ImageStreamImportSpec{Import: true},
}
if all {
isi.Spec.Repository = &imageapi.RepositoryImportSpec{
From: kapi.ObjectReference{
Kind: "DockerImage",
Name: from,
},
ImportPolicy: imageapi.TagImportPolicy{Insecure: insecure},
}
} else {
isi.Spec.Images = append(isi.Spec.Images, imageapi.ImageImportSpec{
From: kapi.ObjectReference{
Kind: "DockerImage",
Name: from,
},
To: &kapi.LocalObjectReference{Name: tag},
ImportPolicy: imageapi.TagImportPolicy{Insecure: insecure},
})
}
// TODO: add dry-run
_, err = imageStreamClient.Import(isi)
switch {
case err == client.ErrImageStreamImportUnsupported:
case err != nil:
return err
default:
fmt.Fprint(cmd.Out(), "The import completed successfully.\n\n")
// optimization, use the image stream returned by the call
d := describe.ImageStreamDescriber{Interface: osClient}
info, err := d.Describe(namespace, stream.Name)
if err != nil {
return err
}
fmt.Fprintln(out, info)
return nil
}
// Legacy path, remove when support for older importers is removed
delete(stream.Annotations, imageapi.DockerImageRepositoryCheckAnnotation)
if insecure {
if stream.Annotations == nil {
stream.Annotations = make(map[string]string)
}
stream.Annotations[imageapi.InsecureRepositoryAnnotation] = "true"
}
if stream.CreationTimestamp.IsZero() {
stream, err = imageStreamClient.Create(stream)
} else {
stream, err = imageStreamClient.Update(stream)
}
if err != nil {
return err
}
resourceVersion := stream.ResourceVersion
fmt.Fprintln(cmd.Out(), "Importing (ctrl+c to stop waiting) ...")
updatedStream, err := waitForImport(imageStreamClient, stream.Name, resourceVersion)
if err != nil {
if _, ok := err.(importError); ok {
return err
}
return fmt.Errorf("unable to determine if the import completed successfully - please run 'oc describe -n %s imagestream/%s' to see if the tags were updated as expected: %v", stream.Namespace, stream.Name, err)
}
fmt.Fprint(cmd.Out(), "The import completed successfully.\n\n")
d := describe.ImageStreamDescriber{Interface: osClient}
info, err := d.Describe(updatedStream.Namespace, updatedStream.Name)
if err != nil {
return err
}
fmt.Fprintln(out, info)
return nil
}
示例4: Run
// Run contains all the necessary functionality for the OpenShift cli import-image command.
func (o *ImportImageOptions) Run() error {
// TODO: add dry-run
stream, isi, err := o.createImageImport()
if err != nil {
return err
}
// Attempt the new, direct import path
result, err := o.isClient.Import(isi)
switch {
case err == client.ErrImageStreamImportUnsupported:
case err != nil:
return err
default:
fmt.Fprint(o.out, "The import completed successfully.\n\n")
// optimization, use the image stream returned by the call
d := describe.ImageStreamDescriber{Interface: o.osClient}
info, err := d.Describe(o.Namespace, stream.Name, kctl.DescriberSettings{})
if err != nil {
return err
}
fmt.Fprintln(o.out, info)
if r := result.Status.Repository; r != nil && len(r.AdditionalTags) > 0 {
fmt.Fprintf(o.out, "\ninfo: The remote repository contained %d additional tags which were not imported: %s\n", len(r.AdditionalTags), strings.Join(r.AdditionalTags, ", "))
}
return nil
}
// Legacy path, remove when support for older importers is removed
delete(stream.Annotations, imageapi.DockerImageRepositoryCheckAnnotation)
if o.Insecure != nil && *o.Insecure {
if stream.Annotations == nil {
stream.Annotations = make(map[string]string)
}
stream.Annotations[imageapi.InsecureRepositoryAnnotation] = "true"
}
if stream.CreationTimestamp.IsZero() {
stream, err = o.isClient.Create(stream)
} else {
stream, err = o.isClient.Update(stream)
}
if err != nil {
return err
}
fmt.Fprintln(o.out, "Importing (ctrl+c to stop waiting) ...")
resourceVersion := stream.ResourceVersion
updatedStream, err := o.waitForImport(resourceVersion)
if err != nil {
if _, ok := err.(importError); ok {
return err
}
return fmt.Errorf("unable to determine if the import completed successfully - please run 'oc describe -n %s imagestream/%s' to see if the tags were updated as expected: %v", stream.Namespace, stream.Name, err)
}
fmt.Fprint(o.out, "The import completed successfully.\n\n")
d := describe.ImageStreamDescriber{Interface: o.osClient}
info, err := d.Describe(updatedStream.Namespace, updatedStream.Name, kctl.DescriberSettings{})
if err != nil {
return err
}
fmt.Fprintln(o.out, info)
return nil
}