summaryrefslogtreecommitdiffstats
path: root/cm-container/scripts/update_resolver.py
diff options
context:
space:
mode:
Diffstat (limited to 'cm-container/scripts/update_resolver.py')
-rw-r--r--cm-container/scripts/update_resolver.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/cm-container/scripts/update_resolver.py b/cm-container/scripts/update_resolver.py
new file mode 100644
index 0000000..e5c9d46
--- /dev/null
+++ b/cm-container/scripts/update_resolver.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+#============LICENSE_START==========================================================
+# org.onap.dcae
+# ==================================================================================
+# Copyright (c) 2019 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 sys
+import yaml
+from sqlalchemy.orm.attributes import flag_modified
+from manager_rest.flask_utils import setup_flask_app
+from manager_rest.constants import PROVIDER_CONTEXT_ID
+from manager_rest.storage import get_storage_manager, models
+
+
+def main(dry_run, rules_file):
+
+ with setup_flask_app().app_context():
+ sm = get_storage_manager()
+ ctx = sm.get(models.ProviderContext, PROVIDER_CONTEXT_ID)
+ print 'Resolver rules before update:'
+ print yaml.safe_dump(ctx.context['cloudify']['import_resolver']['parameters']['rules'])
+
+ if dry_run:
+ return
+
+ with open(rules_file, 'r') as rules:
+ new_rules = yaml.load(rules)
+ ctx.context['cloudify']['import_resolver']['parameters']['rules'] = new_rules
+ print '\nResolver rules to update:'
+ print yaml.safe_dump(new_rules)
+ flag_modified(ctx, 'context')
+ sm.update(ctx)
+ print '\nProvide Context Saved'
+ print '\nResolver rules after update:'
+ print yaml.safe_dump(ctx.context['cloudify']['import_resolver']['parameters']['rules'])
+
+
+if __name__ == '__main__':
+ if len(sys.argv) < 2:
+ print 'Must provide path to yaml file containing new rules or --dry-run'
+ exit(1)
+
+ main(sys.argv[1]=='--dry-run', sys.argv[1]) \ No newline at end of file