Esempio n. 1
0
def delete_switch_port(switch_port, processor):
    log_room_event(
        "Deleted switch-port {} on {}.".format(switch_port.name,
                                               switch_port.switch.host.name),
        processor, switch_port.switch.host.room)

    session.delete(switch_port)
Esempio n. 2
0
def create_room(building,
                level,
                number,
                processor,
                address,
                inhabitable=True,
                vo_suchname: str | None = None):
    if Room.q.filter_by(number=number, level=level,
                        building=building).first() is not None:
        raise RoomAlreadyExistsException

    if vo_suchname and Room.q.filter_by(
            swdd_vo_suchname=vo_suchname).first() is not None:
        raise RoomAlreadyExistsException

    room = Room(number=number,
                level=level,
                inhabitable=inhabitable,
                building=building,
                address=address,
                swdd_vo_suchname=vo_suchname)

    log_room_event("Room created.", processor, room)

    return room
Esempio n. 3
0
def patch_switch_port_to_patch_port(switch_port, patch_port, processor):
    if patch_port.switch_port:
        raise PatchPortAlreadyPatchedException()

    log_room_event(f"Added patch from {switch_port.switch.host.name}/{switch_port.name} to {patch_port.name}.",
                   processor, switch_port.switch.host.room)

    patch_port.switch_port = switch_port
Esempio n. 4
0
def patch_switch_port_to_patch_port(switch_port, patch_port, processor):
    if patch_port.switch_port:
        raise PatchPortAlreadyPatchedException()

    log_room_event("Added patch from {}/{} to {}.".format(switch_port.switch.host.name, switch_port.name, patch_port.name),
                   processor, switch_port.switch.host.room)

    patch_port.switch_port = switch_port
Esempio n. 5
0
def create_switch(name, management_ip, room, processor):
    switch = Switch(management_ip=management_ip, host=Host(room=room, owner=User.q.get(0), name=name))

    session.add(switch)

    log_room_event("Created switch '{}' with management IP {}.".format(switch.host.name, switch.management_ip),
                   processor, switch.host.room)

    return switch
Esempio n. 6
0
def remove_patch_to_patch_port(patch_port, processor):
    if not patch_port.switch_port:
        raise Exception("Patch-port is not patched to a switch-port.")

    switch_port = patch_port.switch_port

    log_room_event("Removed patch from {}/{} to {}.".format(switch_port.switch.host.name, switch_port.name, patch_port.name),
                   processor, switch_port.switch.host.room)

    patch_port.switch_port = None
Esempio n. 7
0
def create_switch_port(switch, name, default_vlans, processor):
    switch_port = SwitchPort(name=name, switch=switch, default_vlans=default_vlans)
    session.add(switch_port)

    default_vlans_str = ', '.join(str(vlan.vid) for vlan in switch_port.default_vlans)
    message = deferred_gettext("Created switch-port {} on {} with default VLANs {}.")\
        .format(switch_port.name, switch_port.switch.host.name, default_vlans_str)
    log_room_event(message.to_json(), processor, switch_port.switch.host.room)

    return switch_port
Esempio n. 8
0
def remove_patch_to_patch_port(patch_port, processor):
    if not patch_port.switch_port:
        raise Exception("Patch-port is not patched to a switch-port.")

    switch_port = patch_port.switch_port

    log_room_event(f"Removed patch from {switch_port.switch.host.name}/{switch_port.name} to {patch_port.name}.",
                   processor, switch_port.switch.host.room)

    patch_port.switch_port = None
Esempio n. 9
0
def create_switch(name, management_ip, room, processor):
    switch = Switch(management_ip=management_ip, host=Host(room=room, owner=User.get(0), name=name))

    session.add(switch)

    message = deferred_gettext("Created switch '{}' with management IP {}.")\
        .format(switch.host.name, switch.management_ip)
    log_room_event(message.to_json(),
                   processor, switch.host.room)

    return switch
