Ejemplo n.º 1
0
 def test_update_provider_error(self):
     """Test to update a provider with a koku server error."""
     client = ProviderBuilder(auth_header=Config.SOURCES_FAKE_HEADER)
     with patch.object(ProviderAccessor,
                       "cost_usage_source_ready",
                       returns=True):
         client.create_provider_from_source(self.mock_source)
     with self.assertRaises(ValidationError):
         new_name = "Aws Test"
         self.mock_source.name = new_name
         client.update_provider_from_source(self.mock_source)
Ejemplo n.º 2
0
 def test_update_provider(self):
     """Test to update a provider."""
     client = ProviderBuilder(auth_header=Config.SOURCES_FAKE_HEADER)
     with patch.object(ProviderAccessor,
                       "cost_usage_source_ready",
                       returns=True):
         provider = client.create_provider_from_source(self.mock_source)
         new_name = "Aws Test"
         self.mock_source.name = new_name
         updated_provider = client.update_provider_from_source(
             self.mock_source)
         self.assertEqual(updated_provider.uuid, provider.uuid)
         self.assertEqual(updated_provider.name, new_name)
Ejemplo n.º 3
0
 def test_update_provider_pause(self):
     """Test to update a provider for pause/unpause."""
     client = ProviderBuilder(auth_header=Config.SOURCES_FAKE_HEADER)
     with patch.object(ProviderAccessor,
                       "cost_usage_source_ready",
                       returns=True):
         provider = client.create_provider_from_source(self.mock_source)
         self.assertFalse(provider.paused)
         for test in [True, False]:
             with self.subTest(paused=test):
                 self.mock_source.paused = test
                 updated_provider = client.update_provider_from_source(
                     self.mock_source)
                 self.assertEqual(updated_provider.paused, test)
Ejemplo n.º 4
0
class SourcesProviderCoordinator:
    """Coordinator to control source and provider operations."""
    def __init__(self, source_id, auth_header):
        """Initialize the client."""
        header = {"x-rh-identity": auth_header, "sources-client": "True"}
        self._source_id = source_id
        self._identity_header = header
        self._provider_builder = ProviderBuilder(self._identity_header)

    def create_account(self, source):
        """Call to create provider."""
        try:
            LOG.info(
                f"Creating Provider for Source ID: {str(self._source_id)}")
            provider = self._provider_builder.create_provider_from_source(
                source)
            add_provider_koku_uuid(self._source_id, provider.uuid)
        except ProviderBuilderError as provider_err:
            raise SourcesProviderCoordinatorError(str(provider_err))
        return provider

    def update_account(self, source):
        """Call to update provider."""
        try:
            LOG.info(
                f"Updating Provider for Source ID: {str(self._source_id)}")
            provider = self._provider_builder.update_provider_from_source(
                source)
        except ProviderBuilderError as provider_err:
            raise SourcesProviderCoordinatorError(str(provider_err))
        return provider

    def destroy_account(self, koku_uuid):
        """Call to destroy provider."""
        try:
            self._provider_builder.destroy_provider(koku_uuid)
            destroy_source_event(self._source_id)
        except ProviderBuilderError as provider_err:
            LOG.error(f"Failed to remove provider. Error: {str(provider_err)}")
Ejemplo n.º 5
0
 def test_update_provider_exception(self):
     """Test to update a provider with a connection error."""
     client = ProviderBuilder(auth_header=Config.SOURCES_FAKE_HEADER)
     with self.assertRaises(Provider.DoesNotExist):
         client.update_provider_from_source(self.mock_source)