Issue 1:
Issue Type:

Bug Report

Ansible Version:

$ ansible --version

ansible 2.0.0 (devel a5dfb35) last updated 2015/06/29 16:02:56 (GMT -500)

lib/ansible/modules/core: (detached HEAD 50912c9) last updated 2015/06/25 13:21:33 (GMT -500)

lib/ansible/modules/extras: (detached HEAD dec7d95) last updated 2015/06/25 13:21:33 (GMT -500)

v1/ansible/modules/core: (detached HEAD f8d8af1) last updated 2015/06/03 00:37:54 (GMT -500)

v1/ansible/modules/extras: (detached HEAD 495ad45) last updated 2015/06/03 00:37:58 (GMT -500)

configured module search path = None

Ansible Configuration:

$ source hacking/env-setup

Environment:

OS X Yosemite 10.10.3

$ python -V

Python 2.7.6

$ pip freeze

ansible==2.0.0

coverage==3.7.1

coveralls==0.5

docopt==0.6.2

ecdsa==0.13

epdb==0.12

httplib2==0.9.1

isodate==0.5.1

Jinja2==2.7.3

kerberos==1.2.2

linecache2==1.0.0

MarkupSafe==0.23

mock==1.0.1

nose==1.3.7

paramiko==1.15.2

passlib==1.6.2

pycrypto==2.6.1

pywinrm==0.0.3

PyYAML==3.11

requests==2.7.0

six==1.9.0

traceback2==1.4.0

unittest2==1.0.1

xmltodict==0.9.2

Summary:

AttributeError: 'list' object has no attribute 'intersection'

Steps To Reproduce:

$ source hacking/env-setup
$ cd ../playbooks/
$ ansible-playbook --ask-pass --ask-sudo-pass -i testing-servers linux-servers.yml --tags "apt"
SSH password:
SUDO password[defaults to SSH password]:
PLAY: ***************************************************************************
Traceback (most recent call last):
File "/Users/tanner/projects/ansible.git/ansible/bin/ansible-playbook", line 66, in <module>
sys.exit(cli.run())
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/cli/playbook.py", line 161, in run
results = pbex.run()
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/executor/playbook_executor.py", line 127, in run
result = self._tqm.run(play=play)
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/executor/task_queue_manager.py", line 250, in run
iterator = PlayIterator(inventory=self._inventory, play=new_play, connection_info=connection_info, all_vars=all_vars)
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/executor/play_iterator.py", line 95, in __init__
new_block = block.filter_tagged_tasks(connection_info, all_vars)
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/playbook/block.py", line 318, in filter_tagged_tasks
new_block.block = evaluate_and_append_task(self.block)
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/playbook/block.py", line 313, in evaluate_and_append_task
if task.evaluate_tags(connection_info.only_tags, connection_info.skip_tags, all_vars=all_vars):
File "/Users/tanner/projects/ansible.git/ansible/lib/ansible/playbook/taggable.py", line 82, in evaluate_tags
elif tags.intersection(only_tags):
AttributeError: 'list' object has no attribute 'intersection'

Issue 2:
Via a git bisect, I have found that a recent traceback when specifying tags on the command line, was introduced in 0eb1c88 to resolve #9380

That commit references:

Use itertools instead of set for tags

Traceback (most recent call last):
File "/Users/matt/python_venvs/ansibledev/ansible/bin/ansible-playbook", line 66, in <module>
sys.exit(cli.run())
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/cli/playbook.py", line 161, in run
results = pbex.run()
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/executor/playbook_executor.py", line 127, in run
result = self._tqm.run(play=play)
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/executor/task_queue_manager.py", line 248, in run
iterator = PlayIterator(inventory=self._inventory, play=new_play, connection_info=connection_info, all_vars=all_vars)
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/executor/play_iterator.py", line 95, in __init__
new_block = block.filter_tagged_tasks(connection_info, all_vars)
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/playbook/block.py", line 318, in filter_tagged_tasks
new_block.block = evaluate_and_append_task(self.block)
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/playbook/block.py", line 313, in evaluate_and_append_task
if task.evaluate_tags(connection_info.only_tags, connection_info.skip_tags, all_vars=all_vars):
File "/Users/matt/python_venvs/ansibledev/ansible/lib/ansible/playbook/taggable.py", line 82, in evaluate_tags
elif tags.intersection(only_tags):
AttributeError: 'list' object has no attribute 'intersection'

cc @jimi-c