Hello community,

here is the log from the commit of package salt-shaptools for openSUSE:Factory 
checked in at 2020-09-15 16:31:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/salt-shaptools (Old)
 and      /work/SRC/openSUSE:Factory/.salt-shaptools.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "salt-shaptools"

Tue Sep 15 16:31:07 2020 rev:18 rq:834517 version:0.3.9+git.1600151923.c265ba1

Changes:
--------
--- /work/SRC/openSUSE:Factory/salt-shaptools/salt-shaptools.changes    
2020-06-11 14:52:32.674884170 +0200
+++ /work/SRC/openSUSE:Factory/.salt-shaptools.new.4249/salt-shaptools.changes  
2020-09-15 16:31:27.466778748 +0200
@@ -1,0 +2,5 @@
+Fri Sep 11 14:09:09 UTC 2020 - Xabier Arbulu <xarb...@suse.com>
+
+- Add cloud_grains_present state
+
+-------------------------------------------------------------------

Old:
----
  salt-shaptools-0.3.9+git.1591860067.782f9ce.tar.gz

New:
----
  salt-shaptools-0.3.9+git.1600151923.c265ba1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ salt-shaptools.spec ++++++
--- /var/tmp/diff_new_pack.2k6Rte/_old  2020-09-15 16:31:28.378779621 +0200
+++ /var/tmp/diff_new_pack.2k6Rte/_new  2020-09-15 16:31:28.382779625 +0200
@@ -19,7 +19,7 @@
 # See also https://en.opensuse.org/openSUSE:Specfile_guidelines
 
 Name:           salt-shaptools
-Version:        0.3.9+git.1591860067.782f9ce
+Version:        0.3.9+git.1600151923.c265ba1
 Release:        0
 Summary:        Salt modules and states for SAP Applications and SLE-HA 
components management
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.2k6Rte/_old  2020-09-15 16:31:28.414779655 +0200
+++ /var/tmp/diff_new_pack.2k6Rte/_new  2020-09-15 16:31:28.414779655 +0200
@@ -5,7 +5,7 @@
     <param name="exclude">.git</param>
     <param name="filename">salt-shaptools</param>
     <param name="versionformat">0.3.9+git.%ct.%h</param>
-    <param name="revision">782f9ce5394989bd01af7e2f1cd65cc90e47fef1</param>
+    <param name="revision">c265ba1fc2e0f6f4c6bca2c4a8d8dbac61e93f13</param>
   </service>
 
   <service name="recompress" mode="disabled">

++++++ salt-shaptools-0.3.9+git.1591860067.782f9ce.tar.gz -> 
salt-shaptools-0.3.9+git.1600151923.c265ba1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/salt/states/crmshmod.py 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/salt/states/crmshmod.py
--- old/salt-shaptools-0.3.9+git.1591860067.782f9ce/salt/states/crmshmod.py     
2020-06-11 09:21:07.000000000 +0200
+++ new/salt-shaptools-0.3.9+git.1600151923.c265ba1/salt/states/crmshmod.py     
2020-09-15 08:38:43.000000000 +0200
@@ -548,3 +548,55 @@
     ret['comment'] = 'Cluster op_defaults configured'
     ret['result'] = True
     return ret
