Skip to content

Commit

Permalink
Updated based on comments
Browse files Browse the repository at this point in the history
  • Loading branch information
JordonPhillips committed Feb 11, 2016
1 parent 0e04fff commit 1c7fea7
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 9 deletions.
6 changes: 4 additions & 2 deletions boto3/ec2/deletetags.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from boto3.resources.action import CustomModeledAction


def create_delete_tags_action(event_emitter):
def inject_delete_tags(event_emitter, **kwargs):
action_model = {
'request': {
'operation': 'DeleteTags',
Expand All @@ -24,7 +24,9 @@ def create_delete_tags_action(event_emitter):
}]
}
}
return CustomModeledAction('delete_tags', action_model, delete_tags, event_emitter)
action = CustomModeledAction(
'delete_tags', action_model, delete_tags, event_emitter)
action.inject(**kwargs)


def delete_tags(self, **kwargs):
Expand Down
4 changes: 2 additions & 2 deletions boto3/resources/action.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,8 @@ def __init__(self, action_name, action_model,
self.function = function
self.emitter = event_emitter

def inject(self, class_attributes, service_context,
resource_name, **kwargs):
def inject(self, class_attributes, service_context, event_name, **kwargs):
resource_name = event_name.rsplit(".")[-1]
action = Action(self.name, self.model, {})
self.function.__name__ = self.name
self.function.__doc__ = ActionDocstring(
Expand Down
2 changes: 1 addition & 1 deletion boto3/resources/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ def load_from_definition(self, resource_name,
self._emitter.emit(
'creating-resource-class.%s' % cls_name,
class_attributes=attrs, base_classes=base_classes,
service_context=service_context, resource_name=resource_name)
service_context=service_context)
return type(str(cls_name), tuple(base_classes), attrs)

def _load_identifiers(self, attrs, meta, resource_model, resource_name):
Expand Down
7 changes: 4 additions & 3 deletions boto3/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

import boto3
import boto3.utils
from boto3.ec2.deletetags import create_delete_tags_action

from .resources.factory import ResourceFactory

Expand Down Expand Up @@ -352,6 +351,8 @@ def _register_default_handlers(self):
boto3.utils.lazy_call(
'boto3.ec2.createtags.inject_create_tags'))

delete_tags = create_delete_tags_action(self.events)
self._session.register(
'creating-resource-class.ec2.Instance', delete_tags.inject)
'creating-resource-class.ec2.Instance',
boto3.utils.lazy_call(
'boto3.ec2.deletetags.inject_delete_tags',
event_emitter=self.events))
6 changes: 5 additions & 1 deletion boto3/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,15 @@ def import_module(name):
return sys.modules[name]


def lazy_call(full_name):
def lazy_call(full_name, **kwargs):
parent_kwargs = kwargs

def _handler(**kwargs):
module, function_name = full_name.rsplit('.', 1)
module = import_module(module)
kwargs.update(parent_kwargs)
return getattr(module, function_name)(**kwargs)

return _handler


Expand Down

0 comments on commit 1c7fea7

Please sign in to comment.