@@ -301,15 +301,15 @@ def test_021_Target_expand(self):
301
301
)
302
302
self .assertEqual (
303
303
list (parser .Target ("dom0" ).expand (system_info = self .system_info )),
304
- ["@adminvm " ],
304
+ ["dom0 " ],
305
305
)
306
306
self .assertEqual (
307
307
list (
308
308
parser .Target (
309
309
"uuid:00000000-0000-0000-0000-000000000000"
310
310
).expand (system_info = self .system_info )
311
311
),
312
- ["@adminvm " ],
312
+ ["dom0 " ],
313
313
)
314
314
self .assertEqual (
315
315
list (
@@ -354,12 +354,12 @@ def test_021_Target_expand(self):
354
354
set (parser .Target ("*" ).expand (system_info = self .system_info ))
355
355
),
356
356
[
357
- "@adminvm" ,
358
357
"@dispvm" ,
359
358
"@dispvm:default-dvm" ,
360
359
"@dispvm:test-vm3" ,
361
360
"@dispvm:test-vm4" ,
362
361
"default-dvm" ,
362
+ "dom0" ,
363
363
"test-invalid-dvm" ,
364
364
"test-no-dvm" ,
365
365
"test-relayvm1" ,
@@ -564,7 +564,14 @@ def test_100_match_single(self):
564
564
("@adminvm" , "@adminvm" , True ),
565
565
("@adminvm" , "dom0" , True ),
566
566
("dom0" , "@adminvm" , True ),
567
+ ("@adminvm" , "uuid:00000000-0000-0000-0000-000000000000" , True ),
567
568
("dom0" , "dom0" , True ),
569
+ ("test-vm3" , "dom0" , False ),
570
+ ("dom0" , "test-vm3" , False ),
571
+ ("test-vm3" , "@adminvm" , False ),
572
+ ("@adminvm" , "test-vm3" , False ),
573
+ ("test-vm3" , "uuid:00000000-0000-0000-0000-000000000000" , False ),
574
+ ("uuid:00000000-0000-0000-0000-000000000000" , "test-vm3" , False ),
568
575
("@dispvm:default-dvm" , "@dispvm:default-dvm" , True ),
569
576
("@anyvm" , "@dispvm" , True ),
570
577
("*" , "test-vm1" , True ),
@@ -583,8 +590,8 @@ def test_100_match_single(self):
583
590
("@anyvm" , "@adminvm" , False ),
584
591
("@tag:dom0-tag" , "@adminvm" , False ),
585
592
("@type:AdminVM" , "@adminvm" , False ),
586
- ("@tag:dom0-tag" , "dom0" , False ),
587
- ("@type:AdminVM" , "dom0" , False ),
593
+ ("@tag:dom0-tag" , "dom0" , True ),
594
+ ("@type:AdminVM" , "dom0" , True ),
588
595
("@tag:tag1" , "dom0" , False ),
589
596
("@dispvm" , "test-vm1" , False ),
590
597
("@dispvm" , "default-dvm" , False ),
@@ -1869,7 +1876,7 @@ def test_060_eval_to_dom0(self):
1869
1876
self .assertIsInstance (resolution , parser .AllowResolution )
1870
1877
self .assertEqual (resolution .rule , policy .rules [0 ])
1871
1878
self .assertEqual (resolution .target , "dom0" )
1872
- self .assertEqual (resolution .request .target , "@adminvm " )
1879
+ self .assertEqual (resolution .request .target , "dom0 " )
1873
1880
1874
1881
def test_061_eval_to_dom0_keyword (self ):
1875
1882
policy = parser .StringPolicy (
@@ -1883,6 +1890,45 @@ def test_061_eval_to_dom0_keyword(self):
1883
1890
self .assertEqual (resolution .target , "dom0" )
1884
1891
self .assertEqual (resolution .request .target , "@adminvm" )
1885
1892
1893
+ def test_062_eval_to_dom0_literal (self ):
1894
+ policy = parser .StringPolicy (
1895
+ policy = """\
1896
+ * * test-vm3 dom0 allow"""
1897
+ )
1898
+ resolution = policy .evaluate (self .gen_req ("test-vm3" , "dom0" ))
1899
+
1900
+ self .assertIsInstance (resolution , parser .AllowResolution )
1901
+ self .assertEqual (resolution .rule , policy .rules [0 ])
1902
+ self .assertEqual (resolution .target , "dom0" )
1903
+ self .assertEqual (resolution .request .target , "dom0" )
1904
+
1905
+ def test_063_eval_to_dom0_literal_policy (self ):
1906
+ policy = parser .StringPolicy (
1907
+ policy = """\
1908
+ * * test-vm3 dom0 allow"""
1909
+ )
1910
+ resolution = policy .evaluate (self .gen_req ("test-vm3" , "@adminvm" ))
1911
+
1912
+ self .assertIsInstance (resolution , parser .AllowResolution )
1913
+ self .assertEqual (resolution .rule , policy .rules [0 ])
1914
+ self .assertEqual (resolution .target , "dom0" )
1915
+ self .assertEqual (resolution .request .target , "@adminvm" )
1916
+
1917
+ def test_064_eval_to_dom0_deny (self ):
1918
+ names = (
1919
+ "dom0" ,
1920
+ "@adminvm" ,
1921
+ "uuid:00000000-0000-0000-0000-000000000000" ,
1922
+ )
1923
+ for target in names :
1924
+ policy = parser .StringPolicy (policy = f"* * test-vm3 test-vm2 allow" )
1925
+ with self .assertRaises (exc .AccessDenied ):
1926
+ policy .evaluate (self .gen_req ("test-vm3" , target ))
1927
+
1928
+ policy = parser .StringPolicy (policy = f"* * test-vm3 { target } allow" )
1929
+ with self .assertRaises (exc .AccessDenied ):
1930
+ policy .evaluate (self .gen_req ("test-vm3" , "test-vm2" ))
1931
+
1886
1932
def test_070_eval_to_dom0_ask_default_target (self ):
1887
1933
policy = parser .StringPolicy (
1888
1934
policy = """\
@@ -1893,7 +1939,7 @@ def test_070_eval_to_dom0_ask_default_target(self):
1893
1939
self .assertIsInstance (resolution , parser .AskResolution )
1894
1940
self .assertEqual (resolution .rule , policy .rules [0 ])
1895
1941
self .assertEqual (resolution .default_target , "dom0" )
1896
- self .assertEqual (resolution .request .target , "@adminvm " )
1942
+ self .assertEqual (resolution .request .target , "dom0 " )
1897
1943
self .assertEqual (resolution .targets_for_ask , ["dom0" ])
1898
1944
1899
1945
def test_071_eval_to_dom0_ask_default_target (self ):
@@ -1906,7 +1952,7 @@ def test_071_eval_to_dom0_ask_default_target(self):
1906
1952
self .assertIsInstance (resolution , parser .AskResolution )
1907
1953
self .assertEqual (resolution .rule , policy .rules [0 ])
1908
1954
self .assertEqual (resolution .default_target , "dom0" )
1909
- self .assertEqual (resolution .request .target , "@adminvm " )
1955
+ self .assertEqual (resolution .request .target , "dom0 " )
1910
1956
self .assertEqual (resolution .targets_for_ask , ["dom0" ])
1911
1957
1912
1958
def test_072_eval_to_dom0_ask_default_target (self ):
@@ -1919,7 +1965,7 @@ def test_072_eval_to_dom0_ask_default_target(self):
1919
1965
self .assertIsInstance (resolution , parser .AskResolution )
1920
1966
self .assertEqual (resolution .rule , policy .rules [0 ])
1921
1967
self .assertEqual (resolution .default_target , "dom0" )
1922
- self .assertEqual (resolution .request .target , "@adminvm " )
1968
+ self .assertEqual (resolution .request .target , "dom0 " )
1923
1969
self .assertEqual (resolution .targets_for_ask , ["dom0" ])
1924
1970
1925
1971
def test_073_eval_to_dom0_ask_default_target (self ):
@@ -1932,9 +1978,30 @@ def test_073_eval_to_dom0_ask_default_target(self):
1932
1978
self .assertIsInstance (resolution , parser .AskResolution )
1933
1979
self .assertEqual (resolution .rule , policy .rules [0 ])
1934
1980
self .assertEqual (resolution .default_target , "dom0" )
1935
- self .assertEqual (resolution .request .target , "@adminvm " )
1981
+ self .assertEqual (resolution .request .target , "dom0 " )
1936
1982
self .assertEqual (resolution .targets_for_ask , ["dom0" ])
1937
1983
1984
+ def test_074_eval_to_default_dom0 (self ):
1985
+ names = (
1986
+ "dom0" ,
1987
+ "@adminvm" ,
1988
+ "uuid:00000000-0000-0000-0000-000000000000" ,
1989
+ )
1990
+ for target in names :
1991
+ for default_target in names :
1992
+ policy = parser .StringPolicy (
1993
+ policy = f"* * test-vm3 @default ask target={ target } default_target={ default_target } "
1994
+ )
1995
+ resolution = policy .evaluate (
1996
+ self .gen_req ("test-vm3" , "@default" )
1997
+ )
1998
+
1999
+ self .assertIsInstance (resolution , parser .AskResolution )
2000
+ self .assertEqual (resolution .rule , policy .rules [0 ])
2001
+ self .assertEqual (resolution .default_target , "dom0" )
2002
+ self .assertEqual (resolution .request .target , "@default" )
2003
+ self .assertEqual (resolution .targets_for_ask , ["dom0" ])
2004
+
1938
2005
def test_080_eval_override_target (self ):
1939
2006
policy = parser .StringPolicy (
1940
2007
policy = """\
@@ -2034,7 +2101,9 @@ def test_088_eval_override_target_uuid_dom0(self):
2034
2101
2035
2102
self .assertIsInstance (resolution , parser .AllowResolution )
2036
2103
self .assertEqual (resolution .rule , policy .rules [0 ])
2037
- self .assertEqual (resolution .target , "dom0" )
2104
+ self .assertEqual (
2105
+ resolution .target , "uuid:00000000-0000-0000-0000-000000000000"
2106
+ )
2038
2107
self .assertEqual (resolution .request .target , "test-vm1" )
2039
2108
2040
2109
def test_089_eval_override_target_dispvm_uuid (self ):
@@ -2231,9 +2300,9 @@ async def _test_121_execute_dom0(self):
2231
2300
"""\
2232
2301
user=DEFAULT
2233
2302
result=allow
2234
- target=@adminvm
2303
+ target=dom0
2235
2304
autostart=True
2236
- requested_target=@adminvm \
2305
+ requested_target=dom0 \
2237
2306
""" ,
2238
2307
)
2239
2308
@@ -2258,7 +2327,7 @@ async def _test_121_execute_dom0_keyword(self):
2258
2327
"""\
2259
2328
user=DEFAULT
2260
2329
result=allow
2261
- target=@adminvm
2330
+ target=dom0
2262
2331
autostart=True
2263
2332
requested_target=@adminvm\
2264
2333
""" ,
0 commit comments