aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cds-ui/client/src/app/common/utility/zipfile-extraction.component.ts12
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts64
-rw-r--r--components/scripts/python/ccsdk_netconf/common.py37
-rw-r--r--components/scripts/python/ccsdk_netconf/netconfclient.py3
-rw-r--r--docs/designtime.rst4
-rw-r--r--docs/installation.rst24
-rw-r--r--ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt9
-rw-r--r--ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt13
-rwxr-xr-xms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/BlueprintProcessorCatalogServiceImpl.kt4
-rwxr-xr-xms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/ControllerBlueprintCatalogServiceImpl.kt13
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintCompilerCache.kt4
11 files changed, 142 insertions, 45 deletions
diff --git a/cds-ui/client/src/app/common/utility/zipfile-extraction.component.ts b/cds-ui/client/src/app/common/utility/zipfile-extraction.component.ts
index fcadee816..279405a6b 100644
--- a/cds-ui/client/src/app/common/utility/zipfile-extraction.component.ts
+++ b/cds-ui/client/src/app/common/utility/zipfile-extraction.component.ts
@@ -39,11 +39,21 @@ export class ZipfileExtractionComponent implements OnInit {
private entryDefinition: string;
validfile: boolean = false;
uploadedFileName: string;
-
+ filesData: any = [];
+
constructor(private loader: LoaderService) { }
ngOnInit() {
}
+
+ create() {
+ this.filesData.forEach((path) => {
+ let index = path.name.indexOf("/");
+ let name = path.name.slice(index + 1, path.name.length);
+ this.zipFile.file(name, path.data);
+ });
+ }
+
async buildFileViewData(zip) {
this.validfile = false;
this.paths = [];
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
index 08f1ca130..9367c0638 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
@@ -244,9 +244,39 @@ export class EditorComponent implements OnInit {
})
this.fileExtension = this.selectedFile.substr(this.selectedFile.lastIndexOf('.') + 1);
this.setEditorMode();
- if(this.options == '3')
- {
- this.editorReadOnly= true;
+ if (this.options == '3') {
+ this.editorReadOnly = true;
+ }
+ }
+
+ setEditorMode() {
+ switch (this.fileExtension) {
+ case "xml":
+ this.mode = 'xml';
+ break;
+ case "py":
+ this.mode = 'python';
+ break;
+ case "kts":
+ this.mode = 'kotlin';
+ break;
+ case "kt":
+ this.mode = 'kotlin';
+ break;
+ case "txt":
+ this.mode = 'text';
+ break;
+ case "meta":
+ this.mode = 'text';
+ break;
+ case "vtl":
+ this.mode = 'velocity';
+ break;
+ case "properties":
+ this.mode = 'properties';
+ break;
+ default:
+ this.mode = 'json';
}
}
@@ -256,7 +286,6 @@ export class EditorComponent implements OnInit {
.then(blob => {
const formData = new FormData();
formData.append("file", blob);
- // this.editorService.enrich("/enrich-blueprint/", formData)
this.editorService.enrich(formData)
.subscribe(
(response) => {
@@ -276,8 +305,6 @@ export class EditorComponent implements OnInit {
});
}
-
-
saveToBackend() {
this.create();
this.zipFile.generateAsync({ type: "blob" })
@@ -346,30 +373,7 @@ export class EditorComponent implements OnInit {
this.editorService.downloadCBA("/" + this.artifactName + "/" + this.artifactVersion);
}
- setEditorMode() {
- switch (this.fileExtension) {
- case "xml":
- this.mode = 'xml';
- break;
- case "py":
- this.mode = 'python';
- break;
- case "kts":
- this.mode = 'kotlin';
- break;
- case "txt":
- this.mode = 'text';
- break;
- case "meta":
- this.mode = 'text';
- break;
- case "vtl":
- this.mode = 'velocity';
- break;
- default:
- this.mode = 'json';
- }
- }
+
selectFolder(node) {
this.currentFilePath = '';
diff --git a/components/scripts/python/ccsdk_netconf/common.py b/components/scripts/python/ccsdk_netconf/common.py
index 66c7a98b5..457d46019 100644
--- a/components/scripts/python/ccsdk_netconf/common.py
+++ b/components/scripts/python/ccsdk_netconf/common.py
@@ -12,6 +12,7 @@
# 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.
+from netconf_constant import *
from org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution import ResourceResolutionExtensionsKt
@@ -21,9 +22,45 @@ class ResolutionHelper:
self.component_function = component_function
def resolve_and_generate_message_from_template_prefix(self, artifact_prefix):
+ """Get the template resolved in the current workflow execution by the artifact prefix
+
+ :param artifact_prefix:
+ :return: template
+ """
return ResourceResolutionExtensionsKt.contentFromResolvedArtifact(self.component_function, artifact_prefix)
def retrieve_resolved_template_from_database(self, key, artifact_template):
+ """Get the template resolved and stored with resolution-key and matching with the artifact name
+
+ :param key:
+ :param artifact_template:
+ :return:
+ """
return ResourceResolutionExtensionsKt.storedContentFromResolvedArtifact(self.component_function, key,
artifact_template)
+ def set_execution_attribute_response_data(self, response_data):
+ """For the current node execution, set the attribute value of response-data
+
+ :param response_data:
+ :return:
+ """
+ self.component_function.setAttribute(ATTRIBUTE_RESPONSE_DATA, response_data)
+
+ def get_node_template_attribute(self, node_template_name, attribute_key):
+ """get attribute value for a specific node template of the current workflow
+
+ :param node_template_name:
+ :param attribute_key:
+ :return: JsonNode
+ """
+ self.component_function.getNodeTemplateAttribute(node_template_name, attribute_key)
+
+ def get_input_value(self, key):
+ """Get input value of the current node template execution
+
+ :param key:
+ :return: JsonNode
+ """
+ self.component_function.bluePrintRuntimeService.getInputValue(key)
+
diff --git a/components/scripts/python/ccsdk_netconf/netconfclient.py b/components/scripts/python/ccsdk_netconf/netconfclient.py
index 74ac7e3bc..2d4829363 100644
--- a/components/scripts/python/ccsdk_netconf/netconfclient.py
+++ b/components/scripts/python/ccsdk_netconf/netconfclient.py
@@ -63,6 +63,3 @@ class NetconfClient:
def get(self, filter_content):
device_response = self.netconf_rpc_client.get(filter_content)
return device_response
-
- def set_execution_attribute_response_data(self, response_data):
- self.component_function.setAttribute(ATTRIBUTE_RESPONSE_DATA, response_data)
diff --git a/docs/designtime.rst b/docs/designtime.rst
index 68da0a1f6..ac0af5132 100644
--- a/docs/designtime.rst
+++ b/docs/designtime.rst
@@ -16,7 +16,7 @@ Prerequisite
* Gather the cloud parameters:
-instantiation:
+Instantiation:
~~~~~~~~~~~~~~
Have the HEAT template along with the HEAT environment file (or) Have the Helm chart along with the Values.yaml file
@@ -40,7 +40,7 @@ While doing so, identify the resources using the same process to be resolved; fo
Services:
-=========
+--------
.. toctree::
:maxdepth: 1
diff --git a/docs/installation.rst b/docs/installation.rst
index 2f9ce48e7..ef51fa034 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -2,6 +2,10 @@
.. http://creativecommons.org/licenses/by/4.0
.. Copyright (C) 2019 IBM.
+
+User Guide
+==========
+
Installation
------------
@@ -63,4 +67,22 @@ Result
replicaset.apps/cds-cds-6bd674dc77 1 1 1 2m
replicaset.apps/cds-controller-blueprints-545bbf98cf 1 1 1 2m
NAME DESIRED CURRENT AGE
- statefulset.apps/cds-cds-db 1 1 2m \ No newline at end of file
+ statefulset.apps/cds-cds-db 1 1 2m
+
+
+
+Running CDS UI:
+---------------
+
+Client:
+~~~~~~~
+Install Node.js and angularCLI. Refer https://angular.io/guide/quickstart
+npm install in the directory cds/cds-ui/client
+npm run build - to build UI module
+
+
+Loopback Server:
+~~~~~~~~~~~~~~~~
+
+npm install in the directory cds/cds-ui/server
+npm start should bring you the CDS UI page in your local machine with the link https://127.0.0.1:3000/ \ No newline at end of file
diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt
index cf27cc2de..15365e176 100644
--- a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt
+++ b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt
@@ -19,11 +19,12 @@
package internal.scripts
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor.cliDeviceInfo
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor.getSshClientService
import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentScriptExecutor
-import org.onap.ccsdk.cds.blueprintsprocessor.ssh.sshClientService
import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
-import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
+
import org.slf4j.LoggerFactory
open class TestCliScriptFunction : AbstractScriptComponentFunction() {
@@ -54,10 +55,10 @@ open class Check : AbstractScriptComponentFunction() {
override suspend fun processNB(executionRequest: ExecutionServiceInput) {
// Get the Device Information from the DSL Model
- val deviceInformation = bluePrintRuntimeService.resolveDSLExpression("device-properties")
+ val deviceInformation = cliDeviceInfo("device-properties")
// Get the Client Service
- val sshClientService = BluePrintDependencyService.sshClientService(deviceInformation)
+ val sshClientService = getSshClientService(deviceInformation)
sshClientService.startSessionNB()
diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt
index bc9b7103c..ad95759a9 100644
--- a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt
+++ b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt
@@ -17,7 +17,20 @@
package org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor
+import com.fasterxml.jackson.databind.JsonNode
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction
+import org.onap.ccsdk.cds.blueprintsprocessor.ssh.service.BlueprintSshClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.ssh.sshClientService
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
+
/**
* Register the CLI module exposed dependency
*/
+fun AbstractComponentFunction.cliDeviceInfo(requirementName: String): JsonNode {
+ return bluePrintRuntimeService.resolveDSLExpression(requirementName)
+}
+
+fun AbstractComponentFunction.getSshClientService(cliDeviceInfo: JsonNode): BlueprintSshClientService {
+ return BluePrintDependencyService.sshClientService(cliDeviceInfo)
+}
diff --git a/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/BlueprintProcessorCatalogServiceImpl.kt b/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/BlueprintProcessorCatalogServiceImpl.kt
index 9ce45d11e..3e0f3516f 100755
--- a/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/BlueprintProcessorCatalogServiceImpl.kt
+++ b/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/BlueprintProcessorCatalogServiceImpl.kt
@@ -117,6 +117,10 @@ class BlueprintProcessorCatalogServiceImpl(bluePrintRuntimeValidatorService: Blu
blueprintModelRepository.deleteByArtifactNameAndArtifactVersion(artifactName, artifactVersion)
val deployFile =
normalizedPathName(bluePrintLoadConfiguration.blueprintDeployPath, artifactName, artifactVersion)
+
+ val cacheKey = BluePrintFileUtils.compileCacheKey(deployFile)
+ BluePrintCompileCache.cleanClassLoader(cacheKey)
+
deleteNBDir(deployFile).let {
if (it) log.info("Deleted deployed blueprint model :$artifactName::$artifactVersion")
else log.info("Fail to delete deployed blueprint model :$artifactName::$artifactVersion")
diff --git a/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/ControllerBlueprintCatalogServiceImpl.kt b/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/ControllerBlueprintCatalogServiceImpl.kt
index 66b5d00c4..4c02fda12 100755
--- a/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/ControllerBlueprintCatalogServiceImpl.kt
+++ b/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/service/ControllerBlueprintCatalogServiceImpl.kt
@@ -21,14 +21,13 @@ package org.onap.ccsdk.cds.blueprintsprocessor.db.service
import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.domain.BlueprintModel
import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.domain.BlueprintModelContent
import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.repository.BlueprintModelRepository
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
+import org.onap.ccsdk.cds.controllerblueprints.core.*
import org.onap.ccsdk.cds.controllerblueprints.core.common.ApplicationConstants
import org.onap.ccsdk.cds.controllerblueprints.core.config.BluePrintLoadConfiguration
import org.onap.ccsdk.cds.controllerblueprints.core.data.ErrorCode
-import org.onap.ccsdk.cds.controllerblueprints.core.deleteDir
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintValidatorService
-import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPath
+import org.onap.ccsdk.cds.controllerblueprints.core.scripts.BluePrintCompileCache
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintFileUtils
import org.slf4j.LoggerFactory
import org.springframework.dao.DataIntegrityViolationException
import org.springframework.stereotype.Service
@@ -85,6 +84,12 @@ class ControllerBlueprintCatalogServiceImpl(bluePrintDesignTimeValidatorService:
throw BluePrintException("Not a valid Archive file(${archiveFile.absolutePath})")
}
+ // cleanup up deploy folder for the Blueprint
+ val blueprintDeploy = normalizedPathName(bluePrintLoadConfiguration.blueprintDeployPath,
+ artifactName, artifactVersion)
+ val cacheKey = BluePrintFileUtils.compileCacheKey(blueprintDeploy)
+ BluePrintCompileCache.cleanClassLoader(cacheKey)
+
blueprintModelRepository.findByArtifactNameAndArtifactVersion(artifactName!!, artifactVersion!!)?.let {
log.info("Overwriting blueprint model :$artifactName::$artifactVersion")
blueprintModelRepository.deleteByArtifactNameAndArtifactVersion(artifactName, artifactVersion)
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintCompilerCache.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintCompilerCache.kt
index fa6b0ab97..f90e27f4d 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintCompilerCache.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintCompilerCache.kt
@@ -39,6 +39,10 @@ object BluePrintCompileCache {
fun cleanClassLoader(key: String) {
if(hasClassLoader(key)){
+ // Make sure to close all classloader loaded resources before we let go of it.
+ // This fixes a Delete failure message on filesystem that keeps locks on opened jars;
+ // like Windows and NFS.
+ classLoaderCache.get(key).close()
classLoaderCache.invalidate(key)
log.info("Cleaned compiled cache($key)")
}else{