diff options
| -rw-r--r-- | roles/lib_openshift/library/oadm_manage_node.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_edit.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_env.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_label.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_obj.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_process.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_route.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_scale.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_secret.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_service.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_serviceaccount.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_serviceaccount_secret.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/library/oc_version.py | 21 | ||||
| -rw-r--r-- | roles/lib_openshift/src/lib/base.py | 10 | ||||
| -rw-r--r-- | roles/lib_openshift/src/lib/import.py | 7 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py | 94 | ||||
| -rw-r--r-- | roles/lib_utils/library/yedit.py | 4 | ||||
| -rw-r--r-- | roles/lib_utils/src/class/yedit.py | 4 | 
18 files changed, 297 insertions, 95 deletions
| diff --git a/roles/lib_openshift/library/oadm_manage_node.py b/roles/lib_openshift/library/oadm_manage_node.py index 6803566e7..bd6df4c1a 100644 --- a/roles/lib_openshift/library/oadm_manage_node.py +++ b/roles/lib_openshift/library/oadm_manage_node.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -338,7 +343,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -381,7 +386,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1023,7 +1028,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1105,7 +1113,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_edit.py b/roles/lib_openshift/library/oc_edit.py index bc4c7cd36..c52ae9890 100644 --- a/roles/lib_openshift/library/oc_edit.py +++ b/roles/lib_openshift/library/oc_edit.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -366,7 +371,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -409,7 +414,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1051,7 +1056,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1133,7 +1141,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_env.py b/roles/lib_openshift/library/oc_env.py index 128b31fe0..72c6cdb79 100644 --- a/roles/lib_openshift/library/oc_env.py +++ b/roles/lib_openshift/library/oc_env.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -333,7 +338,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -376,7 +381,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1018,7 +1023,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1100,7 +1108,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_label.py b/roles/lib_openshift/library/oc_label.py index 471649395..43d81f582 100644 --- a/roles/lib_openshift/library/oc_label.py +++ b/roles/lib_openshift/library/oc_label.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -342,7 +347,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -385,7 +390,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1027,7 +1032,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1109,7 +1117,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_obj.py b/roles/lib_openshift/library/oc_obj.py index 8de4fd75f..a8d853823 100644 --- a/roles/lib_openshift/library/oc_obj.py +++ b/roles/lib_openshift/library/oc_obj.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -345,7 +350,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -388,7 +393,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1030,7 +1035,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1112,7 +1120,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_process.py b/roles/lib_openshift/library/oc_process.py index 5b3a26593..2e0672bf8 100644 --- a/roles/lib_openshift/library/oc_process.py +++ b/roles/lib_openshift/library/oc_process.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -334,7 +339,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -377,7 +382,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1019,7 +1024,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1101,7 +1109,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_route.py b/roles/lib_openshift/library/oc_route.py index 715ce1cdc..55eca1f8d 100644 --- a/roles/lib_openshift/library/oc_route.py +++ b/roles/lib_openshift/library/oc_route.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -376,7 +381,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -419,7 +424,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1061,7 +1066,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1143,7 +1151,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_scale.py b/roles/lib_openshift/library/oc_scale.py index c88755a8d..c76c864df 100644 --- a/roles/lib_openshift/library/oc_scale.py +++ b/roles/lib_openshift/library/oc_scale.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -320,7 +325,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -363,7 +368,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1005,7 +1010,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1087,7 +1095,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_secret.py b/roles/lib_openshift/library/oc_secret.py index 79e481d8c..dedd18645 100644 --- a/roles/lib_openshift/library/oc_secret.py +++ b/roles/lib_openshift/library/oc_secret.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -366,7 +371,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -409,7 +414,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1051,7 +1056,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1133,7 +1141,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_service.py b/roles/lib_openshift/library/oc_service.py index fc0889696..dfc05d022 100644 --- a/roles/lib_openshift/library/oc_service.py +++ b/roles/lib_openshift/library/oc_service.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -372,7 +377,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -415,7 +420,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1057,7 +1062,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1139,7 +1147,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_serviceaccount.py b/roles/lib_openshift/library/oc_serviceaccount.py index 4dc437ba8..258d41566 100644 --- a/roles/lib_openshift/library/oc_serviceaccount.py +++ b/roles/lib_openshift/library/oc_serviceaccount.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -318,7 +323,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -361,7 +366,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1003,7 +1008,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1085,7 +1093,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_serviceaccount_secret.py b/roles/lib_openshift/library/oc_serviceaccount_secret.py index faab244a1..3eb20779c 100644 --- a/roles/lib_openshift/library/oc_serviceaccount_secret.py +++ b/roles/lib_openshift/library/oc_serviceaccount_secret.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -318,7 +323,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -361,7 +366,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -1003,7 +1008,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1085,7 +1093,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/library/oc_version.py b/roles/lib_openshift/library/oc_version.py index 634bb2920..c619e9ce8 100644 --- a/roles/lib_openshift/library/oc_version.py +++ b/roles/lib_openshift/library/oc_version.py @@ -33,6 +33,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -40,7 +41,11 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule  # -*- -*- -*- End included fragment: lib/import.py -*- -*- -*- @@ -290,7 +295,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -333,7 +338,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() @@ -975,7 +980,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -1057,7 +1065,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/src/lib/base.py b/roles/lib_openshift/src/lib/base.py index a895b40b3..0b37862c9 100644 --- a/roles/lib_openshift/src/lib/base.py +++ b/roles/lib_openshift/src/lib/base.py @@ -295,7 +295,10 @@ class Utils(object):          tmp = Utils.create_tmpfile(prefix=rname)          if ftype == 'yaml': -            Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            if hasattr(yaml, 'RoundTripDumper'): +                Utils._write(tmp, yaml.dump(data, Dumper=yaml.RoundTripDumper)) +            else: +                Utils._write(tmp, yaml.safe_dump(data, default_flow_style=False))          elif ftype == 'json':              Utils._write(tmp, json.dumps(data))          else: @@ -377,7 +380,10 @@ class Utils(object):              contents = sfd.read()          if sfile_type == 'yaml': -            contents = yaml.load(contents, yaml.RoundTripLoader) +            if hasattr(yaml, 'RoundTripLoader'): +                contents = yaml.load(contents, yaml.RoundTripLoader) +            else: +                contents = yaml.safe_load(contents)          elif sfile_type == 'json':              contents = json.loads(contents) diff --git a/roles/lib_openshift/src/lib/import.py b/roles/lib_openshift/src/lib/import.py index 6344c1a54..a79297898 100644 --- a/roles/lib_openshift/src/lib/import.py +++ b/roles/lib_openshift/src/lib/import.py @@ -7,6 +7,7 @@  from __future__ import print_function  import atexit +import copy  import json  import os  import re @@ -14,5 +15,9 @@ import shutil  import subprocess  import tempfile  # pylint: disable=import-error -import ruamel.yaml as yaml +try: +    import ruamel.yaml as yaml +except ImportError: +    import yaml +  from ansible.module_utils.basic import AnsibleModule diff --git a/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py b/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py index 4d555d412..1eb7dd3be 100755 --- a/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py +++ b/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py @@ -25,6 +25,12 @@ module_path = os.path.join('/'.join(os.path.realpath(__file__).split('/')[:-4]),  sys.path.insert(0, module_path)  from oc_serviceaccount_secret import OCServiceAccountSecret  # noqa: E402 +try: +    import ruamel.yaml as yaml +    YAML_TYPE='ruamel' +except ImportError: +    YAML_TYPE='pyyaml' +  class OCServiceAccountSecretTest(unittest.TestCase):      ''' @@ -54,8 +60,13 @@ class OCServiceAccountSecretTest(unittest.TestCase):          }          oc_get_sa_before = '''{ -            "kind": "ServiceAccount",              "apiVersion": "v1", +            "imagePullSecrets": [ +                { +                    "name": "builder-dockercfg-rsrua" +                } +            ], +            "kind": "ServiceAccount",              "metadata": {                  "name": "builder",                  "namespace": "default", @@ -72,18 +83,18 @@ class OCServiceAccountSecretTest(unittest.TestCase):                      "name": "builder-token-akqxi"                  } -            ], -            "imagePullSecrets": [ -                { -                    "name": "builder-dockercfg-rsrua" -                }              ]          }          '''          oc_get_sa_after = '''{ -            "kind": "ServiceAccount",              "apiVersion": "v1", +            "imagePullSecrets": [ +                { +                    "name": "builder-dockercfg-rsrua" +                } +            ], +            "kind": "ServiceAccount",              "metadata": {                  "name": "builder",                  "namespace": "default", @@ -103,16 +114,10 @@ class OCServiceAccountSecretTest(unittest.TestCase):                      "name": "newsecret"                  } -            ], -            "imagePullSecrets": [ -                { -                    "name": "builder-dockercfg-rsrua" -                }              ]          }          ''' - -        builder_yaml_file = '''\ +        builder_ryaml_file = '''\  secrets:  - name: builder-dockercfg-rsrua  - name: builder-token-akqxi @@ -130,6 +135,24 @@ metadata:    uid: cf47bca7-ebc4-11e6-b041-0ed9df7abc38  ''' +        builder_pyyaml_file = '''\ +apiVersion: v1 +imagePullSecrets: +- name: builder-dockercfg-rsrua +kind: ServiceAccount +metadata: +  creationTimestamp: '2017-02-05T17:02:00Z' +  name: builder +  namespace: default +  resourceVersion: '302879' +  selfLink: /api/v1/namespaces/default/serviceaccounts/builder +  uid: cf47bca7-ebc4-11e6-b041-0ed9df7abc38 +secrets: +- name: builder-dockercfg-rsrua +- name: builder-token-akqxi +- name: newsecret +''' +          # Return values of our mocked function call. These get returned once per call.          mock_cmd.side_effect = [              (0, oc_get_sa_before, ''),  # First call to the mock @@ -158,8 +181,12 @@ metadata:              mock.call(['oc', '-n', 'default', 'get', 'sa', 'builder', '-o', 'json'], None)          ]) +        yaml_file = builder_pyyaml_file + +        if YAML_TYPE == 'ruamel': +            yaml_file = builder_ryaml_file          mock_write.assert_has_calls([ -            mock.call(mock.ANY, builder_yaml_file) +            mock.call(mock.ANY, yaml_file)          ])      @mock.patch('oc_serviceaccount_secret.Utils.create_tmpfile_copy') @@ -181,8 +208,13 @@ metadata:          }          oc_get_sa_before = '''{ -            "kind": "ServiceAccount",              "apiVersion": "v1", +            "imagePullSecrets": [ +                { +                    "name": "builder-dockercfg-rsrua" +                } +            ], +            "kind": "ServiceAccount",              "metadata": {                  "name": "builder",                  "namespace": "default", @@ -202,16 +234,11 @@ metadata:                      "name": "newsecret"                  } -            ], -            "imagePullSecrets": [ -                { -                    "name": "builder-dockercfg-rsrua" -                }              ]          }          ''' -        builder_yaml_file = '''\ +        builder_ryaml_file = '''\  secrets:  - name: builder-dockercfg-rsrua  - name: builder-token-akqxi @@ -228,6 +255,23 @@ metadata:    uid: cf47bca7-ebc4-11e6-b041-0ed9df7abc38  ''' +        builder_pyyaml_file = '''\ +apiVersion: v1 +imagePullSecrets: +- name: builder-dockercfg-rsrua +kind: ServiceAccount +metadata: +  creationTimestamp: '2017-02-05T17:02:00Z' +  name: builder +  namespace: default +  resourceVersion: '302879' +  selfLink: /api/v1/namespaces/default/serviceaccounts/builder +  uid: cf47bca7-ebc4-11e6-b041-0ed9df7abc38 +secrets: +- name: builder-dockercfg-rsrua +- name: builder-token-akqxi +''' +          # Return values of our mocked function call. These get returned once per call.          mock_cmd.side_effect = [              (0, oc_get_sa_before, ''),  # First call to the mock @@ -254,8 +298,12 @@ metadata:              mock.call(['oc', '-n', 'default', 'replace', '-f', mock.ANY], None),          ]) +        yaml_file = builder_pyyaml_file + +        if YAML_TYPE == 'ruamel': +            yaml_file = builder_ryaml_file          mock_write.assert_has_calls([ -            mock.call(mock.ANY, builder_yaml_file) +            mock.call(mock.ANY, yaml_file)          ])      def tearDown(self): diff --git a/roles/lib_utils/library/yedit.py b/roles/lib_utils/library/yedit.py index 29475d603..7f71e6cbc 100644 --- a/roles/lib_utils/library/yedit.py +++ b/roles/lib_utils/library/yedit.py @@ -388,7 +388,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -431,7 +431,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() diff --git a/roles/lib_utils/src/class/yedit.py b/roles/lib_utils/src/class/yedit.py index 4145a03b6..cecc1ed4f 100644 --- a/roles/lib_utils/src/class/yedit.py +++ b/roles/lib_utils/src/class/yedit.py @@ -202,7 +202,7 @@ class Yedit(object):          if hasattr(yaml, 'RoundTripDumper'):              Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))          else: -            Yedit._write(self.filename, yaml.dump(self.yaml_dict, default_flow_style=False)) +            Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))          return (True, self.yaml_dict) @@ -245,7 +245,7 @@ class Yedit(object):                  if hasattr(yaml, 'RoundTripLoader'):                      self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)                  else: -                    self.yaml_dict = yaml.load(contents) +                    self.yaml_dict = yaml.safe_load(contents)                  # pylint: disable=no-member                  if hasattr(self.yaml_dict, 'fa'):                      self.yaml_dict.fa.set_block_style() | 
