Deployment policy deployment using RESTful service in CLI
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/7e4c4d4b Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/7e4c4d4b Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/7e4c4d4b Branch: refs/heads/master Commit: 7e4c4d4bf31586d2b1420f73a15ce22fd2cd3c3c Parents: 6d61d4b Author: Manula Thantriwatte <[email protected]> Authored: Wed Dec 11 13:59:06 2013 +0530 Committer: Manula Thantriwatte <[email protected]> Committed: Wed Dec 11 13:59:06 2013 +0530 ---------------------------------------------------------------------- .../stratos/cli/RestCommandLineService.java | 20 +++ .../apache/stratos/cli/StratosApplication.java | 5 +- .../commands/AutoScalingDeploymentCommand.java | 141 ------------------- .../AutoscalingPolicyDeploymentCommand.java | 139 ++++++++++++++++++ .../commands/CartridgeDeploymentCommand.java | 1 - .../DeploymentPolicyDeploymentCommand.java | 139 ++++++++++++++++++ .../apache/stratos/cli/utils/CliConstants.java | 5 + 7 files changed, 307 insertions(+), 143 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java index ebe0e3b..a4f28dc 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java @@ -54,6 +54,7 @@ public class RestCommandLineService { private final String cartridgeDeploymentEndPoint = "/stratos/admin/cartridge/definition"; private final String partitionDeploymentEndPoint = "/stratos/admin/policy/deployment/partition"; private final String autoscalingPolicyDeploymentEndPoint = "/stratos/admin/policy/autoscale"; + private final String deploymentPolicyDeploymentEndPoint = "/stratos/admin/policy/deployment"; private static class SingletonHolder { private final static RestCommandLineService INSTANCE = new RestCommandLineService(); @@ -498,6 +499,25 @@ public class RestCommandLineService { } } + public void deployDeploymentPolicy (String deploymentPolicy) { + try { + String result = restClientService.doPost(restClientService.getUrl() + deploymentPolicyDeploymentEndPoint, + deploymentPolicy, restClientService.getUsername(), restClientService.getPassword()); + + System.out.println(result); + + if (Integer.parseInt(result) == CliConstants.RESPONSE_AUTHORIZATION_FAIL) { + System.out.println("Invalid operations. Authorization failed"); + } + else { + System.out.println("You have successfully deployed the deployment policy"); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + private class CartridgeList { private ArrayList<Cartridge> cartridge; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java index 9387d4a..b532479 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java @@ -114,7 +114,10 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon command = new PartitionDeploymentCommand(); commands.put(command.getName(), command); - command = new AutoScalingDeploymentCommand(); + command = new AutoscalingPolicyDeploymentCommand(); + commands.put(command.getName(), command); + + command = new DeploymentPolicyDeploymentCommand(); commands.put(command.getName(), command); command = new ListCommand(); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoScalingDeploymentCommand.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoScalingDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoScalingDeploymentCommand.java deleted file mode 100644 index a5b18c7..0000000 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoScalingDeploymentCommand.java +++ /dev/null @@ -1,141 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF 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 - - * http://www.apache.org/licenses/LICENSE-2.0 - - * 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 org.apache.stratos.cli.commands; - -import org.apache.commons.cli.*; -import org.apache.stratos.cli.Command; -import org.apache.stratos.cli.RestCommandLineService; -import org.apache.stratos.cli.StratosCommandContext; -import org.apache.stratos.cli.exception.CommandException; -import org.apache.stratos.cli.utils.CliConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class AutoScalingDeploymentCommand implements Command<StratosCommandContext> { - - private static final Logger logger = LoggerFactory.getLogger(AutoScalingDeploymentCommand.class); - - private final Options options; - - public AutoScalingDeploymentCommand(){ - options = constructOptions(); - } - - private Options constructOptions() { - final Options options = new Options(); - - Option resourcePath = new Option(CliConstants.RESOURCE_PATH, CliConstants.RESOURCE_PATH_LONG_OPTION, true, - "Autoscaling policy deployment resource path"); - resourcePath.setArgName("resource path"); - options.addOption(resourcePath); - - return options; - } - - public String getName() { - return CliConstants.AUTOSCALING_POLICY_DEPLOYMENT; - } - - public String getDescription() { - return "Add new autoscaling policy deployment"; - } - - public String getArgumentSyntax() { - return null; - } - - public int execute(StratosCommandContext context, String[] args) throws CommandException { - if (logger.isDebugEnabled()) { - logger.debug("Executing {} command...", getName()); - } - - if (args != null || args.length > 0) { - String resourcePath = null; - String autoscalingPolicyDeployment = null; - - final CommandLineParser parser = new GnuParser(); - CommandLine commandLine; - - try { - commandLine = parser.parse(options, args); - - if (logger.isDebugEnabled()) { - logger.debug("Autoscaling policy deployment"); - } - - if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) { - if (logger.isTraceEnabled()) { - logger.trace("Resource path option is passed"); - } - resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH); - autoscalingPolicyDeployment = readResource(resourcePath); - } - - if (resourcePath == null) { - System.out.println("usage: " + getName() + " [-p <resource path>]"); - return CliConstants.BAD_ARGS_CODE; - } - - System.out.println(autoscalingPolicyDeployment); - RestCommandLineService.getInstance().deployAutoscalingPolicy(autoscalingPolicyDeployment); - return CliConstants.SUCCESSFUL_CODE; - - } catch (ParseException e) { - if (logger.isErrorEnabled()) { - logger.error("Error parsing arguments", e); - } - System.out.println(e.getMessage()); - return CliConstants.BAD_ARGS_CODE; - } catch (IOException e) { - //e.printStackTrace(); - System.out.println("Invalid resource path"); - return CliConstants.BAD_ARGS_CODE; - } - } else { - context.getStratosApplication().printUsage(getName()); - return CliConstants.BAD_ARGS_CODE; - } - } - - private String readResource(String fileName) throws IOException { - BufferedReader br = new BufferedReader(new FileReader(fileName)); - try { - StringBuilder sb = new StringBuilder(); - String line = br.readLine(); - - while (line != null) { - sb.append(line); - sb.append("\n"); - line = br.readLine(); - } - return sb.toString(); - } finally { - br.close(); - } - } - - public Options getOptions() { - return options; - } -} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java new file mode 100644 index 0000000..76a6431 --- /dev/null +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java @@ -0,0 +1,139 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF 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 + + * http://www.apache.org/licenses/LICENSE-2.0 + + * 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 org.apache.stratos.cli.commands; + +import org.apache.commons.cli.*; +import org.apache.stratos.cli.Command; +import org.apache.stratos.cli.RestCommandLineService; +import org.apache.stratos.cli.StratosCommandContext; +import org.apache.stratos.cli.exception.CommandException; +import org.apache.stratos.cli.utils.CliConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class AutoscalingPolicyDeploymentCommand implements Command<StratosCommandContext> { + + private static final Logger logger = LoggerFactory.getLogger(AutoscalingPolicyDeploymentCommand.class); + + private final Options options; + + public AutoscalingPolicyDeploymentCommand(){ + options = constructOptions(); + } + + private Options constructOptions() { + final Options options = new Options(); + + Option resourcePath = new Option(CliConstants.RESOURCE_PATH, CliConstants.RESOURCE_PATH_LONG_OPTION, true, + "Autoscaling policy deployment resource path"); + resourcePath.setArgName("resource path"); + options.addOption(resourcePath); + + return options; + } + + public String getName() { + return CliConstants.AUTOSCALING_POLICY_DEPLOYMENT; + } + + public String getDescription() { + return "Add new autoscaling policy deployment"; + } + + public String getArgumentSyntax() { + return null; + } + + public int execute(StratosCommandContext context, String[] args) throws CommandException { + if (logger.isDebugEnabled()) { + logger.debug("Executing {} command...", getName()); + } + + if (args != null || args.length > 0) { + String resourcePath = null; + String autoscalingPolicyDeployment = null; + + final CommandLineParser parser = new GnuParser(); + CommandLine commandLine; + + try { + commandLine = parser.parse(options, args); + + if (logger.isDebugEnabled()) { + logger.debug("Autoscaling policy deployment"); + } + + if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) { + if (logger.isTraceEnabled()) { + logger.trace("Resource path option is passed"); + } + resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH); + autoscalingPolicyDeployment = readResource(resourcePath); + } + + if (resourcePath == null) { + System.out.println("usage: " + getName() + " [-p <resource path>]"); + return CliConstants.BAD_ARGS_CODE; + } + + RestCommandLineService.getInstance().deployAutoscalingPolicy(autoscalingPolicyDeployment); + return CliConstants.SUCCESSFUL_CODE; + + } catch (ParseException e) { + if (logger.isErrorEnabled()) { + logger.error("Error parsing arguments", e); + } + System.out.println(e.getMessage()); + return CliConstants.BAD_ARGS_CODE; + } catch (IOException e) { + //e.printStackTrace(); + System.out.println("Invalid resource path"); + return CliConstants.BAD_ARGS_CODE; + } + } else { + context.getStratosApplication().printUsage(getName()); + return CliConstants.BAD_ARGS_CODE; + } + } + + private String readResource(String fileName) throws IOException { + BufferedReader br = new BufferedReader(new FileReader(fileName)); + try { + StringBuilder sb = new StringBuilder(); + String line = br.readLine(); + + while (line != null) { + sb.append(line); + sb.append("\n"); + line = br.readLine(); + } + return sb.toString(); + } finally { + br.close(); + } + } + + public Options getOptions() { + return options; + } +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java index 5e6b304..650aef3 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java @@ -136,7 +136,6 @@ public class CartridgeDeploymentCommand implements Command<StratosCommandContext } } - @Override public Options getOptions() { return options; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java new file mode 100644 index 0000000..62aabc8 --- /dev/null +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java @@ -0,0 +1,139 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF 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 + + * http://www.apache.org/licenses/LICENSE-2.0 + + * 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 org.apache.stratos.cli.commands; + +import org.apache.commons.cli.*; +import org.apache.stratos.cli.Command; +import org.apache.stratos.cli.RestCommandLineService; +import org.apache.stratos.cli.StratosCommandContext; +import org.apache.stratos.cli.exception.CommandException; +import org.apache.stratos.cli.utils.CliConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class DeploymentPolicyDeploymentCommand implements Command<StratosCommandContext> { + + private static final Logger logger = LoggerFactory.getLogger(DeploymentPolicyDeploymentCommand.class); + + private final Options options; + + public DeploymentPolicyDeploymentCommand(){ + options = constructOptions(); + } + + private Options constructOptions() { + final Options options = new Options(); + + Option resourcePath = new Option(CliConstants.RESOURCE_PATH, CliConstants.RESOURCE_PATH_LONG_OPTION, true, + "Deployment policy deployment resource path"); + resourcePath.setArgName("resource path"); + options.addOption(resourcePath); + + return options; + } + + public String getName() { + return CliConstants.DEPLOYMENT_POLICY_DEPLOYMENT; + } + + public String getDescription() { + return "Add new deployment policy"; + } + + public String getArgumentSyntax() { + return null; + } + + public int execute(StratosCommandContext context, String[] args) throws CommandException { + if (logger.isDebugEnabled()) { + logger.debug("Executing {} command...", getName()); + } + + if (args != null || args.length > 0) { + String resourcePath = null; + String deploymentPolicyDeployment = null; + + final CommandLineParser parser = new GnuParser(); + CommandLine commandLine; + + try { + commandLine = parser.parse(options, args); + + if (logger.isDebugEnabled()) { + logger.debug("Deployment policy deployment"); + } + + if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) { + if (logger.isTraceEnabled()) { + logger.trace("Resource path option is passed"); + } + resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH); + deploymentPolicyDeployment = readResource(resourcePath); + } + + if (resourcePath == null) { + System.out.println("usage: " + getName() + " [-p <resource path>]"); + return CliConstants.BAD_ARGS_CODE; + } + + RestCommandLineService.getInstance().deployDeploymentPolicy(deploymentPolicyDeployment); + return CliConstants.SUCCESSFUL_CODE; + + } catch (ParseException e) { + if (logger.isErrorEnabled()) { + logger.error("Error parsing arguments", e); + } + System.out.println(e.getMessage()); + return CliConstants.BAD_ARGS_CODE; + } catch (IOException e) { + //e.printStackTrace(); + System.out.println("Invalid resource path"); + return CliConstants.BAD_ARGS_CODE; + } + } else { + context.getStratosApplication().printUsage(getName()); + return CliConstants.BAD_ARGS_CODE; + } + } + + private String readResource(String fileName) throws IOException { + BufferedReader br = new BufferedReader(new FileReader(fileName)); + try { + StringBuilder sb = new StringBuilder(); + String line = br.readLine(); + + while (line != null) { + sb.append(line); + sb.append("\n"); + line = br.readLine(); + } + return sb.toString(); + } finally { + br.close(); + } + } + + public Options getOptions() { + return options; + } +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7e4c4d4b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java index e820c87..61f899e 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java @@ -84,6 +84,11 @@ public class CliConstants { */ public static final String AUTOSCALING_POLICY_DEPLOYMENT = "autoscaling-policy-deployment"; + /** + * Deployment policy deployment + */ + public static final String DEPLOYMENT_POLICY_DEPLOYMENT = "deployment-policy-deployment"; + /** * Give information of a cartridge. */
