Blog

Customers these days like to opt for the online platform so that they can get their desired goods easily. Hence, all the companies are looking forward to Outsource SEO Services to agencies such as The Writing Solutions which provide fully managed SEO services at a nominal monthly fee. They deploy well trained and experienced SEO representatives to handle both on-page and off-page optimization and try to resolve all the matters easily.

These experienced SEO experts can work upon all the aspects at the same time so as to make sure that they increase companies’ sale. But it is vital for all the SEO experts to have a good analytical and typing skills so that they can quickly document and update the web content required for both on-page and off-page optimization, in the form of title and meta descriptions or web content, no matter for our own website or third party portals, as and when required. It is the duty of the SEO experts to make sure that the website receives quality web traffic and ranks better on the Search Engines.

All the SEO experts should be ready to work as an all-rounder with focus upon managing all the tools along with working towards documenting web content and drawing an analysis from the results achieved. But before starting with the optimization process, it is the duty of SEO experts to have complete knowledge about the product.

Almost all the companies focus upon Search Engine Optimization so that they can get in touch with the customers globally. All the SEO executives are the backbone of an organization who can manage the entire online business.

Contact SEO Optimization Outsourcing Services for SEO Outsourcing Services.

Most of the online web portals like to take assistance from the SEO agencies in order to boost their sales from the online business. Most of the online companies who wish to boost the profits and add more customers can take help from the SEO agencies such as The Writing Solutions in order to Outsource SEO Services. These organizations help the company in improving its goodwill online by securing better positions on search engines such as Google, Yahoo and Bing without taking much time.

SEO companies deploy skilled experts who can manage all round website optimization, starting from web content development to both on-page and off-page back link generation. They are the skilled representatives of the company who help in documenting and updating proper titles and meta descriptions and back link generation in addition to managing all the tools such as Google Analytics, Search Console etc.

It is vital for the SEO experts to look at the search queries which have been pushing web traffic to your business website, it will help in determining and making an accurate list of target keywords. They help in converting a website visitor into a customer without any hassle. The associates can handle multiple tasks at the same time. For example: The same associate can help in documenting and updating the title and meta description along with generating back links.

It is the responsibility of the organization to provide them with complete information about different products as well as services that are offered online, so that they can formulate their strategy accordingly. It is one of the leading ways in which the company can build a strong relationship with the clients or the customers. An SEO associate helps in converting the website visitors to customers indirectly.  

Reach out for more information on SEO Outsourcing Services.

Tactical gears are always necessary whenever you go out hunting, fishing, shooting. etc. They are used a lot, and since they are so important, it is beneficial to buy good tactical gear. There are plenty of things you should know whenever you go out to buy tactical gear. So, let’s look at these things, and take a note.

  • The first thing you should figure out before buying tactical gear is what kind of tactical gear you need. People usually make the mistake of buying tactical gear unnecessarily, and as a result, they aren’t used at all. So, you must decide what tactical gear you need. 
  • There are a lot of tactical gear manufacturers in the market, but not all of them produce good quality gears. It is very important to find a good manufacturer. You can ask your friends about a trustworthy manufacturer like guntec. You can look online as well. 
  • If you want to buy high-quality tactical gear then you should do the necessary research about the sellers. You can go online and read the reviews of different sellers, or you can take recommendations from people you trust.

So, these are the things you should keep in mind when you finally decide to buy some tactical gears.


To know more about the trusted and reliable Tactical gear from the online portal, then make sure you give a look at this >> Buy Tactical Clothing

A realtor is needed as a mediator who assists in fixing up the deals while conducting transactions on behalf of a buyer. There are pros and cons to both of the arguments about whether to hire a realtor or not. 

new homes for sale calgary

Pros of Working with a Real Estate Agent

  1. Real estate agents have professional expertise in the real estate industry. They have a wealth of knowledge and professional advice that can help in navigating the exchange process. 

  2. Realtors help in time and energy saving as realtors can assist in convenience while making the biggest purchase decision. Real estate agents have a fair knowledge of the markets and they can decide the best home for buyers.

  3. Realtors help in handling all the listing communications and also assist in the paperwork. 

  4. They are middlemen and they can be very advantageous while negotiating. Realtors are neutral parties in the process of real estate exchange. 

