Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright 2005-2014 Red Hat, Inc. Red Hat licenses this file to you under the Apache License, version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 package io.fabric8.forge.kubernetes;
 import  org.jboss.forge.addon.ui.context.UIBuilder;
 import  org.jboss.forge.addon.ui.context.UIContext;
 import  org.jboss.forge.addon.ui.context.UIExecutionContext;
 import  org.jboss.forge.addon.ui.context.UIValidationContext;
 import  org.jboss.forge.addon.ui.input.InputComponent;
 import  org.jboss.forge.addon.ui.input.UIInput;
 import  org.jboss.forge.addon.ui.metadata.UICommandMetadata;
 import  org.jboss.forge.addon.ui.metadata.WithAttributes;
 import  org.jboss.forge.addon.ui.result.Result;
 import  org.jboss.forge.addon.ui.util.Categories;
 import  org.jboss.forge.addon.ui.util.Metadata;
 import  org.jboss.forge.addon.ui.validate.UIValidator;
 import  javax.inject.Inject;

Apploies a given JSON configuration to kubernetes
 public class Apply extends AbstractKubernetesCommand {
     @WithAttributes(name = "file", label = "JSON file",
             description = "The JSON file of configuration to apply to Kubernetes.", required = true)
     public UICommandMetadata getMetadata(UIContext context) {
         return Metadata.from(super.getMetadata(context), getClass())
                 .name( + ": Apply")
                 .description("Applies the given JSON configuration to kubernetes to create pods, replication controllers or services");
     public void initializeUI(UIBuilder builderthrows Exception {
         // TODO complete on files
         file.setCompleter(new UICompleter<String>() {
             public Iterable<String> getCompletionProposals(UIContext context, InputComponent<?, String> input, String value) {
                 List<String> list = new ArrayList<String>();
                 ServiceList services = getKubernetes().getServices();
                 if (services != null) {
                     List<Service> items = services.getItems();
                     if (items != null) {
                         for (Service item : items) {
                             String id = item.getName();
                 return list;
         .addValidator(new UIValidator() {
             public void validate(UIValidationContext validationContext) {
                 InputComponent<?, ?> inputComponent = validationContext.getCurrentInputComponent();
                 Object value = inputComponent.getValue();
                 if (value instanceof File) {
                     File aFile = (Filevalue;
                     if (!aFile.exists()) {
                         validationContext.addValidationError(inputComponent"File does not exist!");
                     } else if (!aFile.isFile()) {
                         validationContext.addValidationError(inputComponent"File is a directory!");
                     } else {
                         String extension = Files.getFileExtension(aFile);
                         if (extension == null || !extension.toLowerCase().equals("json")) {
                             validationContext.addValidationWarning(inputComponent"File does not use the .json extension");
    public Result execute(UIExecutionContext contextthrows Exception {
        File applyFile = .getValue();
        Controller controller = new Controller(getKubernetes());
        return null;
New to GrepCode? Check out our FAQ X