77from aiopslab .service .kubectl import KubeCtl
88from aiopslab .service .apps .hotelres import HotelReservation
99from aiopslab .service .apps .socialnet import SocialNetwork
10+ from aiopslab .service .apps .astronomy_shop import AstronomyShop
1011from aiopslab .generators .workload .wrk import Wrk
1112from aiopslab .generators .fault .inject_noop import NoopFaultInjector
1213from aiopslab .session import SessionItem
1718
1819class NoOpBaseTask :
1920 def __init__ (self , app_name : str = "hotel" ):
20- if app_name == "hotel" :
21+ self .app_name = app_name
22+
23+ if self .app_name == "hotel" :
2124 self .app = HotelReservation ()
2225 self .payload_script = (
2326 TARGET_MICROSERVICES
2427 / "hotelReservation/wrk2/scripts/hotel-reservation/mixed-workload_type_1.lua"
2528 )
2629 self .faulty_service = "PLACEHOLDER"
27- elif app_name == "social" :
30+ elif self . app_name == "social" :
2831 self .app = SocialNetwork ()
2932 self .payload_script = (
3033 TARGET_MICROSERVICES
3134 / "socialNetwork/wrk2/scripts/social-network/compose-post.lua"
3235 )
3336 self .faulty_service = "PLACEHOLDER"
37+ elif self .app_name == "astronomy_shop" :
38+ self .app = AstronomyShop ()
39+ self .faulty_service = "PLACEHOLDER"
3440 else :
3541 raise ValueError (f"Unsupported app_name: { app_name } " )
3642
@@ -39,14 +45,18 @@ def __init__(self, app_name: str = "hotel"):
3945 self .injector = NoopFaultInjector (namespace = self .namespace )
4046
4147 def start_workload (self ):
42- print ("== Start Workload ==" )
43- frontend_url = get_frontend_url (self .app )
48+ if self .app_name != 'astronomy_shop' :
49+ print ("== Start Workload ==" )
50+ frontend_url = get_frontend_url (self .app )
4451
45- wrk = Wrk (rate = 10 , dist = "exp" , connections = 2 , duration = 10 , threads = 2 )
46- wrk .start_workload (
47- payload_script = self .payload_script ,
48- url = f"{ frontend_url } " ,
49- )
52+ wrk = Wrk (rate = 10 , dist = "exp" , connections = 2 , duration = 10 , threads = 2 )
53+ wrk .start_workload (
54+ payload_script = self .payload_script ,
55+ url = f"{ frontend_url } " ,
56+ )
57+ else :
58+ # Skip workload since astronomy shop has its own workload generator
59+ print ("== Workload Skipped ==" )
5060
5161 def inject_fault (self ):
5262 print ("== Fault Injection ==" )
0 commit comments