Cons of Working with a Real Estate Agent

  1. A full-service agent may be very expensive in the exchange process and he can demand hefty commission in turn. An average of 6% commission is the minimum demanded price on the selling price. 

  2. Some realtors manage multiple clients and they are typical business persons, it is therefore needed to diligently ensure the realtor prior buying the property. 

  3. It is not necessary that all the realtors can work as per the standards and meet the deadlines properly. They have their own restraints while working on a specific property. 

  4. Realtors are not the financial advisors they can only recommend the best property as per the requirements. They are not a legal advisor as they can only assist a buyer in their legal holdings, but an additional lawyer is needed to complete the legal formalities.

Click For More Information:- Calgary Real Estate

You can always trust Bosch Hydraulics for getting the top-quality varieties of hydraulic hose fittings online. With its professional experience, its specialists are always attempting at supplying the most brilliant ranges of the hydraulic hoses. Its every product is specially designed by the contemporary production line that is considered avant-garde machinery. The hydraulic hose works quite well for conveying hydraulic fluids at different industries. The Company always remains trustworthy towards quality matters and the experts believe it is the products’ accurate quality that offers it an amazing market repute.



Also, Bosch Hydraulics is an esteemed one in this sector as it is serving its customers the top-quality variety of industrial hydraulic hose fittings online. The produced fittings are of quite high-quality, as well as have withstood the test of time, with sheer ease. The hydraulic hose fittings are best for any type of pressure along with being reliable as an outcome of the server testing they go through as their manufacturing process’s part. Irrespective of the reason behind your purchase of these industrial hydraulic hose fittings, you can rely upon the fact that you are investing in the top-quality product.



Bosch Hydraulics tests its hydraulic hose beyond required regulations for ensuring that the product to which the experts put their name is the best possible one. The hose fittings’ manufacture and design is always a creative procedure, with various production units consistently thriving for testing the products. 

 Wish to know more about industrial hydraulic hose fittings? Kindly visit the website https://boschhydraulic.com/

 

The Cigar is often categorised on the basis of their country of origin such as Cuba, Nicaragua and Dominican Republic. In addition to this, Cigar is also classified on the basis of the wrapper leaves such as Maduro and natural. These wrappers are also classified on the basis of the region of seeds. Both types of Cigar are available online, and you can buy it from an e-commerce website.

Maduro is a word of Spanish origin that means ripe or mature, and these wrappers were collected from the top of tobacco plants in order to ensure that they get exposure to sun and become dark. It is commonly referred to as the process of fermentation instead of plants location. Maduro wrappers are created with the help of proper moisture and heat provided to them naturally, and due to this it is a time-consuming process, and high level of patience is needed in order to reap them properly.

The speciality of Maduro Cigars includes their dark colour, and rich taste made them different from other types of Cigar. The darkest shades of brown and its speciality of providing a wide range of taste such as mellow flavour, the sweet and hearty taste made its demand in the Cigar lovers. As per the claim of a Cigar smoker, most of the flavour is provided by the wrapper to the Cigar, and use of high-quality premium Maduro wrapper made it different from other Cigars.

The darkening of the shades makes the wrapper more oiler and thicker and make it more noticeable on the roll. Moreover, the intense, juicy, fatty leaf provides a rich taste that helps in improving the experience of smoking. Maduro Cigars for sale can be seen on the various websites due to their slow-burning in harmony and in a wavy manner to enhance the experience of a smoker.

Chicago Cubs merchandise is available in various physical and online stores that are officially licensed by the MLB, starting from Chicago Cubs sweatshirts, Chicago Cubs hats and caps, Chicago Cubs shirts, and more. Numerous designs of Chicago Cubs merchandise are available in the market that is manufactured by authentic manufacturers. The Chicago Cubs gear officially licensed by the MLB demonstrates the authenticity and quality of the product. So, if you wish to have a Chicago Cubs gear that is officially licensed by MLB, you may prefer purchasing the Chicago Cubs merchandise from Mlbshop.com.

You can also buy the Chicago Cubs gear from other renowned online stores, like Sports World Chicago, etc., where you can find a vast range of Chicago Cubs gear that is officially licensed by MLB. When you buy any Chicago Cubs merchandise from online stores, make sure to check the details of the product. It is mentioned in the product details whether the product is licensed by MLB or not. The Chicago Cubs gear manufactured by renowned brands like '47, Majestic, Fanatics, Nike, etc. are mostly licensed by MLB. This demonstrates the quality and genuineness of the Chicago Cubs gear.