Esempio n. 10
0
def create_patch_port(name, room, switch_room, processor):
    # This check can be removed as soon as the unique constraint exists
    if PatchPort.q.filter_by(name=name, switch_room=switch_room).first():
        raise PatchPortAlreadyExistsException()

    patch_port = PatchPort(name=name, room=room, switch_room=switch_room)
    session.add(patch_port)

    log_room_event("Created patch-port {} to {}.".format(patch_port.name, room.short_name), processor, switch_room)

    return patch_port
Esempio n. 11
0
def create_switch_port(switch, name, default_vlans, processor):
    switch_port = SwitchPort(name=name, switch=switch, default_vlans=default_vlans)
    session.add(switch_port)

    log_room_event("Created switch-port {} on {} with default VLANs {}."
                   .format(switch_port.name, switch_port.switch.host.name,
                           ', '.join(str(vlan.vid) for vlan in switch_port.default_vlans)),
                   processor,
                   switch_port.switch.host.room)

    return switch_port
Esempio n. 12
0
def create_room(building, level, number, processor, inhabitable=True):
    if Room.q.filter_by(number=number, level=level,
                        building=building).first() is not None:
        raise RoomAlreadyExistsException()

    room = Room(number=number,
                level=level,
                inhabitable=inhabitable,
                building=building)

    log_room_event("Room created.", processor, room)

    return room
Esempio n. 13
0
def edit_room(room, number, inhabitable, vo_suchname: str, address: Address,
              processor: User):
    if room.number != number:
        if Room.q.filter_by(number=number,
                            level=room.level,
                            building=room.building).filter(
                                Room.id != room.id).first() is not None:
            raise RoomAlreadyExistsException()

        log_room_event(f"Renamed room from {room.number} to {number}.",
                       processor, room)

        room.number = number

    if room.inhabitable != inhabitable:
        log_room_event(f"Changed inhabitable status to {str(inhabitable)}.",
                       processor, room)

        room.inhabitable = inhabitable

    if room.swdd_vo_suchname != vo_suchname:
        log_room_event(
            deferred_gettext("Changed VO id from {} to {}.").format(
                room.swdd_vo_suchname, vo_suchname).to_json(), processor, room)
        room.swdd_vo_suchname = vo_suchname

    if room.address != address:
        room.address = address
        log_room_event(
            deferred_gettext("Changed address to {}").format(
                str(address)).to_json(), processor, room)
        for user in room.users_sharing_address:
            user.address = room.address

    return room
Esempio n. 14
0
def edit_switch_port(switch_port, name,  default_vlans, processor):
    if switch_port.name != name:
        message = deferred_gettext("Changed name of switch-port {} to {}.")\
            .format(switch_port.name, name)
        log_room_event(message.to_json(), processor, switch_port.switch.host.room)

        switch_port.name = name

    if switch_port.default_vlans != default_vlans:
        switch_port.default_vlans = default_vlans

        new_default_vlans_str = ', '.join(str(vlan.vid) for vlan in switch_port.default_vlans)
        message = deferred_gettext("Changed default VLANs of switch-port {} to {}.")\
            .format(switch_port.name, new_default_vlans_str)
        log_room_event(message.to_json(), processor, switch_port.switch.host.room)
Esempio n. 15
0
def edit_switch_port(switch_port, name,  default_vlans, processor):
    if switch_port.name != name:
        log_room_event("Changed name of switch-port {} to {}." .format(switch_port.name,name),
                       processor, switch_port.switch.host.room)

        switch_port.name = name

    if switch_port.default_vlans != default_vlans:
        switch_port.default_vlans = default_vlans

        log_room_event(
            "Changed default VLANs of switch-port {} to {}.".format(
                switch_port.name,
                ', '.join(str(vlan.vid) for vlan in switch_port.default_vlans)),
            processor, switch_port.switch.host.room)
