def test_settings_private(self): engine = PlumberyEngine() engine.set_shared_secret('fake_secret') engine.set_user_name('fake_name') engine.set_user_password('fake_password') engine.set_fittings(myPrivatePlan) facilities = engine.list_facility('quasimoto.com') self.assertEqual(len(facilities), 1) facilities[0].power_on()
def test_bad_args(self): engine = PlumberyEngine() engine.set_fittings(myPlan) with self.assertRaises(SystemExit): main(['bad args'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'xyz123', 'web'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'build', 'web', '@'], engine)
def test_parameters(self): engine = PlumberyEngine() engine.set_parameters(myParameters) parameters = engine.get_parameters() self.assertEqual(parameters['locationId.parameter'], 'NA9') self.assertEqual(parameters['domainName.parameter'], 'justInTimeDomain') self.assertEqual(parameters['networkName.parameter'], 'justInTimeNetwork') engine.set_fittings(myPlan) parameters = engine.get_parameters() self.assertEqual(parameters['locationId.parameter'], 'NA9') self.assertEqual(parameters['domainName.parameter'], 'justInTimeDomain') self.assertEqual(parameters['networkName.parameter'], 'justInTimeNetwork') self.assertEqual(engine.safeMode, False) self.assertEqual(len(engine.information), 2) self.assertEqual(len(engine.links), 1) domain = engine.get_default('domain') self.assertEqual(domain['ipv4'], 'auto') cloudConfig = engine.get_default('cloud-config', {}) self.assertEqual(len(cloudConfig.keys()), 3) parameter = engine.get_parameter('locationId') self.assertEqual(parameter, 'NA9') parameter = engine.get_parameter('domainName') self.assertEqual(parameter, 'justInTimeDomain') parameter = engine.get_parameter('networkName') self.assertEqual(parameter, 'justInTimeNetwork') self.assertEqual(len(engine.facilities), 1) facility = engine.facilities[0] self.assertEqual(facility.settings['locationId'], 'NA9') self.assertEqual(facility.settings['regionId'], 'dd-eu') blueprint = facility.blueprints[0]['myBlueprint'] self.assertEqual(blueprint['domain']['name'], 'justInTimeDomain') self.assertEqual(blueprint['ethernet']['name'], 'justInTimeNetwork')
def test_init(self): engine = PlumberyEngine() engine.set_fittings(myPlan) self.assertEqual(engine.buildPolisher, 'alien') domain = engine.get_default('domain') self.assertEqual(domain['ipv4'], 'auto') cloudConfig = engine.get_default('cloud-config', {}) self.assertEqual(len(cloudConfig.keys()), 5) self.assertEqual(len(engine.information), 2) self.assertEqual(len(engine.links), 1) parameters = engine.get_parameters() self.assertEqual(parameters['parameter.locationId'], 'EU6') self.assertEqual(parameters['parameter.domainName'], 'myDC') self.assertEqual(parameters['parameter.networkName'], 'myVLAN') parameter = engine.get_parameter('locationId') self.assertEqual(parameter, 'EU6') parameter = engine.get_parameter('domainName') self.assertEqual(parameter, 'myDC') parameter = engine.get_parameter('networkName') self.assertEqual(parameter, 'myVLAN') self.assertEqual(len(engine.polishers), 3) for polisher in engine.polishers: self.assertTrue(isinstance(polisher, PlumberyPolisher)) self.assertEqual(engine.safeMode, False) self.assertEqual(len(engine.facilities), 1) facility = engine.facilities[0] self.assertEqual(facility.settings['locationId'], 'EU6') self.assertEqual(facility.settings['regionId'], 'dd-eu') blueprint = facility.blueprints[0]['myBlueprint'] self.assertEqual(blueprint['domain']['name'], 'myDC') self.assertEqual(blueprint['ethernet']['name'], 'myVLAN')
def test_main(self): engine = PlumberyEngine() engine.set_fittings(myPlan) engine.set_user_name('fake_name') engine.set_user_password('fake_password') with self.assertRaises(SystemExit): main(['bad args'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'xyz123', 'web'], engine) with self.assertRaises(SystemExit): main(['-v'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'build', 'web', '-v'], engine)
def test_main(self): with self.assertRaises(SystemExit): main(['fittings.yaml', 'build', 'web', '@EU6']) engine = PlumberyEngine() engine.set_fittings(myPlan) engine.set_user_name('fake_name') engine.set_user_password('fake_password') with self.assertRaises(SystemExit): main(['-v'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'build', 'web'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'build', 'web', '-v'], engine) with self.assertRaises(SystemExit): main(['fittings.yaml', 'build', 'web', '@EU6'], engine)
def test_process_blueprint(self): engine = PlumberyEngine() DimensionDataNodeDriver.connectionCls.conn_classes = ( None, DimensionDataMockHttp) DimensionDataMockHttp.type = None self.region = DimensionDataNodeDriver(*DIMENSIONDATA_PARAMS) engine.set_shared_secret('fake_secret') engine.set_user_name('fake_name') engine.set_user_password('fake_password') engine.set_fittings(myPrivatePlan) engine.process_blueprint(action='noop', names='fake') action = FakeAction({}) engine.process_blueprint(action, names='fake') self.assertEqual(action.count, 205)
def test_process_blueprint(self): engine = PlumberyEngine() DimensionDataNodeDriver.connectionCls.conn_classes = ( None, DimensionDataMockHttp) DimensionDataMockHttp.type = None self.region = DimensionDataNodeDriver(*DIMENSIONDATA_PARAMS) engine.set_shared_secret('fake_secret') engine.set_user_name('fake_name') engine.set_user_password('fake_password') engine.set_fittings(myPrivatePlan) engine.process_blueprint(action='dummy', names='fake') action = FakeAction({}) engine.process_blueprint(action, names='fake') self.assertEqual(action.count, 205)
def test_parameters(self): engine = PlumberyEngine() parameters = engine.get_parameters() self.assertTrue('parameter.locationId' not in parameters) self.assertTrue('parameter.domainName' not in parameters) self.assertTrue('parameter.networkName' not in parameters) with self.assertRaises(KeyError): engine.get_parameter('locationId') with self.assertRaises(KeyError): engine.get_parameter('domainName') with self.assertRaises(KeyError): engine.get_parameter('perfectlyUnknownParameter') with self.assertRaises(KeyError): engine.lookup('parameter.locationId') with self.assertRaises(ValueError): engine.set_fittings(myBadPlan1) engine.set_fittings(myPlan) parameters = engine.get_parameters() self.assertEqual(parameters['parameter.locationId'], 'EU6') self.assertEqual(parameters['parameter.domainName'], 'myDC') self.assertEqual(parameters['parameter.networkName'], 'myVLAN') self.assertEqual(engine.get_parameter('locationId'), 'EU6') self.assertEqual(engine.get_parameter('parameter.locationId'), 'EU6') with self.assertRaises(KeyError): engine.get_parameter('perfectlyUnknownParameter') engine = PlumberyEngine() engine.set_parameters(myParameters) parameters = engine.get_parameters() self.assertEqual(parameters['parameter.locationId'], 'EU8') self.assertEqual(parameters['parameter.domainName'], 'aDifferentDomain') self.assertEqual(parameters['parameter.networkName'], 'aDifferentNetwork') engine.set_fittings(myPlan) parameters = engine.get_parameters() self.assertEqual(parameters['parameter.locationId'], 'EU8') self.assertEqual(parameters['parameter.domainName'], 'aDifferentDomain') self.assertEqual(parameters['parameter.networkName'], 'aDifferentNetwork') self.assertEqual(engine.safeMode, False) self.assertEqual(len(engine.information), 2) self.assertEqual(len(engine.links), 1) domain = engine.get_default('domain') self.assertEqual(domain['ipv4'], 'auto') cloudConfig = engine.get_default('cloud-config', {}) self.assertEqual(len(cloudConfig.keys()), 5) parameter = engine.get_parameter('locationId') self.assertEqual(parameter, 'EU8') parameter = engine.get_parameter('domainName') self.assertEqual(parameter, 'aDifferentDomain') parameter = engine.get_parameter('networkName') self.assertEqual(parameter, 'aDifferentNetwork') self.assertEqual(len(engine.facilities), 1) facility = engine.facilities[0] self.assertEqual(facility.settings['locationId'], 'EU8') self.assertEqual(facility.settings['regionId'], 'dd-eu') blueprint = facility.blueprints[0]['myBlueprint'] self.assertEqual(blueprint['domain']['name'], 'aDifferentDomain') self.assertEqual(blueprint['ethernet']['name'], 'aDifferentNetwork')