When you purchase any Chicago Cubs gear, make sure to buy the merchandise that is licensed by MLB. Get the licensed products from well-known physical stores or online stores, and show your support for the Chicago Cubs. There is numerous Chicago Cubs merchandise available with distinct design and style licensed by MLB, so you have various choices from where you can choose products as per your desire. Get any Chicago Cubs gear, and wear them anywhere you go, to show your support and affection for the Cubs. Wear the Chicago Cubs gear while watching the Cubs' match in the stadium or at home, and relish the game as one team.

Adding the right support by opting for the computer desk for the firm is the best choice. It is because these desks help in managing the space of the organization properly. The adjustable computer desk is designed in the best way possible so that they can help in keeping all the things in the right manner without any hassle.


The adjustable computer desk not only provides comfortability but would also provide relaxation and calm while working for hours in front of the screen. They are available in modern designs that are meant to suit every kind of decor. One should make sure that you look for these desks from the reliable site. It is because this is going to offer a reliable desk at the doorstep without any hassle.


There are many online sites that are offering the opting of customization so that the person can give a personal touch on the adjustable computer desk.  The customization helps in adding a personal touch to the furniture in the right manner. So, look for all the facilities that are offered online so that one can make the best choice in less duration of time. But don’t forget to go through the policy of the site before coming to any conclusion possible.

To know more about the adjustable computer desk from the right site possible, then the person is suggested that they should give a look at this >> computer supply store

With the flow of time, people have been looking for all the things online. That is why looking for all the things online is the best choice to make. All the ones who are thinking to look for Tactical gear, then making the right and suitable choice online help the person accurately.

People who are thinking to look for Tactical gear for their safety should make a reliable choice online. This is the best and most prompt way in which one can enhance the level of safety in the right manner. 


The Tactical gear is easily available in various designs as well as quality online so that the make the right choice possible. Even taking help from the experts can help in landing the better gear without any hassle. 

Try and go through all the details of the site carefully before coming to any conclusion. Even a comparison of the gear on the basis of cost and quality can help in getting the finest product accordingly.

Such tools are required by the ones who like to offer the right support possible. The Tactical gear is easy to wear so that the complete protection is added to the person without taking much time. So, all you need to do is just look up the right site for the durable products.


To know more about the suitable Tactical gear from the online site, then it is suggested to give a look at this >> Buy Tactical Clothing

In case you are going through the phase of premature hair loss, then Full Cap Human Hair Wigs are the most effective solution that helps in making you stay confident of yourself and bringing the positive change. Gone are those days when wigs were the only choice for those people who do not wish to undergo the surgical hair transplant procedure as now the hair systems prove to be the more evolved solution for women and men facing baldness. 


Know the right size of your chosen Affordable human hair wigs so that you can opt for the most suitable one without having an odd look and getting your scalp properly covered. Next, opt for the type of hair as the most effective hair used is the chemically treated human hair. You should not also forget to check out the durability and stay away from synthetic hair as much as possible. Are you usually in front of a camera? Do you wear the handset or hat frequently? These questions are critical because it will assist determine what kind of base as well as the attachment method will be the best suitable for you. 


You have to be most cautious while selecting texture, style, and color while buying Men's hair systems as any little adventure can turn out to be an issue. Also, every face needs a different hair system, and this is why it is vital to know about the correct one that suits your face. 


If you want to know more about Mens hairpieces, kindly visit here - Hair Pieces for Men





Fault Managment и поддержка GNU/Linux

1. Введение.

Есть очень много способов реализовать журналирование событий в GNU/Linux. Рассмотрим один из лучших, с возможностью предварительной фильтрации журналируемых событий и отправкой их по сети на syslog сервер NOC.

Предварительная фильтрация журналируемых событий необходима для предотвращения перегрузки сетевого канала передаваемыми событиями и DDOS сервера NOC.

Чтобы реализовать аудит будем использовать средства ядра Linux, также дополнительные утилиты: iptables, .... для настройки правил отлова событий в сети.  В качестве сервиса журналирования - syslog-ng.

2. Включение аудита выполняемых на сервере команд (Security | Audit | Command).

