create resource nest
This commit is contained in:
		
							parent
							
								
									f55cfef16c
								
							
						
					
					
						commit
						e458ecc0c1
					
				|  | @ -152,6 +152,21 @@ class AdgClient: | ||||||
|             raise Exception("Failed to create deadock resolver", |             raise Exception("Failed to create deadock resolver", | ||||||
|                             res.stdout, res.args) |                             res.stdout, res.args) | ||||||
| 
 | 
 | ||||||
|  |     def create_resource_nest(self, name: str, child_nest_name: str, location: int, envelope: int, system: str = ""): | ||||||
|  |         if not system: | ||||||
|  |             system = self.system_name | ||||||
|  | 
 | ||||||
|  |         res = self._run(["crn", | ||||||
|  |                          "-s", f"{system}", | ||||||
|  |                          "-n", f"{name}", | ||||||
|  |                          "-c", f"{child_nest_name}", | ||||||
|  |                          "-l", f"{location}", | ||||||
|  |                          "-e", f"{envelope}"]) | ||||||
|  | 
 | ||||||
|  |         if res.returncode > 0: | ||||||
|  |             raise Exception("Failed to create resource nest", | ||||||
|  |                             res.stdout, res.args) | ||||||
|  | 
 | ||||||
|     def _create_unique_database_name(self, prefix: str) -> str: |     def _create_unique_database_name(self, prefix: str) -> str: | ||||||
|         MAX_ATTEMPTS = 100 |         MAX_ATTEMPTS = 100 | ||||||
|         databases = self.get_databases() |         databases = self.get_databases() | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								cache.py
								
								
								
								
							
							
						
						
									
										1
									
								
								cache.py
								
								
								
								
							|  | @ -15,6 +15,7 @@ class Cache: | ||||||
|         if name in self._cache: |         if name in self._cache: | ||||||
|             return path.abspath(path.join(self.dir, self._cache[name])) |             return path.abspath(path.join(self.dir, self._cache[name])) | ||||||
| 
 | 
 | ||||||
|  |         print(f"Trying to fetch driver: {name}") | ||||||
|         try: |         try: | ||||||
|             driver = fetch.get_driver_by_exact_name(name) |             driver = fetch.get_driver_by_exact_name(name) | ||||||
|             file = fetch.download_driver(driver, self.dir) |             file = fetch.download_driver(driver, self.dir) | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								main.py
								
								
								
								
							
							
						
						
									
										5
									
								
								main.py
								
								
								
								
							|  | @ -1,14 +1,17 @@ | ||||||
| from adg_control import AdgClient, ADG_EXE, ADG_DIR | from adg_control import AdgClient, ADG_EXE, ADG_DIR | ||||||
| from parser import Parser | from parser import Parser | ||||||
| from cache import Cache | from cache import Cache | ||||||
|  | from sys import argv | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def main(): | def main(): | ||||||
|     parser = Parser("./test") |     print(argv[1]) | ||||||
|  |     parser = Parser(argv[1]) | ||||||
|     client = AdgClient(ADG_EXE, ADG_DIR) |     client = AdgClient(ADG_EXE, ADG_DIR) | ||||||
|     cache = Cache() |     cache = Cache() | ||||||
| 
 | 
 | ||||||
|     for command in parser.commands: |     for command in parser.commands: | ||||||
|  |         print(command.type) | ||||||
|         command.execute(client, cache) |         command.execute(client, cache) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								parser.py
								
								
								
								
							
							
						
						
									
										25
									
								
								parser.py
								
								
								
								
							|  | @ -10,7 +10,8 @@ class CommandType(StrEnum): | ||||||
|     NORMAL = auto(), |     NORMAL = auto(), | ||||||
|     NEWSYSTEM = auto(), |     NEWSYSTEM = auto(), | ||||||
|     HOTEL = auto(), |     HOTEL = auto(), | ||||||
|     DEADLOCK = auto() |     DEADLOCK = auto(), | ||||||
|  |     RESOURCENEST = auto(), | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class Command(): | class Command(): | ||||||
|  | @ -28,6 +29,8 @@ class Command(): | ||||||
|                 self._init_hotel(**kwargs) |                 self._init_hotel(**kwargs) | ||||||
|             elif self.type == CommandType.DEADLOCK: |             elif self.type == CommandType.DEADLOCK: | ||||||
|                 self._init_deadlock(**kwargs) |                 self._init_deadlock(**kwargs) | ||||||
|  |             elif self.type == CommandType.RESOURCENEST: | ||||||
|  |                 self._init_resourcenest(**kwargs) | ||||||
|         except KeyError as e: |         except KeyError as e: | ||||||
|             raise Exception("Required argument not found!", e) |             raise Exception("Required argument not found!", e) | ||||||
| 
 | 
 | ||||||
|  | @ -43,6 +46,8 @@ class Command(): | ||||||
|                 self._execute_hotel(client, cache) |                 self._execute_hotel(client, cache) | ||||||
|             case CommandType.DEADLOCK: |             case CommandType.DEADLOCK: | ||||||
|                 self._execute_deadlock(client, cache) |                 self._execute_deadlock(client, cache) | ||||||
|  |             case CommandType.RESOURCENEST: | ||||||
|  |                 self._execute_resourcenest(client, cache) | ||||||
| 
 | 
 | ||||||
|     def _init_newdb(self, **kwargs): |     def _init_newdb(self, **kwargs): | ||||||
|         self.name = kwargs["name"] |         self.name = kwargs["name"] | ||||||
|  | @ -99,6 +104,15 @@ class Command(): | ||||||
|         if "host_name" in kwargs: |         if "host_name" in kwargs: | ||||||
|             self.host_name = kwargs["host_name"] |             self.host_name = kwargs["host_name"] | ||||||
| 
 | 
 | ||||||
|  |     def _init_resourcenest(self, **kwargs): | ||||||
|  |         print(kwargs) | ||||||
|  |         self.name = kwargs["name"] | ||||||
|  |         self.child_nest_name = kwargs["child_nest_name"] | ||||||
|  |         self.location = kwargs["location"] | ||||||
|  |         self.envelope = kwargs["envelope"] | ||||||
|  |         if "system" in kwargs: | ||||||
|  |             self.system = kwargs["system"] | ||||||
|  | 
 | ||||||
|     def _execute_newdb(self, client: AdgClient, cache: Cache): |     def _execute_newdb(self, client: AdgClient, cache: Cache): | ||||||
|         client.create_database(self.name) |         client.create_database(self.name) | ||||||
| 
 | 
 | ||||||
|  | @ -150,6 +164,15 @@ class Command(): | ||||||
|             system=self.system if hasattr(self, "system") else "" |             system=self.system if hasattr(self, "system") else "" | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|  |     def _execute_resourcenest(self, client: AdgClient, cache: Cache): | ||||||
|  |         client.create_resource_nest( | ||||||
|  |             self.name, | ||||||
|  |             self.child_nest_name, | ||||||
|  |             self.location, | ||||||
|  |             self.envelope, | ||||||
|  |             system=self.system if hasattr(self, "system") else "" | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class Parser(): | class Parser(): | ||||||
|     def __init__(self, path: str): |     def __init__(self, path: str): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue