Repository: ambari
Updated Branches:
  refs/heads/trunk 0c6ca6bb4 -> 3e50e06a2


AMBARI-9699. RU - Distribute repositories failed during "Install Packages" in 
Ubuntu12 (dlysnichenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3e50e06a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3e50e06a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3e50e06a

Branch: refs/heads/trunk
Commit: 3e50e06a24c96d595e5edb015c37ae46723c5560
Parents: 0c6ca6b
Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com>
Authored: Thu Feb 19 13:36:18 2015 +0200
Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com>
Committed: Thu Feb 19 13:36:18 2015 +0200

----------------------------------------------------------------------
 .../TestRepositoryResource.py                   | 40 ++++++++++++++++++++
 .../libraries/providers/repository.py           |  2 +-
 2 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/3e50e06a/ambari-agent/src/test/python/resource_management/TestRepositoryResource.py
----------------------------------------------------------------------
diff --git 
a/ambari-agent/src/test/python/resource_management/TestRepositoryResource.py 
b/ambari-agent/src/test/python/resource_management/TestRepositoryResource.py
index 72fc8a3..37a9584 100644
--- a/ambari-agent/src/test/python/resource_management/TestRepositoryResource.py
+++ b/ambari-agent/src/test/python/resource_management/TestRepositoryResource.py
@@ -154,6 +154,46 @@ class TestRepositoryResource(TestCase):
       self.assertEqual(checked_call_mock.call_args_list[0][0][0], ['apt-get', 
'update', '-qq', '-o', 'Dir::Etc::sourcelist=sources.list.d/HDP.list', '-o', 
'APT::Get::List-Cleanup=0'])
       self.assertEqual(execute_command_item, 'apt-key adv --recv-keys 
--keyserver keyserver.ubuntu.com 123ABCD')
 
+    @patch("resource_management.libraries.providers.repository.checked_call")
+    @patch.object(tempfile, "NamedTemporaryFile")
+    @patch("resource_management.libraries.providers.repository.Execute")
+    @patch("resource_management.libraries.providers.repository.File")
+    @patch("os.path.isfile", new=MagicMock(return_value=True))
+    @patch("filecmp.cmp", new=MagicMock(return_value=False))
+    @patch.object(System, "os_release_name", new='precise')
+    @patch.object(System, "os_family", new='ubuntu')
+    def test_create_repo_ubuntu_gpg_key_wrong_output(self, file_mock, 
execute_mock,
+                                            tempfile_mock, checked_call_mock):
+      """
+      Checks that GPG key is extracted from output without \r sign
+      """
+      tempfile_mock.return_value = MagicMock(spec=file)
+      tempfile_mock.return_value.__enter__.return_value.name = "/tmp/1.txt"
+      checked_call_mock.return_value = 0, "The following signatures couldn't 
be verified because the public key is not available: NO_PUBKEY 123ABCD\r\n"
+
+      with Environment('/') as env:
+        with patch.object(repository,"Template", 
new=DummyTemplate.create(DEBIAN_DEFAUTL_TEMPLATE)):
+          Repository('HDP',
+                     base_url='http://download.base_url.org/rpm/',
+                     repo_file_name='HDP',
+                     repo_template = "dummy.j2",
+                     components = ['a','b','c']
+          )
+
+      call_content = file_mock.call_args_list[0]
+      template_name = call_content[0][0]
+      template_content = call_content[1]['content']
+
+      self.assertEquals(template_name, '/tmp/1.txt')
+      self.assertEquals(template_content, 'deb 
http://download.base_url.org/rpm/ a b c\n')
+
+      copy_item = str(file_mock.call_args_list[1])
+      self.assertEqual(copy_item, "call('/etc/apt/sources.list.d/HDP.list', 
content=StaticFile('/tmp/1.txt'))")
+      execute_command_item = execute_mock.call_args_list[0][0][0]
+
+      self.assertEqual(checked_call_mock.call_args_list[0][0][0], ['apt-get', 
'update', '-qq', '-o', 'Dir::Etc::sourcelist=sources.list.d/HDP.list', '-o', 
'APT::Get::List-Cleanup=0'])
+      self.assertEqual(execute_command_item, 'apt-key adv --recv-keys 
--keyserver keyserver.ubuntu.com 123ABCD')
+
     @patch.object(tempfile, "NamedTemporaryFile")
     @patch("resource_management.libraries.providers.repository.Execute")
     @patch("resource_management.libraries.providers.repository.File")

http://git-wip-us.apache.org/repos/asf/ambari/blob/3e50e06a/ambari-common/src/main/python/resource_management/libraries/providers/repository.py
----------------------------------------------------------------------
diff --git 
a/ambari-common/src/main/python/resource_management/libraries/providers/repository.py
 
b/ambari-common/src/main/python/resource_management/libraries/providers/repository.py
index cca9f4d..9bd89ec 100644
--- 
a/ambari-common/src/main/python/resource_management/libraries/providers/repository.py
+++ 
b/ambari-common/src/main/python/resource_management/libraries/providers/repository.py
@@ -68,7 +68,7 @@ class UbuntuRepositoryProvider(Provider):
   package_type = "deb"
   repo_dir = "/etc/apt/sources.list.d"
   update_cmd = ['apt-get', 'update', '-qq', '-o', 
'Dir::Etc::sourcelist=sources.list.d/{repo_file_name}', '-o', 
'APT::Get::List-Cleanup=0']
-  missing_pkey_regex = "The following signatures couldn't be verified because 
the public key is not available: NO_PUBKEY (.+)"
+  missing_pkey_regex = "The following signatures couldn't be verified because 
the public key is not available: NO_PUBKEY ([A-Z0-9]+)"
   add_pkey_cmd = "apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 
{pkey}"
 
   def action_create(self):

Reply via email to