2.1 Настройка ядра Linux.

На исходные тексты ядра необходимо предварительно наложить патчи grsecurity.net после чего, как минимум, включить следующие опции:

CONFIG_GRKERNSEC_AUDIT_GROUP=y
CONFIG_GRKERNSEC_AUDIT_GID=65111
CONFIG_GRKERNSEC_EXECLOG=y
CONFIG_GRKERNSEC_AUDIT_CHDIR=y
2.2 Настройка системы.

Создаём группу для аудита:

# groupadd -g 65111 audit

И добавляем в неё необходимых пользователей:

# usermod -a -G audit noc
# usermod -a -G audit ...

Теперь ядро будет слать в системный журнал все выполняемые пользователями команды. Будьте осторожны, некоторые пользователи сервисов могут выполнять огромное количество команд. Добавляйте только необходимых пользователей!

3. Настройки защиты ядра Linux (Security | Attack | Crack Attemption Detected).

Включаем следующие опции настройки ядра:

CONFIG_PAX_NOEXEC=y
CONFIG_PAX_PAGEEXEC=y
CONFIG_PAX_MPROTECT=y
CONFIG_PAX_ASLR=y
CONFIG_PAX_RANDKSTACK=y
CONFIG_PAX_RANDUSTACK=y
CONFIG_PAX_RANDMMAP=y
CONFIG_PAX_MEMORY_SANITIZE=y
CONFIG_PAX_MEMORY_STACKLEAK=y
CONFIG_PAX_REFCOUNT=y
CONFIG_PAX_USERCOPY=y
CONFIG_GRKERNSEC_KMEM=y
CONFIG_GRKERNSEC_IO=y
CONFIG_GRKERNSEC_BPF_HARDEN=y
CONFIG_GRKERNSEC_PERF_HARDEN=y
CONFIG_GRKERNSEC_RAND_THREADSTACK=y
CONFIG_GRKERNSEC_PROC_MEMMAP=y
CONFIG_GRKERNSEC_KSTACKOVERFLOW=y
CONFIG_GRKERNSEC_BRUTE=y
CONFIG_GRKERNSEC_MODHARDEN=y
CONFIG_GRKERNSEC_HIDESYM=y
CONFIG_GRKERNSEC_RANDSTRUCT=y
CONFIG_GRKERNSEC_KERN_LOCKOUT=y
CONFIG_GRKERNSEC_BLACKHOLE=y
CONFIG_GRKERNSEC_FLOODTIME=60
CONFIG_GRKERNSEC_FLOODBURST=3

Бинарные файлы должны собираться с PIE/SSP (CFLAGS="-fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,now -Wl,-z,relro"). Теперь ядро способно определять некоторые виды популярных атак, предотвращать их распространение и информировать нас о произошедшей попытке взлома. Можно отметить в этом разделе больше опций или меньше... Некоторые опции сильно влияют на производительность, которая в свою очередь зависит от аппаратной платформы и поддерживаемых процессором инструкций.

4. Настройки iptables, ... и прочих средств списков контроля доступа (Security | ACL).

Необходимо создать специальные правила журналирования пакетов в iptables со специальными метками. Например для журналирования отброшенных пакетов необходимо последними в цепочках INPUT, FORWARD, OUTPUT добавить соответственно следующие правила:

# iptables -t filter -A INPUT -p ALL -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix 'iptables INPUT '
# iptables -t filter -A FORWARD -p ALL -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix 'iptables FORWARD '
# iptables -t filter -A OUTPUT -p ALL -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix 'iptables OUTPUT ' --log-uid

Количество сетевых событий также может быть огромным, фильтруйте только необходимые, например атака ssh heartbeat:

# iptables -t filter -A INPUT -p tcp --dport 22 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j LOG --log-prefix 'iptables SSH HEARTBEAT '

5. Настройка lm_sensors (Environment)

Устанавливаем в систему пакет lm_sensors с поддержкой sensord. В опции запуска sensord можно добавить "-i 0", так он будет журналировать только тревожные сообщения. Запускаем sensord и добавляем его в вашу систему инициализации.

6. Настройка syslog-ng

