Skip to content

Commit da3c5e2

Browse files
author
caberos
committed
delete tags
1 parent 8d49cfd commit da3c5e2

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

SoftLayer/CLI/routes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@
294294
('tags:list', 'SoftLayer.CLI.tags.list:cli'),
295295
('tags:set', 'SoftLayer.CLI.tags.set:cli'),
296296
('tags:details', 'SoftLayer.CLI.tags.details:cli'),
297+
('tags:delete', 'SoftLayer.CLI.tags.delete:cli'),
297298

298299
('ticket', 'SoftLayer.CLI.ticket'),
299300
('ticket:create', 'SoftLayer.CLI.ticket.create:cli'),

SoftLayer/CLI/tags/delete.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""List Tags."""
2+
# :license: MIT, see LICENSE for more details.
3+
4+
import click
5+
6+
from SoftLayer.exceptions import SoftLayerAPIError
7+
from SoftLayer.managers.tags import TagManager
8+
from SoftLayer.CLI import environment
9+
from SoftLayer.CLI import formatting
10+
from SoftLayer import utils
11+
12+
# pylint: disable=unnecessary-lambda
13+
14+
from pprint import pprint as pp
15+
16+
17+
@click.command()
18+
@click.option('-id', required=False, show_default=False, type=int, help='identifier')
19+
@click.option('--name', required=False, default=False, type=str, show_default=False, help='tag name')
20+
@environment.pass_env
21+
def cli(env, id, name):
22+
"""delete Tag."""
23+
24+
tag_manager = TagManager(env.client)
25+
26+
if not name and id is not None:
27+
tag_name = tag_manager.get_tag(id)
28+
tag_manager.delete_tag(tag_name['name'])
29+
if name and id is None:
30+
tag_manager.delete_tag(name)

SoftLayer/fixtures/SoftLayer_Tag.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
}
1616
]
1717

18+
deleteTag = True
19+
1820
setTags = True
1921

2022
getObject = getAttachedTagsForCurrentUser[0]

SoftLayer/managers/tags.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ def reference_lookup(self, resource_table_id, tag_type):
116116
# return {}
117117
return self.client.call(service, 'getObject', id=resource_table_id)
118118

119+
def delete_tag(self, name):
120+
return self.client.call('SoftLayer_Tag', 'deleteTag', name)
121+
119122
def set_tags(self, tags, key_name, resource_id):
120123
"""Calls SoftLayer_Tag::setTags()
121124

tests/CLI/modules/tag_tests.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import mock
88

99
from SoftLayer import testing
10+
from SoftLayer.managers.tags import TagManager
1011

1112

1213
class TagCLITests(testing.TestCase):
@@ -56,3 +57,11 @@ def test_details_by_id(self):
5657
result = self.run_command(['tags', 'details', tag_id])
5758
self.assert_no_fail(result)
5859
self.assert_called_with('SoftLayer_Tag', 'getObject', identifier=tag_id)
60+
61+
def test_deleteTags_by_name(self):
62+
result = self.run_command(['tags', 'delete', '--name="test"'])
63+
self.assert_no_fail(result)
64+
65+
def test_deleteTags_by_id(self):
66+
result = self.run_command(['tags', 'delete', '-id=123456'])
67+
self.assert_no_fail(result)

0 commit comments

Comments
 (0)