def test_prod(self): site = "rennes" nodes = [ "foocluster-1.rennes.grid5000.fr", "foocluster-2.rennes.grid5000.fr" ] r = Resources({ "resources": { "machines": [{ "_c_nodes": nodes, "primary_network": "network1" }], "networks": [{ "type": PROD, "id": "network1", "site": site }], } }) deployed = set(nodes) undeployed = set() api._check_deployed_nodes = mock.Mock(return_value=(undeployed, deployed)) r.driver.deploy = mock.Mock(return_value=(deployed, undeployed)) r.deploy() r.driver.deploy.assert_called_with(site, nodes, {"env_name": DEFAULT_ENV_NAME}) self.assertCountEqual(deployed, r.c_resources["machines"][0]["_c_deployed"]) self.assertCountEqual(undeployed, r.c_resources["machines"][0]["_c_undeployed"])
def test_2_deployements_with_undeployed(self): site = "rennes" nodes_foo = [ "foocluster-1.rennes.grid5000.fr", "foocluster-2.rennes.grid5000.fr", ] nodes_bar = [ "barcluster-1.rennes.grid5000.fr", "barcluster-2.rennes.grid5000.fr", ] _c_network_1 = g5k_api_utils.ConcreteProd(site=site) _c_network_2 = g5k_api_utils.ConcreteVlan(vlan_id="4", site="rennes") r = Resources({ "resources": { "machines": [ { "_c_nodes": nodes_foo, "primary_network": "network1" }, { "_c_nodes": nodes_bar, "primary_network": "network2" }, ], "networks": [ { "type": PROD, "id": "network1", "_c_network": [_c_network_1], "site": "rennes", }, { "type": KAVLAN, "id": "network2", "_c_network": [_c_network_2], "site": "rennes", }, ], } }) d_foo = set(["foocluster-1.rennes.grid5000.fr"]) u_foo = set(nodes_foo) - d_foo d_bar = set(["barcluster-2.rennes.grid5000.fr"]) u_bar = set(nodes_bar) - d_bar # we make the deployed check fail to force the deployment api._check_deployed_nodes = mock.Mock(side_effect=[([], []), ([], [])]) r.driver.deploy = mock.Mock(side_effect=[(d_foo, u_foo), (d_bar, u_bar)]) r.deploy() self.assertEqual(2, r.driver.deploy.call_count) self.assertCountEqual(d_foo, r.c_resources["machines"][0]["_c_deployed"]) self.assertCountEqual(u_foo, r.c_resources["machines"][0]["_c_undeployed"]) self.assertCountEqual(d_bar, r.c_resources["machines"][1]["_c_deployed"]) self.assertCountEqual(u_bar, r.c_resources["machines"][1]["_c_undeployed"])
def test_vlan(self): nodes = ["foocluster-1", "foocluster-2"] schema.validate = mock.Mock() r = Resources({ "machines": [{ "_c_nodes": nodes, "primary_network": "network1" }], "networks": [{ "type": KAVLAN, "id": "network1", "_c_network": { "site": "rennes", "vlan_id": 4 } }] }) deployed = set(["foocluster-1", "foocluster-2"]) undeployed = set() utils._deploy = mock.Mock(return_value=(deployed, undeployed)) r.deploy() utils._deploy.assert_called_with(nodes, False, { "env_name": ENV_NAME, "vlan": 4 }) self.assertItemsEqual(deployed, r.c_resources["machines"][0]["_c_deployed"]) self.assertItemsEqual(undeployed, r.c_resources["machines"][0]["_c_undeployed"])
def test_2_deployements_with_undeployed(self): nodes_foo = ["foocluster-1", "foocluster-2"] nodes_bar = ["barcluster-1", "barcluster-2"] schema.validate = mock.Mock() r = Resources({ "resources": { "machines": [{ "_c_nodes": nodes_foo, "primary_network": "network1" }, { "_c_nodes": nodes_bar, "primary_network": "network2" }], "networks": [{ "type": PROD, "id": "network1" }, { "type": KAVLAN, "id": "network2", "_c_network": { "site": "rennes", "vlan_id": 4 } }] } }) d_foo = set(["foocluster-1"]) u_foo = set(nodes_foo) - d_foo d_bar = set(["barcluster-2"]) u_bar = set(nodes_bar) - d_bar utils._deploy = mock.Mock(side_effect=[(d_foo, u_foo), (d_bar, u_bar)]) r.deploy() self.assertEquals(2, utils._deploy.call_count) self.assertCountEqual(d_foo, r.c_resources["machines"][0]["_c_deployed"]) self.assertCountEqual(u_foo, r.c_resources["machines"][0]["_c_undeployed"]) self.assertCountEqual(d_bar, r.c_resources["machines"][1]["_c_deployed"]) self.assertCountEqual(u_bar, r.c_resources["machines"][1]["_c_undeployed"])
def test_prod(self): nodes = ["foocluster-1", "foocluster-2"] schema.validate = mock.Mock() r = Resources({ "machines": [{ "_c_nodes": nodes, "primary_network": "network1" }], "networks": [{ "type": PROD, "id": "network1" }] }) deployed = set(["foocluster-1", "foocluster-2"]) undeployed = set() utils._deploy = mock.Mock(return_value=(deployed, undeployed)) r.deploy() utils._deploy.assert_called_with(nodes, False, {"env_name": ENV_NAME}) self.assertCountEqual(deployed, r.c_resources["machines"][0]["_c_deployed"]) self.assertCountEqual(undeployed, r.c_resources["machines"][0]["_c_undeployed"])
def test_vlan(self): site = "rennes" nodes = [ "foocluster-1.rennes.grid5000.fr", "foocluster-2.rennes.grid5000.fr" ] _c_network = g5k_api_utils.ConcreteVlan(vlan_id="4", site=site) r = Resources({ "resources": { "machines": [{ "_c_nodes": nodes, "primary_network": "network1" }], "networks": [{ "type": KAVLAN, "id": "network1", "_c_network": [_c_network], "site": "rennes", }], } }) deployed = set(nodes) undeployed = set() api._check_deployed_nodes = mock.Mock(return_value=(undeployed, deployed)) r.driver.deploy = mock.Mock(return_value=(deployed, undeployed)) r.deploy() r.driver.deploy.assert_called_with(site, nodes, { "env_name": DEFAULT_ENV_NAME, "vlan": "4" }) self.assertCountEqual(deployed, r.c_resources["machines"][0]["_c_deployed"]) self.assertCountEqual(deployed, r.c_resources["machines"][0]["_c_deployed"]) self.assertCountEqual(undeployed, r.c_resources["machines"][0]["_c_undeployed"])