Bump hacking
hacking 3.0.x is too old. Change-Id: I24423a1524de2744c5bb96a0bd7b23d5592c97a0
This commit is contained in:
parent
167b07208d
commit
c34fc8ae5d
|
@ -61,7 +61,7 @@ def get_hook_events(hc, stack_id, event_args, nested_depth=0,
|
||||||
resource_event_map[(e.stack_name, e.resource_name)] = e
|
resource_event_map[(e.stack_name, e.resource_name)] = e
|
||||||
elif e.resource_status_reason == hook_clear_event_reason:
|
elif e.resource_status_reason == hook_clear_event_reason:
|
||||||
if resource_event_map.get(stack_resource):
|
if resource_event_map.get(stack_resource):
|
||||||
del(resource_event_map[(e.stack_name, e.resource_name)])
|
del resource_event_map[(e.stack_name, e.resource_name)]
|
||||||
return list(resource_event_map.values())
|
return list(resource_event_map.values())
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,9 +84,9 @@ def get_events(hc, stack_id, event_args, nested_depth=0,
|
||||||
return events
|
return events
|
||||||
|
|
||||||
first_links = getattr(events[0], 'links', [])
|
first_links = getattr(events[0], 'links', [])
|
||||||
root_stack_link = [l for l in first_links
|
root_stack_links = [link for link in first_links
|
||||||
if l.get('rel') == 'root_stack']
|
if link.get('rel') == 'root_stack']
|
||||||
if root_stack_link:
|
if root_stack_links:
|
||||||
# response has a root_stack link, indicating this is an API which
|
# response has a root_stack link, indicating this is an API which
|
||||||
# supports nested_depth
|
# supports nested_depth
|
||||||
return events
|
return events
|
||||||
|
@ -152,8 +152,8 @@ def _get_nested_events(hc, nested_depth, stack_id, event_args):
|
||||||
|
|
||||||
|
|
||||||
def _get_stack_name_from_links(event):
|
def _get_stack_name_from_links(event):
|
||||||
links = dict((l.get('rel'),
|
links = {link.get('rel'): link.get('href')
|
||||||
l.get('href')) for l in getattr(event, 'links', []))
|
for link in getattr(event, 'links', [])}
|
||||||
href = links.get('stack')
|
href = links.get('stack')
|
||||||
if not href:
|
if not href:
|
||||||
return
|
return
|
||||||
|
@ -197,8 +197,8 @@ def poll_for_events(hc, stack_name, action=None, poll_period=5, marker=None,
|
||||||
return False
|
return False
|
||||||
|
|
||||||
phys_id = getattr(event, 'physical_resource_id', '')
|
phys_id = getattr(event, 'physical_resource_id', '')
|
||||||
links = dict((l.get('rel'),
|
links = {link.get('rel'): link.get('href')
|
||||||
l.get('href')) for l in getattr(event, 'links', []))
|
for link in getattr(event, 'links', [])}
|
||||||
stack_id = links.get('stack', phys_id).rsplit('/', 1)[-1]
|
stack_id = links.get('stack', phys_id).rsplit('/', 1)[-1]
|
||||||
return stack_id == phys_id
|
return stack_id == phys_id
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ class ResourceDotInfo(object):
|
||||||
|
|
||||||
def __init__(self, res):
|
def __init__(self, res):
|
||||||
self.resource = res
|
self.resource = res
|
||||||
links = {l['rel']: l['href'] for l in res.links}
|
links = {link['rel']: link['href'] for link in res.links}
|
||||||
self.nested_dot_id = self.dot_id(links.get('nested'), 'stack')
|
self.nested_dot_id = self.dot_id(links.get('nested'), 'stack')
|
||||||
self.stack_dot_id = self.dot_id(links.get('stack'), 'stack')
|
self.stack_dot_id = self.dot_id(links.get('stack'), 'stack')
|
||||||
self.res_dot_id = self.dot_id(links.get('self'))
|
self.res_dot_id = self.dot_id(links.get('self'))
|
||||||
|
|
|
@ -126,17 +126,17 @@ def print_list(objs, fields, formatters=None, sortby_index=0,
|
||||||
|
|
||||||
|
|
||||||
def link_formatter(links):
|
def link_formatter(links):
|
||||||
def format_link(l):
|
def format_link(link):
|
||||||
if 'rel' in l:
|
if 'rel' in link:
|
||||||
return "%s (%s)" % (l.get('href', ''), l.get('rel', ''))
|
return "%s (%s)" % (link.get('href', ''), link.get('rel', ''))
|
||||||
else:
|
else:
|
||||||
return "%s" % (l.get('href', ''))
|
return "%s" % (link.get('href', ''))
|
||||||
return '\n'.join(format_link(l) for l in links or [])
|
return '\n'.join(format_link(link) for link in links or [])
|
||||||
|
|
||||||
|
|
||||||
def resource_nested_identifier(rsrc):
|
def resource_nested_identifier(rsrc):
|
||||||
nested_link = [l for l in rsrc.links or []
|
nested_link = [link for link in rsrc.links or []
|
||||||
if l.get('rel') == 'nested']
|
if link.get('rel') == 'nested']
|
||||||
if nested_link:
|
if nested_link:
|
||||||
nested_href = nested_link[0].get('href')
|
nested_href = nested_link[0].get('href')
|
||||||
nested_identifier = nested_href.split("/")[-2:]
|
nested_identifier = nested_href.split("/")[-2:]
|
||||||
|
@ -204,11 +204,11 @@ class EventLogContext(object):
|
||||||
def get_stack_id():
|
def get_stack_id():
|
||||||
if getattr(event, 'stack_id', None) is not None:
|
if getattr(event, 'stack_id', None) is not None:
|
||||||
return event.stack_id
|
return event.stack_id
|
||||||
for l in getattr(event, 'links', []):
|
for link in getattr(event, 'links', []):
|
||||||
if l.get('rel') == 'stack':
|
if link.get('rel') == 'stack':
|
||||||
if 'href' not in l:
|
if 'href' not in link:
|
||||||
return None
|
return None
|
||||||
stack_link = l['href']
|
stack_link = link['href']
|
||||||
return stack_link.split('/')[-1]
|
return stack_link.split('/')[-1]
|
||||||
|
|
||||||
stack_id = get_stack_id()
|
stack_id = get_stack_id()
|
||||||
|
|
|
@ -64,26 +64,26 @@ class ListStackFailures(command.Command):
|
||||||
def _append_failed_resources(self, failures, resources, resource_path):
|
def _append_failed_resources(self, failures, resources, resource_path):
|
||||||
"""Recursively build list of failed resources."""
|
"""Recursively build list of failed resources."""
|
||||||
appended = False
|
appended = False
|
||||||
for r in resources:
|
for rsc in resources:
|
||||||
if not r.resource_status.endswith('FAILED'):
|
if not rsc.resource_status.endswith('FAILED'):
|
||||||
continue
|
continue
|
||||||
# determine if this resources is a nested stack
|
# determine if this resources is a nested stack
|
||||||
links_rel = list([l['rel'] for l in r.links])
|
links_rel = list([link['rel'] for link in rsc.links])
|
||||||
is_nested = 'nested' in links_rel
|
is_nested = 'nested' in links_rel
|
||||||
nested_appended = False
|
nested_appended = False
|
||||||
next_resource_path = list(resource_path)
|
next_resource_path = list(resource_path)
|
||||||
next_resource_path.append(r.resource_name)
|
next_resource_path.append(rsc.resource_name)
|
||||||
if is_nested:
|
if is_nested:
|
||||||
try:
|
try:
|
||||||
nested_resources = self.heat_client.resources.list(
|
nested_resources = self.heat_client.resources.list(
|
||||||
r.physical_resource_id)
|
rsc.physical_resource_id)
|
||||||
nested_appended = self._append_failed_resources(
|
nested_appended = self._append_failed_resources(
|
||||||
failures, nested_resources, next_resource_path)
|
failures, nested_resources, next_resource_path)
|
||||||
except exc.HTTPNotFound:
|
except exc.HTTPNotFound:
|
||||||
# there is a failed resource but no stack
|
# there is a failed resource but no stack
|
||||||
pass
|
pass
|
||||||
if not nested_appended:
|
if not nested_appended:
|
||||||
failures['.'.join(next_resource_path)] = r
|
failures['.'.join(next_resource_path)] = rsc
|
||||||
appended = True
|
appended = True
|
||||||
return appended
|
return appended
|
||||||
|
|
||||||
|
|
|
@ -1051,7 +1051,7 @@ class ShellTestUserPass(ShellBase):
|
||||||
"resources": {'1': {'name': 'r1'}},
|
"resources": {'1': {'name': 'r1'}},
|
||||||
"creation_time": "2012-10-25T01:58:47Z",
|
"creation_time": "2012-10-25T01:58:47Z",
|
||||||
"timeout_mins": timeout,
|
"timeout_mins": timeout,
|
||||||
"disable_rollback": not(enable_rollback),
|
"disable_rollback": not enable_rollback,
|
||||||
"tags": tags
|
"tags": tags
|
||||||
}}
|
}}
|
||||||
self.mock_request_post('/stacks/preview', resp_dict,
|
self.mock_request_post('/stacks/preview', resp_dict,
|
||||||
|
@ -2729,11 +2729,9 @@ class ShellTestEventsNested(ShellBase):
|
||||||
def test_shell_nested_depth_invalid_value(self):
|
def test_shell_nested_depth_invalid_value(self):
|
||||||
self.register_keystone_auth_fixture()
|
self.register_keystone_auth_fixture()
|
||||||
stack_id = 'teststack/1'
|
stack_id = 'teststack/1'
|
||||||
resource_name = 'aResource'
|
|
||||||
error = self.assertRaises(
|
error = self.assertRaises(
|
||||||
exc.CommandError, self.shell,
|
exc.CommandError, self.shell,
|
||||||
'event-list {0} --nested-depth Z'.format(
|
'event-list {0} --nested-depth Z'.format(stack_id))
|
||||||
stack_id, resource_name))
|
|
||||||
self.assertIn('--nested-depth invalid value Z', str(error))
|
self.assertIn('--nested-depth invalid value Z', str(error))
|
||||||
|
|
||||||
def test_shell_nested_depth_zero(self):
|
def test_shell_nested_depth_zero(self):
|
||||||
|
|
|
@ -40,9 +40,9 @@ class Resource(base.Resource):
|
||||||
def stack_name(self):
|
def stack_name(self):
|
||||||
if not hasattr(self, 'links'):
|
if not hasattr(self, 'links'):
|
||||||
return
|
return
|
||||||
for l in self.links:
|
for link in self.links:
|
||||||
if l['rel'] == 'stack':
|
if link['rel'] == 'stack':
|
||||||
return l['href'].split('/')[-2]
|
return link['href'].split('/')[-2]
|
||||||
|
|
||||||
|
|
||||||
class ResourceManager(stacks.StackChildManager):
|
class ResourceManager(stacks.StackChildManager):
|
||||||
|
|
|
@ -113,7 +113,7 @@ def do_stack_create(hc, args):
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
'stack_name': args.name,
|
'stack_name': args.name,
|
||||||
'disable_rollback': not(args.enable_rollback),
|
'disable_rollback': not args.enable_rollback,
|
||||||
'parameters': utils.format_all_parameters(args.parameters,
|
'parameters': utils.format_all_parameters(args.parameters,
|
||||||
args.parameter_file,
|
args.parameter_file,
|
||||||
args.template_file,
|
args.template_file,
|
||||||
|
@ -201,7 +201,7 @@ def do_stack_adopt(hc, args):
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
'stack_name': args.name,
|
'stack_name': args.name,
|
||||||
'disable_rollback': not(args.enable_rollback),
|
'disable_rollback': not args.enable_rollback,
|
||||||
'adopt_stack_data': adopt_data,
|
'adopt_stack_data': adopt_data,
|
||||||
'parameters': utils.format_parameters(args.parameters),
|
'parameters': utils.format_parameters(args.parameters),
|
||||||
'files': files,
|
'files': files,
|
||||||
|
@ -262,7 +262,7 @@ def do_stack_preview(hc, args):
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
'stack_name': args.name,
|
'stack_name': args.name,
|
||||||
'disable_rollback': not(args.enable_rollback),
|
'disable_rollback': not args.enable_rollback,
|
||||||
'timeout_mins': args.timeout,
|
'timeout_mins': args.timeout,
|
||||||
'parameters': utils.format_all_parameters(args.parameters,
|
'parameters': utils.format_all_parameters(args.parameters,
|
||||||
args.parameter_file,
|
args.parameter_file,
|
||||||
|
@ -543,7 +543,7 @@ def do_stack_update(hc, args):
|
||||||
except ValueError as ex:
|
except ValueError as ex:
|
||||||
raise exc.CommandError(str(ex))
|
raise exc.CommandError(str(ex))
|
||||||
else:
|
else:
|
||||||
fields['disable_rollback'] = not(rollback)
|
fields['disable_rollback'] = not rollback
|
||||||
# TODO(pshchelo): remove the following 'else' clause after deprecation
|
# TODO(pshchelo): remove the following 'else' clause after deprecation
|
||||||
# period of --enable-rollback switch and assign -r shortcut to --rollback
|
# period of --enable-rollback switch and assign -r shortcut to --rollback
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
# The order of packages is significant, because pip processes them in the order
|
|
||||||
# of appearance. Changing the order has an impact on the overall integration
|
|
||||||
# process, which may cause wedges in the gate later.
|
|
||||||
|
|
||||||
# Hacking already pins down pep8, pyflakes and flake8
|
# Hacking already pins down pep8, pyflakes and flake8
|
||||||
hacking>=3.0.1,<3.1.0 # Apache-2.0
|
hacking>=6.1.0,<6.2.0 # Apache-2.0
|
||||||
coverage!=4.4,>=4.0 # Apache-2.0
|
coverage!=4.4,>=4.0 # Apache-2.0
|
||||||
fixtures>=3.0.0 # Apache-2.0/BSD
|
fixtures>=3.0.0 # Apache-2.0/BSD
|
||||||
requests-mock>=1.2.0 # Apache-2.0
|
requests-mock>=1.2.0 # Apache-2.0
|
||||||
|
|
Loading…
Reference in New Issue