Настройка этого сервиса предельно понятна и удобна. Необходимо указать 4 главных параметра: источник событий (source), место назначения событий (destination), фильтр событий (filter) и дать команду журналировать (log). Фильтр событьй должен выбирать только события классифицируемые в NOC! Приведём рабочий пример файла настройки /etc/syslog-ng/syslog-ng.conf, локальные журналы с него удалены:

@version: 3.7
# $Id$
#
# Syslog-ng default configuration file for Gentoo Linux

# https://bugs.gentoo.org/show_bug.cgi?id=426814
@include "scl.conf"

options {
threaded(yes);
chain_hostnames(no);

# The default action of syslog-ng is to log a STATS line
# to the file every 10 minutes. That's pretty ugly after a while.
# Change it to every 12 hours so you get a nice daily update of
# how many messages syslog-ng missed (0).
stats_freq(43200);
# The default action of syslog-ng is to log a MARK line
# to the file every 20 minutes. That's seems high for most
# people so turn it down to once an hour. Set it to zero
# if you don't want the functionality at all.
mark_freq(3600);
};

source src {
system();
internal();
};

destination NOC { udp("1.1.1.1" port(514)); };

filter Environment { facility(daemon) and program("sensord") and level(alert); };
filter Network_Link { facility(kern) and message("^.*: (link up|link down)$"); };
filter Network_LAG { facility(kern) and message("^.*: (Adding slave|Removing slave)"); };
filter Network_NTP { facility(daemon) and program("^ntpd$") and (
message("(now valid|now invalid)$")
or message("adjusting local clock by")
or message("clock is now synced$")
); };
filter Security_ACL { facility(kern) and (
                message("^iptables .*")
                or message("^ebtables .*")
                ); };
filter Security_Attack_Hardened { facility(kern) and (
                message("^PAX: terminating task: ")
                or message("^grsec: banning user with uid ")
                or message("^grsec: bruteforce prevention initiated ")
                or message("^grsec: denied resource overstep ")
                or message("^grsec: denied RWX mmap ")
               or message("^grsec: denied untrusted exec ")
                or message("^grsec: From ")
                ); };
filter Security_Audit_Command { facility(kern) and (
                message("^grsec: chdir to") and not message("^.*uid/euid:0/0 gid/egid:0/0, parent /usr/sbin/(run-crons|cron)")
                or message("^grsec: exec of") and not message("^.*uid/euid:0/0 gid/egid:0/0, parent /usr/sbin/(run-crons|cron)")
                ); };
filter Security_Audit_Cron { facility(cron) and message("^.* CMD .*$") and not message("^.*/usr/sbin/run-crons.*$"); };
filter Security_Authentication { facility(authpriv) and message("^(.*|)pam_unix.*$"); };
filter System { program("^init$") and message("^(Entering|Switching to) runlevel: "); };
filter NOC { filter(Environment)
                or filter(Network_Link)
                or filter(Network_LAG)
or filter(Network_NTP)
                or filter(Security_ACL)
                or filter(Security_Attack_Hardened)
                or filter(Security_Audit_Command)
                or filter(Security_Audit_Cron)
                or filter(Security_Authentication)
                or filter(System)
                ; };
log { source(src); filter(NOC); destination(NOC); };

7. NOC

Теперь необходимо ваш GNU/Linux сервер добавить в NOC Service Activation -> Managed Object, при добавлении выбрать профиль OS.Linux и указать в Trap Source IP адрес сервера.

Если решили добавить новые события с сервера GNU/Linux, то напишите ещё фильтры, у файле настройки /etc/syslog-ng/syslog-ng.conf, выбирающие только необходимые вам события и добавьте их через or в агрегирующий фильтр NOC. Выбранные вами события появятся в Fault Management -> Events как Unknown | Syslog. Далее вам необходимо написать правила классификации событий.

 

Ишью как модераторы-то джируют!

Или рассказ о модерировании Issues в JIRA.

Назрела потребность добавить порядка в задачах в трекере. 

Собственно трекер: https://bt.nocproject.org/secure/Dashboard.jspa

Пара модераторов: Егор и Сергей.

Права на редактирования задачи и добавляем инфы в поля Component/s & Labels.

Сейчас добавляем в Component/s:

