func (i IpRangeToStaticIps) ReserveStaticIpsInPool(ipPool *bftinput.IpPool) {
	staticIps, ok := i[ipPool.IpRange]
	if !ok {
		return
	}

	for _, ip := range staticIps {
		ipPool.ReserveStaticIp(ip)
	}
}
					},
				},
			},
		}

		result := networksAssigner.Assign(input, previousInput)
		Expect(len(result.Jobs[0].Networks[0].StaticIps)).To(Equal(2))
		Expect(result.Jobs[0].Networks[0].StaticIps).ToNot(ContainElement("192.168.4.209"))
		Expect(result.Jobs[0].Networks[0].StaticIps).ToNot(ContainElement("192.168.4.254"))
	})

	Context("when previous input has static IPs", func() {
		BeforeEach(func() {
			decider.IsYesYes = true

			expectedIpPool.ReserveStaticIp("192.168.0.219")
			expectedIpPool.ReserveStaticIp("192.168.0.245")
			expectedIpPool.ReserveStaticIp("192.168.0.252")
			expectedIpPool.ReserveStaticIp("192.168.0.236")
		})

		It("does not reuse those static IPs", func() {
			// our fuzzing returns ips in order
			// "192.168.0.252", "192.168.0.219", "192.168.0.234", "192.168.0.245"
			// we put "192.168.0.252" on second job to make sure it is not going to be used by first job
			// we put "192.168.0.245" on first job to make sure it is not going to be used by second job
			input := bftinput.Input{
				Jobs: []bftinput.Job{
					{
						Name:      "foo",
						Instances: 2,