+
+
+def cloud_grains_present(
+        name):
+    """
+    Set the required cloud providers data in the grains.
+
+    These grains are used by the `habootstrap-formula` to identify if the 
current
+    execution is being done in the cloud, and if this is the case, set the 
information
+    regarding the current cloud provider that is used later to run certain 
states and
+    populate the configuration templates.
+
+    All providers: cloud_provider
+    Only gcp: gcp_instance_id, gcp_instance_name
+
+    name:
+        This parameter is ignored
+    """
+
+    changes = {}
+    ret = {'name': name,
+           'changes': changes,
+           'result': False,
+           'comment': ''}
+
+    if __opts__['test']:
+        ret['result'] = None
+        ret['comment'] = 'Cloud grains would be set'
+        ret['changes'] = changes
+        return ret
+
+    cloud_provider = __salt__['crm.detect_cloud']()
+    __salt__['grains.set']('cloud_provider', cloud_provider)
+    changes['cloud_provider'] = cloud_provider
+
+    if cloud_provider == 'google-cloud-platform':
+        gcp_instance_id = __salt__['http.query'](
+            
url='http://metadata.google.internal/computeMetadata/v1/instance/id',
+            header_dict={"Metadata-Flavor": "Google"})['body']
+        __salt__['grains.set']('gcp_instance_id', gcp_instance_id)
+        changes['gcp_instance_id'] = gcp_instance_id
+
+        gcp_instance_name = __salt__['http.query'](
+            
url='http://metadata.google.internal/computeMetadata/v1/instance/name',
+            header_dict={"Metadata-Flavor": "Google"})['body']
+        __salt__['grains.set']('gcp_instance_name', gcp_instance_name)
+        changes['gcp_instance_name'] = gcp_instance_name
+
+    ret['changes'] = changes
+    ret['comment'] = 'Cloud grains set'
+    ret['result'] = True
+    return ret
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/salt/states/hanamod.py 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/salt/states/hanamod.py
--- old/salt-shaptools-0.3.9+git.1591860067.782f9ce/salt/states/hanamod.py      
2020-06-11 09:21:07.000000000 +0200
+++ new/salt-shaptools-0.3.9+git.1600151923.c265ba1/salt/states/hanamod.py      
2020-09-15 08:38:43.000000000 +0200
@@ -70,6 +70,20 @@
 TMP_HDB_PWD_FILE = '/root/hdb_passwords.xml'
 INI_PARAM_PRELOAD_CS = {'section_name': 'system_replication', 
'parameter_name': 'preload_column_tables'}
 INI_PARAM_GAL = {'section_name': 'memorymanager', 'parameter_name': 
'global_allocation_limit'}
+# This keys are retrieved from the xml passwords file created by hdbclm
+PASSWORD_KEYS = [
+    'root_password',
+    'sapadm_password',
+    'master_password',
+    'sapadm_password',
+    'password',
+    'system_user_password',
+    'lss_user_password',
+    'lss_backup_password',
+    'streaming_cluster_manager_password',
+    'ase_user_password',
+    'org_manager_password'
+]
 
 
 def __virtual__():  # pragma: no cover
@@ -239,12 +253,16 @@
             __salt__['file.move'](
                 src=pwd_file,
                 dst=TMP_HDB_PWD_FILE)
+
+            extra_keys = _parse_dict(extra_parameters)
+            extra_keys = {key: value for (key, value) in extra_keys.items() if 
key in PASSWORD_KEYS}
             hdb_pwd_file = __salt__['hana.update_hdb_pwd_file'](
                 hdb_pwd_file=TMP_HDB_PWD_FILE,
                 root_password=root_password,
                 password=password,
                 sapadm_password=sapadm_password,
-                system_user_password=system_user_password)
+                system_user_password=system_user_password,
+                **extra_keys)
             ret['changes']['hdb_pwd_file'] = 'new'
         if config_file:
             __salt__['cp.get_file'](
@@ -261,9 +279,10 @@
             ret['changes']['config_file'] = 'new'
         if extra_parameters:
             extra_parameters = _parse_dict(extra_parameters)
+            extra_parameters = {key: value for (key, value) in 
extra_parameters.items() if key not in PASSWORD_KEYS}
             config_file = __salt__['hana.update_conf_file'](
                 conf_file=config_file,
-                extra_parameters=extra_parameters)
+                **extra_parameters)
 
         __salt__['hana.install'](
             software_path=software_path,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/salt-shaptools.changes 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/salt-shaptools.changes
--- old/salt-shaptools-0.3.9+git.1591860067.782f9ce/salt-shaptools.changes      
2020-06-11 09:21:07.000000000 +0200
+++ new/salt-shaptools-0.3.9+git.1600151923.c265ba1/salt-shaptools.changes      
2020-09-15 08:38:43.000000000 +0200
@@ -1,4 +1,9 @@
 -------------------------------------------------------------------
+Fri Sep 11 14:09:09 UTC 2020 - Xabier Arbulu <xarb...@suse.com>
+
+- Add cloud_grains_present state
+
+-------------------------------------------------------------------
 Tue Jun  9 13:08:47 UTC 2020 - Xabier Arbulu <xarb...@suse.com>
 
 - Version 0.3.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/tests/unit/states/test_crmshmod.py
 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/tests/unit/states/test_crmshmod.py
--- 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/tests/unit/states/test_crmshmod.py
  2020-06-11 09:21:07.000000000 +0200
+++ 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/tests/unit/states/test_crmshmod.py
  2020-09-15 08:38:43.000000000 +0200
@@ -968,3 +968,68 @@
                 mock.call(option='data1', value='value1'),
                 mock.call(option='data2', value='value2')
             ])
