aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlukegleeson <luke.gleeson@est.tech>2022-02-10 10:58:29 +0000
committerlukegleeson <luke.gleeson@est.tech>2022-03-03 11:05:23 +0000
commit0cbc448573409a43eb3bf7b4c9cb49d418a4c999 (patch)
tree82410672196d6a53b012add69cf82577cab71f04
parent304b9f319cddad71a77f6bbffb8c18f63b7f5ee2 (diff)
Update dmi-registry yang to support cmHandle State
- Added dmi-registry@2022-02-10 which contains the new dmi-registry yang model to support the cmHandle State. - Added changelog 12 which removes previous dmi-registries from the db - Added changelog 13 which adds new dmi-registry - Edited yangResourceCsvGenerator.py so that it generates for each argument given and does not generate the module_name and revision for dmi-registry@2021-12-13. - Updated rollback for changeset 11.1 Issue-ID: CPS-874 Signed-off-by: lukegleeson <luke.gleeson@est.tech> Change-Id: I4ab949f0bc00a52376b42a5ac8a33d397eefcedf
-rwxr-xr-xcps-parent/pom.xml3
-rw-r--r--cps-ri/src/main/resources/changelog/changelog-master.yaml5
-rw-r--r--cps-ri/src/main/resources/changelog/db/changes/11-add-column-to-yang-resources-table.yaml2
-rw-r--r--cps-ri/src/main/resources/changelog/db/changes/12-delete-all-previous-dmi-registry-schema-set.yaml157
-rw-r--r--cps-ri/src/main/resources/changelog/db/changes/13-insert-dmi-registry-2022-02-10-schema-set.yaml66
-rw-r--r--cps-ri/src/main/resources/changelog/db/changes/data/yang-models/dmi-registry@2022-02-10.yang81
-rw-r--r--cps-ri/src/main/resources/yangResourceCsvGenerator.py48
7 files changed, 350 insertions, 12 deletions
diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml
index 434464ac6..e03dce3db 100755
--- a/cps-parent/pom.xml
+++ b/cps-parent/pom.xml
@@ -3,7 +3,7 @@
============LICENSE_START=======================================================
Copyright (c) 2021 Pantheon.tech.
Modifications Copyright (C) 2021 Bell Canada.
- Modifications Copyright (C) 2021 Nordix Foundation.
+ Modifications Copyright (C) 2021-2022 Nordix Foundation.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -421,6 +421,7 @@
<arguments>
<argument>yangResourceCsvGenerator.py</argument>
<argument>dmi-registry@2021-12-13</argument>
+ <argument>dmi-registry@2022-02-10</argument>
</arguments>
</configuration>
</plugin>
diff --git a/cps-ri/src/main/resources/changelog/changelog-master.yaml b/cps-ri/src/main/resources/changelog/changelog-master.yaml
index 14f3726d2..251cec64b 100644
--- a/cps-ri/src/main/resources/changelog/changelog-master.yaml
+++ b/cps-ri/src/main/resources/changelog/changelog-master.yaml
@@ -1,5 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (c) 2021 Bell Canada.
+# Modifications Copyright (C) 2022 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -37,3 +38,7 @@ databaseChangeLog:
file: changelog/db/changes/10-loadData-dmi-registry-fragment.yaml
- include:
file: changelog/db/changes/11-add-column-to-yang-resources-table.yaml
+ - include:
+ file: changelog/db/changes/12-delete-all-previous-dmi-registry-schema-set.yaml
+ - include:
+ file: changelog/db/changes/13-insert-dmi-registry-2022-02-10-schema-set.yaml
diff --git a/cps-ri/src/main/resources/changelog/db/changes/11-add-column-to-yang-resources-table.yaml b/cps-ri/src/main/resources/changelog/db/changes/11-add-column-to-yang-resources-table.yaml
index 139e83be2..8643a0545 100644
--- a/cps-ri/src/main/resources/changelog/db/changes/11-add-column-to-yang-resources-table.yaml
+++ b/cps-ri/src/main/resources/changelog/db/changes/11-add-column-to-yang-resources-table.yaml
@@ -40,4 +40,4 @@ databaseChangeLog:
- sql:
sql: update yang_resource set module_name = 'dummy_module_name', revision = '2021-08-04' where module_name is null and revision is null
rollback:
- comment: Rollback for change set 11.1 is not supported. Please rollback change set 11 to rollback changeset 11.1. Change set 11.1 removes null values from the yang_resource table created by change set 11. \ No newline at end of file
+ sql: update yang_resource set module_name = null, revision = null where module_name = 'dummy_module_name' and revision = '2021-08-04' \ No newline at end of file
diff --git a/cps-ri/src/main/resources/changelog/db/changes/12-delete-all-previous-dmi-registry-schema-set.yaml b/cps-ri/src/main/resources/changelog/db/changes/12-delete-all-previous-dmi-registry-schema-set.yaml
new file mode 100644
index 000000000..9eda029b9
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/12-delete-all-previous-dmi-registry-schema-set.yaml
@@ -0,0 +1,157 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2022 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+databaseChangeLog:
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-delete
+ id: 12
+ sql: delete from schema_set_yang_resources
+ where schema_set_id = (select id from schema_set where name = 'ncmp-dmi-registry-model')
+ and yang_resource_id = (select id from yang_resource where name = 'dmi-registry@2021-05-20.yang')
+ rollback:
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi/schema_set_yang_resources.csv'
+ quotchar: '"'
+ primaryKey: 'schema_set_id,yang_resource_id'
+ separator: '|'
+ tableName: 'schema_set_yang_resources'
+ usePreparedStatements: true
+
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-delete
+ id: 12.1
+ sql: delete from yang_resource where name = 'dmi-registry@2021-05-20.yang'
+ rollback:
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi/yang_resource.csv'
+ onlyUpdate: 'false'
+ primaryKey: 'id'
+ quotchar: '"'
+ separator: '|'
+ tableName: 'yang_resource'
+ columns:
+ - column:
+ header: name
+ name: name
+ type: STRING
+ - column:
+ header: content
+ name: content
+ type: STRING
+ - column:
+ header: checksum
+ name: checksum
+ type: STRING
+ sql: update yang_resource set module_name = 'dummy_module_name', revision = '2021-08-04' where module_name is null and revision is null
+
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-delete
+ id: 12.2
+ sql: delete from schema_set_yang_resources
+ where schema_set_id = (select id from schema_set where name = 'ncmp-dmi-registry-model')
+ and yang_resource_id = (select id from yang_resource where name = 'dmi-registry@2021-10-20.yang')
+ rollback:
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi/schema_set_yang_resources@2021-10-20.csv'
+ quotchar: '"'
+ primaryKey: 'schema_set_id,yang_resource_id'
+ separator: '|'
+ tableName: 'schema_set_yang_resources'
+ usePreparedStatements: true
+
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-delete
+ id: 12.3
+ sql: delete from yang_resource where name = 'dmi-registry@2021-10-20.yang'
+ rollback:
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi/yang_resource@2021-10-20.csv'
+ onlyUpdate: 'false'
+ primaryKey: 'id'
+ quotchar: '"'
+ separator: '|'
+ tableName: 'yang_resource'
+ columns:
+ - column:
+ header: name
+ name: name
+ type: STRING
+ - column:
+ header: content
+ name: content
+ type: STRING
+ - column:
+ header: checksum
+ name: checksum
+ type: STRING
+ sql: update yang_resource set module_name = 'dummy_module_name', revision = '2021-08-04' where module_name is null and revision is null
+
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-delete
+ id: 12.4
+ sql: delete from schema_set_yang_resources
+ where schema_set_id = (select id from schema_set where name = 'ncmp-dmi-registry-model')
+ and yang_resource_id = (select id from yang_resource where name = 'dmi-registry@2021-12-13.yang')
+ rollback:
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi/schema_set_yang_resources@2021-12-13.csv'
+ quotchar: '"'
+ primaryKey: 'schema_set_id,yang_resource_id'
+ separator: '|'
+ tableName: 'schema_set_yang_resources'
+ usePreparedStatements: true
+
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-delete
+ id: 12.5
+ sql: delete from yang_resource where name = 'dmi-registry@2021-12-13.yang'
+ rollback:
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi//generated-csv/generated_yang_resource_dmi-registry@2021-12-13.csv'
+ onlyUpdate: 'false'
+ primaryKey: 'id'
+ quotchar: '"'
+ separator: '|'
+ tableName: 'yang_resource'
+ columns:
+ - column:
+ header: name
+ name: name
+ type: STRING
+ - column:
+ header: content
+ name: content
+ type: STRING
+ - column:
+ header: checksum
+ name: checksum
+ type: STRING
+ sql: update yang_resource set module_name = 'dummy_module_name', revision = '2021-08-04' where module_name is null and revision is null
+
diff --git a/cps-ri/src/main/resources/changelog/db/changes/13-insert-dmi-registry-2022-02-10-schema-set.yaml b/cps-ri/src/main/resources/changelog/db/changes/13-insert-dmi-registry-2022-02-10-schema-set.yaml
new file mode 100644
index 000000000..3351b5419
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/13-insert-dmi-registry-2022-02-10-schema-set.yaml
@@ -0,0 +1,66 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2022 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+databaseChangeLog:
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-load-revision-2022-02-10
+ id: 13
+ loadUpdateData:
+ encoding: UTF-8
+ file: 'changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_dmi-registry@2022-02-10.csv'
+ onlyUpdate: 'false'
+ primaryKey: 'id'
+ quotchar: '"'
+ separator: '|'
+ tableName: 'yang_resource'
+ columns:
+ - column:
+ header: name
+ name: name
+ type: STRING
+ - column:
+ header: content
+ name: content
+ type: STRING
+ - column:
+ header: checksum
+ name: checksum
+ type: STRING
+ - column:
+ header: module_name
+ name: module_name
+ type: STRING
+ - column:
+ header: revision
+ name: revision
+ type: STRING
+ rollback:
+ - sql:
+ sql: delete from yang_resource where name = 'dmi-registry@2022-02-10.yang'
+
+ - changeSet:
+ author: cps
+ label: dmi-registry-schema-load-revision-2022-02-10
+ id: 13.1
+ sql: INSERT INTO schema_set_yang_resources (schema_set_id, yang_resource_id)
+ VALUES ((select id from schema_set where name = 'ncmp-dmi-registry-model'), (select id from yang_resource where name = 'dmi-registry@2022-02-10.yang'));
+ rollback:
+ sql: delete from schema_set_yang_resources
+ where schema_set_id = (select id from schema_set where name = 'ncmp-dmi-registry-model')
+ and yang_resource_id = (select id from yang_resource where name = 'dmi-registry@2022-02-10.yang') \ No newline at end of file
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/yang-models/dmi-registry@2022-02-10.yang b/cps-ri/src/main/resources/changelog/db/changes/data/yang-models/dmi-registry@2022-02-10.yang
new file mode 100644
index 000000000..3c6d990c5
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/yang-models/dmi-registry@2022-02-10.yang
@@ -0,0 +1,81 @@
+module dmi-registry {
+
+ yang-version 1.1;
+
+ namespace "org:onap:cps:ncmp";
+
+ prefix dmi-reg;
+
+ contact "toine.siebelink@est.tech";
+
+ revision "2022-02-10" {
+ description
+ "Added State, LockReason, LockReasonDetails to aid with cmHandle sync and timestamp to aid with retry/timeout scenarios";
+ }
+
+ revision "2021-12-13" {
+ description
+ "Added new list of public additional properties for a Cm-Handle which are exposed to clients of the NCMP interface";
+ }
+
+ revision "2021-10-20" {
+ description
+ "Added dmi-data-service-name & dmi-model-service-name to allow separate DMI instances for each responsibility";
+ }
+
+ revision "2021-05-20" {
+ description
+ "Initial Version";
+ }
+
+ container dmi-registry {
+ list cm-handles {
+ key "id";
+ leaf id {
+ type string;
+ }
+ leaf dmi-service-name {
+ type string;
+ }
+ leaf dmi-data-service-name {
+ type string;
+ }
+ leaf dmi-model-service-name {
+ type string;
+ }
+
+ list additional-properties {
+ key "name";
+ leaf name {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ }
+
+ list public-properties {
+ key "name";
+ leaf name {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ }
+
+ leaf state {
+ type string;
+ }
+ leaf lock-reason {
+ type string;
+ }
+ leaf lock-reason-details {
+ type string;
+ }
+ leaf last-update-time {
+ type string;
+ }
+ }
+ }
+}
diff --git a/cps-ri/src/main/resources/yangResourceCsvGenerator.py b/cps-ri/src/main/resources/yangResourceCsvGenerator.py
index 9a4077bbd..3a076d437 100644
--- a/cps-ri/src/main/resources/yangResourceCsvGenerator.py
+++ b/cps-ri/src/main/resources/yangResourceCsvGenerator.py
@@ -18,21 +18,49 @@
import csv
+import datetime
import hashlib
import sys
+import re
yang_source = ''
checksum = ''
+regexForModuleName = '(?<=module)(.*)(?={)'
+regexForRevision = '(?<=revision)(.*)(?={)'
-for yang_source in sys.argv[1:]:
- checksum = hashlib.sha256(str(yang_source).encode()).hexdigest()
+def main():
+ for yang_source in sys.argv[1:]:
+ checksum = hashlib.sha256(str(yang_source).encode()).hexdigest()
-with open('changelog/db/changes/data/yang-models/' + yang_source + '.yang') as content:
- dmiRegistry = content.read()
+ with open('changelog/db/changes/data/yang-models/' + yang_source + '.yang', 'r') as content:
+ dmiRegistry = content.read()
-# open the file in the write mode
-with open('changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_' + yang_source + '.csv', 'w', newline='') \
- as file:
- writer = csv.writer(file, delimiter='|')
- writer.writerow(["name", "content", "checksum"])
- writer.writerow([yang_source + '.yang', dmiRegistry, checksum])
+ try:
+ latestRevision = re.search(regexForRevision, dmiRegistry).group(0).replace('\"','').strip()
+ except:
+ print("ERROR IN in yangResourceCsvGenerator.py: Unable to find revision for " + yang_source + '.yang')
+
+ try:
+ module_name = re.search(regexForModuleName, dmiRegistry).group(0).strip()
+ except:
+ print("ERROR IN in yangResourceCsvGenerator.py: Unable to find module name for " + yang_source + '.yang')
+
+ #If true, file was created after module_name and revision columns were added to yang-resources table
+ writeWithModuleNameAndRevision = yang_source != 'dmi-registry@2021-12-13'
+
+ try:
+ # open the file in the write mode
+ with open('changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_' + yang_source + '.csv', 'w', newline='') \
+ as file:
+ writer = csv.writer(file, delimiter='|')
+ if(writeWithModuleNameAndRevision):
+ writer.writerow(["name", "content", "checksum", "module_name", "revision"])
+ writer.writerow([yang_source + '.yang', dmiRegistry, checksum, module_name, latestRevision])
+ else:
+ writer.writerow(["name", "content", "checksum"])
+ writer.writerow([yang_source + '.yang', dmiRegistry, checksum])
+ except:
+ print("ERROR IN in yangResourceCsvGenerator.py: Unable to write to changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_" + yang_source + ".csv")
+
+
+main() \ No newline at end of file