def list(self) -> List[ResourceGroup]: rgs = [] for name in os.listdir(self.path): try: with open(self.path / str(name) / "resource_group.json", "r", encoding="utf-8") as file: rgs.append(ResourceGroup.deserialize(json.load(file))) except FileNotFoundError: raise ResourceNotFoundError("Resource group not found") from None return rgs
def create_or_update(self, resource_group_name: str, parameters: Dict[str, Any]) -> ResourceGroup: res_group = { "id": f"/subscriptions/6c268694-47ab-43ab-b306-3c5514bc4112/resourceGroups/{resource_group_name}", "name": resource_group_name, "type": "Microsoft.Resources/resourceGroups", "properties": { "provisioningState": "Succeeded" }, } res_group.update(**parameters) (self.path / resource_group_name).mkdir(exist_ok=True) with open(self.path / resource_group_name / "resource_group.json", "w", encoding="utf-8") as file: json.dump(res_group, fp=file, indent=2) return ResourceGroup.deserialize(res_group)
def get(self, name) -> ResourceGroup: try: with open(self.path / name / "resource_group.json", "r", encoding="utf-8") as file: return ResourceGroup.deserialize(json.load(file)) except FileNotFoundError: raise ResourceNotFoundError("Resource group not found") from None