added deprecate_thing_type method for IOT (#4184)
Co-authored-by: arielb <ariel.beck@cyberark.com>
This commit is contained in:
parent
1d90946072
commit
2f5a702f1f
@ -629,6 +629,15 @@ class IoTBackend(BaseBackend):
|
|||||||
thing_type = self.describe_thing_type(thing_type_name)
|
thing_type = self.describe_thing_type(thing_type_name)
|
||||||
del self.thing_types[thing_type.arn]
|
del self.thing_types[thing_type.arn]
|
||||||
|
|
||||||
|
def deprecate_thing_type(self, thing_type_name, undo_deprecate):
|
||||||
|
thing_types = [
|
||||||
|
_ for _ in self.thing_types.values() if _.thing_type_name == thing_type_name
|
||||||
|
]
|
||||||
|
if len(thing_types) == 0:
|
||||||
|
raise ResourceNotFoundException()
|
||||||
|
thing_types[0].metadata["deprecated"] = not undo_deprecate
|
||||||
|
return thing_types[0]
|
||||||
|
|
||||||
def update_thing(
|
def update_thing(
|
||||||
self,
|
self,
|
||||||
thing_name,
|
thing_name,
|
||||||
|
@ -106,6 +106,14 @@ class IoTResponse(BaseResponse):
|
|||||||
self.iot_backend.delete_thing_type(thing_type_name=thing_type_name)
|
self.iot_backend.delete_thing_type(thing_type_name=thing_type_name)
|
||||||
return json.dumps(dict())
|
return json.dumps(dict())
|
||||||
|
|
||||||
|
def deprecate_thing_type(self):
|
||||||
|
thing_type_name = self._get_param("thingTypeName")
|
||||||
|
undo_deprecate = self._get_param("undoDeprecate")
|
||||||
|
thing_type = self.iot_backend.deprecate_thing_type(
|
||||||
|
thing_type_name=thing_type_name, undo_deprecate=undo_deprecate
|
||||||
|
)
|
||||||
|
return json.dumps(thing_type.to_dict())
|
||||||
|
|
||||||
def update_thing(self):
|
def update_thing(self):
|
||||||
thing_name = self._get_param("thingName")
|
thing_name = self._get_param("thingName")
|
||||||
thing_type_name = self._get_param("thingTypeName")
|
thing_type_name = self._get_param("thingTypeName")
|
||||||
|
@ -2210,3 +2210,33 @@ class TestTopicRules:
|
|||||||
|
|
||||||
res = client.list_topic_rules()
|
res = client.list_topic_rules()
|
||||||
res.should.have.key("rules").which.should.have.length_of(0)
|
res.should.have.key("rules").which.should.have.length_of(0)
|
||||||
|
|
||||||
|
@mock_iot
|
||||||
|
def test_deprecate_undeprecate_thing_type(self):
|
||||||
|
client = boto3.client("iot", region_name="ap-northeast-1")
|
||||||
|
thing_type_name = "my-type-name"
|
||||||
|
client.create_thing_type(
|
||||||
|
thingTypeName=thing_type_name,
|
||||||
|
thingTypeProperties={"searchableAttributes": ["s1", "s2", "s3"]},
|
||||||
|
)
|
||||||
|
|
||||||
|
res = client.describe_thing_type(thingTypeName=thing_type_name)
|
||||||
|
res["thingTypeMetadata"]["deprecated"].should.equal(False)
|
||||||
|
client.deprecate_thing_type(thingTypeName=thing_type_name, undoDeprecate=False)
|
||||||
|
|
||||||
|
res = client.describe_thing_type(thingTypeName=thing_type_name)
|
||||||
|
res["thingTypeMetadata"]["deprecated"].should.equal(True)
|
||||||
|
|
||||||
|
client.deprecate_thing_type(thingTypeName=thing_type_name, undoDeprecate=True)
|
||||||
|
|
||||||
|
res = client.describe_thing_type(thingTypeName=thing_type_name)
|
||||||
|
res["thingTypeMetadata"]["deprecated"].should.equal(False)
|
||||||
|
|
||||||
|
@mock_iot
|
||||||
|
def test_deprecate_thing_type_not_exist(self):
|
||||||
|
client = boto3.client("iot", region_name="ap-northeast-1")
|
||||||
|
thing_type_name = "my-type-name"
|
||||||
|
with pytest.raises(client.exceptions.ResourceNotFoundException):
|
||||||
|
client.deprecate_thing_type(
|
||||||
|
thingTypeName=thing_type_name, undoDeprecate=False
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user