Best Python code snippet using localstack_python
cloudformation_api.py
Source:cloudformation_api.py  
...130        }131        self.events.insert(0, event)132    def set_resource_status(self, resource_id: str, status: str, physical_res_id: str = None):133        """Update the deployment status of the given resource ID and publish a corresponding stack event."""134        self._set_resource_status_details(resource_id, physical_res_id=physical_res_id)135        state = self.resource_states.setdefault(resource_id, {})136        state["PreviousResourceStatus"] = state.get("ResourceStatus")137        state["ResourceStatus"] = status138        state["LastUpdatedTimestamp"] = timestamp_millis()139        self.add_stack_event(resource_id, physical_res_id, status)140    def _set_resource_status_details(self, resource_id: str, physical_res_id: str = None):141        """Helper function to ensure that the status details for the given resource ID are up-to-date."""142        resource = self.resources.get(resource_id)143        if resource is None:144            # make sure we delete the states for any non-existing/deleted resources145            self._resource_states.pop(resource_id, None)146            return147        state = self._resource_states.setdefault(resource_id, {})148        attr_defaults = (149            ("LogicalResourceId", resource_id),150            ("PhysicalResourceId", physical_res_id),151        )152        for res in [resource, state]:153            for attr, default in attr_defaults:154                res[attr] = res.get(attr) or default155        state["StackName"] = state.get("StackName") or self.stack_name156        state["StackId"] = state.get("StackId") or self.stack_id157        state["ResourceType"] = state.get("ResourceType") or self.resources[resource_id].get("Type")158        return state159    def resource_status(self, resource_id: str):160        result = self._lookup(self.resource_states, resource_id)161        return result162    @property163    def resource_states(self):164        for resource_id in list(self._resource_states.keys()):165            self._set_resource_status_details(resource_id)166        return self._resource_states167    @property168    def stack_name(self):169        return self.metadata["StackName"]170    @property171    def stack_id(self):172        return self.metadata["StackId"]173    # TODO: potential performance issues due to many stack_parameters calls (cache or limit actual invocations)174    @property175    def resources(self):  # TODO: not actually resources, split apart176        """Return dict of resources, parameters, conditions, and other stack metadata."""177        result = dict(self.template_resources)178        def add_params(defaults=True):179            for param in self.stack_parameters(defaults=defaults):...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
