def setUp(self): device = Device.create( ethernets=[('', 'deadbeefcafe', 0)], model_name='HAL 9000', model_type=DeviceType.unknown, remarks="I'm sorry, Dave.", ) self.deployment = Deployment( hostname='discovery.one', ip='127.0.0.1', mac='deadbeefcafe', device=device, preboot=None, venture=None, venture_role=None, ) self.deployment.save() self.ip = IPAddress(address='127.0.0.1', device=device) self.ip.save() IPAddress(address='127.0.0.2', device=device).save() share_model = ComponentModel(type=ComponentType.share, name="share") share_model.save() share = DiskShare(wwn='x' * 33, device=device, model=share_model) share.save() DiskShareMount(share=share, device=device).save() OperatingSystem.create(os_name='GladOS', dev=device, family='', priority=0) Software.create(dev=device, model_name='soft', path='/', family='', priority=0)
def setUp(self): engine = settings.ISSUETRACKERS['default']['ENGINE'] if engine != '': raise ImproperlyConfigured( '''Expected ISSUETRACKERS['default']['ENGINE']='' got: %s''' % engine) # usual stuff self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture(name='child_venture', parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name='role', venture=self.child_venture) self.role.save() self.child_role = VentureRole( name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() to = VentureOwner(name='Bufallo Kudłaczek', venture=self.child_venture, type=OwnerType.technical.id) to.save() bo = VentureOwner(name='Bill Bąbelek', venture=self.child_venture, type=OwnerType.business.id) bo.save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create(sn='sn1', model=dm) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create(venture=self.child_venture, sn='sn2', model=dm) self.rack.parent = self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create(venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm) self.blade.name = 'blade' self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device = self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip = '192.168.1.1' self.deployment.hostname = 'test' self.deployment.save()
class CleanPluginTest(TestCase): def setUp(self): device = Device.create( ethernets=[('', 'deadbeefcafe', 0)], model_name='HAL 9000', model_type=DeviceType.unknown, remarks="I'm sorry, Dave.", ) self.deployment = Deployment( hostname='discovery.one', ip='127.0.0.1', mac='deadbeefcafe', device=device, preboot=None, venture=None, venture_role=None, ) self.deployment.save() self.ip = IPAddress(address='127.0.0.1', device=device) self.ip.save() IPAddress(address='127.0.0.2', device=device).save() share_model = ComponentModel(type=ComponentType.share, name="share") share_model.save() share = DiskShare(wwn='x' * 33, device=device, model=share_model) share.save() DiskShareMount(share=share, device=device).save() OperatingSystem.create(os_name='GladOS', dev=device, family='', priority=0) Software.create(dev=device, model_name='soft', path='/', family='', priority=0) def test_clean_plugin(self): clean(self.deployment.id) device = Device.objects.get(id=self.deployment.device.id) self.assertEqual( device.remarks, "-- Remarks below are for old role -/- from %s --\n" "I'm sorry, Dave." % datetime.date.today().strftime('%Y-%m-%d'), ) self.assertEquals(device.ipaddress_set.count(), 1) self.assertEquals(device.ipaddress_set.all()[0].address, '127.0.0.1') self.assertFalse(device.diskshare_set.exists()) self.assertFalse(device.disksharemount_set.exists()) self.assertFalse(device.software_set.exists()) self.assertFalse(device.operatingsystem_set.exists())
def setUp(self): self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture( name='child_venture', parent=self.top_venture, ) self.child_venture.save() self.role = VentureRole( name='role', venture=self.child_venture, ) self.role.save() self.child_role = VentureRole( name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create(sn='sn1', model=dm) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm, ) self.rack.parent = self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create( venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm, ) self.blade.name = 'blade' self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device = self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip = '192.168.1.1' self.deployment.hostname = 'test' self.deployment.save()
def ipxe(request, deployment_id=None): """View returns boot's config for iPXE depends on client IP. Args: request (object): standard Django's object for request. Returns: HttpResponse: contains config for iPXE Raises: Http404: if deployment with specified UUID doesn't exist """ ip = get_client_ip(request) try: if deployment_id: deployment = Deployment.objects.get(id=deployment_id) else: deployment = Deployment.get_deployment_for_ip(ip) except Ethernet.DoesNotExist: logger.warning('Deployment does not exists for ip: {}'.format(ip)) raise Http404 except Deployment.DoesNotExist: logger.warning(DEPLOYMENT_404_MSG.format(deployment_id)) raise Http404 configuration = _render_configuration( deployment.preboot.get_configuration('ipxe'), deployment) return HttpResponse(configuration, content_type='text/plain')
def done_ping(request, deployment_id): """View mark specified deployment (by UUID from URL) as finished. Args: deployment_id (string): deployment's UUID Returns: HttpResponse: document with 'marked' sentence """ preboot = _get_preboot(deployment_id) preboot.increment_used_counter() ip = get_client_ip(request) Deployment.mark_as_done(deployment_id) logger.info('Deployment {} for {} marked as done.'.format( deployment_id, ip)) return HttpResponse('marked', content_type='text/plain')
def setUp(self): device = Device.create( ethernets=[('', 'deadbeefcafe', 0)], model_name='HAL 9000', model_type=DeviceType.unknown, remarks="I'm sorry, Dave.", ) self.deployment = Deployment( hostname='discovery.one', ip='127.0.0.1', mac='deadbeefcafe', device=device, preboot=None, venture=None, venture_role=None, ) self.deployment.save() self.ip = IPAddress(address='127.0.0.1', device=device) self.ip.save() IPAddress(address='127.0.0.2', device=device).save() share_model = ComponentModel(type=ComponentType.share, name="share") share_model.save() share = DiskShare(wwn='x'*33, device=device, model=share_model) share.save() DiskShareMount(share=share, device=device).save() OperatingSystem.create(os_name='GladOS', dev=device, family='', priority=0) Software.create(dev=device, model_name='soft', path='/', family='', priority=0)
def test_deployment_entry(self): dc = DataCenter(name="dc1", next_server="ziew") dc.save() net = Network(name="net", address="127.0.0.0/24", data_center=dc) net.save() entry = DHCPEntry(ip="127.0.0.1", mac="deadbeefcafe") entry.save() device = Device(sn="ziew") device.save() deployment = Deployment(ip="127.0.0.1", mac="deadbeefcafe", device=device) deployment.save() config = generate_dhcp_config(dc=dc) # remove first line with the date and last line config = "\n".join(config.splitlines()[1:-1]) self.assertEqual( config, "host 127.0.0.1 { fixed-address 127.0.0.1; " "hardware ethernet DE:AD:BE:EF:CA:FE; next-server ziew; }", )
def setUp(self): engine = settings.ISSUETRACKERS['default']['ENGINE'] if engine != '': raise ImproperlyConfigured('''Expected ISSUETRACKERS['default']['ENGINE']='' got: %s''' % engine) # usual stuff self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture(name='child_venture', parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name='role', venture=self.child_venture) self.role.save() self.child_role = VentureRole(name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() to = VentureOwner(name='Bufallo Kudłaczek', venture=self.child_venture, type=OwnerType.technical.id) to.save() bo = VentureOwner(name='Bill Bąbelek', venture=self.child_venture, type=OwnerType.business.id) bo.save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create( sn='sn1', model=dm ) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm ) self.rack.parent=self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create( venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm ) self.blade.name = 'blade' self.blade.parent=self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device=self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip='192.168.1.1' self.deployment.hostname='test' self.deployment.save()
def test_deployment_entry(self): dc = DataCenter(name='dc1', next_server='ziew') dc.save() net = Network(name='net', address='127.0.0.0/24', data_center=dc) net.save() entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe') entry.save() device = Device(sn='ziew') device.save() deployment = Deployment( ip='127.0.0.1', mac='deadbeefcafe', device=device, ) deployment.save() config = generate_dhcp_config(dc=dc) # remove first line with the date and last line config = '\n'.join(config.splitlines()[1:-1]) self.assertEqual( config, 'host 127.0.0.1 { fixed-address 127.0.0.1; ' 'hardware ethernet DE:AD:BE:EF:CA:FE; next-server ziew; }')
def test_validate_hostname(self): _validate_hostname('whoosh', '11:22:33:aa:bb:cc', [], 0) with self.assertRaises(forms.ValidationError): _validate_hostname('whoosh', '22:33:11:aa:bb:dd', ['whoosh'], 0) device = Device.create( ethernets=[('', 'deadbeefcafe', 0)], model_name='splat', model_type=DeviceType.unknown, ) deployment = Deployment( hostname='whoosh', ip='127.0.0.1', mac='deadbeefcafe', device=device, preboot=None, venture=None, venture_role=None, ) deployment.save() with self.assertRaises(forms.ValidationError): _validate_hostname('whoosh', 'aa:bb:cc:11:22:33', [], 0) device = Device.create( ethernets=[('', 'aaccbb113322', 0)], model_name='unknown', model_type=DeviceType.unknown ) device.name = 'some_name_1' device.save() _validate_hostname('some_name_1', 'aaccbb113322', [], 0) domain = Domain.objects.create(name='domain1') record_A = Record.objects.create( domain=domain, name='some_name_1', content='127.0.0.1', type='A' ) with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113322', [], 0) with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113344', [], 0) device.ipaddress_set.create(address='127.0.0.1') _validate_hostname('some_name_1', 'aaccbb113322', [], 0) device.ipaddress_set.all().delete() record_A.delete() Record.objects.create( domain=domain, name='1.0.0.127.in-addr.arpa', content='some_name_1', type='PTR' ) with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113322', [], 0) device.ipaddress_set.create(address='127.0.0.1') _validate_hostname('some_name_1', 'aaccbb113322', [], 0) deployment.hostname = 'some_name_1' deployment.save() with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113322', [], 0)
def test_deployment_entry(self): dc = DataCenter(name='dc1', next_server='ziew') dc.save() net = Network(name='net', address='127.0.0.0/24', data_center=dc) net.save() entry = DHCPEntry(ip='127.0.0.1', mac='deadbeefcafe') entry.save() device = Device(sn='ziew') device.save() deployment = Deployment( ip='127.0.0.1', mac='deadbeefcafe', device=device, ) deployment.save() config = generate_dhcp_config(dc=dc) # remove first line with the date and last line config = '\n'.join(config.splitlines()[1:-1]) self.assertEqual( config, 'host 127.0.0.1 { fixed-address 127.0.0.1; ' 'hardware ethernet DE:AD:BE:EF:CA:FE; next-server ziew; }' )
def test_validate_hostname(self): _validate_hostname('whoosh', '11:22:33:aa:bb:cc', [], 0) with self.assertRaises(forms.ValidationError): _validate_hostname('whoosh', '22:33:11:aa:bb:dd', ['whoosh'], 0) device = Device.create( ethernets=[('', 'deadbeefcafe', 0)], model_name='splat', model_type=DeviceType.unknown, ) deployment = Deployment( hostname='whoosh', ip='127.0.0.1', mac='deadbeefcafe', device=device, preboot=None, venture=None, venture_role=None, ) deployment.save() with self.assertRaises(forms.ValidationError): _validate_hostname('whoosh', 'aa:bb:cc:11:22:33', [], 0) device = Device.create(ethernets=[('', 'aaccbb113322', 0)], model_name='unknown', model_type=DeviceType.unknown) device.name = 'some_name_1' device.save() _validate_hostname('some_name_1', 'aaccbb113322', [], 0) domain = Domain.objects.create(name='domain1') record_A = Record.objects.create(domain=domain, name='some_name_1', content='127.0.0.1', type='A') with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113322', [], 0) with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113344', [], 0) device.ipaddress_set.create(address='127.0.0.1') _validate_hostname('some_name_1', 'aaccbb113322', [], 0) device.ipaddress_set.all().delete() record_A.delete() Record.objects.create(domain=domain, name='1.0.0.127.in-addr.arpa', content='some_name_1', type='PTR') with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113322', [], 0) device.ipaddress_set.create(address='127.0.0.1') _validate_hostname('some_name_1', 'aaccbb113322', [], 0) deployment.hostname = 'some_name_1' deployment.save() with self.assertRaises(forms.ValidationError): _validate_hostname('some_name_1', 'aaccbb113322', [], 0)
def setUp(self): engine = settings.ISSUETRACKERS["default"]["ENGINE"] if engine != "": raise ImproperlyConfigured("""Expected ISSUETRACKERS['default']['ENGINE']='' got: %r""" % engine) # usual stuff self.top_venture = Venture(name="top_venture") self.top_venture.save() self.child_venture = Venture(name="child_venture", parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name="role", venture=self.child_venture) self.role.save() self.child_role = VentureRole(name="child_role", venture=self.child_venture, parent=self.role) self.child_role.save() to = CIOwner(first_name="Bufallo", last_name="Kudłaczek") to.save() bo = CIOwner(first_name="Bill", last_name="Bąbelek") bo.save() ct = ContentType.objects.get_for_model(self.top_venture) CIImporter().import_all_ci([ct]) CIOwnership(owner=to, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.technical.id).save() CIOwnership(owner=bo, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.business.id).save() dm = self.add_model("DC model sample", DeviceType.data_center.id) self.dc = Device.create(sn="sn1", model=dm) self.dc.name = "dc" self.dc.save() dm = self.add_model("Rack model sample", DeviceType.rack_server.id) self.rack = Device.create(venture=self.child_venture, sn="sn2", model=dm) self.rack.parent = self.dc self.rack.name = "rack" self.rack.save() dm = self.add_model("Blade model sample", DeviceType.blade_server.id) self.blade = Device.create(venture=self.child_venture, venturerole=self.child_role, sn="sn3", model=dm) self.blade.name = "blade" self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = "test_host2" self.deployment.device = self.blade self.deployment.mac = "10:9a:df:6f:af:01" self.deployment.ip = "192.168.1.1" self.deployment.hostname = "test" self.deployment.save()
def setUp(self): engine = settings.ISSUETRACKERS['default']['ENGINE'] if engine != '': raise ImproperlyConfigured( '''Expected ISSUETRACKERS['default']['ENGINE']='' got: %r''' % engine) # usual stuff self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture(name='child_venture', parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name='role', venture=self.child_venture) self.role.save() self.child_role = VentureRole( name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() to = CIOwner( first_name='Bufallo', last_name='Kudłaczek', ) to.save() bo = CIOwner( first_name='Bill', last_name='Bąbelek', ) bo.save() ct = ContentType.objects.get_for_model(self.top_venture) CIImporter().import_all_ci([ct]) CIOwnership(owner=to, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.technical.id).save() CIOwnership(owner=bo, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.business.id).save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create(sn='sn1', model=dm) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm, ) self.rack.parent = self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create(venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm) self.blade.name = 'blade' self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device = self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip = '192.168.1.1' self.deployment.hostname = 'test' self.deployment.save()
class DeploymentTest(TestCase): def setUp(self): self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture( name='child_venture', parent=self.top_venture, ) self.child_venture.save() self.role = VentureRole( name='role', venture=self.child_venture, ) self.role.save() self.child_role = VentureRole( name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create(sn='sn1', model=dm) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm, ) self.rack.parent = self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create( venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm, ) self.blade.name = 'blade' self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device = self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip = '192.168.1.1' self.deployment.hostname = 'test' self.deployment.save() def add_model(self, name, device_type): dm = DeviceModel() dm.model_type = device_type, dm.name = name dm.save() return dm def test_archivization(self): id = self.deployment.id data = {} for field in self.deployment._meta.fields: data[field.name] = getattr(self.deployment, field.name) if field.name == 'mac': data[field.name] = MACAddressField.normalize(data[field.name]) self.deployment.archive() archive = ArchivedDeployment.objects.get(pk=id) archive_data = {} for field in archive._meta.fields: archive_data[field.name] = getattr(archive, field.name) if field.name == 'mac': archive_data[field.name] = MACAddressField.normalize( archive_data[field.name] ) self.assertEqual(data, archive_data) with self.assertRaises(Deployment.DoesNotExist): Deployment.objects.get(pk=id)
class DeploymentTest(TestCase): fixtures = ["0_types.yaml", "1_attributes.yaml", "2_layers.yaml", "3_prefixes.yaml"] def setUp(self): engine = settings.ISSUETRACKERS["default"]["ENGINE"] if engine != "": raise ImproperlyConfigured("""Expected ISSUETRACKERS['default']['ENGINE']='' got: %r""" % engine) # usual stuff self.top_venture = Venture(name="top_venture") self.top_venture.save() self.child_venture = Venture(name="child_venture", parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name="role", venture=self.child_venture) self.role.save() self.child_role = VentureRole(name="child_role", venture=self.child_venture, parent=self.role) self.child_role.save() to = CIOwner(first_name="Bufallo", last_name="Kudłaczek") to.save() bo = CIOwner(first_name="Bill", last_name="Bąbelek") bo.save() ct = ContentType.objects.get_for_model(self.top_venture) CIImporter().import_all_ci([ct]) CIOwnership(owner=to, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.technical.id).save() CIOwnership(owner=bo, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.business.id).save() dm = self.add_model("DC model sample", DeviceType.data_center.id) self.dc = Device.create(sn="sn1", model=dm) self.dc.name = "dc" self.dc.save() dm = self.add_model("Rack model sample", DeviceType.rack_server.id) self.rack = Device.create(venture=self.child_venture, sn="sn2", model=dm) self.rack.parent = self.dc self.rack.name = "rack" self.rack.save() dm = self.add_model("Blade model sample", DeviceType.blade_server.id) self.blade = Device.create(venture=self.child_venture, venturerole=self.child_role, sn="sn3", model=dm) self.blade.name = "blade" self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = "test_host2" self.deployment.device = self.blade self.deployment.mac = "10:9a:df:6f:af:01" self.deployment.ip = "192.168.1.1" self.deployment.hostname = "test" self.deployment.save() def test_acceptance(self): # using issue null engine self.assertEqual(self.deployment.status, DeploymentStatus.open.id) self.deployment.create_issue() self.assertEqual(self.deployment.issue_key, "#123456") # status not changed, until plugin is run self.assertEqual(self.deployment.status, DeploymentStatus.open.id) # run ticket acceptance plugin ticket(self.deployment.id) # ticket already accepted self.deployment = Deployment.objects.get(id=self.deployment.id) self.assertEqual(self.deployment.status, DeploymentStatus.in_deployment.id) def test_owners(self): self.assertEqual(get_technical_owner(self.deployment.device), "bufallo.kudlaczek") self.assertEqual(get_business_owner(self.deployment.device), "bill.babelek") def add_model(self, name, device_type): dm = DeviceModel() dm.model_type = (device_type,) dm.name = name dm.save() return dm
class DeploymentTest(TestCase): fixtures = [ '0_types.yaml', '1_attributes.yaml', '2_layers.yaml', '3_prefixes.yaml' ] def setUp(self): engine = settings.ISSUETRACKERS['default']['ENGINE'] if engine != '': raise ImproperlyConfigured( '''Expected ISSUETRACKERS['default']['ENGINE']='' got: %r''' % engine) # usual stuff self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture(name='child_venture', parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name='role', venture=self.child_venture) self.role.save() self.child_role = VentureRole( name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() to = CIOwner( first_name='Bufallo', last_name='Kudłaczek', ) to.save() bo = CIOwner( first_name='Bill', last_name='Bąbelek', ) bo.save() ct = ContentType.objects.get_for_model(self.top_venture) CIImporter().import_all_ci([ct]) CIOwnership(owner=to, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.technical.id).save() CIOwnership(owner=bo, ci=CI.get_by_content_object(self.child_venture), type=CIOwnershipType.business.id).save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create(sn='sn1', model=dm) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm, ) self.rack.parent = self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create(venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm) self.blade.name = 'blade' self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device = self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip = '192.168.1.1' self.deployment.hostname = 'test' self.deployment.save() def test_acceptance(self): # using issue null engine self.assertEqual(self.deployment.status, DeploymentStatus.open.id) self.deployment.create_issue() self.assertEqual(self.deployment.issue_key, '#123456') # status not changed, until plugin is run self.assertEqual(self.deployment.status, DeploymentStatus.open.id) # run ticket acceptance plugin ticket(self.deployment.id) # ticket already accepted self.deployment = Deployment.objects.get(id=self.deployment.id) self.assertEqual(self.deployment.status, DeploymentStatus.in_deployment.id) def test_owners(self): self.assertEqual(get_technical_owner(self.deployment.device), 'bufallo.kudlaczek') self.assertEqual(get_business_owner(self.deployment.device), 'bill.babelek') def add_model(self, name, device_type): dm = DeviceModel() dm.model_type = device_type, dm.name = name dm.save() return dm
class DeploymentTest(TestCase): fixtures=['0_types.yaml', '1_attributes.yaml', '2_layers.yaml', '3_prefixes.yaml'] def setUp(self): engine = settings.ISSUETRACKERS['default']['ENGINE'] if engine != '': raise ImproperlyConfigured('''Expected ISSUETRACKERS['default']['ENGINE']='' got: %s''' % engine) # usual stuff self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture(name='child_venture', parent=self.top_venture) self.child_venture.save() self.role = VentureRole(name='role', venture=self.child_venture) self.role.save() self.child_role = VentureRole(name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() to = VentureOwner(name='Bufallo Kudłaczek', venture=self.child_venture, type=OwnerType.technical.id) to.save() bo = VentureOwner(name='Bill Bąbelek', venture=self.child_venture, type=OwnerType.business.id) bo.save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create( sn='sn1', model=dm ) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm ) self.rack.parent=self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create( venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm ) self.blade.name = 'blade' self.blade.parent=self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device=self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip='192.168.1.1' self.deployment.hostname='test' self.deployment.save() def test_acceptance(self): # using issue null engine self.assertEqual(self.deployment.status, DeploymentStatus.open.id) self.deployment.create_issue() self.assertEqual(self.deployment.issue_key, '#123456') # status not changed, until plugin is run self.assertEqual(self.deployment.status, DeploymentStatus.open.id) # run ticket acceptance plugin ticket(self.deployment.id) # ticket already accepted self.deployment = Deployment.objects.get(id=self.deployment.id) self.assertEqual(self.deployment.status, DeploymentStatus.in_deployment.id) def test_owners(self): self.assertEqual(get_technical_owner(self.deployment.device), 'bufallo.kudlaczek') self.assertEqual(get_business_owner(self.deployment.device), 'bill.babelek') def add_model(self, name, device_type): dm = DeviceModel(); dm.model_type=device_type, dm.name=name dm.save() return dm
def _get_deployment(): obj = DataCenterAssetFullFactory() return Deployment(obj=obj)
class DeploymentTest(TestCase): def setUp(self): self.top_venture = Venture(name='top_venture') self.top_venture.save() self.child_venture = Venture( name='child_venture', parent=self.top_venture, ) self.child_venture.save() self.role = VentureRole( name='role', venture=self.child_venture, ) self.role.save() self.child_role = VentureRole( name='child_role', venture=self.child_venture, parent=self.role, ) self.child_role.save() dm = self.add_model('DC model sample', DeviceType.data_center.id) self.dc = Device.create(sn='sn1', model=dm) self.dc.name = 'dc' self.dc.save() dm = self.add_model('Rack model sample', DeviceType.rack_server.id) self.rack = Device.create( venture=self.child_venture, sn='sn2', model=dm, ) self.rack.parent = self.dc self.rack.name = 'rack' self.rack.save() dm = self.add_model('Blade model sample', DeviceType.blade_server.id) self.blade = Device.create( venture=self.child_venture, venturerole=self.child_role, sn='sn3', model=dm, ) self.blade.name = 'blade' self.blade.parent = self.rack self.blade.save() self.deployment = Deployment() self.deployment.hostname = 'test_host2' self.deployment.device = self.blade self.deployment.mac = '10:9a:df:6f:af:01' self.deployment.ip = '192.168.1.1' self.deployment.hostname = 'test' self.deployment.save() def add_model(self, name, device_type): dm = DeviceModel() dm.model_type = device_type, dm.name = name dm.save() return dm def test_archivization(self): id = self.deployment.id data = {} for field in self.deployment._meta.fields: data[field.name] = getattr(self.deployment, field.name) if field.name == 'mac': data[field.name] = MACAddressField.normalize(data[field.name]) self.deployment.archive() archive = ArchivedDeployment.objects.get(pk=id) archive_data = {} for field in archive._meta.fields: archive_data[field.name] = getattr(archive, field.name) if field.name == 'mac': archive_data[field.name] = MACAddressField.normalize( archive_data[field.name]) self.assertEqual(data, archive_data) with self.assertRaises(Deployment.DoesNotExist): Deployment.objects.get(pk=id)