в Labels:

  • профиль, если задача по конкретному профилю, например Cisco.IOS;
  • unknown-event — по необработанным FM-сообщениям;
  • patch — при наличии в задаче патча;
  • security — все про безопасность в ноке;
  • request-sa-script — запрашивается создание скрипта в профиле SA;
  • search — проблемы поиска и одноимённого приложения;
  • new-sa-profile — новый профиль устройств;
  • beefCanned Beef;
  • crash — баг ведет в трейсбэку;
  • get_ — имя скрипта, о котором задача;
  • json — есть json-данные.

Примеры поисковых запросов:

labels = sa AND component IS NULL
component IS NULL AND text ~event_class__name
component IS NULL AND text ~"SNMP Trap" AND status != RESOLVED
labels IS NULL AND text ~dlink AND status NOT IN (RESOLVED, CLOSED)
labels IS NULL AND text ~cisco AND status NOT IN (RESOLVED, CLOSED)
project = NOC AND labels IS NULL AND text ~cisco AND status NOT IN (RESOLVED, CLOSED)
project = NOC AND labels IS NULL AND component IS NULL AND status NOT IN (RESOLVED, CLOSED)
project = NOC AND reporter =  'Ilya Zakharov' AND labels IS NULL AND component IS NULL AND status NOT IN (RESOLVED, CLOSED)

 

Веллком в комменты с предложениями по Component/s & Labels.

Повседневный:

project = NOC AND (labels IS NULL OR component IS NULL) AND status NOT IN (RESOLVED, CLOSED, DONE)

Старые баги:

project = NOC AND status not in (RESOLVED, CLOSED, DONE, FEEDBACK) AND createdDate < 2012-01-01 AND type = Bug

вот еще:

project = NOC AND status not in (RESOLVED, CLOSED, DONE, FEEDBACK) AND type = Bug AND (labels is EMPTY OR component is EMPTY) ORDER BY updatedDate

 

 
Записки новичка: перезалить скрипт

Бывает, что нужно поправить файло, а с обновлением потом "непонятки",

или и вовсе я случайно грохнул нужный скрипт sa/profiles/Cisco/IOS/get_oam_status.py

возвращаем файл к состоянию, зафиксированному в репозитории:

под noc'ом

hg revert sa/profiles/Cisco/IOS/get_oam_status.py

 

или точнее:

8[14:38]    zi_rus: TSergey: у тебя неправильное описание, реверт не метит, а вытягирает и репо текущую версию взамен той что лежит на диске. 
            если локальный файл отличается от репозитарного, то hg не может по-нормальному его обновить, вернее она могла бы его зам
8[14:38]    zi_rus: а когда ты ревертишь у тебя файл становится одинаковым
8[14:38]    zi_rus: и апгрейд может нормально дальше пройти
Записки новичка: удаляем конфиг МО

Как-то так:

./noc shell
%cpaste
from noc.lib.gridvcs.gridvcs import *
from noc.lib.gridvcs.manager import *
from noc.sa.models import *
CLEAR_CONFIG_MO = {'MO1','MO2',...}
mo = ManagedObject.objects.filter()
for m in mo:
    if m.name in CLEAR_CONFIG_MO:
        print "*************************************"
        print m.name
        m.config.get_gridvcs().delete(m.id)
--
quit()

Понадобилось при работе над get_config, для удаления черновых конфигов.

Записки новичка: консервируем МО

У нас нередко коммутатор получает "вторую жизнь".

По каким-либо причинам мы его демонтируем, помещаем на склад, а спустя некоторое время он возвращается в сеть, как новый объект.

Для NOC`а, однако, это не совсем новый объект, некоторые его свойства он помнит для его предыдущей реинкарнации.

Я правлю это так:

./noc shell
from noc.inv.models.discoveryid import DiscoveryID
from noc.inv.models import *
from noc.sa.models import *
MO = {'MO1', 'MO2'}
for m in MO:
    id = ManagedObject.objects.get(name = m).id
    try:
        chassis = DiscoveryID.objects.get(object = id)
        print "chassis:", chassis.object, chassis.chassis_mac, chassis.id         
        # delete chassis 
        chassis.delete()
        chassis.save()
    except:
        print "chassis not found:", m
    for i in Interface.objects.filter(managed_object = id):
        if i.link:
            try:
                l = Link.objects.get(interfaces = i)
                print "link:", i.link
                # delete link
                l.delete()
                l.save()
            except:
                print "link not found:", i
        # delete interface
        i.delete()
        i.save()
quit()