+
+    def test_cloud_grains_present_test(self):
+        '''
+        Test to check cloud_grains_present in test mode
+        '''
+
+        ret = {'name': 'name',
+               'changes': {},
+               'result': None,
+               'comment': 'Cloud grains would be set'}
+
+        with patch.dict(crmshmod.__opts__, {'test': True}):
+            assert crmshmod.cloud_grains_present('name') == ret
+
+    def test_cloud_grains_present(self):
+        '''
+        Test to check cloud_grains_present
+        '''
+
+        ret = {'name': 'name',
+               'changes': {'cloud_provider': 'mycloud'},
+               'result': True,
+               'comment': 'Cloud grains set'}
+
+        mock_detect_cloud = MagicMock(return_value='mycloud')
+        mock_set_grains = MagicMock()
+        with patch.dict(crmshmod.__salt__, {'crm.detect_cloud': 
mock_detect_cloud,
+                                            'grains.set': mock_set_grains}):
+            assert crmshmod.cloud_grains_present(name='name') == ret
+            mock_detect_cloud.assert_called_once_with()
+            mock_set_grains.assert_called_once_with('cloud_provider', 
'mycloud')
+
+    def test_cloud_grains_present_gcp(self):
+        '''
+        Test to check cloud_grains_present for gcp
+        '''
+
+        ret = {'name': 'name',
+               'changes': {'cloud_provider': 'google-cloud-platform',
+                           'gcp_instance_id': 'm_id',
+                           'gcp_instance_name': 'm_name'},
+               'result': True,
+               'comment': 'Cloud grains set'}
+
+        mock_detect_cloud = MagicMock(return_value='google-cloud-platform')
+        mock_set_grains = MagicMock()
+        mock_http_query = MagicMock(side_effect=[{'body': 'm_id'}, {'body': 
'm_name'}])
+        with patch.dict(crmshmod.__salt__, {'crm.detect_cloud': 
mock_detect_cloud,
+                                            'grains.set': mock_set_grains,
+                                            'http.query': mock_http_query}):
+            assert crmshmod.cloud_grains_present(name='name') == ret
+            mock_detect_cloud.assert_called_once_with()
+            mock_http_query.assert_has_calls([
+                mock.call(
+                    
url='http://metadata.google.internal/computeMetadata/v1/instance/id',
+                    header_dict={"Metadata-Flavor": "Google"}),
+                mock.call(
+                    
url='http://metadata.google.internal/computeMetadata/v1/instance/name',
+                    header_dict={"Metadata-Flavor": "Google"})
+            ])
+            mock_set_grains.assert_has_calls([
+                mock.call('cloud_provider', 'google-cloud-platform'),
+                mock.call('gcp_instance_id', 'm_id'),
+                mock.call('gcp_instance_name', 'm_name')
+            ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/tests/unit/states/test_hanamod.py
 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/tests/unit/states/test_hanamod.py
--- 
old/salt-shaptools-0.3.9+git.1591860067.782f9ce/tests/unit/states/test_hanamod.py
   2020-06-11 09:21:07.000000000 +0200
+++ 
new/salt-shaptools-0.3.9+git.1600151923.c265ba1/tests/unit/states/test_hanamod.py
   2020-09-15 08:38:43.000000000 +0200
@@ -158,7 +158,7 @@
                 'prd', '00', 'pass', '/software',
                 'root', config_file='hana.conf', root_password='Test1234',
                 sapadm_password='Test1234', system_user_password='Test1234',
-                extra_parameters=[{'hostname': 'hana01'}]) == ret
+                extra_parameters=[{'hostname': 'hana01', 
'org_manager_password': 'pass'}]) == ret
 
             mock_create_xml.assert_called_once_with(
                 software_path='/software',
@@ -170,13 +170,14 @@
                 dst=hanamod.TMP_HDB_PWD_FILE)
             mock_update_xml.assert_called_once_with(
                 hdb_pwd_file=hanamod.TMP_HDB_PWD_FILE, 
root_password='Test1234',
-                password='pass', sapadm_password='Test1234', 
system_user_password='Test1234')
+                password='pass', sapadm_password='Test1234', 
system_user_password='Test1234',
+                org_manager_password='pass')
             mock_cp.assert_called_once_with(
                 path='hana.conf',
                 dest=hanamod.TMP_CONFIG_FILE)
             mock_update.assert_called_once_with(
                 conf_file=hanamod.TMP_CONFIG_FILE,
-                extra_parameters={u'hostname': u'hana01'})
+                hostname='hana01')
             mock_install.assert_called_once_with(
                 software_path='/software',
                 conf_file='hana_updated.conf',
@@ -228,7 +229,7 @@
                     root_user='root'),
                 mock.call(
                     conf_file='hana_updated.conf',
-                    extra_parameters={u'hostname': u'hana01'})
+                    hostname='hana01')
             ])
 
             mock_install.assert_called_once_with(


Reply via email to