Exemple #1
0
def validate_bintray_credentials(image_version, offline_mode):
    """
    Validates if the necessary Bintray credentials exists to start the ConductR cluster.
    Credentials are necessary prior to ConductR 2.1.0. From onwards 2.1.0, no credentials are needed.
    :param image_version: the ConductR image version
    :param offline_mode: the offline mode flag
    """
    if not offline_mode and is_conductr_on_private_bintray(image_version):
        bintray_resolver.load_bintray_credentials(raise_error=True, disable_instructions=True)
    def test_missing_credential_file(self):
        exists_mock = MagicMock(return_value=False)

        with patch('os.path.exists', exists_mock):
            username, password = bintray_resolver.load_bintray_credentials()
            self.assertIsNone(username)
            self.assertIsNone(password)

        exists_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')))
Exemple #3
0
    def test_missing_credential_file(self):
        exists_mock = MagicMock(return_value=False)

        with patch('os.path.exists', exists_mock):
            username, password = bintray_resolver.load_bintray_credentials()
            self.assertIsNone(username)
            self.assertIsNone(password)

        exists_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')))
    def test_credential_file_not_having_username_password(self):
        bintray_credential_file = strip_margin(
            """|dummy = yes
               |""")

        exists_mock = MagicMock(return_value=True)
        open_mock = MagicMock(return_value=io.StringIO(bintray_credential_file))

        with patch('os.path.exists', exists_mock), \
                patch('builtins.open', open_mock):
            username, password = bintray_resolver.load_bintray_credentials()
            self.assertIsNone(username)
            self.assertIsNone(password)

        exists_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')))
        open_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')), 'r')
Exemple #5
0
    def test_credential_file_not_having_username_password(self):
        bintray_credential_file = strip_margin(
            """|dummy = yes
               |""")

        exists_mock = MagicMock(return_value=True)
        open_mock = MagicMock(return_value=io.StringIO(bintray_credential_file))

        with patch('os.path.exists', exists_mock), \
                patch('builtins.open', open_mock):
            username, password = bintray_resolver.load_bintray_credentials()
            self.assertIsNone(username)
            self.assertIsNone(password)

        exists_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')))
        open_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')), 'r')
    def test_success(self):
        bintray_credential_file = strip_margin(
            """|user = user1
               |password = sec=ret
               |# Some comment
               |""")

        exists_mock = MagicMock(return_value=True)
        open_mock = MagicMock(return_value=io.StringIO(bintray_credential_file))

        with patch('os.path.exists', exists_mock), \
                patch('builtins.open', open_mock):
            username, password = bintray_resolver.load_bintray_credentials()
            self.assertEqual('user1', username)
            self.assertEqual('sec=ret', password)

        exists_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')))
        open_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')), 'r')
Exemple #7
0
    def test_success(self):
        bintray_credential_file = strip_margin(
            """|user = user1
               |password = sec=ret
               |# Some comment
               |""")

        exists_mock = MagicMock(return_value=True)
        open_mock = MagicMock(return_value=io.StringIO(bintray_credential_file))

        with patch('os.path.exists', exists_mock), \
                patch('builtins.open', open_mock):
            username, password = bintray_resolver.load_bintray_credentials()
            self.assertEqual('user1', username)
            self.assertEqual('sec=ret', password)

        exists_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')))
        open_mock.assert_called_with('{}/.bintray/.credentials'.format(os.path.expanduser('~')), 'r')
Exemple #8
0
def download_sandbox_image(image_dir, package_name, artefact_type,
                           image_version):
    try:
        bintray_auth = bintray_resolver.load_bintray_credentials()

        if artefact_type == 'core':
            file_prefix = 'conductr-{}-{}'.format(image_version,
                                                  artefact_os_name())
        else:
            file_prefix = 'conductr-agent-{}-{}'.format(
                image_version, artefact_os_name())

        def is_matching_artefact(download_url):
            artefact_file_name = os.path.basename(download_url)
            return artefact_file_name.startswith(
                file_prefix) and artefact_file_name.endswith('64.tgz')

        artefacts = [
            artefact
            for artefact in bintray_resolver.bintray_artefacts_by_version(
                bintray_auth, BINTRAY_LIGHTBEND_ORG, BINTRAY_CONDUCTR_REPO,
                package_name, image_version)
            if is_matching_artefact(artefact['download_url'])
        ]
        if len(artefacts) == 1:
            is_success, _, download_path = bintray_resolver.bintray_download_artefact(
                image_dir, artefacts[0], bintray_auth)
            if is_success:
                return download_path

        raise SandboxImageNotFoundError(artefact_type, image_version)
    except ConnectionError:
        raise BintrayUnreachableError('Bintray is unreachable.')

    except HTTPError:
        raise SandboxImageNotFoundError(artefact_type, image_version)