1 /*******************************************************************************
\r
2 * ============LICENSE_START====================================================
\r
4 * * ===========================================================================
\r
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * * Copyright © 2017 Amdocs
\r
7 * * ===========================================================================
\r
8 * * Licensed under the Apache License, Version 2.0 (the "License");
\r
9 * * you may not use this file except in compliance with the License.
\r
10 * * You may obtain a copy of the License at
\r
12 * * http://www.apache.org/licenses/LICENSE-2.0
\r
14 * * Unless required by applicable law or agreed to in writing, software
\r
15 * * distributed under the License is distributed on an "AS IS" BASIS,
\r
16 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
17 * * See the License for the specific language governing permissions and
\r
18 * * limitations under the License.
\r
19 * * ============LICENSE_END====================================================
\r
21 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
\r
23 ******************************************************************************/
\r
24 package com.att.cmd.perm;
\r
26 import com.att.cadi.CadiException;
\r
27 import com.att.cadi.LocatorException;
\r
28 import com.att.cadi.client.Future;
\r
29 import com.att.cadi.client.Rcli;
\r
30 import com.att.cadi.client.Retryable;
\r
31 import com.att.cmd.AAFcli;
\r
32 import com.att.cmd.Cmd;
\r
33 import com.att.cmd.Param;
\r
34 import com.att.cssa.rserv.HttpMethods;
\r
35 import com.att.inno.env.APIException;
\r
37 import aaf.v2_0.PermRequest;
\r
39 public class Rename extends Cmd {
\r
40 public Rename(Perm parent) {
\r
41 super(parent,"rename",
\r
42 new Param("type",true),
\r
43 new Param("instance",true),
\r
44 new Param("action", true),
\r
45 new Param("new type",true),
\r
46 new Param("new instance",true),
\r
47 new Param("new action", true)
\r
52 public int _exec(final int index, final String ... args) throws CadiException, APIException, LocatorException {
\r
53 return same(new Retryable<Integer>() {
\r
55 public Integer code(Rcli<?> client) throws CadiException, APIException {
\r
57 String origType = args[idx++];
\r
58 String origInstance = args[idx++];
\r
59 String origAction = args[idx++];
\r
61 //Create new permission
\r
62 PermRequest pr = new PermRequest();
\r
63 pr.setType(args[idx++]);
\r
64 pr.setInstance(args[idx++]);
\r
65 pr.setAction(args[idx++]);
\r
67 // Set Start/End commands
\r
69 Future<PermRequest> fp = client.update(
\r
70 "/authz/perm/"+origType+"/"+origInstance+"/"+origAction,
\r
71 getDF(PermRequest.class),
\r
75 if(fp.get(AAFcli.timeout())) {
\r
77 pw().println("Updated Permission");
\r
81 pw().println("Permission Update Accepted, but requires Approvals before actualizing");
\r
93 public void detailedHelp(int indent, StringBuilder sb) {
\r
94 detailLine(sb,indent,"Rename a Permission from:");
\r
95 detailLine(sb,indent+2,"<type> <instance> <action>");
\r
96 detailLine(sb,indent,"to:");
\r
97 detailLine(sb,indent+2,"<new type> <new instance> <new action>");
\r
99 detailLine(sb,indent,"Namespace must be the same in <type> and <new type>");
\r
100 detailLine(sb,indent+4,"see Create for definitions of type,instance and action");
\r
101 api(sb,indent,HttpMethods.PUT,"authz/perm/<type>/<instance>/<action>",PermRequest.class,true);
\r