diff options
author | 2017-02-14 15:12:08 +0000 | |
---|---|---|
committer | 2017-02-14 15:12:10 +0000 | |
commit | a84b847a3409df445482674feffa2872a8cbae83 (patch) | |
tree | a4f2dcaef92e0fb09402f2f28f793928d0a16bfd /dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/add-service-instance.groovy | |
parent | e6bca17737d1897675e6403e196fc2a61f335651 (diff) |
Init dcae.controller
Change-Id: I460f09494faa84b55d9c5d54112e098b0e74d007
Signed-off-by: lj1412 <lji@research.att.com>
Diffstat (limited to 'dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/add-service-instance.groovy')
-rw-r--r-- | dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/add-service-instance.groovy | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/add-service-instance.groovy b/dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/add-service-instance.groovy new file mode 100644 index 0000000..19808ac --- /dev/null +++ b/dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/add-service-instance.groovy @@ -0,0 +1,91 @@ + +/*- + * ============LICENSE_START========================================== + * OPENECOMP - DCAE + * =================================================================== + * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * Licensed 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. + * ============LICENSE_END============================================ + */ + + + +import org.openecomp.dcae.controller.platform.servers.controller.DcaeDcaePlatformControllerConsole +import org.openecomp.ncomp.sirius.manager.console.Utils +import org.json.JSONObject + + +def p(x) { Utils.object2json(x).toString(2) } + + +// http://docs.groovy-lang.org/latest/html/gapi/groovy/util/CliBuilder.html +def cli = new CliBuilder(usage:'dcae-controller.sh add-service-instance OPTIONS') +cli.i(longOpt:'instance', args:1, 'Name of Service Instance') +cli.s(longOpt:'service', args:1, 'Name of Service (optional but then descriptor)') +cli.c(longOpt:'config', args:1, 'JSON configuration (optional)') +cli.f(longOpt:'configFile', args:1, 'JSON configuration File (optional)') +cli.C(longOpt:'className', args:1, 'Service Class (optional)') +cli.d(longOpt:'descriptor', args:1, 'Descriptor (optional)') +cli._(longOpt:'debug', args:0, 'Debug') +cli._(longOpt:'controllerEndpoint', args:1, 'Name of controller endpoint (optional)') + +def options = cli.parse(args) + +if (options == null || ! options.instance || ( ! options.service && ! options.descriptor ) ) { + cli.usage() + System.exit(1) +} + +server = new DcaeDcaePlatformControllerConsole("console.properties",options.controllerEndpoint ? options.controllerEndpoint : "localhost") +def service = options.descriptor ? options.descriptor : options.service + + +if (options.config && options.configFile) { + println "only one of --config and --configFile can be specified." + System.exit(1) +} + +def o = [:] + +if (options.config) { + o = Utils.json2object(new JSONObject(options.config)) +} + +if (options.configFile) { + File f = new File(options.configFile) + if (!f.exists()) { + println "Configuration File does not exists: $f.absolutePath" + System.exit(1) + } + o = Utils.json2object(new JSONObject(f.text)) +} + + +if (options.className) o['$class'] = options.className + +if (options.descriptor) { + def d = server.list("/descriptors/$options.descriptor",100) + o['$class'] = "${d.servicePackage}.${d.serviceInstanceClass}" + if (d.vmType != null) o.vmType = [ '$ref' : "/openstack/vmTypes/$d.vmType" ] + if (d.managerPortNumber != null) o.managerPortNumber = d.managerPortNumber +} + +if (options.debug) { + println o +} + +server.create("/services/$service/instances/$options.instance", o) +// needed to persist. +server.update("/",[:]) + |