Skip to content

Commit 2dfcd80

Browse files
author
Lukáš Lalinský
committed
Allow editing of hardware server tags
1 parent dca89bd commit 2dfcd80

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

SoftLayer/CLI/server/edit.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@
1515
@click.option('--userfile', '-F',
1616
help="Read userdata from file",
1717
type=click.Path(exists=True, readable=True, resolve_path=True))
18+
@click.option('--tag', '-g',
19+
multiple=True,
20+
help="Tags to set or empty string to remove all")
1821
@click.option('--hostname', '-H', help="Host portion of the FQDN")
1922
@click.option('--userdata', '-u', help="User defined metadata string")
2023
@environment.pass_env
21-
def cli(env, identifier, domain, userfile, hostname, userdata):
24+
def cli(env, identifier, domain, userfile, tag, hostname, userdata):
2225
"""Edit hardware details."""
2326

2427
if userdata and userfile:
@@ -36,6 +39,9 @@ def cli(env, identifier, domain, userfile, hostname, userdata):
3639
with open(userfile, 'r') as userfile_obj:
3740
data['userdata'] = userfile_obj.read()
3841

42+
if tag:
43+
data['tags'] = ','.join(tag)
44+
3945
mgr = SoftLayer.HardwareManager(env.client)
4046
hw_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'hardware')
4147

SoftLayer/managers/hardware.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ def _get_ids_from_ip(self, ip):
462462
return [result['id'] for result in results]
463463

464464
def edit(self, hardware_id, userdata=None, hostname=None, domain=None,
465-
notes=None):
465+
notes=None, tags=None):
466466
"""Edit hostname, domain name, notes, user data of the hardware.
467467
468468
Parameters set to None will be ignored and not attempted to be updated.
@@ -473,13 +473,18 @@ def edit(self, hardware_id, userdata=None, hostname=None, domain=None,
473473
:param string hostname: valid hostname
474474
:param string domain: valid domain name
475475
:param string notes: notes about this particular hardware
476+
:param string tags: tags to set on the hardware as a comma separated list.
477+
Use the empty string to remove all tags.
476478
477479
"""
478480

479481
obj = {}
480482
if userdata:
481483
self.hardware.setUserMetadata([userdata], id=hardware_id)
482484

485+
if tags is not None:
486+
self.hardware.setTags(tags, id=hardware_id)
487+
483488
if hostname:
484489
obj['hostname'] = hostname
485490

0 commit comments

Comments
 (0)