Commit d8ce502c authored by tarun2512's avatar tarun2512

second commit

parent d332b79d
...@@ -4,4 +4,6 @@ LOGIN_TOKEN=ca2b218efefe4a1cbf6c79f2e361691c ...@@ -4,4 +4,6 @@ LOGIN_TOKEN=ca2b218efefe4a1cbf6c79f2e361691c
USER_ID=fpWx7Aw4NJzzXWxcE6w5dU USER_ID=fpWx7Aw4NJzzXWxcE6w5dU
PROJECT_ID=project_448 PROJECT_ID=project_448
APP_NAME=FT Energy Manager APP_NAME=FT Energy Manager
PREFIX=project_448 PREFIX=project_448
\ No newline at end of file BASE_PATH=/code/data
MOUNT_DIR=app_zip
\ No newline at end of file
...@@ -20,6 +20,8 @@ USER_ID = os.environ.get("USER_ID") ...@@ -20,6 +20,8 @@ USER_ID = os.environ.get("USER_ID")
PROJECT_ID = os.environ.get("PROJECT_ID") PROJECT_ID = os.environ.get("PROJECT_ID")
APP_NAME = os.environ.get("APP_NAME") APP_NAME = os.environ.get("APP_NAME")
PREFIX = os.environ.get("PREFIX") PREFIX = os.environ.get("PREFIX")
BASE_PATH = os.environ.get("BASE_PATH")
MOUNT_DIR = os.environ.get("MOUNT_DIR")
client = MongoClient(MONGO_URI) client = MongoClient(MONGO_URI)
...@@ -115,7 +117,7 @@ def dashboard_ids_fetch(children_data): ...@@ -115,7 +117,7 @@ def dashboard_ids_fetch(children_data):
return module_ids return module_ids
def dashboard_categories_zip(dashboard_category_ids, app_name, prefix=None): def dashboard_categories_zip(dashboard_category_ids, folder_path, prefix=None):
connection = Connection(prefix=prefix) connection = Connection(prefix=prefix)
database = Database(prefix=prefix) database = Database(prefix=prefix)
dashboard_category_details = list( dashboard_category_details = list(
...@@ -123,9 +125,8 @@ def dashboard_categories_zip(dashboard_category_ids, app_name, prefix=None): ...@@ -123,9 +125,8 @@ def dashboard_categories_zip(dashboard_category_ids, app_name, prefix=None):
{"dashboard_category_id": {"$in": dashboard_category_ids}, "project_id": prefix}, {"_id": 0} {"dashboard_category_id": {"$in": dashboard_category_ids}, "project_id": prefix}, {"_id": 0}
) )
) )
os.makedirs(app_name, exist_ok=True)
dashboard_category_folder = f"{database.widget.name}.category" dashboard_category_folder = f"{database.widget.name}.category"
dashboard_category_data_folder_path = os.path.join(app_name, dashboard_category_folder) dashboard_category_data_folder_path = os.path.join(folder_path, dashboard_category_folder)
os.makedirs(dashboard_category_data_folder_path) os.makedirs(dashboard_category_data_folder_path)
app_data_file_path = os.path.join(dashboard_category_data_folder_path, f"{dashboard_category_folder}.json") app_data_file_path = os.path.join(dashboard_category_data_folder_path, f"{dashboard_category_folder}.json")
with open(app_data_file_path, 'w') as file: with open(app_data_file_path, 'w') as file:
...@@ -133,7 +134,7 @@ def dashboard_categories_zip(dashboard_category_ids, app_name, prefix=None): ...@@ -133,7 +134,7 @@ def dashboard_categories_zip(dashboard_category_ids, app_name, prefix=None):
file.close() file.close()
def dashboard_zip(dashboard_ids, app_name, prefix=None): def dashboard_zip(dashboard_ids, folder_path, prefix=None):
connection = Connection(prefix=prefix) connection = Connection(prefix=prefix)
database = Database(prefix=prefix) database = Database(prefix=prefix)
dashboard_details = list( dashboard_details = list(
...@@ -145,10 +146,9 @@ def dashboard_zip(dashboard_ids, app_name, prefix=None): ...@@ -145,10 +146,9 @@ def dashboard_zip(dashboard_ids, app_name, prefix=None):
for dashboard in dashboard_details: for dashboard in dashboard_details:
widget_ids.extend(dashboard.get("widget_order")) widget_ids.extend(dashboard.get("widget_order"))
dashboard_categories_list.append(dashboard.get("category")) dashboard_categories_list.append(dashboard.get("category"))
dashboard_categories_zip(dashboard_categories_list, app_name, prefix) dashboard_categories_zip(dashboard_categories_list, folder_path, prefix)
os.makedirs(app_name, exist_ok=True)
dashboard_folder = f"{database.widget.name}.dashboard" dashboard_folder = f"{database.widget.name}.dashboard"
dashboard_data_folder_path = os.path.join(app_name, dashboard_folder) dashboard_data_folder_path = os.path.join(folder_path, dashboard_folder)
os.makedirs(dashboard_data_folder_path) os.makedirs(dashboard_data_folder_path)
app_data_file_path = os.path.join(dashboard_data_folder_path, f"{dashboard_folder}.json") app_data_file_path = os.path.join(dashboard_data_folder_path, f"{dashboard_folder}.json")
with open(app_data_file_path, 'w') as file: with open(app_data_file_path, 'w') as file:
...@@ -157,7 +157,7 @@ def dashboard_zip(dashboard_ids, app_name, prefix=None): ...@@ -157,7 +157,7 @@ def dashboard_zip(dashboard_ids, app_name, prefix=None):
return list(set(widget_ids)) return list(set(widget_ids))
def widget_zip(widget_ids, app_name, prefix=None): def widget_zip(widget_ids, folder_path, prefix=None):
connection = Connection(prefix=prefix) connection = Connection(prefix=prefix)
database = Database(prefix=prefix) database = Database(prefix=prefix)
widget_details = list( widget_details = list(
...@@ -165,9 +165,8 @@ def widget_zip(widget_ids, app_name, prefix=None): ...@@ -165,9 +165,8 @@ def widget_zip(widget_ids, app_name, prefix=None):
{"widget_id": {"$in": widget_ids}, "project_id": prefix}, {"_id": 0} {"widget_id": {"$in": widget_ids}, "project_id": prefix}, {"_id": 0}
) )
) )
os.makedirs(app_name, exist_ok=True)
widget_folder = f"{database.widget.name}.widget" widget_folder = f"{database.widget.name}.widget"
widget_data_folder_path = os.path.join(app_name, widget_folder) widget_data_folder_path = os.path.join(folder_path, widget_folder)
os.makedirs(widget_data_folder_path) os.makedirs(widget_data_folder_path)
app_data_file_path = os.path.join(widget_data_folder_path, f"{widget_folder}.json") app_data_file_path = os.path.join(widget_data_folder_path, f"{widget_folder}.json")
with open(app_data_file_path, 'w') as file: with open(app_data_file_path, 'w') as file:
...@@ -175,7 +174,7 @@ def widget_zip(widget_ids, app_name, prefix=None): ...@@ -175,7 +174,7 @@ def widget_zip(widget_ids, app_name, prefix=None):
file.close() file.close()
def app_category_zip(app_data, app_name, prefix=None): def app_category_zip(app_data, folder_path, prefix=None):
connection = Connection(prefix=prefix) connection = Connection(prefix=prefix)
database = Database(prefix=prefix) database = Database(prefix=prefix)
app_category_details = list( app_category_details = list(
...@@ -183,9 +182,8 @@ def app_category_zip(app_data, app_name, prefix=None): ...@@ -183,9 +182,8 @@ def app_category_zip(app_data, app_name, prefix=None):
{"app_category_id": app_data.get("app_category_id"), "project_id": prefix}, {"_id": 0} {"app_category_id": app_data.get("app_category_id"), "project_id": prefix}, {"_id": 0}
) )
) )
os.makedirs(app_name, exist_ok=True)
app_category_folder = f"{database.configuration.name}.category_apps" app_category_folder = f"{database.configuration.name}.category_apps"
app_category_data_folder_path = os.path.join(app_name, app_category_folder) app_category_data_folder_path = os.path.join(folder_path, app_category_folder)
os.makedirs(app_category_data_folder_path) os.makedirs(app_category_data_folder_path)
app_data_file_path = os.path.join(app_category_data_folder_path, f"{app_category_folder}.json") app_data_file_path = os.path.join(app_category_data_folder_path, f"{app_category_folder}.json")
with open(app_data_file_path, 'w') as file: with open(app_data_file_path, 'w') as file:
...@@ -199,7 +197,7 @@ def modify_app_data(app_data): ...@@ -199,7 +197,7 @@ def modify_app_data(app_data):
app_data["access_list"]["access_groups"] = [] app_data["access_list"]["access_groups"] = []
def dashboard_image_zip(dashboard_ids, app_name, prefix=None): def dashboard_image_zip(dashboard_ids, folder_path, prefix=None):
database = Database(prefix=prefix) database = Database(prefix=prefix)
for dashboard_id in dashboard_ids: for dashboard_id in dashboard_ids:
image_url = f"{dashboard_image_url}{dashboard_id}&project_id={prefix}&lastmod={time.time() * 1000}" image_url = f"{dashboard_image_url}{dashboard_id}&project_id={prefix}&lastmod={time.time() * 1000}"
...@@ -211,7 +209,7 @@ def dashboard_image_zip(dashboard_ids, app_name, prefix=None): ...@@ -211,7 +209,7 @@ def dashboard_image_zip(dashboard_ids, app_name, prefix=None):
headers=cookie, headers=cookie,
) )
dashboard_folder = f"{database.widget.name}.dashboard" dashboard_folder = f"{database.widget.name}.dashboard"
dashboard_data_folder_path = os.path.join(app_name, dashboard_folder) dashboard_data_folder_path = os.path.join(folder_path, dashboard_folder)
if response.status_code == 200: if response.status_code == 200:
# Save the content of the response to a local file # Save the content of the response to a local file
with open(os.path.join(dashboard_data_folder_path, f"{dashboard_id}.jpg"), 'wb') as file: with open(os.path.join(dashboard_data_folder_path, f"{dashboard_id}.jpg"), 'wb') as file:
...@@ -221,7 +219,7 @@ def dashboard_image_zip(dashboard_ids, app_name, prefix=None): ...@@ -221,7 +219,7 @@ def dashboard_image_zip(dashboard_ids, app_name, prefix=None):
print(f"Failed to download image. Status code: {response.status_code}") print(f"Failed to download image. Status code: {response.status_code}")
def app_image_zip(images, app_name): def app_image_zip(images, folder_path):
for image_name, image in images.items(): for image_name, image in images.items():
image_url = f"{app_image_url}{image}&time={time.time() * 1000}" image_url = f"{app_image_url}{image}&time={time.time() * 1000}"
with httpx.Client() as client: with httpx.Client() as client:
...@@ -231,7 +229,7 @@ def app_image_zip(images, app_name): ...@@ -231,7 +229,7 @@ def app_image_zip(images, app_name):
cookies=cookie, cookies=cookie,
headers=cookie, headers=cookie,
) )
app_image_folder_path = os.path.join(app_name, image_name) app_image_folder_path = os.path.join(folder_path, image_name)
os.makedirs(app_image_folder_path) os.makedirs(app_image_folder_path)
if response.status_code == 200: if response.status_code == 200:
# Save the content of the response to a local file # Save the content of the response to a local file
...@@ -245,6 +243,8 @@ def app_image_zip(images, app_name): ...@@ -245,6 +243,8 @@ def app_image_zip(images, app_name):
def app_zip(app_name, prefix=None): def app_zip(app_name, prefix=None):
connection = Connection(prefix=prefix) connection = Connection(prefix=prefix)
database = Database(prefix=prefix) database = Database(prefix=prefix)
folder_path = os.path.join(BASE_PATH, MOUNT_DIR, app_name)
os.makedirs(folder_path, exist_ok=True)
app_data = connection.customer_apps.find_one({"app_name": app_name}, {"_id": 0}) app_data = connection.customer_apps.find_one({"app_name": app_name}, {"_id": 0})
lookups = app_data.get("lookups", []) lookups = app_data.get("lookups", [])
lookup_details = list( lookup_details = list(
...@@ -253,18 +253,17 @@ def app_zip(app_name, prefix=None): ...@@ -253,18 +253,17 @@ def app_zip(app_name, prefix=None):
) )
) )
dashboard_ids_publish = dashboard_ids_fetch(app_data.get("children", [])) dashboard_ids_publish = dashboard_ids_fetch(app_data.get("children", []))
widget_ids = dashboard_zip(dashboard_ids_publish, app_name, prefix) widget_ids = dashboard_zip(dashboard_ids_publish, folder_path, prefix)
dashboard_image_zip(dashboard_ids_publish, app_name, prefix) dashboard_image_zip(dashboard_ids_publish, folder_path, prefix)
widget_zip(widget_ids, app_name, prefix) widget_zip(widget_ids, folder_path, prefix)
images = {'app_image': app_data.get("meta", {}).get("image", {}).get("file_name", ""), images = {'app_image': app_data.get("meta", {}).get("image", {}).get("file_name", ""),
'app_logo': app_data.get("meta", {}).get("app_logo", {}).get("file_name", "")} 'app_logo': app_data.get("meta", {}).get("app_logo", {}).get("file_name", "")}
app_category_zip(app_data, app_name, prefix) app_category_zip(app_data, folder_path, prefix)
modify_app_data(app_data) modify_app_data(app_data)
app_image_zip(images, app_name) app_image_zip(images, folder_path)
os.makedirs(app_name, exist_ok=True)
app_data_folder = f"{database.configuration.name}.customer_apps" app_data_folder = f"{database.configuration.name}.customer_apps"
app_data_folder_path = os.path.join(app_name, app_data_folder) app_data_folder_path = os.path.join(folder_path, app_data_folder)
os.makedirs(app_data_folder_path) os.makedirs(app_data_folder_path)
app_data_file_path = os.path.join(app_data_folder_path, f"{app_data_folder}.json") app_data_file_path = os.path.join(app_data_folder_path, f"{app_data_folder}.json")
with open(app_data_file_path, 'w') as file: with open(app_data_file_path, 'w') as file:
...@@ -277,8 +276,7 @@ def app_zip(app_name, prefix=None): ...@@ -277,8 +276,7 @@ def app_zip(app_name, prefix=None):
lookup_data_file_path = os.path.join(lookup_data_folder_path, f"{lookup_data_folder}.json") lookup_data_file_path = os.path.join(lookup_data_folder_path, f"{lookup_data_folder}.json")
with open(lookup_data_file_path, 'w') as file: with open(lookup_data_file_path, 'w') as file:
json.dump(lookup_details, file) json.dump(lookup_details, file)
folder_path = os.path.join(os.getcwd(), app_name) zip_folder(folder_path, app_name)
zip_folder(folder_path, folder_path)
shutil.rmtree(folder_path) shutil.rmtree(folder_path)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment