@@ -1396,7 +1396,8 @@ def manifest_with_errand(deployment_name='errand')
13961396 'id' => "instance-#{ instance_idx } " ,
13971397 'active' => vm_is_active ,
13981398 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ instance_idx ] ,
1399- 'ips' => [ "#{ instance_idx } .#{ instance_idx } .#{ vm_by_instance } .#{ vm_by_instance } /32" ] ,
1399+ 'ips' => [ "#{ instance_idx } .#{ instance_idx } .#{ vm_by_instance } .#{ vm_by_instance } " ] ,
1400+ 'ips_cidr' => [ "#{ instance_idx } .#{ instance_idx } .#{ vm_by_instance } .#{ vm_by_instance } /32" ] ,
14001401 'vm_created_at' => time . utc . iso8601 ,
14011402 'permanent_nats_credentials' => false ,
14021403 )
@@ -1478,7 +1479,71 @@ def manifest_with_errand(deployment_name='errand')
14781479 'id' => "instance-#{ instance_idx } " ,
14791480 'active' => vm_is_active ,
14801481 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ instance_idx ] ,
1481- 'ips' => [ "1.2.#{ instance_idx } .#{ vm_by_instance } /32" ] ,
1482+ 'ips' => [ "1.2.#{ instance_idx } .#{ vm_by_instance } " ] ,
1483+ 'ips_cidr' => [ "1.2.#{ instance_idx } .#{ vm_by_instance } /32" ] ,
1484+ 'vm_created_at' => time . utc . iso8601 ,
1485+ 'permanent_nats_credentials' => false ,
1486+ )
1487+ end
1488+ end
1489+
1490+ it 'returns ip addresses with prefix as ips_cidr for a vm' do
1491+ 9 . times do |i |
1492+ instance_params = {
1493+ 'deployment_id' => deployment . id ,
1494+ 'job' => "job-#{ i } " ,
1495+ 'index' => i ,
1496+ 'state' => 'started' ,
1497+ 'uuid' => "instance-#{ i } " ,
1498+ 'variable_set_id' => ( Models ::VariableSet . create ( deployment : deployment ) . id )
1499+ }
1500+
1501+ instance_params [ 'availability_zone' ] = 'az0' if i == 0
1502+ instance_params [ 'availability_zone' ] = 'az1' if i == 1
1503+ instance = Models ::Instance . create ( instance_params )
1504+
1505+ vm_params = {
1506+ 'agent_id' => "agent-#{ i } " ,
1507+ 'cid' => "cid-#{ i } " ,
1508+ 'instance_id' => instance . id ,
1509+ 'created_at' => time ,
1510+ }
1511+
1512+ vm = Models ::Vm . create ( vm_params )
1513+
1514+ if j == 0
1515+ instance . active_vm = vm
1516+ end
1517+
1518+ ip_addresses_params = {
1519+ 'instance_id' => instance . id ,
1520+ 'task_id' => i . to_s ,
1521+ 'address_str' => ( "1.2.#{ i } .#{ j } /32" ) . to_s ,
1522+ 'vm_id' => vm . id ,
1523+ }
1524+ Models ::IpAddress . create ( ip_addresses_params )
1525+ end
1526+
1527+ get '/test_deployment/vms'
1528+
1529+ expect ( last_response . status ) . to eq ( 200 )
1530+ body = JSON . parse ( last_response . body )
1531+ expect ( body . size ) . to eq ( 18 )
1532+
1533+ body . sort_by { |instance | instance [ 'agent_id' ] } . each_with_index do |instance_with_vm , i |
1534+ instance_idx = i / 2
1535+ vm_by_instance = i % 2
1536+ vm_is_active = vm_by_instance == 0
1537+ expect ( instance_with_vm ) . to eq (
1538+ 'agent_id' => "agent-#{ instance_idx } -#{ vm_by_instance } " ,
1539+ 'job' => "job-#{ instance_idx } " ,
1540+ 'index' => instance_idx ,
1541+ 'cid' => "cid-#{ instance_idx } -#{ vm_by_instance } " ,
1542+ 'id' => "instance-#{ instance_idx } " ,
1543+ 'active' => vm_is_active ,
1544+ 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ instance_idx ] ,
1545+ 'ips' => [ "1.2.#{ instance_idx } .#{ vm_by_instance } " ] ,
1546+ 'ips_cidr' => [ "1.2.#{ instance_idx } .#{ vm_by_instance } /32" ] ,
14821547 'vm_created_at' => time . utc . iso8601 ,
14831548 'permanent_nats_credentials' => false ,
14841549 )
@@ -1529,7 +1594,8 @@ def manifest_with_errand(deployment_name='errand')
15291594 'id' => "instance-#{ i } " ,
15301595 'active' => vm_is_active ,
15311596 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ i ] ,
1532- 'ips' => [ "1.2.3.#{ i } /32" ] ,
1597+ 'ips' => [ "1.2.3.#{ i } " ] ,
1598+ 'ips_cidr' => [ "1.2.3.#{ i } /32" ] ,
15331599 'vm_created_at' => time . utc . iso8601 ,
15341600 'permanent_nats_credentials' => false ,
15351601 )
@@ -1587,7 +1653,8 @@ def manifest_with_errand(deployment_name='errand')
15871653 'cid' => 'cid' ,
15881654 'id' => 'instance-id' ,
15891655 'index' => 0 ,
1590- 'ips' => [ "#{ vip } /32" , "#{ network_spec_ip } /32" ] ,
1656+ 'ips' => [ "#{ vip } " , "#{ network_spec_ip } " ] ,
1657+ 'ips_cidr' => [ "#{ vip } /32" , "#{ network_spec_ip } /32" ] ,
15911658 'job' => 'job' ,
15921659 'vm_created_at' => time . utc . iso8601 ,
15931660 'permanent_nats_credentials' => false ,
@@ -1666,6 +1733,7 @@ def manifest_with_errand(deployment_name='errand')
16661733 'id' => "instance-#{ i } " ,
16671734 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ i ] ,
16681735 'ips' => [ ] ,
1736+ 'ips_cidr' => [ ] ,
16691737 'vm_created_at' => time . utc . iso8601 ,
16701738 'expects_vm' => true
16711739 )
@@ -1678,6 +1746,7 @@ def manifest_with_errand(deployment_name='errand')
16781746 'id' => "instance-#{ i } " ,
16791747 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ i ] ,
16801748 'ips' => [ ] ,
1749+ 'ips_cidr' => [ ] ,
16811750 'vm_created_at' => nil ,
16821751 'expects_vm' => true
16831752 )
@@ -1725,6 +1794,7 @@ def manifest_with_errand(deployment_name='errand')
17251794 'id' => "instance-#{ i } " ,
17261795 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ i ] ,
17271796 'ips' => [ ] ,
1797+ 'ips_cidr' => [ ] ,
17281798 'vm_created_at' => nil ,
17291799 'expects_vm' => true
17301800 )
@@ -1763,6 +1833,7 @@ def manifest_with_errand(deployment_name='errand')
17631833 'id' => "instance-#{ i } " ,
17641834 'az' => { 0 => 'az0' , 1 => 'az1' , nil => nil } [ i ] ,
17651835 'ips' => [ ] ,
1836+ 'ips_cidr' => [ ] ,
17661837 'vm_created_at' => nil ,
17671838 'expects_vm' => true
17681839 )
@@ -1806,6 +1877,7 @@ def manifest_with_errand(deployment_name='errand')
18061877 'id' => 'instance-1' ,
18071878 'az' => nil ,
18081879 'ips' => [ ] ,
1880+ 'ips_cidr' => [ ] ,
18091881 'vm_created_at' => nil ,
18101882 'expects_vm' => true
18111883 )
@@ -1830,6 +1902,7 @@ def manifest_with_errand(deployment_name='errand')
18301902 'id' => 'instance-1' ,
18311903 'az' => nil ,
18321904 'ips' => [ ] ,
1905+ 'ips_cidr' => [ ] ,
18331906 'vm_created_at' => nil ,
18341907 'expects_vm' => false
18351908 )
@@ -1856,6 +1929,7 @@ def manifest_with_errand(deployment_name='errand')
18561929 'id' => 'instance-1' ,
18571930 'az' => nil ,
18581931 'ips' => [ ] ,
1932+ 'ips_cidr' => [ ] ,
18591933 'vm_created_at' => nil ,
18601934 'expects_vm' => false
18611935 )
0 commit comments