Esempio n. 16
0
def edit_patch_port(patch_port, name, room, processor):
    if patch_port.name != name:
        # This check can be removed as soon as the unique constraint exists
        if PatchPort.q.filter_by(name=name, switch_room=patch_port.switch_room).first():
            raise PatchPortAlreadyExistsException()

        log_room_event("Changed name of patch-port {} to {}.".format(patch_port.name, name),
                       processor, patch_port.switch_room)

        patch_port.name = name

    if patch_port.room != room:
        log_room_event("Changed room of patch-port {} from {} to {}."
                       .format(patch_port.name, patch_port.room.short_name, room.short_name),
                       processor, patch_port.switch_room)

        patch_port.room = room
Esempio n. 17
0
def edit_patch_port(patch_port, name, room, processor):
    if patch_port.name != name:
        # This check can be removed as soon as the unique constraint exists
        if PatchPort.q.filter_by(name=name, switch_room=patch_port.switch_room).first():
            raise PatchPortAlreadyExistsException()

        message = deferred_gettext("Changed name of patch-port {patch_port_name} to {name}.")\
            .format(patch_port_name=patch_port.name, name=name)
        log_room_event(message.to_json(), processor, patch_port.switch_room)

        patch_port.name = name

    if patch_port.room != room:
        message = deferred_gettext("Changed room of patch-port {pp}"
                                   " from {old_room} to {new_room}.")\
            .format(pp=patch_port.name, old_room=patch_port.room.short_name,
                    new_room=room.short_name)
        log_room_event(message.to_json(), processor, patch_port.switch_room)

        patch_port.room = room
Esempio n. 18
0
def edit_room(room, number, inhabitable, processor):
    if room.number != number:
        if Room.q.filter_by(number=number,
                            level=room.level,
                            building=room.building).filter(
                                Room.id != room.id).first() is not None:
            raise RoomAlreadyExistsException()

        log_room_event(
            "Renamed room from {} to {}.".format(room.number, number),
            processor, room)

        room.number = number

    if room.inhabitable != inhabitable:
        log_room_event(
            "Changed inhabitable status to {}.".format(str(inhabitable)),
            processor, room)

        room.inhabitable = inhabitable

    return room
Esempio n. 19
0
    def test_create_room_log_entry(self):
        room_log_entry = log_room_event(message=self.message,
                                        author=self.user,
                                        room=self.room)

        assert RoomLogEntry.get(room_log_entry.id) is not None

        db_room_log_entry = RoomLogEntry.get(room_log_entry.id)

        self.assert_log_entry(db_room_log_entry, self.user, session.utcnow(),
                              self.message)
        assert db_room_log_entry.room == self.room

        assert LogEntry.get(db_room_log_entry.id) is not None
        session.session.delete(db_room_log_entry)
        session.session.commit()
        assert LogEntry.get(db_room_log_entry.id) is None
Esempio n. 20
0
    def test_create_room_log_entry(self):
        room_log_entry = log_room_event(message=self.message,
                                        author=self.user,
                                        room=self.room)

        self.assertIsNotNone(RoomLogEntry.q.get(room_log_entry.id))

        db_room_log_entry = RoomLogEntry.q.get(room_log_entry.id)

        self.assert_log_entry(db_room_log_entry, self.user, session.utcnow(),
                              self.message)
        self.assertEqual(db_room_log_entry.room, self.room)

        self.assertIsNotNone(LogEntry.q.get(db_room_log_entry.id))
        session.session.delete(db_room_log_entry)
        session.session.commit()
        self.assertIsNone(LogEntry.q.get(db_room_log_entry.id))
Esempio n. 21
0
def edit_switch(switch, name, management_ip, room, processor):
    if switch.host.name != name:
        log_room_event("Changed name of '{}' to '{}'.".format(switch.host.name, name), processor, switch.host.room)

        switch.host.name = name

    if switch.host.room != room:
        log_room_event("Moved switch '{}' from {} to {}.".format(switch.host.name, switch.host.room, room), processor, switch.host.room)

        switch.host.room = room

    if switch.management_ip != IPAddress(management_ip):
        log_room_event("Changed management IP of switch '{}' from {} to {}."
                       .format(switch.host.name, switch.management_ip, management_ip), processor, switch.host.room)

        switch.management_ip = management_ip
