From 1c101698e2c6b211c2c55834ecd7c6b45460e529 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 14:11:35 -0500 Subject: [PATCH 1/9] Middleware inheritance from factory --- cloudbridge/cloud/base/provider.py | 8 ++++---- cloudbridge/cloud/factory.py | 9 ++++++++- cloudbridge/cloud/providers/aws/provider.py | 4 ++-- cloudbridge/cloud/providers/azure/provider.py | 4 ++-- cloudbridge/cloud/providers/gcp/provider.py | 4 ++-- cloudbridge/cloud/providers/mock/provider.py | 4 ++-- cloudbridge/cloud/providers/openstack/provider.py | 4 ++-- test/helpers/__init__.py | 2 +- 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/cloudbridge/cloud/base/provider.py b/cloudbridge/cloud/base/provider.py index 4751545e..3aaa3f76 100644 --- a/cloudbridge/cloud/base/provider.py +++ b/cloudbridge/cloud/base/provider.py @@ -2,14 +2,13 @@ import functools import logging import os +from copy import deepcopy from os.path import expanduser try: from configparser import ConfigParser except ImportError: # Python 2 from ConfigParser import SafeConfigParser as ConfigParser -from pyeventsystem.middleware import SimpleMiddlewareManager - import six from ..base.middleware import ExceptionWrappingMiddleware @@ -83,11 +82,12 @@ def debug_mode(self): class BaseCloudProvider(CloudProvider): - def __init__(self, config): + def __init__(self, config, factory): + self._factory = factory self._config = BaseConfiguration(config) self._config_parser = ConfigParser() self._config_parser.read(CloudBridgeConfigLocations) - self._middleware = SimpleMiddlewareManager() + self._middleware = deepcopy(factory.middleware) self.add_required_middleware() @property diff --git a/cloudbridge/cloud/factory.py b/cloudbridge/cloud/factory.py index 1eb7d37b..4b2fc8a2 100644 --- a/cloudbridge/cloud/factory.py +++ b/cloudbridge/cloud/factory.py @@ -4,6 +4,8 @@ import pkgutil from collections import defaultdict +from pyeventsystem.middleware import SimpleMiddlewareManager + from cloudbridge.cloud import providers from cloudbridge.cloud.interfaces import CloudProvider from cloudbridge.cloud.interfaces import TestMockHelperMixin @@ -27,9 +29,14 @@ class CloudProviderFactory(object): """ def __init__(self): + self._middleware = SimpleMiddlewareManager() self.provider_list = defaultdict(dict) log.debug("Providers List: %s", self.provider_list) + @property + def middleware(self): + return self._middleware + def register_provider_class(self, cls): """ Registers a provider class with the factory. The class must @@ -136,7 +143,7 @@ def create_provider(self, name, config): 'A provider with name {0} could not be' ' found'.format(name)) log.debug("Created '%s' provider", name) - return provider_class(config) + return provider_class(config, self) def get_provider_class(self, name): """ diff --git a/cloudbridge/cloud/providers/aws/provider.py b/cloudbridge/cloud/providers/aws/provider.py index f7592935..45d63cd4 100644 --- a/cloudbridge/cloud/providers/aws/provider.py +++ b/cloudbridge/cloud/providers/aws/provider.py @@ -17,8 +17,8 @@ class AWSCloudProvider(BaseCloudProvider): PROVIDER_ID = 'aws' AWS_INSTANCE_DATA_DEFAULT_URL = "http://cloudve.org/cb-aws-vmtypes.json" - def __init__(self, config): - super(AWSCloudProvider, self).__init__(config) + def __init__(self, config, factory): + super(AWSCloudProvider, self).__init__(config, factory) # Initialize cloud connection fields # These are passed as-is to Boto diff --git a/cloudbridge/cloud/providers/azure/provider.py b/cloudbridge/cloud/providers/azure/provider.py index 5e1ec3d8..903b3ee8 100644 --- a/cloudbridge/cloud/providers/azure/provider.py +++ b/cloudbridge/cloud/providers/azure/provider.py @@ -23,8 +23,8 @@ class AzureCloudProvider(BaseCloudProvider): PROVIDER_ID = 'azure' - def __init__(self, config): - super(AzureCloudProvider, self).__init__(config) + def __init__(self, config, factory): + super(AzureCloudProvider, self).__init__(config, factory) # mandatory config values self.subscription_id = self._get_config_value( diff --git a/cloudbridge/cloud/providers/gcp/provider.py b/cloudbridge/cloud/providers/gcp/provider.py index 714d57fb..cd05ad01 100644 --- a/cloudbridge/cloud/providers/gcp/provider.py +++ b/cloudbridge/cloud/providers/gcp/provider.py @@ -196,8 +196,8 @@ class GCPCloudProvider(BaseCloudProvider): PROVIDER_ID = 'gcp' - def __init__(self, config): - super(GCPCloudProvider, self).__init__(config) + def __init__(self, config, factory): + super(GCPCloudProvider, self).__init__(config, factory) # Disable warnings about file_cache not being available when using # oauth2client >= 4.0.0. diff --git a/cloudbridge/cloud/providers/mock/provider.py b/cloudbridge/cloud/providers/mock/provider.py index ee3b635e..a2d68c5f 100644 --- a/cloudbridge/cloud/providers/mock/provider.py +++ b/cloudbridge/cloud/providers/mock/provider.py @@ -25,9 +25,9 @@ class MockAWSCloudProvider(AWSCloudProvider, TestMockHelperMixin): """ PROVIDER_ID = 'mock' - def __init__(self, config): + def __init__(self, config, factory): self.setUpMock() - super(MockAWSCloudProvider, self).__init__(config) + super(MockAWSCloudProvider, self).__init__(config, factory) def setUpMock(self): """ diff --git a/cloudbridge/cloud/providers/openstack/provider.py b/cloudbridge/cloud/providers/openstack/provider.py index caff611e..ae75f332 100644 --- a/cloudbridge/cloud/providers/openstack/provider.py +++ b/cloudbridge/cloud/providers/openstack/provider.py @@ -31,8 +31,8 @@ class OpenStackCloudProvider(BaseCloudProvider): PROVIDER_ID = 'openstack' - def __init__(self, config): - super(OpenStackCloudProvider, self).__init__(config) + def __init__(self, config, factory): + super(OpenStackCloudProvider, self).__init__(config, factory) # Initialize cloud connection fields self.username = self._get_config_value( diff --git a/test/helpers/__init__.py b/test/helpers/__init__.py index e0c623d5..aa2c022c 100644 --- a/test/helpers/__init__.py +++ b/test/helpers/__init__.py @@ -262,7 +262,7 @@ def create_provider_instance(self): config = {'default_wait_interval': self.get_provider_wait_interval(provider_class), 'default_result_limit': 5} - return provider_class(config) + return provider_class(config, factory) @property def provider(self): From e82790599b69a23fe7b74738e05a43f768b78065 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 15:08:21 -0500 Subject: [PATCH 2/9] Testing middleware inheritance from factory --- test/test_cloud_factory.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/test_cloud_factory.py b/test/test_cloud_factory.py index f5b7a53d..f651c2d1 100644 --- a/test/test_cloud_factory.py +++ b/test/test_cloud_factory.py @@ -1,7 +1,10 @@ import unittest +from pyeventsystem.middleware import intercept + from cloudbridge.cloud import factory from cloudbridge.cloud import interfaces +from cloudbridge.cloud.base import helpers as cb_helpers from cloudbridge.cloud.factory import CloudProviderFactory from cloudbridge.cloud.interfaces import TestMockHelperMixin from cloudbridge.cloud.interfaces.provider import CloudProvider @@ -85,3 +88,19 @@ class DummyClass(CloudProvider): factory.register_provider_class(DummyClass) self.assertTrue(DummyClass not in factory.get_all_provider_classes()) + + def test_middleware_inherited(self): + return_str = "hello world" + class SomeDummyClass(object): + + @intercept(event_pattern="*", priority=2499) + def return_hello_world(self, event_args, *args, **kwargs): + return return_str + + factory = CloudProviderFactory() + some_obj = SomeDummyClass() + factory.middleware.add(some_obj) + provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") + prov = factory.create_provider(provider_name, {}) + # Any dispatched event should be intercepted and return the string + self.assertEqual(prov.storage.volumes.get("anything"), return_str) From 0ecadbe178eef3d08359c9f2f764db27387949d8 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 15:23:49 -0500 Subject: [PATCH 3/9] Middleware list in factory --- cloudbridge/cloud/base/provider.py | 10 ++++++---- cloudbridge/cloud/factory.py | 11 ++++++----- cloudbridge/cloud/providers/aws/provider.py | 4 ++-- cloudbridge/cloud/providers/azure/provider.py | 4 ++-- cloudbridge/cloud/providers/gcp/provider.py | 4 ++-- cloudbridge/cloud/providers/mock/provider.py | 4 ++-- cloudbridge/cloud/providers/openstack/provider.py | 4 ++-- test/helpers/__init__.py | 2 +- test/test_cloud_factory.py | 2 +- 9 files changed, 24 insertions(+), 21 deletions(-) diff --git a/cloudbridge/cloud/base/provider.py b/cloudbridge/cloud/base/provider.py index 3aaa3f76..27f71d85 100644 --- a/cloudbridge/cloud/base/provider.py +++ b/cloudbridge/cloud/base/provider.py @@ -2,13 +2,14 @@ import functools import logging import os -from copy import deepcopy from os.path import expanduser try: from configparser import ConfigParser except ImportError: # Python 2 from ConfigParser import SafeConfigParser as ConfigParser +from pyeventsystem.middleware import SimpleMiddlewareManager + import six from ..base.middleware import ExceptionWrappingMiddleware @@ -82,12 +83,13 @@ def debug_mode(self): class BaseCloudProvider(CloudProvider): - def __init__(self, config, factory): - self._factory = factory + def __init__(self, config, middleware_list=[]): self._config = BaseConfiguration(config) self._config_parser = ConfigParser() self._config_parser.read(CloudBridgeConfigLocations) - self._middleware = deepcopy(factory.middleware) + self._middleware = SimpleMiddlewareManager() + for each_middleware in middleware_list: + self._middleware.add(each_middleware) self.add_required_middleware() @property diff --git a/cloudbridge/cloud/factory.py b/cloudbridge/cloud/factory.py index 4b2fc8a2..ad2304e8 100644 --- a/cloudbridge/cloud/factory.py +++ b/cloudbridge/cloud/factory.py @@ -4,8 +4,6 @@ import pkgutil from collections import defaultdict -from pyeventsystem.middleware import SimpleMiddlewareManager - from cloudbridge.cloud import providers from cloudbridge.cloud.interfaces import CloudProvider from cloudbridge.cloud.interfaces import TestMockHelperMixin @@ -29,14 +27,17 @@ class CloudProviderFactory(object): """ def __init__(self): - self._middleware = SimpleMiddlewareManager() + self._middleware = [] self.provider_list = defaultdict(dict) log.debug("Providers List: %s", self.provider_list) @property - def middleware(self): + def added_middleware(self): return self._middleware + def add_middleware(self, middleware): + self._middleware.append(middleware) + def register_provider_class(self, cls): """ Registers a provider class with the factory. The class must @@ -143,7 +144,7 @@ def create_provider(self, name, config): 'A provider with name {0} could not be' ' found'.format(name)) log.debug("Created '%s' provider", name) - return provider_class(config, self) + return provider_class(config, self.added_middleware) def get_provider_class(self, name): """ diff --git a/cloudbridge/cloud/providers/aws/provider.py b/cloudbridge/cloud/providers/aws/provider.py index 45d63cd4..256f7e02 100644 --- a/cloudbridge/cloud/providers/aws/provider.py +++ b/cloudbridge/cloud/providers/aws/provider.py @@ -17,8 +17,8 @@ class AWSCloudProvider(BaseCloudProvider): PROVIDER_ID = 'aws' AWS_INSTANCE_DATA_DEFAULT_URL = "http://cloudve.org/cb-aws-vmtypes.json" - def __init__(self, config, factory): - super(AWSCloudProvider, self).__init__(config, factory) + def __init__(self, config, middleware_list=[]): + super(AWSCloudProvider, self).__init__(config, middleware_list) # Initialize cloud connection fields # These are passed as-is to Boto diff --git a/cloudbridge/cloud/providers/azure/provider.py b/cloudbridge/cloud/providers/azure/provider.py index 903b3ee8..d786bda2 100644 --- a/cloudbridge/cloud/providers/azure/provider.py +++ b/cloudbridge/cloud/providers/azure/provider.py @@ -23,8 +23,8 @@ class AzureCloudProvider(BaseCloudProvider): PROVIDER_ID = 'azure' - def __init__(self, config, factory): - super(AzureCloudProvider, self).__init__(config, factory) + def __init__(self, config, middleware_list=[]): + super(AzureCloudProvider, self).__init__(config, middleware_list) # mandatory config values self.subscription_id = self._get_config_value( diff --git a/cloudbridge/cloud/providers/gcp/provider.py b/cloudbridge/cloud/providers/gcp/provider.py index cd05ad01..3290bd64 100644 --- a/cloudbridge/cloud/providers/gcp/provider.py +++ b/cloudbridge/cloud/providers/gcp/provider.py @@ -196,8 +196,8 @@ class GCPCloudProvider(BaseCloudProvider): PROVIDER_ID = 'gcp' - def __init__(self, config, factory): - super(GCPCloudProvider, self).__init__(config, factory) + def __init__(self, config, middleware_list=[]): + super(GCPCloudProvider, self).__init__(config, middleware_list) # Disable warnings about file_cache not being available when using # oauth2client >= 4.0.0. diff --git a/cloudbridge/cloud/providers/mock/provider.py b/cloudbridge/cloud/providers/mock/provider.py index a2d68c5f..56b01dc8 100644 --- a/cloudbridge/cloud/providers/mock/provider.py +++ b/cloudbridge/cloud/providers/mock/provider.py @@ -25,9 +25,9 @@ class MockAWSCloudProvider(AWSCloudProvider, TestMockHelperMixin): """ PROVIDER_ID = 'mock' - def __init__(self, config, factory): + def __init__(self, config, middleware_list=[]): self.setUpMock() - super(MockAWSCloudProvider, self).__init__(config, factory) + super(MockAWSCloudProvider, self).__init__(config, middleware_list) def setUpMock(self): """ diff --git a/cloudbridge/cloud/providers/openstack/provider.py b/cloudbridge/cloud/providers/openstack/provider.py index ae75f332..4aa79d11 100644 --- a/cloudbridge/cloud/providers/openstack/provider.py +++ b/cloudbridge/cloud/providers/openstack/provider.py @@ -31,8 +31,8 @@ class OpenStackCloudProvider(BaseCloudProvider): PROVIDER_ID = 'openstack' - def __init__(self, config, factory): - super(OpenStackCloudProvider, self).__init__(config, factory) + def __init__(self, config, middleware_list=[]): + super(OpenStackCloudProvider, self).__init__(config, middleware_list) # Initialize cloud connection fields self.username = self._get_config_value( diff --git a/test/helpers/__init__.py b/test/helpers/__init__.py index aa2c022c..e0c623d5 100644 --- a/test/helpers/__init__.py +++ b/test/helpers/__init__.py @@ -262,7 +262,7 @@ def create_provider_instance(self): config = {'default_wait_interval': self.get_provider_wait_interval(provider_class), 'default_result_limit': 5} - return provider_class(config, factory) + return provider_class(config) @property def provider(self): diff --git a/test/test_cloud_factory.py b/test/test_cloud_factory.py index f651c2d1..beb1acc3 100644 --- a/test/test_cloud_factory.py +++ b/test/test_cloud_factory.py @@ -99,7 +99,7 @@ def return_hello_world(self, event_args, *args, **kwargs): factory = CloudProviderFactory() some_obj = SomeDummyClass() - factory.middleware.add(some_obj) + factory.add_middleware(some_obj) provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") prov = factory.create_provider(provider_name, {}) # Any dispatched event should be intercepted and return the string From 614ca0485067b9957393b7182bafbca27a415dd0 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 17:24:40 -0500 Subject: [PATCH 4/9] Middleware support in factory with constructor option --- cloudbridge/cloud/base/provider.py | 8 +-- cloudbridge/cloud/factory.py | 34 +++++++-- cloudbridge/cloud/providers/aws/provider.py | 4 +- cloudbridge/cloud/providers/azure/provider.py | 4 +- cloudbridge/cloud/providers/gcp/provider.py | 4 +- cloudbridge/cloud/providers/mock/provider.py | 4 +- .../cloud/providers/openstack/provider.py | 4 +- test/test_cloud_factory.py | 72 +++++++++++++++++-- 8 files changed, 105 insertions(+), 29 deletions(-) diff --git a/cloudbridge/cloud/base/provider.py b/cloudbridge/cloud/base/provider.py index 27f71d85..60c8a2db 100644 --- a/cloudbridge/cloud/base/provider.py +++ b/cloudbridge/cloud/base/provider.py @@ -8,8 +8,6 @@ except ImportError: # Python 2 from ConfigParser import SafeConfigParser as ConfigParser -from pyeventsystem.middleware import SimpleMiddlewareManager - import six from ..base.middleware import ExceptionWrappingMiddleware @@ -83,13 +81,11 @@ def debug_mode(self): class BaseCloudProvider(CloudProvider): - def __init__(self, config, middleware_list=[]): + def __init__(self, config, middleware_manager=None): self._config = BaseConfiguration(config) self._config_parser = ConfigParser() self._config_parser.read(CloudBridgeConfigLocations) - self._middleware = SimpleMiddlewareManager() - for each_middleware in middleware_list: - self._middleware.add(each_middleware) + self._middleware = middleware_manager.generate_simple_manager() self.add_required_middleware() @property diff --git a/cloudbridge/cloud/factory.py b/cloudbridge/cloud/factory.py index ad2304e8..dd4100b4 100644 --- a/cloudbridge/cloud/factory.py +++ b/cloudbridge/cloud/factory.py @@ -4,6 +4,8 @@ import pkgutil from collections import defaultdict +from pyeventsystem.middleware import SimpleMiddlewareManager + from cloudbridge.cloud import providers from cloudbridge.cloud.interfaces import CloudProvider from cloudbridge.cloud.interfaces import TestMockHelperMixin @@ -12,6 +14,29 @@ log = logging.getLogger(__name__) +# Todo: Move to pyeventsystem if we're keeping this logic +class ParentMiddlewareManager(SimpleMiddlewareManager): + + def __init__(self, event_manager=None): + super(ParentMiddlewareManager, self).__init__(event_manager) + self.middleware_constructors = [] + + def add_constructor(self, middleware_class, *args): + self.middleware_constructors.append((middleware_class, args)) + + def remove_constructor(self, middleware_class, *args): + self.middleware_constructors.remove((middleware_class, args)) + + def generate_simple_manager(self): + new_manager = SimpleMiddlewareManager() + for middleware in self.middleware_list: + new_manager.add(middleware) + for constructor, args in self.middleware_constructors: + m = constructor(*args) + new_manager.add(m) + return new_manager + + class ProviderList(object): AWS = 'aws' AZURE = 'azure' @@ -27,17 +52,14 @@ class CloudProviderFactory(object): """ def __init__(self): - self._middleware = [] + self._middleware = ParentMiddlewareManager() self.provider_list = defaultdict(dict) log.debug("Providers List: %s", self.provider_list) @property - def added_middleware(self): + def middleware(self): return self._middleware - def add_middleware(self, middleware): - self._middleware.append(middleware) - def register_provider_class(self, cls): """ Registers a provider class with the factory. The class must @@ -144,7 +166,7 @@ def create_provider(self, name, config): 'A provider with name {0} could not be' ' found'.format(name)) log.debug("Created '%s' provider", name) - return provider_class(config, self.added_middleware) + return provider_class(config, self.middleware) def get_provider_class(self, name): """ diff --git a/cloudbridge/cloud/providers/aws/provider.py b/cloudbridge/cloud/providers/aws/provider.py index 256f7e02..a82662b8 100644 --- a/cloudbridge/cloud/providers/aws/provider.py +++ b/cloudbridge/cloud/providers/aws/provider.py @@ -17,8 +17,8 @@ class AWSCloudProvider(BaseCloudProvider): PROVIDER_ID = 'aws' AWS_INSTANCE_DATA_DEFAULT_URL = "http://cloudve.org/cb-aws-vmtypes.json" - def __init__(self, config, middleware_list=[]): - super(AWSCloudProvider, self).__init__(config, middleware_list) + def __init__(self, config, middleware_manager=None): + super(AWSCloudProvider, self).__init__(config, middleware_manager) # Initialize cloud connection fields # These are passed as-is to Boto diff --git a/cloudbridge/cloud/providers/azure/provider.py b/cloudbridge/cloud/providers/azure/provider.py index d786bda2..de752e21 100644 --- a/cloudbridge/cloud/providers/azure/provider.py +++ b/cloudbridge/cloud/providers/azure/provider.py @@ -23,8 +23,8 @@ class AzureCloudProvider(BaseCloudProvider): PROVIDER_ID = 'azure' - def __init__(self, config, middleware_list=[]): - super(AzureCloudProvider, self).__init__(config, middleware_list) + def __init__(self, config, middleware_manager=[]): + super(AzureCloudProvider, self).__init__(config, middleware_manager) # mandatory config values self.subscription_id = self._get_config_value( diff --git a/cloudbridge/cloud/providers/gcp/provider.py b/cloudbridge/cloud/providers/gcp/provider.py index 3290bd64..a4da403a 100644 --- a/cloudbridge/cloud/providers/gcp/provider.py +++ b/cloudbridge/cloud/providers/gcp/provider.py @@ -196,8 +196,8 @@ class GCPCloudProvider(BaseCloudProvider): PROVIDER_ID = 'gcp' - def __init__(self, config, middleware_list=[]): - super(GCPCloudProvider, self).__init__(config, middleware_list) + def __init__(self, config, middleware_manager=[]): + super(GCPCloudProvider, self).__init__(config, middleware_manager) # Disable warnings about file_cache not being available when using # oauth2client >= 4.0.0. diff --git a/cloudbridge/cloud/providers/mock/provider.py b/cloudbridge/cloud/providers/mock/provider.py index 56b01dc8..cfbb1180 100644 --- a/cloudbridge/cloud/providers/mock/provider.py +++ b/cloudbridge/cloud/providers/mock/provider.py @@ -25,9 +25,9 @@ class MockAWSCloudProvider(AWSCloudProvider, TestMockHelperMixin): """ PROVIDER_ID = 'mock' - def __init__(self, config, middleware_list=[]): + def __init__(self, config, middleware_manager=[]): self.setUpMock() - super(MockAWSCloudProvider, self).__init__(config, middleware_list) + super(MockAWSCloudProvider, self).__init__(config, middleware_manager) def setUpMock(self): """ diff --git a/cloudbridge/cloud/providers/openstack/provider.py b/cloudbridge/cloud/providers/openstack/provider.py index 4aa79d11..79b37ccb 100644 --- a/cloudbridge/cloud/providers/openstack/provider.py +++ b/cloudbridge/cloud/providers/openstack/provider.py @@ -31,8 +31,8 @@ class OpenStackCloudProvider(BaseCloudProvider): PROVIDER_ID = 'openstack' - def __init__(self, config, middleware_list=[]): - super(OpenStackCloudProvider, self).__init__(config, middleware_list) + def __init__(self, config, middleware_manager=[]): + super(OpenStackCloudProvider, self).__init__(config, middleware_manager) # Initialize cloud connection fields self.username = self._get_config_value( diff --git a/test/test_cloud_factory.py b/test/test_cloud_factory.py index beb1acc3..45b9534f 100644 --- a/test/test_cloud_factory.py +++ b/test/test_cloud_factory.py @@ -90,17 +90,75 @@ class DummyClass(CloudProvider): factory.get_all_provider_classes()) def test_middleware_inherited(self): - return_str = "hello world" + start_count = 10 + class SomeDummyClass(object): + count = start_count @intercept(event_pattern="*", priority=2499) - def return_hello_world(self, event_args, *args, **kwargs): - return return_str + def return_incremented(self, event_args, *args, **kwargs): + self.count += 1 + return self.count factory = CloudProviderFactory() some_obj = SomeDummyClass() - factory.add_middleware(some_obj) + factory.middleware.add(some_obj) + provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") + first_prov = factory.create_provider(provider_name, {}) + # Any dispatched event should be intercepted and increment the count + first_prov.storage.volumes.get("anything") + self.assertEqual(first_prov.networking.networks.get("anything"), + start_count + 2) + second_prov = factory.create_provider(provider_name, {}) + # This count should be independent of the previous one + self.assertEqual(second_prov.networking.networks.get("anything"), + start_count + 3) + + def test_middleware_inherited_constructor(self): + start_count = 10 + increment = 2 + + class SomeDummyClass(object): + count = start_count + + @intercept(event_pattern="*", priority=2499) + def return_incremented(self, event_args, *args, **kwargs): + self.count += 1 + return self.count + + factory = CloudProviderFactory() + factory.middleware.add_constructor(SomeDummyClass) + provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") + first_prov = factory.create_provider(provider_name, {}) + # Any dispatched event should be intercepted and increment the count + first_prov.storage.volumes.get("anything") + self.assertEqual(first_prov.networking.networks.get("anything"), + start_count + 2) + second_prov = factory.create_provider(provider_name, {}) + # This count should be independent of the previous one + self.assertEqual(second_prov.networking.networks.get("anything"), + start_count + 1) + + class SomeDummyClassWithArgs(object): + def __init__(self, start, increment): + self.count = start + self.increment = increment + + @intercept(event_pattern="*", priority=2499) + def return_incremented(self, event_args, *args, **kwargs): + self.count += self.increment + return self.count + + factory = CloudProviderFactory() + factory.middleware.add_constructor(SomeDummyClassWithArgs, + start_count, increment) provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") - prov = factory.create_provider(provider_name, {}) - # Any dispatched event should be intercepted and return the string - self.assertEqual(prov.storage.volumes.get("anything"), return_str) + first_prov = factory.create_provider(provider_name, {}) + # Any dispatched event should be intercepted and increment the count + first_prov.storage.volumes.get("anything") + self.assertEqual(first_prov.networking.networks.get("anything"), + start_count + 2*increment) + second_prov = factory.create_provider(provider_name, {}) + # This count should be independent of the previous one + self.assertEqual(second_prov.networking.networks.get("anything"), + start_count + increment) From 901b4b6fed5f4cc76a124bdc99f15fff05b51ee6 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 18:02:19 -0500 Subject: [PATCH 5/9] Direct event subscription in factory --- cloudbridge/cloud/factory.py | 27 +++++++++++++++++++ .../cloud/providers/openstack/provider.py | 3 ++- test/test_cloud_factory.py | 20 ++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/cloudbridge/cloud/factory.py b/cloudbridge/cloud/factory.py index dd4100b4..17a27830 100644 --- a/cloudbridge/cloud/factory.py +++ b/cloudbridge/cloud/factory.py @@ -4,6 +4,8 @@ import pkgutil from collections import defaultdict +from pyeventsystem.interfaces import Middleware +from pyeventsystem.middleware import AutoDiscoveredMiddleware from pyeventsystem.middleware import SimpleMiddlewareManager from cloudbridge.cloud import providers @@ -34,8 +36,33 @@ def generate_simple_manager(self): for constructor, args in self.middleware_constructors: m = constructor(*args) new_manager.add(m) + for handler in self.get_subscribed_handlers(): + new_handler = handler.__class__(handler.event_pattern, + handler.priority, + handler.callback) + new_manager.events.subscribe(new_handler) return new_manager + # Removing install step from add. Since this manager is meant to create + # other managers rather than run. This will also simplify separating + # handlers added through middleware from those subscribed directly + def add(self, middleware): + if isinstance(middleware, Middleware): + m = middleware + else: + m = AutoDiscoveredMiddleware(middleware) + self.middleware_list.append(m) + return m + + def get_subscribed_handlers(self): + handlers = [] + # Todo: Expose this better in pyeventsystem library + event_dict = self.events._SimpleEventDispatcher__events + for key in event_dict.keys(): + for handler in event_dict[key]: + handlers.append(handler) + return handlers + class ProviderList(object): AWS = 'aws' diff --git a/cloudbridge/cloud/providers/openstack/provider.py b/cloudbridge/cloud/providers/openstack/provider.py index 79b37ccb..fdc98a6a 100644 --- a/cloudbridge/cloud/providers/openstack/provider.py +++ b/cloudbridge/cloud/providers/openstack/provider.py @@ -32,7 +32,8 @@ class OpenStackCloudProvider(BaseCloudProvider): PROVIDER_ID = 'openstack' def __init__(self, config, middleware_manager=[]): - super(OpenStackCloudProvider, self).__init__(config, middleware_manager) + super(OpenStackCloudProvider, self).__init__(config, + middleware_manager) # Initialize cloud connection fields self.username = self._get_config_value( diff --git a/test/test_cloud_factory.py b/test/test_cloud_factory.py index 45b9534f..6b6b2d0b 100644 --- a/test/test_cloud_factory.py +++ b/test/test_cloud_factory.py @@ -162,3 +162,23 @@ def return_incremented(self, event_args, *args, **kwargs): # This count should be independent of the previous one self.assertEqual(second_prov.networking.networks.get("anything"), start_count + increment) + + def test_middleware_inherited_events(self): + + class SomeDummyClass(object): + + @intercept(event_pattern="*", priority=2499) + def return_goodbye(self, event_args, *args, **kwargs): + return "goodbye" + + def return_hello(event_args, *args, **kwargs): + return "hello" + + factory = CloudProviderFactory() + factory.middleware.add(SomeDummyClass()) + factory.middleware.events.intercept("*", 2490, return_hello) + provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") + prov = factory.create_provider(provider_name, {}) + # Any dispatched event should be intercepted and return "hello" instead + self.assertEqual(prov.networking.networks.get("anything"), + "hello") From 21f817ae6b38afd0f9247473e9d2ef6ba2d08d8c Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 18:15:25 -0500 Subject: [PATCH 6/9] Move generator to create_provider --- cloudbridge/cloud/base/provider.py | 2 +- cloudbridge/cloud/factory.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cloudbridge/cloud/base/provider.py b/cloudbridge/cloud/base/provider.py index 60c8a2db..446d3075 100644 --- a/cloudbridge/cloud/base/provider.py +++ b/cloudbridge/cloud/base/provider.py @@ -85,7 +85,7 @@ def __init__(self, config, middleware_manager=None): self._config = BaseConfiguration(config) self._config_parser = ConfigParser() self._config_parser.read(CloudBridgeConfigLocations) - self._middleware = middleware_manager.generate_simple_manager() + self._middleware = middleware_manager self.add_required_middleware() @property diff --git a/cloudbridge/cloud/factory.py b/cloudbridge/cloud/factory.py index 17a27830..1023657a 100644 --- a/cloudbridge/cloud/factory.py +++ b/cloudbridge/cloud/factory.py @@ -193,7 +193,8 @@ def create_provider(self, name, config): 'A provider with name {0} could not be' ' found'.format(name)) log.debug("Created '%s' provider", name) - return provider_class(config, self.middleware) + return provider_class(config, + self.middleware.generate_simple_manager()) def get_provider_class(self, name): """ From 25390d4837c13eeb8041af4835268bc07cbec9a6 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Thu, 21 Feb 2019 18:27:01 -0500 Subject: [PATCH 7/9] Add empty manager to provider constructor --- cloudbridge/cloud/base/provider.py | 4 +++- cloudbridge/cloud/providers/azure/provider.py | 2 +- cloudbridge/cloud/providers/gcp/provider.py | 2 +- cloudbridge/cloud/providers/mock/provider.py | 2 +- cloudbridge/cloud/providers/openstack/provider.py | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cloudbridge/cloud/base/provider.py b/cloudbridge/cloud/base/provider.py index 446d3075..9e183a9d 100644 --- a/cloudbridge/cloud/base/provider.py +++ b/cloudbridge/cloud/base/provider.py @@ -8,6 +8,8 @@ except ImportError: # Python 2 from ConfigParser import SafeConfigParser as ConfigParser +from pyeventsystem.middleware import SimpleMiddlewareManager + import six from ..base.middleware import ExceptionWrappingMiddleware @@ -85,7 +87,7 @@ def __init__(self, config, middleware_manager=None): self._config = BaseConfiguration(config) self._config_parser = ConfigParser() self._config_parser.read(CloudBridgeConfigLocations) - self._middleware = middleware_manager + self._middleware = middleware_manager or SimpleMiddlewareManager() self.add_required_middleware() @property diff --git a/cloudbridge/cloud/providers/azure/provider.py b/cloudbridge/cloud/providers/azure/provider.py index de752e21..dd06c97f 100644 --- a/cloudbridge/cloud/providers/azure/provider.py +++ b/cloudbridge/cloud/providers/azure/provider.py @@ -23,7 +23,7 @@ class AzureCloudProvider(BaseCloudProvider): PROVIDER_ID = 'azure' - def __init__(self, config, middleware_manager=[]): + def __init__(self, config, middleware_manager=None): super(AzureCloudProvider, self).__init__(config, middleware_manager) # mandatory config values diff --git a/cloudbridge/cloud/providers/gcp/provider.py b/cloudbridge/cloud/providers/gcp/provider.py index a4da403a..1ba3275a 100644 --- a/cloudbridge/cloud/providers/gcp/provider.py +++ b/cloudbridge/cloud/providers/gcp/provider.py @@ -196,7 +196,7 @@ class GCPCloudProvider(BaseCloudProvider): PROVIDER_ID = 'gcp' - def __init__(self, config, middleware_manager=[]): + def __init__(self, config, middleware_manager=None): super(GCPCloudProvider, self).__init__(config, middleware_manager) # Disable warnings about file_cache not being available when using diff --git a/cloudbridge/cloud/providers/mock/provider.py b/cloudbridge/cloud/providers/mock/provider.py index cfbb1180..dfe1e2e2 100644 --- a/cloudbridge/cloud/providers/mock/provider.py +++ b/cloudbridge/cloud/providers/mock/provider.py @@ -25,7 +25,7 @@ class MockAWSCloudProvider(AWSCloudProvider, TestMockHelperMixin): """ PROVIDER_ID = 'mock' - def __init__(self, config, middleware_manager=[]): + def __init__(self, config, middleware_manager=None): self.setUpMock() super(MockAWSCloudProvider, self).__init__(config, middleware_manager) diff --git a/cloudbridge/cloud/providers/openstack/provider.py b/cloudbridge/cloud/providers/openstack/provider.py index fdc98a6a..930ef716 100644 --- a/cloudbridge/cloud/providers/openstack/provider.py +++ b/cloudbridge/cloud/providers/openstack/provider.py @@ -31,7 +31,7 @@ class OpenStackCloudProvider(BaseCloudProvider): PROVIDER_ID = 'openstack' - def __init__(self, config, middleware_manager=[]): + def __init__(self, config, middleware_manager=None): super(OpenStackCloudProvider, self).__init__(config, middleware_manager) From eea43568b1f520f750ab575d8d348efd14dbc7a4 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Fri, 22 Feb 2019 10:27:18 -0500 Subject: [PATCH 8/9] Changing generic provider to provider ID in event names --- cloudbridge/cloud/base/services.py | 22 ++-- cloudbridge/cloud/providers/aws/services.py | 114 ++++++++--------- cloudbridge/cloud/providers/azure/services.py | 110 ++++++++--------- cloudbridge/cloud/providers/gcp/services.py | 116 +++++++++--------- .../cloud/providers/openstack/services.py | 112 ++++++++--------- test/test_block_store_service.py | 12 +- test/test_compute_service.py | 6 +- test/test_image_service.py | 6 +- test/test_network_service.py | 18 ++- test/test_object_store_service.py | 12 +- test/test_region_service.py | 6 +- test/test_security_service.py | 15 ++- test/test_vm_types_service.py | 6 +- 13 files changed, 290 insertions(+), 265 deletions(-) diff --git a/cloudbridge/cloud/base/services.py b/cloudbridge/cloud/base/services.py index ee282460..5751420b 100644 --- a/cloudbridge/cloud/base/services.py +++ b/cloudbridge/cloud/base/services.py @@ -43,7 +43,7 @@ class BaseCloudService(CloudService): STANDARD_EVENT_PRIORITY = 2500 def __init__(self, provider): - self._service_event_pattern = "provider" + self._service_event_pattern = provider.PROVIDER_ID self._provider = provider # discover and register all middleware provider.middleware.add(self) @@ -78,7 +78,7 @@ def __init__(self, provider): super(BaseVMFirewallService, self).__init__(provider) self._service_event_pattern += ".security.vm_firewalls" - @dispatch(event="provider.security.vm_firewalls.find", + @dispatch(event="*.security.vm_firewalls.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -107,7 +107,7 @@ def __init__(self, provider): def provider(self): return self._provider - @dispatch(event="provider.security.vm_firewall_rules.get", + @dispatch(event="*.security.vm_firewall_rules.get", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def get(self, firewall, rule_id): matches = [rule for rule in firewall.rules if rule.id == rule_id] @@ -116,7 +116,7 @@ def get(self, firewall, rule_id): else: return None - @dispatch(event="provider.security.vm_firewall_rules.find", + @dispatch(event="*.security.vm_firewall_rules.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, firewall, **kwargs): obj_list = firewall.rules @@ -157,7 +157,7 @@ def __init__(self, provider): # Generic find will be used for providers where we have not implemented # provider-specific querying for find method - @dispatch(event="provider.storage.buckets.find", + @dispatch(event="*.storage.buckets.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -211,13 +211,13 @@ def __init__(self, provider): super(BaseVMTypeService, self).__init__(provider) self._service_event_pattern += ".compute.vm_types" - @dispatch(event="provider.compute.vm_types.get", + @dispatch(event="*.compute.vm_types.get", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def get(self, vm_type_id): vm_type = (t for t in self if t.id == vm_type_id) return next(vm_type, None) - @dispatch(event="provider.compute.vm_types.find", + @dispatch(event="*.compute.vm_types.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -233,7 +233,7 @@ def __init__(self, provider): super(BaseRegionService, self).__init__(provider) self._service_event_pattern += ".compute.regions" - @dispatch(event="provider.compute.regions.find", + @dispatch(event="*.compute.regions.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -272,7 +272,7 @@ def get_or_create_default(self): return self.provider.networking.networks.create( BaseNetwork.CB_DEFAULT_NETWORK_LABEL, '10.0.0.0/16') - @dispatch(event="provider.networking.networks.find", + @dispatch(event="*.networking.networks.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -296,7 +296,7 @@ def __init__(self, provider): super(BaseSubnetService, self).__init__(provider) self._service_event_pattern += ".networking.subnets" - @dispatch(event="provider.networking.subnets.find", + @dispatch(event="*.networking.subnets.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, network=None, **kwargs): if not network: @@ -360,7 +360,7 @@ def __init__(self, provider): def provider(self): return self._provider - @dispatch(event="provider.networking.floating_ips.find", + @dispatch(event="*.networking.floating_ips.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, gateway, **kwargs): obj_list = gateway.floating_ips diff --git a/cloudbridge/cloud/providers/aws/services.py b/cloudbridge/cloud/providers/aws/services.py index bb6d27d0..4ac30ea4 100644 --- a/cloudbridge/cloud/providers/aws/services.py +++ b/cloudbridge/cloud/providers/aws/services.py @@ -103,18 +103,18 @@ def __init__(self, provider): cb_resource=AWSKeyPair, boto_collection_name='key_pairs') - @dispatch(event="provider.security.key_pairs.get", + @dispatch(event="aws.security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): log.debug("Getting Key Pair Service %s", key_pair_id) return self.svc.get(key_pair_id) - @dispatch(event="provider.security.key_pairs.list", + @dispatch(event="aws.security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.security.key_pairs.find", + @dispatch(event="aws.security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): name = kwargs.pop('name', None) @@ -128,7 +128,7 @@ def find(self, **kwargs): log.debug("Searching for Key Pair %s", name) return self.svc.find(filter_name='key-name', filter_value=name) - @dispatch(event="provider.security.key_pairs.create", + @dispatch(event="aws.security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): AWSKeyPair.assert_valid_resource_name(name) @@ -147,7 +147,7 @@ def create(self, name, public_key_material=None): else: raise e - @dispatch(event="provider.security.key_pairs.delete", + @dispatch(event="aws.security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): key_pair = (key_pair if isinstance(key_pair, AWSKeyPair) else @@ -165,19 +165,19 @@ def __init__(self, provider): cb_resource=AWSVMFirewall, boto_collection_name='security_groups') - @dispatch(event="provider.security.vm_firewalls.get", + @dispatch(event="aws.security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): log.debug("Getting Firewall Service with the id: %s", vm_firewall_id) return self.svc.get(vm_firewall_id) - @dispatch(event="provider.security.vm_firewalls.list", + @dispatch(event="aws.security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) @cb_helpers.deprecated_alias(network_id='network') - @dispatch(event="provider.security.vm_firewalls.create", + @dispatch(event="aws.security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): AWSVMFirewall.assert_valid_resource_label(label) @@ -190,7 +190,7 @@ def create(self, label, network, description=None): obj.description = description return obj - @dispatch(event="provider.security.vm_firewalls.find", + @dispatch(event="aws.security.vm_firewalls.find", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): # Filter by name or label @@ -204,7 +204,7 @@ def find(self, **kwargs): return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="provider.security.vm_firewalls.delete", + @dispatch(event="aws.security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): firewall = (vm_firewall if isinstance(vm_firewall, AWSVMFirewall) @@ -219,7 +219,7 @@ class AWSVMFirewallRuleService(BaseVMFirewallRuleService): def __init__(self, provider): super(AWSVMFirewallRuleService, self).__init__(provider) - @dispatch(event="provider.security.vm_firewall_rules.list", + @dispatch(event="aws.security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): # pylint:disable=protected-access @@ -234,7 +234,7 @@ def list(self, firewall, limit=None, marker=None): return ClientPagedResultList(self.provider, rules, limit=limit, marker=marker) - @dispatch(event="provider.security.vm_firewall_rules.create", + @dispatch(event="aws.security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol=None, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -268,7 +268,7 @@ def create(self, firewall, direction, protocol=None, from_port=None, else: raise ec2e - @dispatch(event="provider.security.vm_firewall_rules.delete", + @dispatch(event="aws.security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): # pylint:disable=protected-access @@ -326,12 +326,12 @@ def __init__(self, provider): cb_resource=AWSVolume, boto_collection_name='volumes') - @dispatch(event="provider.storage.volumes.get", + @dispatch(event="aws.storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): return self.svc.get(volume_id) - @dispatch(event="provider.storage.volumes.find", + @dispatch(event="aws.storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -345,12 +345,12 @@ def find(self, **kwargs): log.debug("Searching for AWS Volume Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="provider.storage.volumes.list", + @dispatch(event="aws.storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.storage.volumes.create", + @dispatch(event="aws.storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): AWSVolume.assert_valid_resource_label(label) @@ -368,7 +368,7 @@ def create(self, label, size, zone, snapshot=None, description=None): cb_vol.description = description return cb_vol - @dispatch(event="provider.storage.volumes.delete", + @dispatch(event="aws.storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, vol): volume = vol if isinstance(vol, AWSVolume) else self.get(vol) @@ -385,12 +385,12 @@ def __init__(self, provider): cb_resource=AWSSnapshot, boto_collection_name='snapshots') - @dispatch(event="provider.storage.snapshots.get", + @dispatch(event="aws.storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): return self.svc.get(snapshot_id) - @dispatch(event="provider.storage.snapshots.find", + @dispatch(event="aws.storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): # Filter by description or label @@ -407,13 +407,13 @@ def find(self, **kwargs): filters = ['label'] return cb_helpers.generic_find(filters, kwargs, obj_list) - @dispatch(event="provider.storage.snapshots.list", + @dispatch(event="aws.storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker, OwnerIds=['self']) - @dispatch(event="provider.storage.snapshots.create", + @dispatch(event="aws.storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): AWSSnapshot.assert_valid_resource_label(label) @@ -427,7 +427,7 @@ def create(self, label, volume, description=None): cb_snap.description = description return cb_snap - @dispatch(event="provider.storage.snapshots.delete", + @dispatch(event="aws.storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot): snapshot = (snapshot if isinstance(snapshot, AWSSnapshot) else @@ -445,7 +445,7 @@ def __init__(self, provider): cb_resource=AWSBucket, boto_collection_name='buckets') - @dispatch(event="provider.storage.buckets.get", + @dispatch(event="aws.storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -475,12 +475,12 @@ def get(self, bucket_id): # For all other responses, it's assumed that the bucket does not exist. return None - @dispatch(event="provider.storage.buckets.list", + @dispatch(event="aws.storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.storage.buckets.create", + @dispatch(event="aws.storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): AWSBucket.assert_valid_resource_name(name) @@ -515,7 +515,7 @@ def create(self, name, location=None): else: raise - @dispatch(event="provider.storage.buckets.delete", + @dispatch(event="aws.storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): b = bucket if isinstance(bucket, AWSBucket) else self.get(bucket) @@ -731,7 +731,7 @@ def _process_block_device_mappings(self, launch_config): def create_launch_config(self): return AWSLaunchConfig(self.provider) - @dispatch(event="provider.compute.instances.create", + @dispatch(event="aws.compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone, key_pair=None, vm_firewalls=None, user_data=None, @@ -777,12 +777,12 @@ def create(self, label, image, vm_type, subnet, zone, raise ValueError( 'Expected a single object response, got a list: %s' % inst) - @dispatch(event="provider.compute.instances.get", + @dispatch(event="aws.compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): return self.svc.get(instance_id) - @dispatch(event="provider.compute.instances.find", + @dispatch(event="aws.compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -795,12 +795,12 @@ def find(self, **kwargs): return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="provider.compute.instances.list", + @dispatch(event="aws.compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.compute.instances.delete", + @dispatch(event="aws.compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): aws_inst = (instance if isinstance(instance, AWSInstance) else @@ -838,7 +838,7 @@ def instance_data(self): return [vm_type for vm_type in vm_types_list if vm_type.get('pricing', {}).get(self.provider.region_name)] - @dispatch(event="provider.compute.vm_types.list", + @dispatch(event="aws.compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): vm_types = [AWSVMType(self.provider, vm_type) @@ -852,7 +852,7 @@ class AWSRegionService(BaseRegionService): def __init__(self, provider): super(AWSRegionService, self).__init__(provider) - @dispatch(event="provider.compute.regions.get", + @dispatch(event="aws.compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): log.debug("Getting AWS Region Service with the id: %s", @@ -863,7 +863,7 @@ def get(self, region_id): else: return None - @dispatch(event="provider.compute.regions.list", + @dispatch(event="aws.compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): regions = [ @@ -917,17 +917,17 @@ def __init__(self, provider): cb_resource=AWSNetwork, boto_collection_name='vpcs') - @dispatch(event="provider.networking.networks.get", + @dispatch(event="aws.networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): return self.svc.get(network_id) - @dispatch(event="provider.networking.networks.list", + @dispatch(event="aws.networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.networking.networks.find", + @dispatch(event="aws.networking.networks.find", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -941,7 +941,7 @@ def find(self, **kwargs): log.debug("Searching for AWS Network Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="provider.networking.networks.create", + @dispatch(event="aws.networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): AWSNetwork.assert_valid_resource_label(label) @@ -953,7 +953,7 @@ def create(self, label, cidr_block): cb_net.label = label return cb_net - @dispatch(event="provider.networking.networks.delete", + @dispatch(event="aws.networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): network = (network if isinstance(network, AWSNetwork) @@ -991,12 +991,12 @@ def __init__(self, provider): cb_resource=AWSSubnet, boto_collection_name='subnets') - @dispatch(event="provider.networking.subnets.get", + @dispatch(event="aws.networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): return self.svc.get(subnet_id) - @dispatch(event="provider.networking.subnets.list", + @dispatch(event="aws.networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, limit=None, marker=None): network_id = network.id if isinstance(network, AWSNetwork) else network @@ -1007,7 +1007,7 @@ def list(self, network=None, limit=None, marker=None): else: return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.networking.subnets.find", + @dispatch(event="aws.networking.subnets.find", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def find(self, network=None, **kwargs): label = kwargs.pop('label', None) @@ -1021,7 +1021,7 @@ def find(self, network=None, **kwargs): log.debug("Searching for AWS Subnet Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="provider.networking.subnets.create", + @dispatch(event="aws.networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): AWSSubnet.assert_valid_resource_label(label) @@ -1038,7 +1038,7 @@ def create(self, label, network, cidr_block, zone): subnet.label = label return subnet - @dispatch(event="provider.networking.subnets.delete", + @dispatch(event="aws.networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn = subnet if isinstance(subnet, AWSSubnet) else self.get(subnet) @@ -1159,12 +1159,12 @@ def __init__(self, provider): cb_resource=AWSRouter, boto_collection_name='route_tables') - @dispatch(event="provider.networking.routers.get", + @dispatch(event="aws.networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): return self.svc.get(router_id) - @dispatch(event="provider.networking.routers.find", + @dispatch(event="aws.networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -1178,12 +1178,12 @@ def find(self, **kwargs): log.debug("Searching for AWS Router Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="provider.networking.routers.list", + @dispatch(event="aws.networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="provider.networking.routers.create", + @dispatch(event="aws.networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): network_id = network.id if isinstance(network, AWSNetwork) else network @@ -1193,7 +1193,7 @@ def create(self, label, network): cb_router.label = label return cb_router - @dispatch(event="provider.networking.routers.delete", + @dispatch(event="aws.networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r = router if isinstance(router, AWSRouter) else self.get(router) @@ -1210,7 +1210,7 @@ def __init__(self, provider): cb_resource=AWSInternetGateway, boto_collection_name='internet_gateways') - @dispatch(event="provider.networking.gateways.get_or_create", + @dispatch(event="aws.networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): network_id = network.id if isinstance( @@ -1231,7 +1231,7 @@ def get_or_create(self, network): cb_gateway._gateway.attach_to_vpc(VpcId=network_id) return cb_gateway - @dispatch(event="provider.networking.gateways.delete", + @dispatch(event="aws.networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): gw = (gateway if isinstance(gateway, AWSInternetGateway) @@ -1245,7 +1245,7 @@ def delete(self, network, gateway): # pylint:disable=protected-access gw._gateway.delete() - @dispatch(event="provider.networking.gateways.list", + @dispatch(event="aws.networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): log.debug("Listing current AWS internet gateways for net %s.", @@ -1262,18 +1262,18 @@ def __init__(self, provider): cb_resource=AWSFloatingIP, boto_collection_name='vpc_addresses') - @dispatch(event="provider.networking.floating_ips.get", + @dispatch(event="aws.networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, fip_id): log.debug("Getting AWS Floating IP Service with the id: %s", fip_id) return self.svc.get(fip_id) - @dispatch(event="provider.networking.floating_ips.list", + @dispatch(event="aws.networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): return self.svc.list(limit, marker) - @dispatch(event="provider.networking.floating_ips.create", + @dispatch(event="aws.networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): log.debug("Creating a floating IP under gateway %s", gateway) @@ -1283,7 +1283,7 @@ def create(self, gateway): self.provider, self.provider.ec2_conn.VpcAddress(ip.get('AllocationId'))) - @dispatch(event="provider.networking.floating_ips.delete", + @dispatch(event="aws.networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): if isinstance(fip, AWSFloatingIP): diff --git a/cloudbridge/cloud/providers/azure/services.py b/cloudbridge/cloud/providers/azure/services.py index 713ced2e..9f66ffba 100644 --- a/cloudbridge/cloud/providers/azure/services.py +++ b/cloudbridge/cloud/providers/azure/services.py @@ -90,7 +90,7 @@ class AzureVMFirewallService(BaseVMFirewallService): def __init__(self, provider): super(AzureVMFirewallService, self).__init__(provider) - @dispatch(event="provider.security.vm_firewalls.get", + @dispatch(event="azure.security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): try: @@ -101,7 +101,7 @@ def get(self, vm_firewall_id): log.exception(cloud_error) return None - @dispatch(event="provider.security.vm_firewalls.list", + @dispatch(event="azure.security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): fws = [AzureVMFirewall(self.provider, fw) @@ -109,7 +109,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, fws, limit, marker) @cb_helpers.deprecated_alias(network_id='network') - @dispatch(event="provider.security.vm_firewalls.create", + @dispatch(event="azure.security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): AzureVMFirewall.assert_valid_resource_label(label) @@ -153,7 +153,7 @@ def create(self, label, network, description=None): cb_fw = AzureVMFirewall(self.provider, fw) return cb_fw - @dispatch(event="provider.security.vm_firewalls.delete", + @dispatch(event="azure.security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): fw_id = (vm_firewall.id if isinstance(vm_firewall, AzureVMFirewall) @@ -166,7 +166,7 @@ class AzureVMFirewallRuleService(BaseVMFirewallRuleService): def __init__(self, provider): super(AzureVMFirewallRuleService, self).__init__(provider) - @dispatch(event="provider.security.vm_firewall_rules.list", + @dispatch(event="azure.security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): # Filter out firewall rules with priority < 3500 because values @@ -179,7 +179,7 @@ def list(self, firewall, limit=None, marker=None): return ClientPagedResultList(self.provider, rules, limit=limit, marker=marker) - @dispatch(event="provider.security.vm_firewall_rules.create", + @dispatch(event="azure.security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol=None, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -229,7 +229,7 @@ def _create_rule(self, firewall, direction, protocol, firewall._vm_firewall.security_rules.append(result) return AzureVMFirewallRule(firewall, result) - @dispatch(event="provider.security.vm_firewall_rules.delete", + @dispatch(event="azure.security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): rule_id = rule.id if isinstance(rule, AzureVMFirewallRule) else rule @@ -249,7 +249,7 @@ class AzureKeyPairService(BaseKeyPairService): def __init__(self, provider): super(AzureKeyPairService, self).__init__(provider) - @dispatch(event="provider.security.key_pairs.get", + @dispatch(event="azure.security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): try: @@ -264,7 +264,7 @@ def get(self, key_pair_id): log.debug(error) return None - @dispatch(event="provider.security.key_pairs.list", + @dispatch(event="azure.security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): key_pairs, resume_marker = self.provider.azure_client.list_public_keys( @@ -277,7 +277,7 @@ def list(self, limit=None, marker=None): supports_total=False, data=results) - @dispatch(event="provider.security.key_pairs.find", + @dispatch(event="azure.security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -293,7 +293,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.security.key_pairs.create", + @dispatch(event="azure.security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): AzureKeyPair.assert_valid_resource_name(name) @@ -319,7 +319,7 @@ def create(self, name, public_key_material=None): key_pair.material = private_key return key_pair - @dispatch(event="provider.security.key_pairs.delete", + @dispatch(event="azure.security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): key_pair = (key_pair if isinstance(key_pair, AzureKeyPair) else @@ -360,7 +360,7 @@ class AzureVolumeService(BaseVolumeService): def __init__(self, provider): super(AzureVolumeService, self).__init__(provider) - @dispatch(event="provider.storage.volumes.get", + @dispatch(event="azure.storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): try: @@ -371,7 +371,7 @@ def get(self, volume_id): log.exception(cloud_error) return None - @dispatch(event="provider.storage.volumes.find", + @dispatch(event="azure.storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -387,7 +387,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.storage.volumes.list", + @dispatch(event="azure.storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): azure_vols = self.provider.azure_client.list_disks() @@ -395,7 +395,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, cb_vols, limit=limit, marker=marker) - @dispatch(event="provider.storage.volumes.create", + @dispatch(event="azure.storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): AzureVolume.assert_valid_resource_label(label) @@ -442,7 +442,7 @@ def create(self, label, size, zone, snapshot=None, description=None): return cb_vol - @dispatch(event="provider.storage.volumes.delete", + @dispatch(event="azure.storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, volume_id): vol_id = (volume_id.id if isinstance(volume_id, AzureVolume) @@ -454,7 +454,7 @@ class AzureSnapshotService(BaseSnapshotService): def __init__(self, provider): super(AzureSnapshotService, self).__init__(provider) - @dispatch(event="provider.storage.snapshots.get", + @dispatch(event="azure.storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): try: @@ -465,7 +465,7 @@ def get(self, snapshot_id): log.exception(cloud_error) return None - @dispatch(event="provider.storage.snapshots.find", + @dispatch(event="azure.storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -481,7 +481,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.storage.snapshots.list", + @dispatch(event="azure.storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): snaps = [AzureSnapshot(self.provider, obj) @@ -489,7 +489,7 @@ def list(self, limit=None, marker=None): self.provider.azure_client.list_snapshots()] return ClientPagedResultList(self.provider, snaps, limit, marker) - @dispatch(event="provider.storage.snapshots.create", + @dispatch(event="azure.storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): AzureSnapshot.assert_valid_resource_label(label) @@ -516,7 +516,7 @@ def create(self, label, volume, description=None): params) return AzureSnapshot(self.provider, azure_snap) - @dispatch(event="provider.storage.snapshots.delete", + @dispatch(event="azure.storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot_id): snap_id = (snapshot_id.id if isinstance(snapshot_id, AzureSnapshot) @@ -528,7 +528,7 @@ class AzureBucketService(BaseBucketService): def __init__(self, provider): super(AzureBucketService, self).__init__(provider) - @dispatch(event="provider.storage.buckets.get", + @dispatch(event="azure.storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -542,7 +542,7 @@ def get(self, bucket_id): log.exception(error) return None - @dispatch(event="provider.storage.buckets.list", + @dispatch(event="azure.storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): buckets = [AzureBucket(self.provider, bucket) @@ -551,7 +551,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, buckets, limit=limit, marker=marker) - @dispatch(event="provider.storage.buckets.create", + @dispatch(event="azure.storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): """ @@ -561,7 +561,7 @@ def create(self, name, location=None): bucket = self.provider.azure_client.create_container(name) return AzureBucket(self.provider, bucket) - @dispatch(event="provider.storage.buckets.delete", + @dispatch(event="azure.storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): """ @@ -826,7 +826,7 @@ def append_disk(disk_def, device_no, delete_on_terminate): def create_launch_config(self): return AzureLaunchConfig(self.provider) - @dispatch(event="provider.compute.instances.create", + @dispatch(event="azure.compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone, key_pair=None, vm_firewalls=None, user_data=None, @@ -961,7 +961,7 @@ def create(self, label, image, vm_type, subnet, zone, temp_key_pair.delete() return AzureInstance(self.provider, vm) - @dispatch(event="provider.compute.instances.list", + @dispatch(event="azure.compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -972,7 +972,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, instances, limit=limit, marker=marker) - @dispatch(event="provider.compute.instances.get", + @dispatch(event="azure.compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): """ @@ -987,7 +987,7 @@ def get(self, instance_id): log.exception(cloud_error) return None - @dispatch(event="provider.compute.instances.find", + @dispatch(event="azure.compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -1003,7 +1003,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.compute.instances.delete", + @dispatch(event="azure.compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): """ @@ -1053,7 +1053,7 @@ def instance_data(self): r = self.provider.azure_client.list_vm_types() return r - @dispatch(event="provider.compute.vm_types.list", + @dispatch(event="azure.compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): vm_types = [AzureVMType(self.provider, vm_type) @@ -1066,7 +1066,7 @@ class AzureRegionService(BaseRegionService): def __init__(self, provider): super(AzureRegionService, self).__init__(provider) - @dispatch(event="provider.compute.regions.get", + @dispatch(event="azure.compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): region = None @@ -1076,7 +1076,7 @@ def get(self, region_id): break return region - @dispatch(event="provider.compute.regions.list", + @dispatch(event="azure.compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): regions = [AzureRegion(self.provider, region) @@ -1123,7 +1123,7 @@ class AzureNetworkService(BaseNetworkService): def __init__(self, provider): super(AzureNetworkService, self).__init__(provider) - @dispatch(event="provider.networking.networks.get", + @dispatch(event="azure.networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): try: @@ -1134,7 +1134,7 @@ def get(self, network_id): log.exception(cloud_error) return None - @dispatch(event="provider.networking.networks.list", + @dispatch(event="azure.networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): networks = [AzureNetwork(self.provider, network) @@ -1142,7 +1142,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker) - @dispatch(event="provider.networking.networks.create", + @dispatch(event="azure.networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): AzureNetwork.assert_valid_resource_label(label) @@ -1161,7 +1161,7 @@ def create(self, label, cidr_block): cb_network = AzureNetwork(self.provider, az_network) return cb_network - @dispatch(event="provider.networking.networks.delete", + @dispatch(event="azure.networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): net_id = network.id if isinstance(network, AzureNetwork) else network @@ -1196,7 +1196,7 @@ def _list_subnets(self, network=None): return subnets - @dispatch(event="provider.networking.subnets.get", + @dispatch(event="azure.networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): """ @@ -1214,14 +1214,14 @@ def get(self, subnet_id): log.exception(cloud_error) return None - @dispatch(event="provider.networking.subnets.list", + @dispatch(event="azure.networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, limit=None, marker=None): return ClientPagedResultList(self.provider, self._list_subnets(network), limit=limit, marker=marker) - @dispatch(event="provider.networking.subnets.find", + @dispatch(event="azure.networking.subnets.find", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def find(self, network=None, **kwargs): obj_list = self._list_subnets(network) @@ -1231,7 +1231,7 @@ def find(self, network=None, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.networking.subnets.create", + @dispatch(event="azure.networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): AzureSubnet.assert_valid_resource_label(label) @@ -1255,7 +1255,7 @@ def create(self, label, network, cidr_block, zone): subnet.label = label return subnet - @dispatch(event="provider.networking.subnets.delete", + @dispatch(event="azure.networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn = subnet if isinstance(subnet, AzureSubnet) else self.get(subnet) @@ -1275,7 +1275,7 @@ class AzureRouterService(BaseRouterService): def __init__(self, provider): super(AzureRouterService, self).__init__(provider) - @dispatch(event="provider.networking.routers.get", + @dispatch(event="azure.networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): try: @@ -1286,7 +1286,7 @@ def get(self, router_id): log.exception(cloud_error) return None - @dispatch(event="provider.networking.routers.find", + @dispatch(event="azure.networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -1302,7 +1302,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.networking.routers.list", + @dispatch(event="azure.networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): routes = [AzureRouter(self.provider, route) @@ -1312,7 +1312,7 @@ def list(self, limit=None, marker=None): routes, limit=limit, marker=marker) - @dispatch(event="provider.networking.routers.create", + @dispatch(event="azure.networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): router_name = AzureRouter._generate_name_from_label(label, "cb-router") @@ -1324,7 +1324,7 @@ def create(self, label, network): create_route_table(router_name, parameters) return AzureRouter(self.provider, route) - @dispatch(event="provider.networking.routers.delete", + @dispatch(event="azure.networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r = router if isinstance(router, AzureRouter) else self.get(router) @@ -1344,12 +1344,12 @@ def __init__(self, provider): def _gateway_singleton(self, network): return AzureInternetGateway(self.provider, None, network) - @dispatch(event="provider.networking.gateways.get_or_create", + @dispatch(event="azure.networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): return self._gateway_singleton(network) - @dispatch(event="provider.networking.gateways.list", + @dispatch(event="azure.networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): gws = [self._gateway_singleton(network)] @@ -1357,7 +1357,7 @@ def list(self, network, limit=None, marker=None): gws, limit=limit, marker=marker) - @dispatch(event="provider.networking.gateways.delete", + @dispatch(event="azure.networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): pass @@ -1368,7 +1368,7 @@ class AzureFloatingIPService(BaseFloatingIPService): def __init__(self, provider): super(AzureFloatingIPService, self).__init__(provider) - @dispatch(event="provider.networking.floating_ips.get", + @dispatch(event="azure.networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, fip_id): try: @@ -1379,7 +1379,7 @@ def get(self, gateway, fip_id): return None return AzureFloatingIP(self.provider, az_ip) - @dispatch(event="provider.networking.floating_ips.list", + @dispatch(event="azure.networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): floating_ips = [AzureFloatingIP(self.provider, floating_ip) @@ -1388,7 +1388,7 @@ def list(self, gateway, limit=None, marker=None): return ClientPagedResultList(self.provider, floating_ips, limit=limit, marker=marker) - @dispatch(event="provider.networking.floating_ips.create", + @dispatch(event="azure.networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): public_ip_parameters = { @@ -1403,7 +1403,7 @@ def create(self, gateway): create_floating_ip(public_ip_name, public_ip_parameters) return AzureFloatingIP(self.provider, floating_ip) - @dispatch(event="provider.networking.floating_ips.delete", + @dispatch(event="azure.networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): fip_id = fip.id if isinstance(fip, AzureFloatingIP) else fip diff --git a/cloudbridge/cloud/providers/gcp/services.py b/cloudbridge/cloud/providers/gcp/services.py index 91ab0eb0..fe02e988 100644 --- a/cloudbridge/cloud/providers/gcp/services.py +++ b/cloudbridge/cloud/providers/gcp/services.py @@ -88,7 +88,7 @@ class GCPKeyPairService(BaseKeyPairService): def __init__(self, provider): super(GCPKeyPairService, self).__init__(provider) - @dispatch(event="provider.security.key_pairs.get", + @dispatch(event="gcp.security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): """ @@ -100,7 +100,7 @@ def get(self, key_pair_id): else: return None - @dispatch(event="provider.security.key_pairs.list", + @dispatch(event="gcp.security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): key_pairs = [] @@ -112,7 +112,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, key_pairs, limit=limit, marker=marker) - @dispatch(event="provider.security.key_pairs.find", + @dispatch(event="gcp.security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): """ @@ -131,7 +131,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="provider.security.key_pairs.create", + @dispatch(event="gcp.security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): GCPKeyPair.assert_valid_resource_name(name) @@ -157,7 +157,7 @@ def create(self, name, public_key_material=None): 'A KeyPair with name {0} already exists'.format(name)) raise - @dispatch(event="provider.security.key_pairs.delete", + @dispatch(event="gcp.security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): key_pair = (key_pair if isinstance(key_pair, GCPKeyPair) else @@ -173,7 +173,7 @@ def __init__(self, provider): super(GCPVMFirewallService, self).__init__(provider) self._delegate = GCPFirewallsDelegate(provider) - @dispatch(event="provider.security.vm_firewalls.get", + @dispatch(event="gcp.security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): tag, network_name = \ @@ -183,7 +183,7 @@ def get(self, vm_firewall_id): network = self.provider.networking.networks.get(network_name) return GCPVMFirewall(self._delegate, tag, network) - @dispatch(event="provider.security.vm_firewalls.list", + @dispatch(event="gcp.security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): vm_firewalls = [] @@ -195,7 +195,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, vm_firewalls, limit=limit, marker=marker) - @dispatch(event="provider.security.vm_firewalls.create", + @dispatch(event="gcp.security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): GCPVMFirewall.assert_valid_resource_label(label) @@ -211,7 +211,7 @@ def create(self, label, network, description=None): priority=65534, cidr='0.0.0.0/0') return fw - @dispatch(event="provider.security.vm_firewalls.delete", + @dispatch(event="gcp.security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): fw_id = (vm_firewall.id if isinstance(vm_firewall, GCPVMFirewall) @@ -241,7 +241,7 @@ def __init__(self, provider): super(GCPVMFirewallRuleService, self).__init__(provider) self._dummy_rule = None - @dispatch(event="provider.security.vm_firewall_rules.list", + @dispatch(event="gcp.security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): rules = [] @@ -291,7 +291,7 @@ def create_with_priority(self, firewall, direction, protocol, priority, return None return rules[0] - @dispatch(event="provider.security.vm_firewall_rules.create", + @dispatch(event="gcp.security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -299,7 +299,7 @@ def create(self, firewall, direction, protocol, from_port=None, 1000, from_port, to_port, cidr, src_dest_fw) - @dispatch(event="provider.security.vm_firewall_rules.delete", + @dispatch(event="gcp.security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): rule = (rule if isinstance(rule, GCPVMFirewallRule) @@ -324,13 +324,13 @@ def instance_data(self): .execute()) return response['items'] - @dispatch(event="provider.compute.vm_types.get", + @dispatch(event="gcp.compute.vm_types.get", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def get(self, vm_type_id): vm_type = self.provider.get_resource('machineTypes', vm_type_id) return GCPVMType(self.provider, vm_type) if vm_type else None - @dispatch(event="provider.compute.vm_types.find", + @dispatch(event="gcp.compute.vm_types.find", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): matched_inst_types = [] @@ -348,7 +348,7 @@ def find(self, **kwargs): GCPVMType(self.provider, inst_type)) return matched_inst_types - @dispatch(event="provider.compute.vm_types.list", + @dispatch(event="gcp.compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): inst_types = [GCPVMType(self.provider, inst_type) @@ -362,14 +362,14 @@ class GCPRegionService(BaseRegionService): def __init__(self, provider): super(GCPRegionService, self).__init__(provider) - @dispatch(event="provider.compute.regions.get", + @dispatch(event="gcp.compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): region = self.provider.get_resource('regions', region_id, region=region_id) return GCPRegion(self.provider, region) if region else None - @dispatch(event="provider.compute.regions.list", + @dispatch(event="gcp.compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): max_result = limit if limit is not None and limit < 500 else 500 @@ -465,7 +465,7 @@ class GCPInstanceService(BaseInstanceService): def __init__(self, provider): super(GCPInstanceService, self).__init__(provider) - @dispatch(event="provider.compute.instances.create", + @dispatch(event="gcp.compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone=None, key_pair=None, vm_firewalls=None, user_data=None, @@ -616,7 +616,7 @@ def create(self, label, image, vm_type, subnet, zone=None, cb_inst = self.get(instance_id) return cb_inst - @dispatch(event="provider.compute.instances.get", + @dispatch(event="gcp.compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): """ @@ -629,7 +629,7 @@ def get(self, instance_id): instance = self.provider.get_resource('instances', instance_id) return GCPInstance(self.provider, instance) if instance else None - @dispatch(event="provider.compute.instances.find", + @dispatch(event="gcp.compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): """ @@ -649,7 +649,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self.provider, instances, limit=limit, marker=marker) - @dispatch(event="provider.compute.instances.list", + @dispatch(event="gcp.compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -675,7 +675,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=instances) - @dispatch(event="provider.compute.instances.delete", + @dispatch(event="gcp.compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): instance = (instance if isinstance(instance, GCPInstance) else @@ -755,13 +755,13 @@ class GCPNetworkService(BaseNetworkService): def __init__(self, provider): super(GCPNetworkService, self).__init__(provider) - @dispatch(event="provider.networking.networks.get", + @dispatch(event="gcp.networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): network = self.provider.get_resource('networks', network_id) return GCPNetwork(self.provider, network) if network else None - @dispatch(event="provider.networking.networks.find", + @dispatch(event="gcp.networking.networks.find", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): """ @@ -774,7 +774,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self._provider, list(matches), limit=limit, marker=marker) - @dispatch(event="provider.networking.networks.list", + @dispatch(event="gcp.networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None, filter=None): # TODO: Decide whether we keep filter in 'list' @@ -790,7 +790,7 @@ def list(self, limit=None, marker=None, filter=None): return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker) - @dispatch(event="provider.networking.networks.create", + @dispatch(event="gcp.networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): """ @@ -825,7 +825,7 @@ def get_or_create_default(self): label=GCPNetwork.CB_DEFAULT_NETWORK_LABEL, cidr_block=GCPNetwork.CB_DEFAULT_IPV4RANGE) - @dispatch(event="provider.networking.networks.delete", + @dispatch(event="gcp.networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): # Accepts network object @@ -856,14 +856,14 @@ class GCPRouterService(BaseRouterService): def __init__(self, provider): super(GCPRouterService, self).__init__(provider) - @dispatch(event="provider.networking.routers.get", + @dispatch(event="gcp.networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): router = self.provider.get_resource( 'routers', router_id, region=self.provider.region_name) return GCPRouter(self.provider, router) if router else None - @dispatch(event="provider.networking.routers.find", + @dispatch(event="gcp.networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): obj_list = self @@ -872,7 +872,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self._provider, list(matches), limit=limit, marker=marker) - @dispatch(event="provider.networking.routers.list", + @dispatch(event="gcp.networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): region = self.provider.region_name @@ -895,7 +895,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=routers) - @dispatch(event="provider.networking.routers.create", + @dispatch(event="gcp.networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): log.debug("Creating GCP Router Service with params " @@ -920,7 +920,7 @@ def create(self, label, network): cb_router.label = label return cb_router - @dispatch(event="provider.networking.routers.delete", + @dispatch(event="gcp.networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r = router if isinstance(router, GCPRouter) else self.get(router) @@ -954,13 +954,13 @@ class GCPSubnetService(BaseSubnetService): def __init__(self, provider): super(GCPSubnetService, self).__init__(provider) - @dispatch(event="provider.networking.subnets.get", + @dispatch(event="gcp.networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): subnet = self.provider.get_resource('subnetworks', subnet_id) return GCPSubnet(self.provider, subnet) if subnet else None - @dispatch(event="provider.networking.subnets.list", + @dispatch(event="gcp.networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, zone=None, limit=None, marker=None): """ @@ -988,7 +988,7 @@ def list(self, network=None, zone=None, limit=None, marker=None): return ClientPagedResultList(self.provider, subnets, limit=limit, marker=marker) - @dispatch(event="provider.networking.subnets.create", + @dispatch(event="gcp.networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): """ @@ -1032,7 +1032,7 @@ def create(self, label, network, cidr_block, zone): cb_subnet.label = label return cb_subnet - @dispatch(event="provider.networking.subnets.delete", + @dispatch(event="gcp.networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn = subnet if isinstance(subnet, GCPSubnet) else self.get(subnet) @@ -1149,13 +1149,13 @@ class GCPVolumeService(BaseVolumeService): def __init__(self, provider): super(GCPVolumeService, self).__init__(provider) - @dispatch(event="provider.storage.volumes.get", + @dispatch(event="gcp.storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): vol = self.provider.get_resource('disks', volume_id) return GCPVolume(self.provider, vol) if vol else None - @dispatch(event="provider.storage.volumes.find", + @dispatch(event="gcp.storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): """ @@ -1189,7 +1189,7 @@ def find(self, limit=None, marker=None, **kwargs): response.get('nextPageToken'), False, data=gcp_vols) - @dispatch(event="provider.storage.volumes.list", + @dispatch(event="gcp.storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -1219,7 +1219,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=gcp_vols) - @dispatch(event="provider.storage.volumes.create", + @dispatch(event="gcp.storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): GCPVolume.assert_valid_resource_label(label) @@ -1252,7 +1252,7 @@ def create(self, label, size, zone, snapshot=None, description=None): cb_vol = self.get(operation.get('targetLink')) return cb_vol - @dispatch(event="provider.storage.volumes.delete", + @dispatch(event="gcp.storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, volume): volume = volume if isinstance(volume, GCPVolume) else self.get(volume) @@ -1270,13 +1270,13 @@ class GCPSnapshotService(BaseSnapshotService): def __init__(self, provider): super(GCPSnapshotService, self).__init__(provider) - @dispatch(event="provider.storage.snapshots.get", + @dispatch(event="gcp.storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): snapshot = self.provider.get_resource('snapshots', snapshot_id) return GCPSnapshot(self.provider, snapshot) if snapshot else None - @dispatch(event="provider.storage.snapshots.find", + @dispatch(event="gcp.storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): label = kwargs.pop('label', None) @@ -1306,7 +1306,7 @@ def find(self, limit=None, marker=None, **kwargs): response.get('nextPageToken'), False, data=snapshots) - @dispatch(event="provider.storage.snapshots.list", + @dispatch(event="gcp.storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): max_result = limit if limit is not None and limit < 500 else 500 @@ -1326,7 +1326,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=snapshots) - @dispatch(event="provider.storage.snapshots.create", + @dispatch(event="gcp.storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): GCPSnapshot.assert_valid_resource_label(label) @@ -1354,7 +1354,7 @@ def create(self, label, volume, description=None): cb_snap = self.get(name) return cb_snap - @dispatch(event="provider.storage.snapshots.delete", + @dispatch(event="gcp.storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot): snapshot = (snapshot if isinstance(snapshot, GCPSnapshot) @@ -1373,7 +1373,7 @@ class GCPBucketService(BaseBucketService): def __init__(self, provider): super(GCPBucketService, self).__init__(provider) - @dispatch(event="provider.storage.buckets.get", + @dispatch(event="gcp.storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -1384,7 +1384,7 @@ def get(self, bucket_id): bucket = self.provider.get_resource('buckets', bucket_id) return GCPBucket(self.provider, bucket) if bucket else None - @dispatch(event="provider.storage.buckets.find", + @dispatch(event="gcp.storage.buckets.find", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): name = kwargs.pop('name', None) @@ -1399,7 +1399,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self.provider, buckets, limit=limit, marker=marker) - @dispatch(event="provider.storage.buckets.list", + @dispatch(event="gcp.storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -1423,7 +1423,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=buckets) - @dispatch(event="provider.storage.buckets.create", + @dispatch(event="gcp.storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): GCPBucket.assert_valid_resource_name(name) @@ -1450,7 +1450,7 @@ def create(self, name, location=None): else: raise - @dispatch(event="provider.storage.buckets.delete", + @dispatch(event="gcp.storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): """ @@ -1544,17 +1544,17 @@ def __init__(self, provider): GCPGatewayService._DEFAULT_GATEWAY_NAME), 'name': GCPGatewayService._DEFAULT_GATEWAY_NAME}) - @dispatch(event="provider.networking.gateways.get_or_create", + @dispatch(event="gcp.networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): return self._default_internet_gateway - @dispatch(event="provider.networking.gateways.delete", + @dispatch(event="gcp.networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): pass - @dispatch(event="provider.networking.gateways.list", + @dispatch(event="gcp.networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): gws = [self._default_internet_gateway] @@ -1568,14 +1568,14 @@ class GCPFloatingIPService(BaseFloatingIPService): def __init__(self, provider): super(GCPFloatingIPService, self).__init__(provider) - @dispatch(event="provider.networking.floating_ips.get", + @dispatch(event="gcp.networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, floating_ip_id): fip = self.provider.get_resource('addresses', floating_ip_id) return (GCPFloatingIP(self.provider, fip) if fip else None) - @dispatch(event="provider.networking.floating_ips.list", + @dispatch(event="gcp.networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): max_result = limit if limit is not None and limit < 500 else 500 @@ -1596,7 +1596,7 @@ def list(self, gateway, limit=None, marker=None): response.get('nextPageToken'), False, data=ips) - @dispatch(event="provider.networking.floating_ips.create", + @dispatch(event="gcp.networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): region_name = self.provider.region_name @@ -1611,7 +1611,7 @@ def create(self, gateway): self.provider.wait_for_operation(response, region=region_name) return self.get(gateway, ip_name) - @dispatch(event="provider.networking.floating_ips.delete", + @dispatch(event="gcp.networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): fip = (fip if isinstance(fip, GCPFloatingIP) diff --git a/cloudbridge/cloud/providers/openstack/services.py b/cloudbridge/cloud/providers/openstack/services.py index c10eea06..f1b5f5e6 100644 --- a/cloudbridge/cloud/providers/openstack/services.py +++ b/cloudbridge/cloud/providers/openstack/services.py @@ -134,7 +134,7 @@ class OpenStackKeyPairService(BaseKeyPairService): def __init__(self, provider): super(OpenStackKeyPairService, self).__init__(provider) - @dispatch(event="provider.security.key_pairs.get", + @dispatch(event="openstack.security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): """ @@ -148,7 +148,7 @@ def get(self, key_pair_id): log.debug("KeyPair %s was not found.", key_pair_id) return None - @dispatch(event="provider.security.key_pairs.list", + @dispatch(event="openstack.security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -165,7 +165,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, results, limit=limit, marker=marker) - @dispatch(event="provider.security.key_pairs.find", + @dispatch(event="openstack.security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): name = kwargs.pop('name', None) @@ -182,7 +182,7 @@ def find(self, **kwargs): log.debug("Searching for %s in: %s", name, keypairs) return ClientPagedResultList(self.provider, results) - @dispatch(event="provider.security.key_pairs.create", + @dispatch(event="openstack.security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): OpenStackKeyPair.assert_valid_resource_name(name) @@ -201,7 +201,7 @@ def create(self, name, public_key_material=None): cb_kp.material = private_key return cb_kp - @dispatch(event="provider.security.key_pairs.delete", + @dispatch(event="openstack.security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): keypair = (key_pair if isinstance(key_pair, OpenStackKeyPair) @@ -216,7 +216,7 @@ class OpenStackVMFirewallService(BaseVMFirewallService): def __init__(self, provider): super(OpenStackVMFirewallService, self).__init__(provider) - @dispatch(event="provider.security.vm_firewalls.get", + @dispatch(event="openstack.security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): try: @@ -228,7 +228,7 @@ def get(self, vm_firewall_id): log.debug("Firewall %s not found.", vm_firewall_id) return None - @dispatch(event="provider.security.vm_firewalls.list", + @dispatch(event="openstack.security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): firewalls = [ @@ -239,7 +239,7 @@ def list(self, limit=None, marker=None): limit=limit, marker=marker) @cb_helpers.deprecated_alias(network_id='network') - @dispatch(event="provider.security.vm_firewalls.create", + @dispatch(event="openstack.security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): OpenStackVMFirewall.assert_valid_resource_label(label) @@ -260,7 +260,7 @@ def create(self, label, network, description=None): return OpenStackVMFirewall(self.provider, sg) return None - @dispatch(event="provider.security.vm_firewalls.delete", + @dispatch(event="openstack.security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): fw = (vm_firewall if isinstance(vm_firewall, OpenStackVMFirewall) @@ -275,7 +275,7 @@ class OpenStackVMFirewallRuleService(BaseVMFirewallRuleService): def __init__(self, provider): super(OpenStackVMFirewallRuleService, self).__init__(provider) - @dispatch(event="provider.security.vm_firewall_rules.list", + @dispatch(event="openstack.security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): # pylint:disable=protected-access @@ -284,7 +284,7 @@ def list(self, firewall, limit=None, marker=None): return ClientPagedResultList(self.provider, rules, limit=limit, marker=marker) - @dispatch(event="provider.security.vm_firewall_rules.create", + @dispatch(event="openstack.security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol=None, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -322,7 +322,7 @@ def create(self, firewall, direction, protocol=None, from_port=None, else: raise e - @dispatch(event="provider.security.vm_firewall_rules.delete", + @dispatch(event="openstack.security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): rule_id = (rule.id if isinstance(rule, OpenStackVMFirewallRule) @@ -364,7 +364,7 @@ class OpenStackVolumeService(BaseVolumeService): def __init__(self, provider): super(OpenStackVolumeService, self).__init__(provider) - @dispatch(event="provider.storage.volumes.get", + @dispatch(event="openstack.storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): try: @@ -374,7 +374,7 @@ def get(self, volume_id): log.debug("Volume %s was not found.", volume_id) return None - @dispatch(event="provider.storage.volumes.find", + @dispatch(event="openstack.storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -396,7 +396,7 @@ def find(self, **kwargs): return oshelpers.to_server_paged_list(self.provider, cb_vols) - @dispatch(event="provider.storage.volumes.list", + @dispatch(event="openstack.storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): cb_vols = [ @@ -407,7 +407,7 @@ def list(self, limit=None, marker=None): return oshelpers.to_server_paged_list(self.provider, cb_vols, limit) - @dispatch(event="provider.storage.volumes.create", + @dispatch(event="openstack.storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): OpenStackVolume.assert_valid_resource_label(label) @@ -420,7 +420,7 @@ def create(self, label, size, zone, snapshot=None, description=None): availability_zone=zone_id, snapshot_id=snapshot_id) return OpenStackVolume(self.provider, os_vol) - @dispatch(event="provider.storage.volumes.delete", + @dispatch(event="openstack.storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, volume): volume = (volume if isinstance(volume, OpenStackVolume) @@ -435,7 +435,7 @@ class OpenStackSnapshotService(BaseSnapshotService): def __init__(self, provider): super(OpenStackSnapshotService, self).__init__(provider) - @dispatch(event="provider.storage.snapshots.get", + @dispatch(event="openstack.storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): try: @@ -446,7 +446,7 @@ def get(self, snapshot_id): log.debug("Snapshot %s was not found.", snapshot_id) return None - @dispatch(event="provider.storage.snapshots.find", + @dispatch(event="openstack.storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -469,7 +469,7 @@ def find(self, **kwargs): return oshelpers.to_server_paged_list(self.provider, cb_snaps) - @dispatch(event="provider.storage.snapshots.list", + @dispatch(event="openstack.storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): cb_snaps = [ @@ -480,7 +480,7 @@ def list(self, limit=None, marker=None): 'marker': marker})] return oshelpers.to_server_paged_list(self.provider, cb_snaps, limit) - @dispatch(event="provider.storage.snapshots.create", + @dispatch(event="openstack.storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): OpenStackSnapshot.assert_valid_resource_label(label) @@ -492,7 +492,7 @@ def create(self, label, volume, description=None): description=description) return OpenStackSnapshot(self.provider, os_snap) - @dispatch(event="provider.storage.snapshots.delete", + @dispatch(event="openstack.storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot): s = (snapshot if isinstance(snapshot, OpenStackSnapshot) else @@ -507,7 +507,7 @@ class OpenStackBucketService(BaseBucketService): def __init__(self, provider): super(OpenStackBucketService, self).__init__(provider) - @dispatch(event="provider.storage.buckets.get", + @dispatch(event="openstack.storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -524,7 +524,7 @@ def get(self, bucket_id): log.debug("Bucket %s was not found.", bucket_id) return None - @dispatch(event="provider.storage.buckets.find", + @dispatch(event="openstack.storage.buckets.find", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): name = kwargs.pop('name', None) @@ -540,7 +540,7 @@ def find(self, **kwargs): if name in c.get("name")] return oshelpers.to_server_paged_list(self.provider, cb_buckets) - @dispatch(event="provider.storage.buckets.list", + @dispatch(event="openstack.storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): _, container_list = self.provider.swift.get_account( @@ -550,7 +550,7 @@ def list(self, limit=None, marker=None): for c in container_list] return oshelpers.to_server_paged_list(self.provider, cb_buckets, limit) - @dispatch(event="provider.storage.buckets.create", + @dispatch(event="openstack.storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): OpenStackBucket.assert_valid_resource_name(name) @@ -563,7 +563,7 @@ def create(self, name, location=None): self.provider.swift.put_container(name) return self.get(name) - @dispatch(event="provider.storage.buckets.delete", + @dispatch(event="openstack.storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): b_id = bucket.id if isinstance(bucket, OpenStackBucket) else bucket @@ -747,7 +747,7 @@ def _has_root_device(self, launch_config): def create_launch_config(self): return BaseLaunchConfig(self.provider) - @dispatch(event="provider.compute.instances.create", + @dispatch(event="openstack.compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone, key_pair=None, vm_firewalls=None, user_data=None, @@ -830,7 +830,7 @@ def create(self, label, image, vm_type, subnet, zone, nics=nics) return OpenStackInstance(self.provider, os_instance) - @dispatch(event="provider.compute.instances.find", + @dispatch(event="openstack.compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -850,7 +850,7 @@ def find(self, **kwargs): marker=None)] return oshelpers.to_server_paged_list(self.provider, cb_insts) - @dispatch(event="provider.compute.instances.list", + @dispatch(event="openstack.compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -863,7 +863,7 @@ def list(self, limit=None, marker=None): marker=marker)] return oshelpers.to_server_paged_list(self.provider, cb_insts, limit) - @dispatch(event="provider.compute.instances.get", + @dispatch(event="openstack.compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): """ @@ -876,7 +876,7 @@ def get(self, instance_id): log.debug("Instance %s was not found.", instance_id) return None - @dispatch(event="provider.compute.instances.delete", + @dispatch(event="openstack.compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): ins = (instance if isinstance(instance, OpenStackInstance) else @@ -897,7 +897,7 @@ class OpenStackVMTypeService(BaseVMTypeService): def __init__(self, provider): super(OpenStackVMTypeService, self).__init__(provider) - @dispatch(event="provider.compute.vm_types.list", + @dispatch(event="openstack.compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): cb_itypes = [ @@ -914,14 +914,14 @@ class OpenStackRegionService(BaseRegionService): def __init__(self, provider): super(OpenStackRegionService, self).__init__(provider) - @dispatch(event="provider.compute.regions.get", + @dispatch(event="openstack.compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): log.debug("Getting OpenStack Region with the id: %s", region_id) region = (r for r in self if r.id == region_id) return next(region, None) - @dispatch(event="provider.compute.regions.list", + @dispatch(event="openstack.compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): # pylint:disable=protected-access @@ -987,13 +987,13 @@ class OpenStackNetworkService(BaseNetworkService): def __init__(self, provider): super(OpenStackNetworkService, self).__init__(provider) - @dispatch(event="provider.networking.networks.get", + @dispatch(event="openstack.networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): network = (n for n in self if n.id == network_id) return next(network, None) - @dispatch(event="provider.networking.networks.list", + @dispatch(event="openstack.networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): networks = [OpenStackNetwork(self.provider, network) @@ -1002,7 +1002,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker) - @dispatch(event="provider.networking.networks.find", + @dispatch(event="openstack.networking.networks.find", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -1020,7 +1020,7 @@ def find(self, **kwargs): .get('networks') if network] return ClientPagedResultList(self.provider, networks) - @dispatch(event="provider.networking.networks.create", + @dispatch(event="openstack.networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): OpenStackNetwork.assert_valid_resource_label(label) @@ -1031,7 +1031,7 @@ def create(self, label, cidr_block): cb_net.label = label return cb_net - @dispatch(event="provider.networking.networks.delete", + @dispatch(event="openstack.networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): network = (network if isinstance(network, OpenStackNetwork) else @@ -1058,13 +1058,13 @@ class OpenStackSubnetService(BaseSubnetService): def __init__(self, provider): super(OpenStackSubnetService, self).__init__(provider) - @dispatch(event="provider.networking.subnets.get", + @dispatch(event="openstack.networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): subnet = (s for s in self if s.id == subnet_id) return next(subnet, None) - @dispatch(event="provider.networking.subnets.list", + @dispatch(event="openstack.networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, limit=None, marker=None): if network: @@ -1078,7 +1078,7 @@ def list(self, network=None, limit=None, marker=None): return ClientPagedResultList(self.provider, subnets, limit=limit, marker=marker) - @dispatch(event="provider.networking.subnets.create", + @dispatch(event="openstack.networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): """zone param is ignored.""" @@ -1092,7 +1092,7 @@ def create(self, label, network, cidr_block, zone): cb_subnet = OpenStackSubnet(self.provider, subnet) return cb_subnet - @dispatch(event="provider.networking.subnets.delete", + @dispatch(event="openstack.networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn_id = subnet.id if isinstance(subnet, OpenStackSubnet) else subnet @@ -1127,14 +1127,14 @@ class OpenStackRouterService(BaseRouterService): def __init__(self, provider): super(OpenStackRouterService, self).__init__(provider) - @dispatch(event="provider.networking.routers.get", + @dispatch(event="openstack.networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): log.debug("Getting OpenStack Router with the id: %s", router_id) router = self.provider.os_conn.get_router(router_id) return OpenStackRouter(self.provider, router) if router else None - @dispatch(event="provider.networking.routers.list", + @dispatch(event="openstack.networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): routers = self.provider.os_conn.list_routers() @@ -1142,7 +1142,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, os_routers, limit=limit, marker=marker) - @dispatch(event="provider.networking.routers.find", + @dispatch(event="openstack.networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -1150,14 +1150,14 @@ def find(self, **kwargs): matches = cb_helpers.generic_find(filters, kwargs, obj_list) return ClientPagedResultList(self._provider, list(matches)) - @dispatch(event="provider.networking.routers.create", + @dispatch(event="openstack.networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): """Parameter ``network`` is not used by OpenStack.""" router = self.provider.os_conn.create_router(name=label) return OpenStackRouter(self.provider, router) - @dispatch(event="provider.networking.routers.delete", + @dispatch(event="openstack.networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r_id = router.id if isinstance(router, OpenStackRouter) else router @@ -1186,7 +1186,7 @@ def _check_fip_connectivity(self, network, external_net): except Exception: return False - @dispatch(event="provider.networking.gateways.get_or_create", + @dispatch(event="openstack.networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): """For OS, inet gtw is any net that has `external` property set.""" @@ -1197,12 +1197,12 @@ def get_or_create(self, network): return OpenStackInternetGateway(self._provider, net) return None - @dispatch(event="provider.networking.gateways.delete", + @dispatch(event="openstack.networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): pass - @dispatch(event="provider.networking.gateways.list", + @dispatch(event="openstack.networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): log.debug("OpenStack listing of all current internet gateways") @@ -1218,7 +1218,7 @@ class OpenStackFloatingIPService(BaseFloatingIPService): def __init__(self, provider): super(OpenStackFloatingIPService, self).__init__(provider) - @dispatch(event="provider.networking.floating_ips.get", + @dispatch(event="openstack.networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, fip_id): try: @@ -1229,7 +1229,7 @@ def get(self, gateway, fip_id): log.debug("Floating IP %s not found.", fip_id) return None - @dispatch(event="provider.networking.floating_ips.list", + @dispatch(event="openstack.networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): fips = [OpenStackFloatingIP(self.provider, fip) @@ -1239,14 +1239,14 @@ def list(self, gateway, limit=None, marker=None): return ClientPagedResultList(self.provider, fips, limit=limit, marker=marker) - @dispatch(event="provider.networking.floating_ips.create", + @dispatch(event="openstack.networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): return OpenStackFloatingIP( self.provider, self.provider.os_conn.network.create_ip( floating_network_id=gateway.id)) - @dispatch(event="provider.networking.floating_ips.delete", + @dispatch(event="openstack.networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): if isinstance(fip, OpenStackFloatingIP): diff --git a/test/test_block_store_service.py b/test/test_block_store_service.py index 1107cb7f..fee50ad9 100644 --- a/test/test_block_store_service.py +++ b/test/test_block_store_service.py @@ -22,22 +22,26 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['storage.volumes', 'storage.volumes']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "storage.volumes")) # pylint:disable=protected-access self.assertEqual( self.provider.storage.volumes._service_event_pattern, - "provider.storage.volumes", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("volumes", - "provider.storage.volumes", + expected_event, self.provider.storage.volumes. _service_event_pattern)) + expected_event = ".".join((self.provider.PROVIDER_ID, + "storage.snapshots")) # pylint:disable=protected-access self.assertEqual( self.provider.storage.snapshots._service_event_pattern, - "provider.storage.snapshots", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("snapshots", - "provider.storage.snapshots", + expected_event, self.provider.storage.snapshots. _service_event_pattern)) diff --git a/test/test_compute_service.py b/test/test_compute_service.py index 36c490bf..9bb00025 100644 --- a/test/test_compute_service.py +++ b/test/test_compute_service.py @@ -23,13 +23,15 @@ class CloudComputeServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['compute.instances']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "compute.instances")) # pylint:disable=protected-access self.assertEqual( self.provider.compute.instances._service_event_pattern, - "provider.compute.instances", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("instances", - "provider.compute.instances", + expected_event, self.provider.compute.instances. _service_event_pattern)) diff --git a/test/test_image_service.py b/test/test_image_service.py index a1a8cad6..4afeba41 100644 --- a/test/test_image_service.py +++ b/test/test_image_service.py @@ -14,11 +14,13 @@ class CloudImageServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['compute.images']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "compute.images")) self.assertEqual(self.provider.compute.images._service_event_pattern, - "provider.compute.images", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("images", - "provider.compute.images", + expected_event, self.provider.compute.images. _service_event_pattern)) diff --git a/test/test_network_service.py b/test/test_network_service.py index d039a95e..99841035 100644 --- a/test/test_network_service.py +++ b/test/test_network_service.py @@ -21,31 +21,37 @@ class CloudNetworkServiceTestCase(ProviderTestBase): 'networking.networks', 'networking.routers']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "networking.networks")) # pylint:disable=protected-access self.assertEqual( self.provider.networking.networks._service_event_pattern, - "provider.networking.networks", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("networks", - "provider.networking.networks", + expected_event, self.provider.networking.networks. _service_event_pattern)) + expected_event = ".".join((self.provider.PROVIDER_ID, + "networking.subnets")) # pylint:disable=protected-access self.assertEqual( self.provider.networking.subnets._service_event_pattern, - "provider.networking.subnets", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("subnets", - "provider.networking.subnets", + expected_event, self.provider.networking.subnets. _service_event_pattern)) + expected_event = ".".join((self.provider.PROVIDER_ID, + "networking.routers")) # pylint:disable=protected-access self.assertEqual( self.provider.networking.routers._service_event_pattern, - "provider.networking.routers", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("routers", - "provider.networking.routers", + expected_event, self.provider.networking.routers. _service_event_pattern)) diff --git a/test/test_object_store_service.py b/test/test_object_store_service.py index b978cd8b..fd9807e4 100644 --- a/test/test_object_store_service.py +++ b/test/test_object_store_service.py @@ -24,22 +24,26 @@ class CloudObjectStoreServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['storage._bucket_objects', 'storage.buckets']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "storage.buckets")) # pylint:disable=protected-access self.assertEqual( self.provider.storage.buckets._service_event_pattern, - "provider.storage.buckets", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("buckets", - "provider.storage.buckets", + expected_event, self.provider.storage.buckets. _service_event_pattern)) + expected_event = ".".join((self.provider.PROVIDER_ID, + "storage._bucket_objects")) # pylint:disable=protected-access self.assertEqual( self.provider.storage._bucket_objects._service_event_pattern, - "provider.storage._bucket_objects", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("bucket_objects", - "provider.storage._bucket_objects", + expected_event, self.provider.storage._bucket_objects. _service_event_pattern)) diff --git a/test/test_region_service.py b/test/test_region_service.py index e3481d5a..2c8584c0 100644 --- a/test/test_region_service.py +++ b/test/test_region_service.py @@ -13,13 +13,15 @@ class CloudRegionServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['compute.regions']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "compute.regions")) # pylint:disable=protected-access self.assertEqual( self.provider.compute.regions._service_event_pattern, - "provider.compute.regions", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("regions", - "provider.compute.regions", + expected_event, self.provider.compute.regions. _service_event_pattern)) diff --git a/test/test_security_service.py b/test/test_security_service.py index 2270afa6..c9beda3b 100644 --- a/test/test_security_service.py +++ b/test/test_security_service.py @@ -17,22 +17,25 @@ class CloudSecurityServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['security.vm_firewalls']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "security.key_pairs")) self.assertEqual( - self.provider.security.key_pairs. - _service_event_pattern, - "provider.security.key_pairs", + self.provider.security.key_pairs._service_event_pattern, + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("key_pairs", - "provider.security.key_pairs", + expected_event, self.provider.security. key_pairs. _service_event_pattern)) + expected_event = ".".join((self.provider.PROVIDER_ID, + "security.vm_firewalls")) self.assertEqual( self.provider.security.vm_firewalls._service_event_pattern, - "provider.security.vm_firewalls", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("vm_firewalls", - "provider.security.vm_firewalls", + expected_event, self.provider.security.vm_firewalls. _service_event_pattern)) diff --git a/test/test_vm_types_service.py b/test/test_vm_types_service.py index 38087511..a5cf2dc9 100644 --- a/test/test_vm_types_service.py +++ b/test/test_vm_types_service.py @@ -11,11 +11,13 @@ class CloudVMTypeServiceTestCase(ProviderTestBase): @helpers.skipIfNoService(['compute.vm_types']) def test_storage_services_event_pattern(self): + expected_event = ".".join((self.provider.PROVIDER_ID, + "compute.vm_types")) self.assertEqual(self.provider.compute.vm_types._service_event_pattern, - "provider.compute.vm_types", + expected_event, "Event pattern for {} service should be '{}', " "but found '{}'.".format("vm_types", - "provider.compute.vm_types", + expected_event, self.provider.compute. vm_types. _service_event_pattern)) From aa5048123a156abe37257bfdf6b486a8dda4da8f Mon Sep 17 00:00:00 2001 From: almahmoud Date: Fri, 22 Feb 2019 17:11:38 -0500 Subject: [PATCH 9/9] Introducing mamespace logic --- cloudbridge/cloud/base/services.py | 20 +- cloudbridge/cloud/factory.py | 200 +++++++++++++++--- cloudbridge/cloud/providers/aws/services.py | 114 +++++----- cloudbridge/cloud/providers/azure/services.py | 110 +++++----- cloudbridge/cloud/providers/gcp/services.py | 116 +++++----- .../cloud/providers/openstack/services.py | 112 +++++----- test/test_cloud_factory.py | 9 +- 7 files changed, 411 insertions(+), 270 deletions(-) diff --git a/cloudbridge/cloud/base/services.py b/cloudbridge/cloud/base/services.py index 5751420b..ccd23b66 100644 --- a/cloudbridge/cloud/base/services.py +++ b/cloudbridge/cloud/base/services.py @@ -78,7 +78,7 @@ def __init__(self, provider): super(BaseVMFirewallService, self).__init__(provider) self._service_event_pattern += ".security.vm_firewalls" - @dispatch(event="*.security.vm_firewalls.find", + @dispatch(event="security.vm_firewalls.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -107,7 +107,7 @@ def __init__(self, provider): def provider(self): return self._provider - @dispatch(event="*.security.vm_firewall_rules.get", + @dispatch(event="security.vm_firewall_rules.get", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def get(self, firewall, rule_id): matches = [rule for rule in firewall.rules if rule.id == rule_id] @@ -116,7 +116,7 @@ def get(self, firewall, rule_id): else: return None - @dispatch(event="*.security.vm_firewall_rules.find", + @dispatch(event="security.vm_firewall_rules.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, firewall, **kwargs): obj_list = firewall.rules @@ -157,7 +157,7 @@ def __init__(self, provider): # Generic find will be used for providers where we have not implemented # provider-specific querying for find method - @dispatch(event="*.storage.buckets.find", + @dispatch(event="storage.buckets.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -211,13 +211,13 @@ def __init__(self, provider): super(BaseVMTypeService, self).__init__(provider) self._service_event_pattern += ".compute.vm_types" - @dispatch(event="*.compute.vm_types.get", + @dispatch(event="compute.vm_types.get", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def get(self, vm_type_id): vm_type = (t for t in self if t.id == vm_type_id) return next(vm_type, None) - @dispatch(event="*.compute.vm_types.find", + @dispatch(event="compute.vm_types.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -233,7 +233,7 @@ def __init__(self, provider): super(BaseRegionService, self).__init__(provider) self._service_event_pattern += ".compute.regions" - @dispatch(event="*.compute.regions.find", + @dispatch(event="compute.regions.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -272,7 +272,7 @@ def get_or_create_default(self): return self.provider.networking.networks.create( BaseNetwork.CB_DEFAULT_NETWORK_LABEL, '10.0.0.0/16') - @dispatch(event="*.networking.networks.find", + @dispatch(event="networking.networks.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -296,7 +296,7 @@ def __init__(self, provider): super(BaseSubnetService, self).__init__(provider) self._service_event_pattern += ".networking.subnets" - @dispatch(event="*.networking.subnets.find", + @dispatch(event="networking.subnets.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, network=None, **kwargs): if not network: @@ -360,7 +360,7 @@ def __init__(self, provider): def provider(self): return self._provider - @dispatch(event="*.networking.floating_ips.find", + @dispatch(event="networking.floating_ips.find", priority=BaseCloudService.STANDARD_EVENT_PRIORITY) def find(self, gateway, **kwargs): obj_list = gateway.floating_ips diff --git a/cloudbridge/cloud/factory.py b/cloudbridge/cloud/factory.py index 1023657a..4817655e 100644 --- a/cloudbridge/cloud/factory.py +++ b/cloudbridge/cloud/factory.py @@ -4,6 +4,7 @@ import pkgutil from collections import defaultdict +from pyeventsystem.events import SimpleEventDispatcher from pyeventsystem.interfaces import Middleware from pyeventsystem.middleware import AutoDiscoveredMiddleware from pyeventsystem.middleware import SimpleMiddlewareManager @@ -17,52 +18,190 @@ # Todo: Move to pyeventsystem if we're keeping this logic -class ParentMiddlewareManager(SimpleMiddlewareManager): +class ParentMiddlewareGenerator(SimpleMiddlewareManager): def __init__(self, event_manager=None): - super(ParentMiddlewareManager, self).__init__(event_manager) + super(ParentMiddlewareGenerator, self).__init__(event_manager) self.middleware_constructors = [] - def add_constructor(self, middleware_class, *args): - self.middleware_constructors.append((middleware_class, args)) + def add_middleware_class(self, middleware_class, *args, **kwargs): + self.middleware_constructors.append((middleware_class, args, kwargs)) - def remove_constructor(self, middleware_class, *args): - self.middleware_constructors.remove((middleware_class, args)) + def remove_middleware_class(self, middleware_class, *args, **kwargs): + self.middleware_constructors.remove((middleware_class, args, kwargs)) - def generate_simple_manager(self): - new_manager = SimpleMiddlewareManager() - for middleware in self.middleware_list: - new_manager.add(middleware) - for constructor, args in self.middleware_constructors: - m = constructor(*args) - new_manager.add(m) - for handler in self.get_subscribed_handlers(): + def get_directly_subscribed_handlers(self): + all_handlers = [] + # Todo: Expose this better in pyeventsystem library + event_dict = self.events._SimpleEventDispatcher__events + for key in event_dict.keys(): + for h in event_dict[key]: + all_handlers.append((h, + h.event_pattern, + h.priority, + h.callback)) + middleware_handlers = [] + for m in self.middleware_list: + obj = (m.obj_to_discover if isinstance(m, AutoDiscoveredMiddleware) + else m) + handlers = m.discover_handlers(obj) + for h in handlers: + middleware_handlers.append((h.event_pattern, h.priority, + h.callback)) + direct_subs = [h for h, e, p, c in all_handlers + if (e, p, c) not in middleware_handlers] + return direct_subs + + def generate_child_manager(self, namespace=None): + event_dispatcher = None + if namespace: + event_dispatcher = NamespacedEventDispatcher(namespace) + manager = ChildMiddlewareManager(self, event_dispatcher) + manager.inherit_handlers() + return manager + + +# TODO: Move to pyeventsystem if we're keeping +class NamespacedEventDispatcher(SimpleEventDispatcher): + + def __init__(self, namespace): + super(NamespacedEventDispatcher, self).__init__() + self._namespace = namespace + + @property + def namespace(self): + return self._namespace + + def get_handlers_for_event(self, event): + event = ".".join((self._namespace, event)) + return self.get_handlers_for_event_direct(event) + + def _create_handler_cache(self, event): + event = ".".join((self._namespace, event)) + return self._create_handler_cache_direct(event) + + def _invalidate_cache(self, event_pattern): + event_pattern = ".".join((self._namespace, event_pattern)) + return self._invalidate_cache_direct(event_pattern) + + def dispatch(self, sender, event, *args, **kwargs): + event = ".".join((self._namespace, event)) + return self.dispatch_direct(sender, event, *args, **kwargs) + + def observe(self, event_pattern, priority, callback): + event_pattern = ".".join((self._namespace, event_pattern)) + return self.observe_direct(event_pattern, priority, callback) + + def intercept(self, event_pattern, priority, callback): + event_pattern = ".".join((self._namespace, event_pattern)) + return self.intercept_direct(event_pattern, priority, callback) + + def implement(self, event_pattern, priority, callback): + event_pattern = ".".join((self._namespace, event_pattern)) + return self.implement_direct(event_pattern, priority, callback) + + def observe_direct(self, event_pattern, priority, callback): + return super(NamespacedEventDispatcher, self).observe(event_pattern, + priority, + callback) + + def intercept_direct(self, event_pattern, priority, callback): + return super(NamespacedEventDispatcher, self).intercept(event_pattern, + priority, + callback) + + def implement_direct(self, event_pattern, priority, callback): + return super(NamespacedEventDispatcher, self).implement(event_pattern, + priority, + callback) + + def dispatch_direct(self, sender, event, *args, **kwargs): + return super(NamespacedEventDispatcher, self).dispatch(sender, event, + *args, **kwargs) + + def get_handlers_for_event_direct(self, event): + return super(NamespacedEventDispatcher, self).get_handlers_for_event( + event) + + def _create_handler_cache_direct(self, event): + return super(NamespacedEventDispatcher, self)._create_handler_cache( + event) + + def _invalidate_cache_direct(self, event_pattern): + return super(NamespacedEventDispatcher, self)._invalidate_cache( + event_pattern) + + +# TODO: Move to pyeventsystem if we're keeping +class ChildMiddlewareManager(SimpleMiddlewareManager): + + def __init__(self, parent_manager, event_manager=None): + super(ChildMiddlewareManager, self).__init__(event_manager) + self._parent_manager = parent_manager + self._inherited = {} + + def inherit_handlers(self): + self.remove_inherited_handlers() + middleware_list = [] + for middleware in self._parent_manager.middleware_list: + added = self.add_direct(middleware) + middleware_list.append(added) + for constructor, args, kwargs in (self._parent_manager + .middleware_constructors): + m = constructor(*args, **kwargs) + added = self.add_direct(m) + middleware_list.append(added) + self._inherited['middleware_list'] = middleware_list + handler_list = [] + for handler in self._parent_manager.get_directly_subscribed_handlers(): new_handler = handler.__class__(handler.event_pattern, handler.priority, handler.callback) - new_manager.events.subscribe(new_handler) - return new_manager + handler_list.append(new_handler) + self.events.subscribe(new_handler) + self._inherited['handler_list'] = handler_list + + def remove_inherited_handlers(self): + for m in self._inherited.get("middleware_list", []): + self.remove(m) + + for h in self._inherited.get("handler_list", []): + self.events.unsubscribe(h) + + self._inherited = {} + + @property + def parent_manager(self): + return self._parent_manager + + def add_direct(self, middleware): + return super(ChildMiddlewareManager, self).add(middleware) - # Removing install step from add. Since this manager is meant to create - # other managers rather than run. This will also simplify separating - # handlers added through middleware from those subscribed directly def add(self, middleware): if isinstance(middleware, Middleware): m = middleware + m.events = self.events + discovered_handlers = m.discover_handlers(m) else: m = AutoDiscoveredMiddleware(middleware) + m.events = self.events + discovered_handlers = m.discover_handlers(m.obj_to_discover) + + # Rewrap handlers with namespaced event pattern if the event dispatcher + # is namespaced + if isinstance(self.events, NamespacedEventDispatcher): + for handler in discovered_handlers: + event_pattern = ".".join((self.events.namespace, + handler.event_pattern)) + new_handler = handler.__class__(event_pattern, + handler.priority, + handler.callback) + discovered_handlers.remove(handler) + discovered_handlers.append(new_handler) + m.add_handlers(discovered_handlers) self.middleware_list.append(m) return m - def get_subscribed_handlers(self): - handlers = [] - # Todo: Expose this better in pyeventsystem library - event_dict = self.events._SimpleEventDispatcher__events - for key in event_dict.keys(): - for handler in event_dict[key]: - handlers.append(handler) - return handlers - class ProviderList(object): AWS = 'aws' @@ -79,7 +218,7 @@ class CloudProviderFactory(object): """ def __init__(self): - self._middleware = ParentMiddlewareManager() + self._middleware = ParentMiddlewareGenerator() self.provider_list = defaultdict(dict) log.debug("Providers List: %s", self.provider_list) @@ -193,8 +332,9 @@ def create_provider(self, name, config): 'A provider with name {0} could not be' ' found'.format(name)) log.debug("Created '%s' provider", name) + namespaced_middleware = self.middleware.generate_child_manager(name) return provider_class(config, - self.middleware.generate_simple_manager()) + namespaced_middleware) def get_provider_class(self, name): """ diff --git a/cloudbridge/cloud/providers/aws/services.py b/cloudbridge/cloud/providers/aws/services.py index 4ac30ea4..44142c66 100644 --- a/cloudbridge/cloud/providers/aws/services.py +++ b/cloudbridge/cloud/providers/aws/services.py @@ -103,18 +103,18 @@ def __init__(self, provider): cb_resource=AWSKeyPair, boto_collection_name='key_pairs') - @dispatch(event="aws.security.key_pairs.get", + @dispatch(event="security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): log.debug("Getting Key Pair Service %s", key_pair_id) return self.svc.get(key_pair_id) - @dispatch(event="aws.security.key_pairs.list", + @dispatch(event="security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.security.key_pairs.find", + @dispatch(event="security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): name = kwargs.pop('name', None) @@ -128,7 +128,7 @@ def find(self, **kwargs): log.debug("Searching for Key Pair %s", name) return self.svc.find(filter_name='key-name', filter_value=name) - @dispatch(event="aws.security.key_pairs.create", + @dispatch(event="security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): AWSKeyPair.assert_valid_resource_name(name) @@ -147,7 +147,7 @@ def create(self, name, public_key_material=None): else: raise e - @dispatch(event="aws.security.key_pairs.delete", + @dispatch(event="security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): key_pair = (key_pair if isinstance(key_pair, AWSKeyPair) else @@ -165,19 +165,19 @@ def __init__(self, provider): cb_resource=AWSVMFirewall, boto_collection_name='security_groups') - @dispatch(event="aws.security.vm_firewalls.get", + @dispatch(event="security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): log.debug("Getting Firewall Service with the id: %s", vm_firewall_id) return self.svc.get(vm_firewall_id) - @dispatch(event="aws.security.vm_firewalls.list", + @dispatch(event="security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) @cb_helpers.deprecated_alias(network_id='network') - @dispatch(event="aws.security.vm_firewalls.create", + @dispatch(event="security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): AWSVMFirewall.assert_valid_resource_label(label) @@ -190,7 +190,7 @@ def create(self, label, network, description=None): obj.description = description return obj - @dispatch(event="aws.security.vm_firewalls.find", + @dispatch(event="security.vm_firewalls.find", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): # Filter by name or label @@ -204,7 +204,7 @@ def find(self, **kwargs): return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="aws.security.vm_firewalls.delete", + @dispatch(event="security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): firewall = (vm_firewall if isinstance(vm_firewall, AWSVMFirewall) @@ -219,7 +219,7 @@ class AWSVMFirewallRuleService(BaseVMFirewallRuleService): def __init__(self, provider): super(AWSVMFirewallRuleService, self).__init__(provider) - @dispatch(event="aws.security.vm_firewall_rules.list", + @dispatch(event="security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): # pylint:disable=protected-access @@ -234,7 +234,7 @@ def list(self, firewall, limit=None, marker=None): return ClientPagedResultList(self.provider, rules, limit=limit, marker=marker) - @dispatch(event="aws.security.vm_firewall_rules.create", + @dispatch(event="security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol=None, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -268,7 +268,7 @@ def create(self, firewall, direction, protocol=None, from_port=None, else: raise ec2e - @dispatch(event="aws.security.vm_firewall_rules.delete", + @dispatch(event="security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): # pylint:disable=protected-access @@ -326,12 +326,12 @@ def __init__(self, provider): cb_resource=AWSVolume, boto_collection_name='volumes') - @dispatch(event="aws.storage.volumes.get", + @dispatch(event="storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): return self.svc.get(volume_id) - @dispatch(event="aws.storage.volumes.find", + @dispatch(event="storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -345,12 +345,12 @@ def find(self, **kwargs): log.debug("Searching for AWS Volume Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="aws.storage.volumes.list", + @dispatch(event="storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.storage.volumes.create", + @dispatch(event="storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): AWSVolume.assert_valid_resource_label(label) @@ -368,7 +368,7 @@ def create(self, label, size, zone, snapshot=None, description=None): cb_vol.description = description return cb_vol - @dispatch(event="aws.storage.volumes.delete", + @dispatch(event="storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, vol): volume = vol if isinstance(vol, AWSVolume) else self.get(vol) @@ -385,12 +385,12 @@ def __init__(self, provider): cb_resource=AWSSnapshot, boto_collection_name='snapshots') - @dispatch(event="aws.storage.snapshots.get", + @dispatch(event="storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): return self.svc.get(snapshot_id) - @dispatch(event="aws.storage.snapshots.find", + @dispatch(event="storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): # Filter by description or label @@ -407,13 +407,13 @@ def find(self, **kwargs): filters = ['label'] return cb_helpers.generic_find(filters, kwargs, obj_list) - @dispatch(event="aws.storage.snapshots.list", + @dispatch(event="storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker, OwnerIds=['self']) - @dispatch(event="aws.storage.snapshots.create", + @dispatch(event="storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): AWSSnapshot.assert_valid_resource_label(label) @@ -427,7 +427,7 @@ def create(self, label, volume, description=None): cb_snap.description = description return cb_snap - @dispatch(event="aws.storage.snapshots.delete", + @dispatch(event="storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot): snapshot = (snapshot if isinstance(snapshot, AWSSnapshot) else @@ -445,7 +445,7 @@ def __init__(self, provider): cb_resource=AWSBucket, boto_collection_name='buckets') - @dispatch(event="aws.storage.buckets.get", + @dispatch(event="storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -475,12 +475,12 @@ def get(self, bucket_id): # For all other responses, it's assumed that the bucket does not exist. return None - @dispatch(event="aws.storage.buckets.list", + @dispatch(event="storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.storage.buckets.create", + @dispatch(event="storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): AWSBucket.assert_valid_resource_name(name) @@ -515,7 +515,7 @@ def create(self, name, location=None): else: raise - @dispatch(event="aws.storage.buckets.delete", + @dispatch(event="storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): b = bucket if isinstance(bucket, AWSBucket) else self.get(bucket) @@ -731,7 +731,7 @@ def _process_block_device_mappings(self, launch_config): def create_launch_config(self): return AWSLaunchConfig(self.provider) - @dispatch(event="aws.compute.instances.create", + @dispatch(event="compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone, key_pair=None, vm_firewalls=None, user_data=None, @@ -777,12 +777,12 @@ def create(self, label, image, vm_type, subnet, zone, raise ValueError( 'Expected a single object response, got a list: %s' % inst) - @dispatch(event="aws.compute.instances.get", + @dispatch(event="compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): return self.svc.get(instance_id) - @dispatch(event="aws.compute.instances.find", + @dispatch(event="compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -795,12 +795,12 @@ def find(self, **kwargs): return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="aws.compute.instances.list", + @dispatch(event="compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.compute.instances.delete", + @dispatch(event="compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): aws_inst = (instance if isinstance(instance, AWSInstance) else @@ -838,7 +838,7 @@ def instance_data(self): return [vm_type for vm_type in vm_types_list if vm_type.get('pricing', {}).get(self.provider.region_name)] - @dispatch(event="aws.compute.vm_types.list", + @dispatch(event="compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): vm_types = [AWSVMType(self.provider, vm_type) @@ -852,7 +852,7 @@ class AWSRegionService(BaseRegionService): def __init__(self, provider): super(AWSRegionService, self).__init__(provider) - @dispatch(event="aws.compute.regions.get", + @dispatch(event="compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): log.debug("Getting AWS Region Service with the id: %s", @@ -863,7 +863,7 @@ def get(self, region_id): else: return None - @dispatch(event="aws.compute.regions.list", + @dispatch(event="compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): regions = [ @@ -917,17 +917,17 @@ def __init__(self, provider): cb_resource=AWSNetwork, boto_collection_name='vpcs') - @dispatch(event="aws.networking.networks.get", + @dispatch(event="networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): return self.svc.get(network_id) - @dispatch(event="aws.networking.networks.list", + @dispatch(event="networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.networking.networks.find", + @dispatch(event="networking.networks.find", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -941,7 +941,7 @@ def find(self, **kwargs): log.debug("Searching for AWS Network Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="aws.networking.networks.create", + @dispatch(event="networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): AWSNetwork.assert_valid_resource_label(label) @@ -953,7 +953,7 @@ def create(self, label, cidr_block): cb_net.label = label return cb_net - @dispatch(event="aws.networking.networks.delete", + @dispatch(event="networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): network = (network if isinstance(network, AWSNetwork) @@ -991,12 +991,12 @@ def __init__(self, provider): cb_resource=AWSSubnet, boto_collection_name='subnets') - @dispatch(event="aws.networking.subnets.get", + @dispatch(event="networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): return self.svc.get(subnet_id) - @dispatch(event="aws.networking.subnets.list", + @dispatch(event="networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, limit=None, marker=None): network_id = network.id if isinstance(network, AWSNetwork) else network @@ -1007,7 +1007,7 @@ def list(self, network=None, limit=None, marker=None): else: return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.networking.subnets.find", + @dispatch(event="networking.subnets.find", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def find(self, network=None, **kwargs): label = kwargs.pop('label', None) @@ -1021,7 +1021,7 @@ def find(self, network=None, **kwargs): log.debug("Searching for AWS Subnet Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="aws.networking.subnets.create", + @dispatch(event="networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): AWSSubnet.assert_valid_resource_label(label) @@ -1038,7 +1038,7 @@ def create(self, label, network, cidr_block, zone): subnet.label = label return subnet - @dispatch(event="aws.networking.subnets.delete", + @dispatch(event="networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn = subnet if isinstance(subnet, AWSSubnet) else self.get(subnet) @@ -1159,12 +1159,12 @@ def __init__(self, provider): cb_resource=AWSRouter, boto_collection_name='route_tables') - @dispatch(event="aws.networking.routers.get", + @dispatch(event="networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): return self.svc.get(router_id) - @dispatch(event="aws.networking.routers.find", + @dispatch(event="networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -1178,12 +1178,12 @@ def find(self, **kwargs): log.debug("Searching for AWS Router Service %s", label) return self.svc.find(filter_name='tag:Name', filter_value=label) - @dispatch(event="aws.networking.routers.list", + @dispatch(event="networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): return self.svc.list(limit=limit, marker=marker) - @dispatch(event="aws.networking.routers.create", + @dispatch(event="networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): network_id = network.id if isinstance(network, AWSNetwork) else network @@ -1193,7 +1193,7 @@ def create(self, label, network): cb_router.label = label return cb_router - @dispatch(event="aws.networking.routers.delete", + @dispatch(event="networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r = router if isinstance(router, AWSRouter) else self.get(router) @@ -1210,7 +1210,7 @@ def __init__(self, provider): cb_resource=AWSInternetGateway, boto_collection_name='internet_gateways') - @dispatch(event="aws.networking.gateways.get_or_create", + @dispatch(event="networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): network_id = network.id if isinstance( @@ -1231,7 +1231,7 @@ def get_or_create(self, network): cb_gateway._gateway.attach_to_vpc(VpcId=network_id) return cb_gateway - @dispatch(event="aws.networking.gateways.delete", + @dispatch(event="networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): gw = (gateway if isinstance(gateway, AWSInternetGateway) @@ -1245,7 +1245,7 @@ def delete(self, network, gateway): # pylint:disable=protected-access gw._gateway.delete() - @dispatch(event="aws.networking.gateways.list", + @dispatch(event="networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): log.debug("Listing current AWS internet gateways for net %s.", @@ -1262,18 +1262,18 @@ def __init__(self, provider): cb_resource=AWSFloatingIP, boto_collection_name='vpc_addresses') - @dispatch(event="aws.networking.floating_ips.get", + @dispatch(event="networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, fip_id): log.debug("Getting AWS Floating IP Service with the id: %s", fip_id) return self.svc.get(fip_id) - @dispatch(event="aws.networking.floating_ips.list", + @dispatch(event="networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): return self.svc.list(limit, marker) - @dispatch(event="aws.networking.floating_ips.create", + @dispatch(event="networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): log.debug("Creating a floating IP under gateway %s", gateway) @@ -1283,7 +1283,7 @@ def create(self, gateway): self.provider, self.provider.ec2_conn.VpcAddress(ip.get('AllocationId'))) - @dispatch(event="aws.networking.floating_ips.delete", + @dispatch(event="networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): if isinstance(fip, AWSFloatingIP): diff --git a/cloudbridge/cloud/providers/azure/services.py b/cloudbridge/cloud/providers/azure/services.py index 9f66ffba..f1a8e8fb 100644 --- a/cloudbridge/cloud/providers/azure/services.py +++ b/cloudbridge/cloud/providers/azure/services.py @@ -90,7 +90,7 @@ class AzureVMFirewallService(BaseVMFirewallService): def __init__(self, provider): super(AzureVMFirewallService, self).__init__(provider) - @dispatch(event="azure.security.vm_firewalls.get", + @dispatch(event="security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): try: @@ -101,7 +101,7 @@ def get(self, vm_firewall_id): log.exception(cloud_error) return None - @dispatch(event="azure.security.vm_firewalls.list", + @dispatch(event="security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): fws = [AzureVMFirewall(self.provider, fw) @@ -109,7 +109,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, fws, limit, marker) @cb_helpers.deprecated_alias(network_id='network') - @dispatch(event="azure.security.vm_firewalls.create", + @dispatch(event="security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): AzureVMFirewall.assert_valid_resource_label(label) @@ -153,7 +153,7 @@ def create(self, label, network, description=None): cb_fw = AzureVMFirewall(self.provider, fw) return cb_fw - @dispatch(event="azure.security.vm_firewalls.delete", + @dispatch(event="security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): fw_id = (vm_firewall.id if isinstance(vm_firewall, AzureVMFirewall) @@ -166,7 +166,7 @@ class AzureVMFirewallRuleService(BaseVMFirewallRuleService): def __init__(self, provider): super(AzureVMFirewallRuleService, self).__init__(provider) - @dispatch(event="azure.security.vm_firewall_rules.list", + @dispatch(event="security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): # Filter out firewall rules with priority < 3500 because values @@ -179,7 +179,7 @@ def list(self, firewall, limit=None, marker=None): return ClientPagedResultList(self.provider, rules, limit=limit, marker=marker) - @dispatch(event="azure.security.vm_firewall_rules.create", + @dispatch(event="security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol=None, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -229,7 +229,7 @@ def _create_rule(self, firewall, direction, protocol, firewall._vm_firewall.security_rules.append(result) return AzureVMFirewallRule(firewall, result) - @dispatch(event="azure.security.vm_firewall_rules.delete", + @dispatch(event="security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): rule_id = rule.id if isinstance(rule, AzureVMFirewallRule) else rule @@ -249,7 +249,7 @@ class AzureKeyPairService(BaseKeyPairService): def __init__(self, provider): super(AzureKeyPairService, self).__init__(provider) - @dispatch(event="azure.security.key_pairs.get", + @dispatch(event="security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): try: @@ -264,7 +264,7 @@ def get(self, key_pair_id): log.debug(error) return None - @dispatch(event="azure.security.key_pairs.list", + @dispatch(event="security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): key_pairs, resume_marker = self.provider.azure_client.list_public_keys( @@ -277,7 +277,7 @@ def list(self, limit=None, marker=None): supports_total=False, data=results) - @dispatch(event="azure.security.key_pairs.find", + @dispatch(event="security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -293,7 +293,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="azure.security.key_pairs.create", + @dispatch(event="security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): AzureKeyPair.assert_valid_resource_name(name) @@ -319,7 +319,7 @@ def create(self, name, public_key_material=None): key_pair.material = private_key return key_pair - @dispatch(event="azure.security.key_pairs.delete", + @dispatch(event="security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): key_pair = (key_pair if isinstance(key_pair, AzureKeyPair) else @@ -360,7 +360,7 @@ class AzureVolumeService(BaseVolumeService): def __init__(self, provider): super(AzureVolumeService, self).__init__(provider) - @dispatch(event="azure.storage.volumes.get", + @dispatch(event="storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): try: @@ -371,7 +371,7 @@ def get(self, volume_id): log.exception(cloud_error) return None - @dispatch(event="azure.storage.volumes.find", + @dispatch(event="storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -387,7 +387,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="azure.storage.volumes.list", + @dispatch(event="storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): azure_vols = self.provider.azure_client.list_disks() @@ -395,7 +395,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, cb_vols, limit=limit, marker=marker) - @dispatch(event="azure.storage.volumes.create", + @dispatch(event="storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): AzureVolume.assert_valid_resource_label(label) @@ -442,7 +442,7 @@ def create(self, label, size, zone, snapshot=None, description=None): return cb_vol - @dispatch(event="azure.storage.volumes.delete", + @dispatch(event="storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, volume_id): vol_id = (volume_id.id if isinstance(volume_id, AzureVolume) @@ -454,7 +454,7 @@ class AzureSnapshotService(BaseSnapshotService): def __init__(self, provider): super(AzureSnapshotService, self).__init__(provider) - @dispatch(event="azure.storage.snapshots.get", + @dispatch(event="storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): try: @@ -465,7 +465,7 @@ def get(self, snapshot_id): log.exception(cloud_error) return None - @dispatch(event="azure.storage.snapshots.find", + @dispatch(event="storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -481,7 +481,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="azure.storage.snapshots.list", + @dispatch(event="storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): snaps = [AzureSnapshot(self.provider, obj) @@ -489,7 +489,7 @@ def list(self, limit=None, marker=None): self.provider.azure_client.list_snapshots()] return ClientPagedResultList(self.provider, snaps, limit, marker) - @dispatch(event="azure.storage.snapshots.create", + @dispatch(event="storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): AzureSnapshot.assert_valid_resource_label(label) @@ -516,7 +516,7 @@ def create(self, label, volume, description=None): params) return AzureSnapshot(self.provider, azure_snap) - @dispatch(event="azure.storage.snapshots.delete", + @dispatch(event="storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot_id): snap_id = (snapshot_id.id if isinstance(snapshot_id, AzureSnapshot) @@ -528,7 +528,7 @@ class AzureBucketService(BaseBucketService): def __init__(self, provider): super(AzureBucketService, self).__init__(provider) - @dispatch(event="azure.storage.buckets.get", + @dispatch(event="storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -542,7 +542,7 @@ def get(self, bucket_id): log.exception(error) return None - @dispatch(event="azure.storage.buckets.list", + @dispatch(event="storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): buckets = [AzureBucket(self.provider, bucket) @@ -551,7 +551,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, buckets, limit=limit, marker=marker) - @dispatch(event="azure.storage.buckets.create", + @dispatch(event="storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): """ @@ -561,7 +561,7 @@ def create(self, name, location=None): bucket = self.provider.azure_client.create_container(name) return AzureBucket(self.provider, bucket) - @dispatch(event="azure.storage.buckets.delete", + @dispatch(event="storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): """ @@ -826,7 +826,7 @@ def append_disk(disk_def, device_no, delete_on_terminate): def create_launch_config(self): return AzureLaunchConfig(self.provider) - @dispatch(event="azure.compute.instances.create", + @dispatch(event="compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone, key_pair=None, vm_firewalls=None, user_data=None, @@ -961,7 +961,7 @@ def create(self, label, image, vm_type, subnet, zone, temp_key_pair.delete() return AzureInstance(self.provider, vm) - @dispatch(event="azure.compute.instances.list", + @dispatch(event="compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -972,7 +972,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, instances, limit=limit, marker=marker) - @dispatch(event="azure.compute.instances.get", + @dispatch(event="compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): """ @@ -987,7 +987,7 @@ def get(self, instance_id): log.exception(cloud_error) return None - @dispatch(event="azure.compute.instances.find", + @dispatch(event="compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -1003,7 +1003,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="azure.compute.instances.delete", + @dispatch(event="compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): """ @@ -1053,7 +1053,7 @@ def instance_data(self): r = self.provider.azure_client.list_vm_types() return r - @dispatch(event="azure.compute.vm_types.list", + @dispatch(event="compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): vm_types = [AzureVMType(self.provider, vm_type) @@ -1066,7 +1066,7 @@ class AzureRegionService(BaseRegionService): def __init__(self, provider): super(AzureRegionService, self).__init__(provider) - @dispatch(event="azure.compute.regions.get", + @dispatch(event="compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): region = None @@ -1076,7 +1076,7 @@ def get(self, region_id): break return region - @dispatch(event="azure.compute.regions.list", + @dispatch(event="compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): regions = [AzureRegion(self.provider, region) @@ -1123,7 +1123,7 @@ class AzureNetworkService(BaseNetworkService): def __init__(self, provider): super(AzureNetworkService, self).__init__(provider) - @dispatch(event="azure.networking.networks.get", + @dispatch(event="networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): try: @@ -1134,7 +1134,7 @@ def get(self, network_id): log.exception(cloud_error) return None - @dispatch(event="azure.networking.networks.list", + @dispatch(event="networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): networks = [AzureNetwork(self.provider, network) @@ -1142,7 +1142,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker) - @dispatch(event="azure.networking.networks.create", + @dispatch(event="networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): AzureNetwork.assert_valid_resource_label(label) @@ -1161,7 +1161,7 @@ def create(self, label, cidr_block): cb_network = AzureNetwork(self.provider, az_network) return cb_network - @dispatch(event="azure.networking.networks.delete", + @dispatch(event="networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): net_id = network.id if isinstance(network, AzureNetwork) else network @@ -1196,7 +1196,7 @@ def _list_subnets(self, network=None): return subnets - @dispatch(event="azure.networking.subnets.get", + @dispatch(event="networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): """ @@ -1214,14 +1214,14 @@ def get(self, subnet_id): log.exception(cloud_error) return None - @dispatch(event="azure.networking.subnets.list", + @dispatch(event="networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, limit=None, marker=None): return ClientPagedResultList(self.provider, self._list_subnets(network), limit=limit, marker=marker) - @dispatch(event="azure.networking.subnets.find", + @dispatch(event="networking.subnets.find", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def find(self, network=None, **kwargs): obj_list = self._list_subnets(network) @@ -1231,7 +1231,7 @@ def find(self, network=None, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="azure.networking.subnets.create", + @dispatch(event="networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): AzureSubnet.assert_valid_resource_label(label) @@ -1255,7 +1255,7 @@ def create(self, label, network, cidr_block, zone): subnet.label = label return subnet - @dispatch(event="azure.networking.subnets.delete", + @dispatch(event="networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn = subnet if isinstance(subnet, AzureSubnet) else self.get(subnet) @@ -1275,7 +1275,7 @@ class AzureRouterService(BaseRouterService): def __init__(self, provider): super(AzureRouterService, self).__init__(provider) - @dispatch(event="azure.networking.routers.get", + @dispatch(event="networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): try: @@ -1286,7 +1286,7 @@ def get(self, router_id): log.exception(cloud_error) return None - @dispatch(event="azure.networking.routers.find", + @dispatch(event="networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -1302,7 +1302,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="azure.networking.routers.list", + @dispatch(event="networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): routes = [AzureRouter(self.provider, route) @@ -1312,7 +1312,7 @@ def list(self, limit=None, marker=None): routes, limit=limit, marker=marker) - @dispatch(event="azure.networking.routers.create", + @dispatch(event="networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): router_name = AzureRouter._generate_name_from_label(label, "cb-router") @@ -1324,7 +1324,7 @@ def create(self, label, network): create_route_table(router_name, parameters) return AzureRouter(self.provider, route) - @dispatch(event="azure.networking.routers.delete", + @dispatch(event="networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r = router if isinstance(router, AzureRouter) else self.get(router) @@ -1344,12 +1344,12 @@ def __init__(self, provider): def _gateway_singleton(self, network): return AzureInternetGateway(self.provider, None, network) - @dispatch(event="azure.networking.gateways.get_or_create", + @dispatch(event="networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): return self._gateway_singleton(network) - @dispatch(event="azure.networking.gateways.list", + @dispatch(event="networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): gws = [self._gateway_singleton(network)] @@ -1357,7 +1357,7 @@ def list(self, network, limit=None, marker=None): gws, limit=limit, marker=marker) - @dispatch(event="azure.networking.gateways.delete", + @dispatch(event="networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): pass @@ -1368,7 +1368,7 @@ class AzureFloatingIPService(BaseFloatingIPService): def __init__(self, provider): super(AzureFloatingIPService, self).__init__(provider) - @dispatch(event="azure.networking.floating_ips.get", + @dispatch(event="networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, fip_id): try: @@ -1379,7 +1379,7 @@ def get(self, gateway, fip_id): return None return AzureFloatingIP(self.provider, az_ip) - @dispatch(event="azure.networking.floating_ips.list", + @dispatch(event="networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): floating_ips = [AzureFloatingIP(self.provider, floating_ip) @@ -1388,7 +1388,7 @@ def list(self, gateway, limit=None, marker=None): return ClientPagedResultList(self.provider, floating_ips, limit=limit, marker=marker) - @dispatch(event="azure.networking.floating_ips.create", + @dispatch(event="networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): public_ip_parameters = { @@ -1403,7 +1403,7 @@ def create(self, gateway): create_floating_ip(public_ip_name, public_ip_parameters) return AzureFloatingIP(self.provider, floating_ip) - @dispatch(event="azure.networking.floating_ips.delete", + @dispatch(event="networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): fip_id = fip.id if isinstance(fip, AzureFloatingIP) else fip diff --git a/cloudbridge/cloud/providers/gcp/services.py b/cloudbridge/cloud/providers/gcp/services.py index fe02e988..0ceff071 100644 --- a/cloudbridge/cloud/providers/gcp/services.py +++ b/cloudbridge/cloud/providers/gcp/services.py @@ -88,7 +88,7 @@ class GCPKeyPairService(BaseKeyPairService): def __init__(self, provider): super(GCPKeyPairService, self).__init__(provider) - @dispatch(event="gcp.security.key_pairs.get", + @dispatch(event="security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): """ @@ -100,7 +100,7 @@ def get(self, key_pair_id): else: return None - @dispatch(event="gcp.security.key_pairs.list", + @dispatch(event="security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): key_pairs = [] @@ -112,7 +112,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, key_pairs, limit=limit, marker=marker) - @dispatch(event="gcp.security.key_pairs.find", + @dispatch(event="security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): """ @@ -131,7 +131,7 @@ def find(self, **kwargs): return ClientPagedResultList(self.provider, matches if matches else []) - @dispatch(event="gcp.security.key_pairs.create", + @dispatch(event="security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): GCPKeyPair.assert_valid_resource_name(name) @@ -157,7 +157,7 @@ def create(self, name, public_key_material=None): 'A KeyPair with name {0} already exists'.format(name)) raise - @dispatch(event="gcp.security.key_pairs.delete", + @dispatch(event="security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): key_pair = (key_pair if isinstance(key_pair, GCPKeyPair) else @@ -173,7 +173,7 @@ def __init__(self, provider): super(GCPVMFirewallService, self).__init__(provider) self._delegate = GCPFirewallsDelegate(provider) - @dispatch(event="gcp.security.vm_firewalls.get", + @dispatch(event="security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): tag, network_name = \ @@ -183,7 +183,7 @@ def get(self, vm_firewall_id): network = self.provider.networking.networks.get(network_name) return GCPVMFirewall(self._delegate, tag, network) - @dispatch(event="gcp.security.vm_firewalls.list", + @dispatch(event="security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): vm_firewalls = [] @@ -195,7 +195,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, vm_firewalls, limit=limit, marker=marker) - @dispatch(event="gcp.security.vm_firewalls.create", + @dispatch(event="security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): GCPVMFirewall.assert_valid_resource_label(label) @@ -211,7 +211,7 @@ def create(self, label, network, description=None): priority=65534, cidr='0.0.0.0/0') return fw - @dispatch(event="gcp.security.vm_firewalls.delete", + @dispatch(event="security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): fw_id = (vm_firewall.id if isinstance(vm_firewall, GCPVMFirewall) @@ -241,7 +241,7 @@ def __init__(self, provider): super(GCPVMFirewallRuleService, self).__init__(provider) self._dummy_rule = None - @dispatch(event="gcp.security.vm_firewall_rules.list", + @dispatch(event="security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): rules = [] @@ -291,7 +291,7 @@ def create_with_priority(self, firewall, direction, protocol, priority, return None return rules[0] - @dispatch(event="gcp.security.vm_firewall_rules.create", + @dispatch(event="security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -299,7 +299,7 @@ def create(self, firewall, direction, protocol, from_port=None, 1000, from_port, to_port, cidr, src_dest_fw) - @dispatch(event="gcp.security.vm_firewall_rules.delete", + @dispatch(event="security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): rule = (rule if isinstance(rule, GCPVMFirewallRule) @@ -324,13 +324,13 @@ def instance_data(self): .execute()) return response['items'] - @dispatch(event="gcp.compute.vm_types.get", + @dispatch(event="compute.vm_types.get", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def get(self, vm_type_id): vm_type = self.provider.get_resource('machineTypes', vm_type_id) return GCPVMType(self.provider, vm_type) if vm_type else None - @dispatch(event="gcp.compute.vm_types.find", + @dispatch(event="compute.vm_types.find", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): matched_inst_types = [] @@ -348,7 +348,7 @@ def find(self, **kwargs): GCPVMType(self.provider, inst_type)) return matched_inst_types - @dispatch(event="gcp.compute.vm_types.list", + @dispatch(event="compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): inst_types = [GCPVMType(self.provider, inst_type) @@ -362,14 +362,14 @@ class GCPRegionService(BaseRegionService): def __init__(self, provider): super(GCPRegionService, self).__init__(provider) - @dispatch(event="gcp.compute.regions.get", + @dispatch(event="compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): region = self.provider.get_resource('regions', region_id, region=region_id) return GCPRegion(self.provider, region) if region else None - @dispatch(event="gcp.compute.regions.list", + @dispatch(event="compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): max_result = limit if limit is not None and limit < 500 else 500 @@ -465,7 +465,7 @@ class GCPInstanceService(BaseInstanceService): def __init__(self, provider): super(GCPInstanceService, self).__init__(provider) - @dispatch(event="gcp.compute.instances.create", + @dispatch(event="compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone=None, key_pair=None, vm_firewalls=None, user_data=None, @@ -616,7 +616,7 @@ def create(self, label, image, vm_type, subnet, zone=None, cb_inst = self.get(instance_id) return cb_inst - @dispatch(event="gcp.compute.instances.get", + @dispatch(event="compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): """ @@ -629,7 +629,7 @@ def get(self, instance_id): instance = self.provider.get_resource('instances', instance_id) return GCPInstance(self.provider, instance) if instance else None - @dispatch(event="gcp.compute.instances.find", + @dispatch(event="compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): """ @@ -649,7 +649,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self.provider, instances, limit=limit, marker=marker) - @dispatch(event="gcp.compute.instances.list", + @dispatch(event="compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -675,7 +675,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=instances) - @dispatch(event="gcp.compute.instances.delete", + @dispatch(event="compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): instance = (instance if isinstance(instance, GCPInstance) else @@ -755,13 +755,13 @@ class GCPNetworkService(BaseNetworkService): def __init__(self, provider): super(GCPNetworkService, self).__init__(provider) - @dispatch(event="gcp.networking.networks.get", + @dispatch(event="networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): network = self.provider.get_resource('networks', network_id) return GCPNetwork(self.provider, network) if network else None - @dispatch(event="gcp.networking.networks.find", + @dispatch(event="networking.networks.find", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): """ @@ -774,7 +774,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self._provider, list(matches), limit=limit, marker=marker) - @dispatch(event="gcp.networking.networks.list", + @dispatch(event="networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None, filter=None): # TODO: Decide whether we keep filter in 'list' @@ -790,7 +790,7 @@ def list(self, limit=None, marker=None, filter=None): return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker) - @dispatch(event="gcp.networking.networks.create", + @dispatch(event="networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): """ @@ -825,7 +825,7 @@ def get_or_create_default(self): label=GCPNetwork.CB_DEFAULT_NETWORK_LABEL, cidr_block=GCPNetwork.CB_DEFAULT_IPV4RANGE) - @dispatch(event="gcp.networking.networks.delete", + @dispatch(event="networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): # Accepts network object @@ -856,14 +856,14 @@ class GCPRouterService(BaseRouterService): def __init__(self, provider): super(GCPRouterService, self).__init__(provider) - @dispatch(event="gcp.networking.routers.get", + @dispatch(event="networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): router = self.provider.get_resource( 'routers', router_id, region=self.provider.region_name) return GCPRouter(self.provider, router) if router else None - @dispatch(event="gcp.networking.routers.find", + @dispatch(event="networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): obj_list = self @@ -872,7 +872,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self._provider, list(matches), limit=limit, marker=marker) - @dispatch(event="gcp.networking.routers.list", + @dispatch(event="networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): region = self.provider.region_name @@ -895,7 +895,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=routers) - @dispatch(event="gcp.networking.routers.create", + @dispatch(event="networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): log.debug("Creating GCP Router Service with params " @@ -920,7 +920,7 @@ def create(self, label, network): cb_router.label = label return cb_router - @dispatch(event="gcp.networking.routers.delete", + @dispatch(event="networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r = router if isinstance(router, GCPRouter) else self.get(router) @@ -954,13 +954,13 @@ class GCPSubnetService(BaseSubnetService): def __init__(self, provider): super(GCPSubnetService, self).__init__(provider) - @dispatch(event="gcp.networking.subnets.get", + @dispatch(event="networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): subnet = self.provider.get_resource('subnetworks', subnet_id) return GCPSubnet(self.provider, subnet) if subnet else None - @dispatch(event="gcp.networking.subnets.list", + @dispatch(event="networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, zone=None, limit=None, marker=None): """ @@ -988,7 +988,7 @@ def list(self, network=None, zone=None, limit=None, marker=None): return ClientPagedResultList(self.provider, subnets, limit=limit, marker=marker) - @dispatch(event="gcp.networking.subnets.create", + @dispatch(event="networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): """ @@ -1032,7 +1032,7 @@ def create(self, label, network, cidr_block, zone): cb_subnet.label = label return cb_subnet - @dispatch(event="gcp.networking.subnets.delete", + @dispatch(event="networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn = subnet if isinstance(subnet, GCPSubnet) else self.get(subnet) @@ -1149,13 +1149,13 @@ class GCPVolumeService(BaseVolumeService): def __init__(self, provider): super(GCPVolumeService, self).__init__(provider) - @dispatch(event="gcp.storage.volumes.get", + @dispatch(event="storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): vol = self.provider.get_resource('disks', volume_id) return GCPVolume(self.provider, vol) if vol else None - @dispatch(event="gcp.storage.volumes.find", + @dispatch(event="storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): """ @@ -1189,7 +1189,7 @@ def find(self, limit=None, marker=None, **kwargs): response.get('nextPageToken'), False, data=gcp_vols) - @dispatch(event="gcp.storage.volumes.list", + @dispatch(event="storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -1219,7 +1219,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=gcp_vols) - @dispatch(event="gcp.storage.volumes.create", + @dispatch(event="storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): GCPVolume.assert_valid_resource_label(label) @@ -1252,7 +1252,7 @@ def create(self, label, size, zone, snapshot=None, description=None): cb_vol = self.get(operation.get('targetLink')) return cb_vol - @dispatch(event="gcp.storage.volumes.delete", + @dispatch(event="storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, volume): volume = volume if isinstance(volume, GCPVolume) else self.get(volume) @@ -1270,13 +1270,13 @@ class GCPSnapshotService(BaseSnapshotService): def __init__(self, provider): super(GCPSnapshotService, self).__init__(provider) - @dispatch(event="gcp.storage.snapshots.get", + @dispatch(event="storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): snapshot = self.provider.get_resource('snapshots', snapshot_id) return GCPSnapshot(self.provider, snapshot) if snapshot else None - @dispatch(event="gcp.storage.snapshots.find", + @dispatch(event="storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): label = kwargs.pop('label', None) @@ -1306,7 +1306,7 @@ def find(self, limit=None, marker=None, **kwargs): response.get('nextPageToken'), False, data=snapshots) - @dispatch(event="gcp.storage.snapshots.list", + @dispatch(event="storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): max_result = limit if limit is not None and limit < 500 else 500 @@ -1326,7 +1326,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=snapshots) - @dispatch(event="gcp.storage.snapshots.create", + @dispatch(event="storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): GCPSnapshot.assert_valid_resource_label(label) @@ -1354,7 +1354,7 @@ def create(self, label, volume, description=None): cb_snap = self.get(name) return cb_snap - @dispatch(event="gcp.storage.snapshots.delete", + @dispatch(event="storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot): snapshot = (snapshot if isinstance(snapshot, GCPSnapshot) @@ -1373,7 +1373,7 @@ class GCPBucketService(BaseBucketService): def __init__(self, provider): super(GCPBucketService, self).__init__(provider) - @dispatch(event="gcp.storage.buckets.get", + @dispatch(event="storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -1384,7 +1384,7 @@ def get(self, bucket_id): bucket = self.provider.get_resource('buckets', bucket_id) return GCPBucket(self.provider, bucket) if bucket else None - @dispatch(event="gcp.storage.buckets.find", + @dispatch(event="storage.buckets.find", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def find(self, limit=None, marker=None, **kwargs): name = kwargs.pop('name', None) @@ -1399,7 +1399,7 @@ def find(self, limit=None, marker=None, **kwargs): return ClientPagedResultList(self.provider, buckets, limit=limit, marker=marker) - @dispatch(event="gcp.storage.buckets.list", + @dispatch(event="storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -1423,7 +1423,7 @@ def list(self, limit=None, marker=None): response.get('nextPageToken'), False, data=buckets) - @dispatch(event="gcp.storage.buckets.create", + @dispatch(event="storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): GCPBucket.assert_valid_resource_name(name) @@ -1450,7 +1450,7 @@ def create(self, name, location=None): else: raise - @dispatch(event="gcp.storage.buckets.delete", + @dispatch(event="storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): """ @@ -1544,17 +1544,17 @@ def __init__(self, provider): GCPGatewayService._DEFAULT_GATEWAY_NAME), 'name': GCPGatewayService._DEFAULT_GATEWAY_NAME}) - @dispatch(event="gcp.networking.gateways.get_or_create", + @dispatch(event="networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): return self._default_internet_gateway - @dispatch(event="gcp.networking.gateways.delete", + @dispatch(event="networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): pass - @dispatch(event="gcp.networking.gateways.list", + @dispatch(event="networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): gws = [self._default_internet_gateway] @@ -1568,14 +1568,14 @@ class GCPFloatingIPService(BaseFloatingIPService): def __init__(self, provider): super(GCPFloatingIPService, self).__init__(provider) - @dispatch(event="gcp.networking.floating_ips.get", + @dispatch(event="networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, floating_ip_id): fip = self.provider.get_resource('addresses', floating_ip_id) return (GCPFloatingIP(self.provider, fip) if fip else None) - @dispatch(event="gcp.networking.floating_ips.list", + @dispatch(event="networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): max_result = limit if limit is not None and limit < 500 else 500 @@ -1596,7 +1596,7 @@ def list(self, gateway, limit=None, marker=None): response.get('nextPageToken'), False, data=ips) - @dispatch(event="gcp.networking.floating_ips.create", + @dispatch(event="networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): region_name = self.provider.region_name @@ -1611,7 +1611,7 @@ def create(self, gateway): self.provider.wait_for_operation(response, region=region_name) return self.get(gateway, ip_name) - @dispatch(event="gcp.networking.floating_ips.delete", + @dispatch(event="networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): fip = (fip if isinstance(fip, GCPFloatingIP) diff --git a/cloudbridge/cloud/providers/openstack/services.py b/cloudbridge/cloud/providers/openstack/services.py index f1b5f5e6..ba223e37 100644 --- a/cloudbridge/cloud/providers/openstack/services.py +++ b/cloudbridge/cloud/providers/openstack/services.py @@ -134,7 +134,7 @@ class OpenStackKeyPairService(BaseKeyPairService): def __init__(self, provider): super(OpenStackKeyPairService, self).__init__(provider) - @dispatch(event="openstack.security.key_pairs.get", + @dispatch(event="security.key_pairs.get", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def get(self, key_pair_id): """ @@ -148,7 +148,7 @@ def get(self, key_pair_id): log.debug("KeyPair %s was not found.", key_pair_id) return None - @dispatch(event="openstack.security.key_pairs.list", + @dispatch(event="security.key_pairs.list", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -165,7 +165,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, results, limit=limit, marker=marker) - @dispatch(event="openstack.security.key_pairs.find", + @dispatch(event="security.key_pairs.find", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): name = kwargs.pop('name', None) @@ -182,7 +182,7 @@ def find(self, **kwargs): log.debug("Searching for %s in: %s", name, keypairs) return ClientPagedResultList(self.provider, results) - @dispatch(event="openstack.security.key_pairs.create", + @dispatch(event="security.key_pairs.create", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def create(self, name, public_key_material=None): OpenStackKeyPair.assert_valid_resource_name(name) @@ -201,7 +201,7 @@ def create(self, name, public_key_material=None): cb_kp.material = private_key return cb_kp - @dispatch(event="openstack.security.key_pairs.delete", + @dispatch(event="security.key_pairs.delete", priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY) def delete(self, key_pair): keypair = (key_pair if isinstance(key_pair, OpenStackKeyPair) @@ -216,7 +216,7 @@ class OpenStackVMFirewallService(BaseVMFirewallService): def __init__(self, provider): super(OpenStackVMFirewallService, self).__init__(provider) - @dispatch(event="openstack.security.vm_firewalls.get", + @dispatch(event="security.vm_firewalls.get", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def get(self, vm_firewall_id): try: @@ -228,7 +228,7 @@ def get(self, vm_firewall_id): log.debug("Firewall %s not found.", vm_firewall_id) return None - @dispatch(event="openstack.security.vm_firewalls.list", + @dispatch(event="security.vm_firewalls.list", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): firewalls = [ @@ -239,7 +239,7 @@ def list(self, limit=None, marker=None): limit=limit, marker=marker) @cb_helpers.deprecated_alias(network_id='network') - @dispatch(event="openstack.security.vm_firewalls.create", + @dispatch(event="security.vm_firewalls.create", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def create(self, label, network, description=None): OpenStackVMFirewall.assert_valid_resource_label(label) @@ -260,7 +260,7 @@ def create(self, label, network, description=None): return OpenStackVMFirewall(self.provider, sg) return None - @dispatch(event="openstack.security.vm_firewalls.delete", + @dispatch(event="security.vm_firewalls.delete", priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY) def delete(self, vm_firewall): fw = (vm_firewall if isinstance(vm_firewall, OpenStackVMFirewall) @@ -275,7 +275,7 @@ class OpenStackVMFirewallRuleService(BaseVMFirewallRuleService): def __init__(self, provider): super(OpenStackVMFirewallRuleService, self).__init__(provider) - @dispatch(event="openstack.security.vm_firewall_rules.list", + @dispatch(event="security.vm_firewall_rules.list", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def list(self, firewall, limit=None, marker=None): # pylint:disable=protected-access @@ -284,7 +284,7 @@ def list(self, firewall, limit=None, marker=None): return ClientPagedResultList(self.provider, rules, limit=limit, marker=marker) - @dispatch(event="openstack.security.vm_firewall_rules.create", + @dispatch(event="security.vm_firewall_rules.create", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def create(self, firewall, direction, protocol=None, from_port=None, to_port=None, cidr=None, src_dest_fw=None): @@ -322,7 +322,7 @@ def create(self, firewall, direction, protocol=None, from_port=None, else: raise e - @dispatch(event="openstack.security.vm_firewall_rules.delete", + @dispatch(event="security.vm_firewall_rules.delete", priority=BaseVMFirewallRuleService.STANDARD_EVENT_PRIORITY) def delete(self, firewall, rule): rule_id = (rule.id if isinstance(rule, OpenStackVMFirewallRule) @@ -364,7 +364,7 @@ class OpenStackVolumeService(BaseVolumeService): def __init__(self, provider): super(OpenStackVolumeService, self).__init__(provider) - @dispatch(event="openstack.storage.volumes.get", + @dispatch(event="storage.volumes.get", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def get(self, volume_id): try: @@ -374,7 +374,7 @@ def get(self, volume_id): log.debug("Volume %s was not found.", volume_id) return None - @dispatch(event="openstack.storage.volumes.find", + @dispatch(event="storage.volumes.find", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -396,7 +396,7 @@ def find(self, **kwargs): return oshelpers.to_server_paged_list(self.provider, cb_vols) - @dispatch(event="openstack.storage.volumes.list", + @dispatch(event="storage.volumes.list", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): cb_vols = [ @@ -407,7 +407,7 @@ def list(self, limit=None, marker=None): return oshelpers.to_server_paged_list(self.provider, cb_vols, limit) - @dispatch(event="openstack.storage.volumes.create", + @dispatch(event="storage.volumes.create", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def create(self, label, size, zone, snapshot=None, description=None): OpenStackVolume.assert_valid_resource_label(label) @@ -420,7 +420,7 @@ def create(self, label, size, zone, snapshot=None, description=None): availability_zone=zone_id, snapshot_id=snapshot_id) return OpenStackVolume(self.provider, os_vol) - @dispatch(event="openstack.storage.volumes.delete", + @dispatch(event="storage.volumes.delete", priority=BaseVolumeService.STANDARD_EVENT_PRIORITY) def delete(self, volume): volume = (volume if isinstance(volume, OpenStackVolume) @@ -435,7 +435,7 @@ class OpenStackSnapshotService(BaseSnapshotService): def __init__(self, provider): super(OpenStackSnapshotService, self).__init__(provider) - @dispatch(event="openstack.storage.snapshots.get", + @dispatch(event="storage.snapshots.get", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def get(self, snapshot_id): try: @@ -446,7 +446,7 @@ def get(self, snapshot_id): log.debug("Snapshot %s was not found.", snapshot_id) return None - @dispatch(event="openstack.storage.snapshots.find", + @dispatch(event="storage.snapshots.find", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -469,7 +469,7 @@ def find(self, **kwargs): return oshelpers.to_server_paged_list(self.provider, cb_snaps) - @dispatch(event="openstack.storage.snapshots.list", + @dispatch(event="storage.snapshots.list", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): cb_snaps = [ @@ -480,7 +480,7 @@ def list(self, limit=None, marker=None): 'marker': marker})] return oshelpers.to_server_paged_list(self.provider, cb_snaps, limit) - @dispatch(event="openstack.storage.snapshots.create", + @dispatch(event="storage.snapshots.create", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def create(self, label, volume, description=None): OpenStackSnapshot.assert_valid_resource_label(label) @@ -492,7 +492,7 @@ def create(self, label, volume, description=None): description=description) return OpenStackSnapshot(self.provider, os_snap) - @dispatch(event="openstack.storage.snapshots.delete", + @dispatch(event="storage.snapshots.delete", priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY) def delete(self, snapshot): s = (snapshot if isinstance(snapshot, OpenStackSnapshot) else @@ -507,7 +507,7 @@ class OpenStackBucketService(BaseBucketService): def __init__(self, provider): super(OpenStackBucketService, self).__init__(provider) - @dispatch(event="openstack.storage.buckets.get", + @dispatch(event="storage.buckets.get", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def get(self, bucket_id): """ @@ -524,7 +524,7 @@ def get(self, bucket_id): log.debug("Bucket %s was not found.", bucket_id) return None - @dispatch(event="openstack.storage.buckets.find", + @dispatch(event="storage.buckets.find", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): name = kwargs.pop('name', None) @@ -540,7 +540,7 @@ def find(self, **kwargs): if name in c.get("name")] return oshelpers.to_server_paged_list(self.provider, cb_buckets) - @dispatch(event="openstack.storage.buckets.list", + @dispatch(event="storage.buckets.list", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): _, container_list = self.provider.swift.get_account( @@ -550,7 +550,7 @@ def list(self, limit=None, marker=None): for c in container_list] return oshelpers.to_server_paged_list(self.provider, cb_buckets, limit) - @dispatch(event="openstack.storage.buckets.create", + @dispatch(event="storage.buckets.create", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def create(self, name, location=None): OpenStackBucket.assert_valid_resource_name(name) @@ -563,7 +563,7 @@ def create(self, name, location=None): self.provider.swift.put_container(name) return self.get(name) - @dispatch(event="openstack.storage.buckets.delete", + @dispatch(event="storage.buckets.delete", priority=BaseBucketService.STANDARD_EVENT_PRIORITY) def delete(self, bucket): b_id = bucket.id if isinstance(bucket, OpenStackBucket) else bucket @@ -747,7 +747,7 @@ def _has_root_device(self, launch_config): def create_launch_config(self): return BaseLaunchConfig(self.provider) - @dispatch(event="openstack.compute.instances.create", + @dispatch(event="compute.instances.create", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def create(self, label, image, vm_type, subnet, zone, key_pair=None, vm_firewalls=None, user_data=None, @@ -830,7 +830,7 @@ def create(self, label, image, vm_type, subnet, zone, nics=nics) return OpenStackInstance(self.provider, os_instance) - @dispatch(event="openstack.compute.instances.find", + @dispatch(event="compute.instances.find", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -850,7 +850,7 @@ def find(self, **kwargs): marker=None)] return oshelpers.to_server_paged_list(self.provider, cb_insts) - @dispatch(event="openstack.compute.instances.list", + @dispatch(event="compute.instances.list", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): """ @@ -863,7 +863,7 @@ def list(self, limit=None, marker=None): marker=marker)] return oshelpers.to_server_paged_list(self.provider, cb_insts, limit) - @dispatch(event="openstack.compute.instances.get", + @dispatch(event="compute.instances.get", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def get(self, instance_id): """ @@ -876,7 +876,7 @@ def get(self, instance_id): log.debug("Instance %s was not found.", instance_id) return None - @dispatch(event="openstack.compute.instances.delete", + @dispatch(event="compute.instances.delete", priority=BaseInstanceService.STANDARD_EVENT_PRIORITY) def delete(self, instance): ins = (instance if isinstance(instance, OpenStackInstance) else @@ -897,7 +897,7 @@ class OpenStackVMTypeService(BaseVMTypeService): def __init__(self, provider): super(OpenStackVMTypeService, self).__init__(provider) - @dispatch(event="openstack.compute.vm_types.list", + @dispatch(event="compute.vm_types.list", priority=BaseVMTypeService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): cb_itypes = [ @@ -914,14 +914,14 @@ class OpenStackRegionService(BaseRegionService): def __init__(self, provider): super(OpenStackRegionService, self).__init__(provider) - @dispatch(event="openstack.compute.regions.get", + @dispatch(event="compute.regions.get", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def get(self, region_id): log.debug("Getting OpenStack Region with the id: %s", region_id) region = (r for r in self if r.id == region_id) return next(region, None) - @dispatch(event="openstack.compute.regions.list", + @dispatch(event="compute.regions.list", priority=BaseRegionService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): # pylint:disable=protected-access @@ -987,13 +987,13 @@ class OpenStackNetworkService(BaseNetworkService): def __init__(self, provider): super(OpenStackNetworkService, self).__init__(provider) - @dispatch(event="openstack.networking.networks.get", + @dispatch(event="networking.networks.get", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def get(self, network_id): network = (n for n in self if n.id == network_id) return next(network, None) - @dispatch(event="openstack.networking.networks.list", + @dispatch(event="networking.networks.list", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): networks = [OpenStackNetwork(self.provider, network) @@ -1002,7 +1002,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker) - @dispatch(event="openstack.networking.networks.find", + @dispatch(event="networking.networks.find", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): label = kwargs.pop('label', None) @@ -1020,7 +1020,7 @@ def find(self, **kwargs): .get('networks') if network] return ClientPagedResultList(self.provider, networks) - @dispatch(event="openstack.networking.networks.create", + @dispatch(event="networking.networks.create", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def create(self, label, cidr_block): OpenStackNetwork.assert_valid_resource_label(label) @@ -1031,7 +1031,7 @@ def create(self, label, cidr_block): cb_net.label = label return cb_net - @dispatch(event="openstack.networking.networks.delete", + @dispatch(event="networking.networks.delete", priority=BaseNetworkService.STANDARD_EVENT_PRIORITY) def delete(self, network): network = (network if isinstance(network, OpenStackNetwork) else @@ -1058,13 +1058,13 @@ class OpenStackSubnetService(BaseSubnetService): def __init__(self, provider): super(OpenStackSubnetService, self).__init__(provider) - @dispatch(event="openstack.networking.subnets.get", + @dispatch(event="networking.subnets.get", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def get(self, subnet_id): subnet = (s for s in self if s.id == subnet_id) return next(subnet, None) - @dispatch(event="openstack.networking.subnets.list", + @dispatch(event="networking.subnets.list", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def list(self, network=None, limit=None, marker=None): if network: @@ -1078,7 +1078,7 @@ def list(self, network=None, limit=None, marker=None): return ClientPagedResultList(self.provider, subnets, limit=limit, marker=marker) - @dispatch(event="openstack.networking.subnets.create", + @dispatch(event="networking.subnets.create", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def create(self, label, network, cidr_block, zone): """zone param is ignored.""" @@ -1092,7 +1092,7 @@ def create(self, label, network, cidr_block, zone): cb_subnet = OpenStackSubnet(self.provider, subnet) return cb_subnet - @dispatch(event="openstack.networking.subnets.delete", + @dispatch(event="networking.subnets.delete", priority=BaseSubnetService.STANDARD_EVENT_PRIORITY) def delete(self, subnet): sn_id = subnet.id if isinstance(subnet, OpenStackSubnet) else subnet @@ -1127,14 +1127,14 @@ class OpenStackRouterService(BaseRouterService): def __init__(self, provider): super(OpenStackRouterService, self).__init__(provider) - @dispatch(event="openstack.networking.routers.get", + @dispatch(event="networking.routers.get", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def get(self, router_id): log.debug("Getting OpenStack Router with the id: %s", router_id) router = self.provider.os_conn.get_router(router_id) return OpenStackRouter(self.provider, router) if router else None - @dispatch(event="openstack.networking.routers.list", + @dispatch(event="networking.routers.list", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def list(self, limit=None, marker=None): routers = self.provider.os_conn.list_routers() @@ -1142,7 +1142,7 @@ def list(self, limit=None, marker=None): return ClientPagedResultList(self.provider, os_routers, limit=limit, marker=marker) - @dispatch(event="openstack.networking.routers.find", + @dispatch(event="networking.routers.find", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def find(self, **kwargs): obj_list = self @@ -1150,14 +1150,14 @@ def find(self, **kwargs): matches = cb_helpers.generic_find(filters, kwargs, obj_list) return ClientPagedResultList(self._provider, list(matches)) - @dispatch(event="openstack.networking.routers.create", + @dispatch(event="networking.routers.create", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def create(self, label, network): """Parameter ``network`` is not used by OpenStack.""" router = self.provider.os_conn.create_router(name=label) return OpenStackRouter(self.provider, router) - @dispatch(event="openstack.networking.routers.delete", + @dispatch(event="networking.routers.delete", priority=BaseRouterService.STANDARD_EVENT_PRIORITY) def delete(self, router): r_id = router.id if isinstance(router, OpenStackRouter) else router @@ -1186,7 +1186,7 @@ def _check_fip_connectivity(self, network, external_net): except Exception: return False - @dispatch(event="openstack.networking.gateways.get_or_create", + @dispatch(event="networking.gateways.get_or_create", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def get_or_create(self, network): """For OS, inet gtw is any net that has `external` property set.""" @@ -1197,12 +1197,12 @@ def get_or_create(self, network): return OpenStackInternetGateway(self._provider, net) return None - @dispatch(event="openstack.networking.gateways.delete", + @dispatch(event="networking.gateways.delete", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def delete(self, network, gateway): pass - @dispatch(event="openstack.networking.gateways.list", + @dispatch(event="networking.gateways.list", priority=BaseGatewayService.STANDARD_EVENT_PRIORITY) def list(self, network, limit=None, marker=None): log.debug("OpenStack listing of all current internet gateways") @@ -1218,7 +1218,7 @@ class OpenStackFloatingIPService(BaseFloatingIPService): def __init__(self, provider): super(OpenStackFloatingIPService, self).__init__(provider) - @dispatch(event="openstack.networking.floating_ips.get", + @dispatch(event="networking.floating_ips.get", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def get(self, gateway, fip_id): try: @@ -1229,7 +1229,7 @@ def get(self, gateway, fip_id): log.debug("Floating IP %s not found.", fip_id) return None - @dispatch(event="openstack.networking.floating_ips.list", + @dispatch(event="networking.floating_ips.list", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def list(self, gateway, limit=None, marker=None): fips = [OpenStackFloatingIP(self.provider, fip) @@ -1239,14 +1239,14 @@ def list(self, gateway, limit=None, marker=None): return ClientPagedResultList(self.provider, fips, limit=limit, marker=marker) - @dispatch(event="openstack.networking.floating_ips.create", + @dispatch(event="networking.floating_ips.create", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def create(self, gateway): return OpenStackFloatingIP( self.provider, self.provider.os_conn.network.create_ip( floating_network_id=gateway.id)) - @dispatch(event="openstack.networking.floating_ips.delete", + @dispatch(event="networking.floating_ips.delete", priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY) def delete(self, gateway, fip): if isinstance(fip, OpenStackFloatingIP): diff --git a/test/test_cloud_factory.py b/test/test_cloud_factory.py index 6b6b2d0b..598a6c2f 100644 --- a/test/test_cloud_factory.py +++ b/test/test_cloud_factory.py @@ -127,7 +127,7 @@ def return_incremented(self, event_args, *args, **kwargs): return self.count factory = CloudProviderFactory() - factory.middleware.add_constructor(SomeDummyClass) + factory.middleware.add_middleware_class(SomeDummyClass) provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") first_prov = factory.create_provider(provider_name, {}) # Any dispatched event should be intercepted and increment the count @@ -140,7 +140,7 @@ def return_incremented(self, event_args, *args, **kwargs): start_count + 1) class SomeDummyClassWithArgs(object): - def __init__(self, start, increment): + def __init__(self, start, increment=1): self.count = start self.increment = increment @@ -150,8 +150,9 @@ def return_incremented(self, event_args, *args, **kwargs): return self.count factory = CloudProviderFactory() - factory.middleware.add_constructor(SomeDummyClassWithArgs, - start_count, increment) + factory.middleware.add_middleware_class(SomeDummyClassWithArgs, + start_count, + increment=increment) provider_name = cb_helpers.get_env("CB_TEST_PROVIDER", "aws") first_prov = factory.create_provider(provider_name, {}) # Any dispatched event should be intercepted and increment the count