def test_simple_layout_options(self): # Using Euca with no input yaml, and no max or min images is not ok options_1 = self.default_options.copy() options_1['infrastructure'] = 'euca' layout_1 = NodeLayout(options_1) self.assertEquals(False, layout_1.is_valid()) self.assertEquals(NodeLayout.NO_YAML_REQUIRES_MIN, layout_1.errors()) options_2 = self.default_options.copy() options_2['infrastructure'] = "euca" options_2['max'] = 2 layout_2 = NodeLayout(options_2) self.assertEquals(False, layout_2.is_valid()) self.assertEquals(NodeLayout.NO_YAML_REQUIRES_MIN, layout_2.errors()) options_3 = self.default_options.copy() options_3['infrastructure'] = "euca" options_3['min'] = 2 layout_3 = NodeLayout(options_3) self.assertEquals(False, layout_3.is_valid()) self.assertEquals(NodeLayout.NO_YAML_REQUIRES_MAX, layout_3.errors()) # Using Euca with no input yaml, with max and min images set is ok options_4 = self.default_options.copy() options_4['infrastructure'] = "euca" options_4['min'] = 2 options_4['max'] = 2 layout_4 = NodeLayout(options_4) self.assertEquals(True, layout_4.is_valid()) # Using virtualized deployments with no input yaml is not ok options_5 = self.default_options.copy() layout_5 = NodeLayout(options_5) self.assertEquals(False, layout_5.is_valid()) self.assertEquals([NodeLayout.INPUT_YAML_REQUIRED], layout_5.errors())
def test_simple_layout_options(self): # Using Euca with no input yaml, and no max or min images is not ok options_1 = self.default_options.copy() options_1['infrastructure'] = 'euca' layout_1 = NodeLayout(options_1) self.assertEquals(False, layout_1.is_valid()) self.assertEquals(NodeLayout.NO_YAML_REQUIRES_MIN, layout_1.errors()) options_2 = self.default_options.copy() options_2['infrastructure'] = "euca" options_2['max'] = 2 layout_2 = NodeLayout(options_2) self.assertEquals(False, layout_2.is_valid()) self.assertEquals(NodeLayout.NO_YAML_REQUIRES_MIN, layout_2.errors()) options_3 = self.default_options.copy() options_3['infrastructure'] = "euca" options_3['min'] = 2 layout_3 = NodeLayout(options_3) self.assertEquals(False, layout_3.is_valid()) self.assertEquals(NodeLayout.NO_YAML_REQUIRES_MAX, layout_3.errors()) # Using Euca with no input yaml, with max and min images set is ok options_4 = self.default_options.copy() options_4['infrastructure'] = "euca" options_4['min'] = 2 options_4['max'] = 2 layout_4 = NodeLayout(options_4) self.assertEquals(True, layout_4.is_valid()) # Using virtualized deployments with no input yaml is not ok options_5 = self.default_options.copy() layout_5 = NodeLayout(options_5) self.assertEquals(False, layout_5.is_valid()) self.assertEquals([NodeLayout.INPUT_YAML_REQUIRED], layout_5.errors())
def test_simple_layout_yaml_only(self): # Specifying one controller and one server should be ok input_yaml_1 = {'controller': self.ip_1, 'servers': [self.ip_2]} options_1 = self.default_options.copy() options_1['ips'] = input_yaml_1 layout_1 = NodeLayout(options_1) self.assertEquals(True, layout_1.is_valid()) # Specifying one controller should be ok input_yaml_2 = {'controller': self.ip_1} options_2 = self.default_options.copy() options_2['ips'] = input_yaml_2 layout_2 = NodeLayout(options_2) self.assertEquals(True, layout_2.is_valid()) # Specifying the same IP more than once is not ok input_yaml_3 = {'controller': self.ip_1, 'servers': [self.ip_1]} options_3 = self.default_options.copy() options_3['ips'] = input_yaml_3 layout_3 = NodeLayout(options_3) self.assertEquals(False, layout_3.is_valid()) self.assertEquals(NodeLayout.DUPLICATE_IPS, layout_3.errors()) # Failing to specify a controller is not ok input_yaml_4 = {'servers': [self.ip_1, self.ip_2]} options_4 = self.default_options.copy() options_4['ips'] = input_yaml_4 layout_4 = NodeLayout(options_4) self.assertEquals(False, layout_4.is_valid()) self.assertEquals(NodeLayout.NO_CONTROLLER, layout_4.errors()) # Specifying more than one controller is not ok input_yaml_5 = { 'controller': [self.ip_1, self.ip_2], 'servers': [self.ip_3] } options_5 = self.default_options.copy() options_5['ips'] = input_yaml_5 layout_5 = NodeLayout(options_5) self.assertEquals(False, layout_5.is_valid()) self.assertEquals(NodeLayout.ONLY_ONE_CONTROLLER, layout_5.errors()) # Specifying something other than controller and servers in simple # deployments is not ok input_yaml_6 = { 'controller': self.ip_1, 'servers': [self.ip_2], 'boo': self.ip_3 } options_6 = self.default_options.copy() options_6['ips'] = input_yaml_6 layout_6 = NodeLayout(options_6) self.assertEquals(False, layout_6.is_valid()) self.assertEquals(["The flag boo is not a supported flag"], layout_6.errors())
def test_simple_layout_yaml_only(self): # Specifying one controller and one server should be ok input_yaml_1 = { 'controller' : self.ip_1, 'servers' : [self.ip_2] } options_1 = self.default_options.copy() options_1['ips'] = input_yaml_1 layout_1 = NodeLayout(options_1) self.assertEquals(True, layout_1.is_valid()) # Specifying one controller should be ok input_yaml_2 = {'controller' : self.ip_1} options_2 = self.default_options.copy() options_2['ips'] = input_yaml_2 layout_2 = NodeLayout(options_2) self.assertEquals(True, layout_2.is_valid()) # Specifying the same IP more than once is not ok input_yaml_3 = {'controller' : self.ip_1, 'servers' : [self.ip_1]} options_3 = self.default_options.copy() options_3['ips'] = input_yaml_3 layout_3 = NodeLayout(options_3) self.assertEquals(False, layout_3.is_valid()) self.assertEquals(NodeLayout.DUPLICATE_IPS, layout_3.errors()) # Failing to specify a controller is not ok input_yaml_4 = {'servers' : [self.ip_1, self.ip_2]} options_4 = self.default_options.copy() options_4['ips'] = input_yaml_4 layout_4 = NodeLayout(options_4) self.assertEquals(False, layout_4.is_valid()) self.assertEquals(NodeLayout.NO_CONTROLLER, layout_4.errors()) # Specifying more than one controller is not ok input_yaml_5 = {'controller' : [self.ip_1, self.ip_2], 'servers' : [self.ip_3]} options_5 = self.default_options.copy() options_5['ips'] = input_yaml_5 layout_5 = NodeLayout(options_5) self.assertEquals(False, layout_5.is_valid()) self.assertEquals(NodeLayout.ONLY_ONE_CONTROLLER, layout_5.errors()) # Specifying something other than controller and servers in simple # deployments is not ok input_yaml_6 = {'controller' : self.ip_1, 'servers' : [self.ip_2], 'boo' : self.ip_3} options_6 = self.default_options.copy() options_6['ips'] = input_yaml_6 layout_6 = NodeLayout(options_6) self.assertEquals(False, layout_6.is_valid()) self.assertEquals(["The flag boo is not a supported flag"], layout_6.errors())