Esempio n. 22
0
    def test_0010_create_room_log_entry(self):
        room = Room.q.filter_by(number=RoomData.dummy_room1.number,
                                level=RoomData.dummy_room1.level).one()

        room_log_entry = log_room_event(message=self.message,
                                        author=self.user,
                                        room=room)

        self.assertIsNotNone(RoomLogEntry.q.get(room_log_entry.id))

        db_room_log_entry = RoomLogEntry.q.get(room_log_entry.id)

        self.assertEqual(db_room_log_entry.message, self.message)
        self.assertAlmostEqual(db_room_log_entry.created_at, session.utcnow(),
                               delta=timedelta(seconds=5))
        self.assertEqual(db_room_log_entry.author, self.user)
        self.assertEqual(db_room_log_entry.room, room)

        self.assertIsNotNone(LogEntry.q.get(db_room_log_entry.id))
        session.session.delete(db_room_log_entry)
        session.session.commit()
        self.assertIsNone(LogEntry.q.get(db_room_log_entry.id))
Esempio n. 23
0
    def test_0010_create_room_log_entry(self):
        room = Room.q.filter_by(number=RoomData.dummy_room1.number,
                                level=RoomData.dummy_room1.level).one()

        room_log_entry = log_room_event(message=self.message,
                                        author=self.user,
                                        room=room)

        self.assertIsNotNone(RoomLogEntry.q.get(room_log_entry.id))

        db_room_log_entry = RoomLogEntry.q.get(room_log_entry.id)

        self.assertEqual(db_room_log_entry.message, self.message)
        self.assertAlmostEqual(db_room_log_entry.created_at,
                               session.utcnow(),
                               delta=timedelta(seconds=5))
        self.assertEqual(db_room_log_entry.author, self.user)
        self.assertEqual(db_room_log_entry.room, room)

        self.assertIsNotNone(LogEntry.q.get(db_room_log_entry.id))
        session.session.delete(db_room_log_entry)
        session.session.commit()
        self.assertIsNone(LogEntry.q.get(db_room_log_entry.id))
Esempio n. 24
0
def edit_switch(switch, name, management_ip, room, processor):
    if switch.host.name != name:
        message = deferred_gettext("Changed switch name from '{old}' to '{new}'.")\
            .format(old=switch.host.name, new=name)
        log_room_event(message.to_json(), processor, switch.host.room)

        switch.host.name = name

    if switch.host.room != room:
        message = deferred_gettext("Moved switch '{}' from {} to {}.")\
            .format(switch.host.name, switch.host.room, room)
        log_room_event(message.to_json(), processor, switch.host.room)

        switch.host.room = room

    if switch.management_ip != IPAddress(management_ip):
        message = deferred_gettext("Changed management IP of switch '{}' from {} to {}.")\
            .format(switch.host.name, switch.management_ip, management_ip)
        log_room_event(message.to_json(), processor, switch.host.room)

        switch.management_ip = management_ip
Esempio n. 25
0
def delete_switch_port(switch_port, processor):
    message = deferred_gettext("Deleted switch-port {port} on {host}.")\
        .format(port=switch_port.name, host=switch_port.switch.host.name)
    log_room_event(message.to_json(), processor, switch_port.switch.host.room)

    session.delete(switch_port)
Esempio n. 26
0
def delete_switch(switch, processor):
    log_room_event(f"Deleted switch {switch.host.name}.", processor, switch.host.room)

    session.delete(switch)
    session.delete(switch.host)
Esempio n. 27
0
def delete_patch_port(patch_port, processor):
    message = deferred_gettext("Deleted patch-port {}.").format(patch_port.name)
    log_room_event(message.to_json(), processor, patch_port.switch_room)

    session.delete(patch_port)
Esempio n. 28
0
def delete_patch_port(patch_port, processor):
    log_room_event("Deleted patch-port {}.".format(patch_port.name), processor, patch_port.switch_room)

    session.delete(patch_port)
Esempio n. 29
0
def delete_switch(switch, processor):
    log_room_event("Deleted switch {}.".format(switch.host.name), processor, switch.host.room)

    session.delete(switch)
    session.delete(switch.host)