Metody api¶
Na podanej liście funkcji znajdują się przykłady zastosowania. Zostały one wygenerowane automatycznie na podstawie DocTestów. Jako pierwszy argument jest podawany request który w przypadku komunikacji przez api jest dodawany automatycznie podanie go spowoduje błąd. Poniższe przykłady ponadto nie są enkapsułowane w protokół JSON-RPC 2.0.
Każda z poniższych metod umożliwia również podanie dwóch dodatkowych argumentów username oraz password które
umożliwia wykonanie danej metody bez uprzedniego zalogowania i uwierzytelniania na podstawie klucza sesyjnego. Jednak
taka operacja powoduje wykonanie za każdym razem weryfikacji poprawności hash’a co skutkuje dodatkowymi zapytaniami do
bazy danych oraz duża ilością zbędnych obliczeń i może wpłynąć negatywnie na czas reakcji systemu.
- client_get(request, *args, **kwargs)¶
Pobranie danych o wyznaczonymi kliencie.
- Parametry:
id (int) – identyfikator wybranego klienta
- Zwraca:
Obiekt klienta posiadający wskazane id
- Typ zwracany:
>>> api.client_get(request, 2) {'description': u'bardzo trudny', 'pin': ..., 'isp': u'...', 'active': False, 'crm_id': ..., 'id': ..., 'name': u'client2'}
- client_add(request, crm_id, name, description, isp=None, firstname=None, lastname=None, city=None, street=None, house_nr=None, apartment_nr=None, id_type=None, id_value=None)¶
Metoda tworząca nowego klienta. W przypadku nie podania do którego isp nowo utworzony klient ma należeć, wybierany jest jeden z isp do którego przypisany jest użytkownik. Wybierany jest pierwszy isp z listy wg kolejności w bazie danych, jednak kolejność ta nie jest deterministyczna i może ulegać zmianie, dlatego dla użytkowników przypisanych do więcej niż jednego ISP zaleca się podawanie ISP za każdym razem.
- Parametry:
crm_id (string(200)) – referencja obiektu do bazy ISP
name (string(200)) – przyjazna nazwa lub adres
description (string(255)) – opis zawierający dodatkowe informacje o kliencie
isp (isp) – isp do którego ma należeć klient (argument opcjonalny)
firstname (string(255)) – imie
lastname (string(255)) – nazwisko
city (string(7)) – kode terytu odpowiadający miejscowości np 0986283
street (string(12)) – kod terytu odpowiadający ulicy np 098694613722
house_nr (string(10)) – numer domu
apartment_nr (string(10)) – numer mieszkania
id_type ({3:PESEL, 2:Passport})) – Typ dokumenty poświadczającego tożsamość
id_value (string(200)) – Numer dokumentu poświadczającego tożsamość
- Zwraca:
Nowo stworzony obiekt klienta
- Typ zwracany:
>>> api.client_add(request, "2", "client2", "trudny", isp="isptestowy") {'description': 'trudny', 'pin': ..., 'isp': u'...', 'active': False, 'crm_id': '2', 'id': 2, 'name': 'client2'}
- client_set(request, id, crm_id=None, name=None, description=None)¶
Zmiana danych już istniejącego klienta. Nie ma możliwość przenoszenia klienta między ISP.
- Parametry:
- Zwraca:
Obiekt klienta ze zmienionymi danymi
- Typ zwracany:
>>> api.client_set(request, 2, description="bardzo trudny") {'description': 'bardzo trudny', 'pin': ..., 'isp': u'...', 'active': False, 'crm_id': u'2', 'id': 2, 'name': u'client2'}
- clientdata_get(request, id)¶
Pobranie personalnych danych już istniejącego klienta.
- Parametry:
id – identyfikator klienta
- clientdata_set(request, id, firstname=None, lastname=None, city=None, street=None, house_nr=None, apartment_nr=None, id_type=None, id_value=None)¶
Aktualizacja personalnych danych już istniejącego klienta.
- Parametry:
id (int) – identyfikator klienta
firstname (string(255)) – imie
lastname (string(255)) – nazwisko
city (string(7)) – kode terytu odpowiadający miejscowości np 0986283
street (string(12)) – kod terytu odpowiadający ulicy np 098694613722
house_nr (string(10)) – numer domu
apartment_nr (string(10)) – numer mieszkania
id_type ({3:PESEL, 2:Passport})) – Typ dokumenty poświadczającego tożsamość
id_value (string(200)) – Numer dokumentu poświadczającego tożsamość
- client_list(request, *args, **kwargs)¶
Pobranie listy klientów spełniających podane kryteria. Wszystkie kryteria które zostaną podane zostaną wzięte pod uwagę. Podanie pustego kryterium pozwoli pobrać informację o wszystkich obiektach.
- Parametry:
- Zwraca:
Lista klientów spełniających kryterium
- Typ zwracany:
[ client ]
>>> api.client_list(request, active=True) [{'id': 1}] >>> api.client_list(request, active=False) [{'id': 2}] >>> api.client_list(request, crm_id_in=[0,2]) [{'id': 2}] >>> api.client_list(request, name_like="client") [{'id': 2}, {'id': 1}] >>> api.client_list(request, description_like="trudny") [{'id': 2}] >>> api.client_list(request) [{'id': 2}, {'id': 1}]
- client_count(request, *args, **kwargs)¶
Pobranie ilości klientów spełniających podane kryteria. Wszystkie kryteria które zostaną podane zostaną wzięte pod uwagę. Podanie pustego kryterium pozwoli pobrać informację o wszystkich obiektach.
- Parametry:
- Zwraca:
Liczba klientów spełniających kryterium
- Typ zwracany:
int
>>> api.client_count(request, active=True) 1 >>> api.client_count(request, active=False) 1 >>> api.client_count(request, crm_id_in=[0,2]) 1 >>> api.client_count(request, name_like="client") 2 >>> api.client_count(request, description_like="trudny") 1 >>> api.client_count(request) 2
- client_pin_set(request, id, pin)¶
Ustawienie pinu klienta o podanym id
- Parametry:
id (int) – identyfikator klienta
pin (string(255)) – nowy pin
- Zwraca:
Obiekt klienta ze zmienionym pinem
- Typ zwracany:
>>> api.client_pin_set(request, 2, pin="000") {'description': u'bardzo trudny', 'pin': '000', 'isp': u'...', 'active': False, 'crm_id': u'2', 'id': 2, 'name': u'client2'}
- stb_get(request, mac)¶
Pobierz dane o danym Set-top-Box’ie
- Parametry:
mac (string(12)) – adres MAC urządzenia
- Zwraca:
Obiekt stb o danym adresie MAC
- Typ zwracany:
>>> api.stb_get(request, "aabbccddeeff") {'status': 'on', 'function_access_point': True, 'description': u'zepsuty', 'pin': u'aabbccddee', 'ip': '192.168.0.2', 'mac': u'aabbccddeeff', 'available_streamers': ['global', [{'id': 4, 'full_name': u'l3backup.boot'}]], 'function_standard_dhcp': False, 'firmware': {'tag': u'1.1.1'}, 'l3': False, 'application_list': ['global', [{'name': u'1'}, {'name': u'2'}]], 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'serial_number': u'aabbccddeeff', 'type': 'Korbox 2.0'}
- stb_set(request, mac, l3=None, function_access_point=None, function_standard_dhcp=None, is_multicast=None, wifi_client=None)¶
Ustaw flagi dla STB.
- Parametry:
mac (string(12)) – adres MAC urządzenia
l3 (bool) – czy urządzenie jest urządzeniem l3
function_access_point (bool) – czy może pełnić funkcję access point’a
function_standard_dhcp (bool) – czy ma pobierać standardowego dhcp
- Zwraca:
Obiekt stb o danym adresie MAC
- Typ zwracany:
>>> api.stb_get(request, "aabbccddeeff", function_access_point=False) {'status': 'on', 'function_access_point': False, 'description': u'zepsuty', 'pin': u'aabbccddee', 'ip': '192.168.0.2', 'mac': u'aabbccddeeff', 'available_streamers': ['global', [{'id': 4, 'full_name': u'l3backup.boot'}]], 'function_standard_dhcp': False, 'firmware': {'tag': u'1.1.1'}, 'l3': False, 'application_list': ['global', [{'name': u'1'}, {'name': u'2'}]], 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'serial_number': u'aabbccddeeff', 'type': 'Korbox 2.0'}
- stb_count(request, mac_in=None, serial_number_in=None, description_like=None, l3=None, proxy_interface=None, firmware_in=None, ip_in=None, stb_type=None, is_multicast=None)¶
Pobierz ilość obiektów stb spełaniających dane kryterium. Wszystkie kryteria które zostaną podane zostaną wzięte pod uwagę. Podanie pustego kryterium pozwoli pobrać informację o wszystkich obiektach.
- Parametry:
mac_in ([ string(12) ]) – adres MAC urządzenia znajduje się na podanej liście
serial_number_in ([ string(14) ]) – numer seryjny znajdue się na podaje liście
description_like (string) – opis zawiera dany ciąg znaków
l3 (bool) – flaga l3 ustawiona jest na podaną
is_multicast (bool) – flaga is_multicast ustawiona jest na podaną
proxy_interface (string) – stb należy do podanego interfejsu
firmware_in ([ string ]) – firmware znajduje się na liście
ip_in ([ ip ]) – ipv4 (tylko dla boxów l2) znajduje się na podanej liście
stb_type (string) – stb jest podanego typu
- Zwraca:
liczba obiektów spełacjących dane kryterium
- Typ zwracany:
int
>>> api.stb_count(request, mac_in=["aabbccddeeff",]) 1 >>> api.stb_count(request, serial_number_in=["aabbccddeeff",]) 1 >>> api.stb_count(request, description_like='zepsuty') 1 >>> api.stb_count(request, l3=False) 2 >>> api.stb_count(request, proxy_interface="isptestowy01.stblan") 3 >>> api.stb_count(request, firmware_in=["1.1.1",]) 1 >>> api.stb_count(request, ip_in=["192.168.0.2",]) 1 >>> api.stb_count(request, stb_type="Korbox 2.0") 2 >>> api.stb_count(request, is_multicast=False) 2
- stb_list(request, mac_in=None, serial_number_in=None, description_like=None, l3=None, proxy_interface=None, firmware_in=None, ip_in=None, stb_type=None, is_multicast=None)¶
Pobierz listę obiektów stb spełaniających dane kryterium. Wszystkie kryteria które zostaną podane zostaną wzięte pod uwagę. Podanie pustego kryterium pozwoli pobrać informację o wszystkich obiektach.
- Parametry:
mac_in ([ string(12) ]) – adres MAC urządzenia znajduje się na podanej liście
serial_number_in ([ string(14) ]) – numer seryjny znajdue się na podaje liście
description_like (string) – opis zawiera dany ciąg znaków
l3 (bool) – flaga l3 ustawiona jest na podaną
is_multicast (bool) – flaga multicast ustawiona jest na podaną
proxy_interface (string) – stb należy do podanego interfejsu
firmware_in ([ string ]) – firmware znajduje się na liście
ip_in ([ ip ]) – ipv4 (tylko dla boxów l2) znajduje się na podanej liście
stb_type (string) – stb jest podanego typu
- Zwraca:
Lista obiektów spełacjących dane kryterium
- Typ zwracany:
[ stb ]
>>> api.stb_list(request, mac_in=["aabbccddeeff",]) [{'mac': u'aabbccddeeff'}] >>> api.stb_list(request, serial_number_in=["aabbccddeeff",]) [{'mac': u'aabbccddeeff'}] >>> api.stb_list(request, description_like='zepsuty') [{'mac': u'aabbccddeeff'}] >>> api.stb_list(request, l3=False) [{'mac': u'aabbccddeeff'}, {'mac': u'aabbccddeeee'}] >>> api.stb_list(request, proxy_interface="isptestowy01.stblan") [{'mac': u'aabbccddeeff'}, {'mac': u'aabbccddeeee'}, {'mac': u'aabbccddeecc'}] >>> api.stb_list(request, firmware_in=["1.1.1",]) [{'mac': u'aabbccddeeff'}] >>> api.stb_list(request, ip_in=["192.168.0.2",]) [{'mac': u'aabbccddeeff'}] >>> api.stb_list(request, stb_type="Korbox 2.0") [{'mac': u'aabbccddeedd'}, {'mac': u'aabbccddeeff'}] >>> api.stb_list(request, is_multicast=True) [{'mac': u'aabbccddeedd'}]
- stb_pin_set(request, mac, pin)¶
Ustawienie pinu urządzenia (wymagane tylko na urządzeniach typu MAG)
- Parametry:
- Zwraca:
Obiekt stb ze zmienionym pinem
- Typ zwracany:
>>> api.stb_pin_set(request, mac="aabbccddeeff", pin="xxx") {'status': 'on', 'function_access_point': True, 'description': u'zepsuty', 'pin': 'xxx', 'ip': '192.168.0.2', 'mac': u'aabbccddeeff', 'available_streamers': ['global', [{'id': 4, 'full_name': u'l3backup.boot'}]], 'function_standard_dhcp': False, 'firmware': {'tag': u'1.1.1'}, 'l3': False, 'application_list': ['global', [{'name': u'1'}, {'name': u'2'}]], 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'serial_number': u'aabbccddeeff', 'type': 'Korbox 2.0'}
- stb_voip_get(request, mac)¶
Pobierz ustawienia VOIP
- Parametry:
mac (string) – adres MAC urządzeń
- Zwraca:
ustawienia VOIP dla danego stb
- Typ zwracany:
voip_settings
>>> api.stb_voip_get(request, mac="aabbccddeeff") {'username': u'ccc', 'voip_server': u'127.0.0.1', 'dtmf_mode': u'rfc2833', 'mac': u'aabbccddeeff', 'password': u'cccc', 'port': 1111}
- stb_voip_set(request, mac, voip_server, port, voip_username, voip_password, dtmf_mode)¶
Ustawienie danych dostępowych dla wbudowanych bramek VOIP.
- Parametry:
- Zwraca:
Obiekt ustawień voip
- Typ zwracany:
voip_settings
Informacja
W przypadku problemów z rozwiązywaniem adresów DNS które w sieciach partnerów zdarzają się często podanie nazwy hosta zamiast adresu ip może powodować niedziałanie bramki VOIP. Podanie adresu ip może również zapobiec atakom DNS spoffing dla tego rekomendujemy podawanie właśnie adresu ip w polu voip_server
>>> api.stb_voip_set(request, mac="aabbccddeeff", voip_server="127.0.0.1", port="1111", voip_username="ccc", voip_password="cccc", dtmf_mode="rfc2833") {'username': 'ccc', 'voip_server': '127.0.0.1', 'dtmf_mode': 'rfc2833', 'mac': u'aabbccddeeff', 'password': 'cccc', 'port': '1111'}
- stb_wificonfig_get(request, mac)¶
Pobierz dane o wifi Set-top-Box’sa
- Parametry:
mac (string(12)) – adres MAC urządzenia
- Zwraca:
Obiekt Wifi config dla stb o danym adresie MAC
- Typ zwracany:
>>> api.stb_wificonfig_get(request, "aabbccddeeff") {u'sec_key': '', u'can_edit': True, u'ssid': '', u'mac': '', u'sec_type': '', u'channel': ''}
- stb_wificonfig_set(request, mac, sec_type=None, ssid=None, sec_key=None, channel=None, can_edit=None)¶
Ustaw dane o wifi Set-top-Box’sa
- Parametry:
- Zwraca:
Obiekt Wifi config dla stb o danym adresie MAC
- Typ zwracany:
>>> api.stb_wificonfig_set(request, "aabbccddeeff") {u'sec_key': '', u'can_edit': True, u'ssid': '', u'mac': u'aabbccddeeff', u'sec_type': '', u'channel': ''}
- stb_rpc_operation_list(request)¶
Pobierz liste dostępnych metod RPC.
- Zwraca:
lista metod RPC
- Typ zwracany:
[ string ]
>>> api.stb_rpc_operation_list(request) ['reboot']
- stb_rpc(request, rpc_method_name, *args, **kwargs)¶
Zleć wykonanie polecenie RPC.
- Parametry:
rpc_method_name (string) – nazwa polecenia
args – argumenty
kwargs – argumenty nazwane
- Zwraca:
W zależności od metody
- Typ zwracany:
{«task_id»: string ,»result»: string, «status»: string}
>>> api.stb_rpc(request, "reboot", mac="aabbccddeeff") {'status': 'PENDING', 'result': '', 'task_id': '...'}
- stb_rpc_check_state(request, task_id)¶
Sprawdź stan i pobierz wynik metody RPC.
- Parametry:
task_id (string) – identyfikator zadania
- Zwraca:
W zależności od metody
- Typ zwracany:
{«task_id»: string ,»result»: string, «status»: string}
>>> api.stb_rpc_check_state(request, "e96c3a97-6608-4328-9768-9694fb2e9ddb") {'status': 'PENDING', 'result': '', 'task_id': '...'}
- stb_application_list_get(request, mac)¶
Pobierz listę aplikacji przypisanych do danego urządzenia.
- Parametry:
mac (string) – adres MAC urządzenia
- Zwraca:
krotka zawierająca typ listy oraz jej zawartość
- Typ zwracany:
(list_type, [ application ])
>>> api.stb_application_list_get(request, mac="aabbccddeeff") ['global', [{'name': u'1'}, {'name': u'2'}]]
- stb_application_list_set(request, mac, application_list)¶
Ustaw listę aplikacji dla danego stb.
- Parametry:
- Zwraca:
krotka zawierająca typ listy oraz jej zawartość
- Typ zwracany:
(list_type, [ application ])
>>> api.stb_application_list_set(request, mac="aabbccddeeff", application_list=["1", "2"]) ['stb', [{'name': u'1'}, {'name': u'2'}]]
- stb_application_list_del(request, mac)¶
Usuń listę aplikacji dla danego STB.
- Parametry:
mac (string) – adres MAC urządzenia
- Zwraca:
krotka zawierająca typ listy oraz jej zawartość
- Typ zwracany:
(list_type, [ application ])
>>> api.stb_application_list_del(request, mac="aabbccddeeff") ['global', [{'name': u'1'}, {'name': u'2'}]]
- stb_available_proxy_get(request, mac)¶
Pobierz listę proxy dostępnych dla danego urządzenia.
- Parametry:
mac (string) – adres MAC urządzenia
- Zwraca:
krotka zawierająca typ listy oraz jej zawartość
- Typ zwracany:
(list_type, [ proxy_interface ])
>>> api.stb_available_proxy_get(request, mac="aabbccddeeff") ['global', [{'id': 4, 'full_name': u'l3backup.boot'}]]
- service_get(request, id)¶
Pobiera dane o danej usłudze.
- Parametry:
id (int) – identyfikator usługi
- Zwraca:
żądana usługa
- Typ zwracany:
>>> api.service_get(request, id=1) {'next_service': None, 'previous_service': None, 'stbs': [{'mac': u'aabbccddeeff'}], 'id': 1, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}], 'end': '', 'name': u'fff', 'multiroom': False, 'start': '2016-01-20', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_add(request, client, package_base, package_additional, state, proxy_interface, name, stbs, start, end=None)¶
Stwórz nową usługę.
- Parametry:
client (int) – podmiot usługi
package_base (string) – pakiet podstawowy
package_additional ([ string ]) – lista pakietów dodatkowych
state (string) – stan usługi
proxy_interface (string) – interfejs na którym będzie świadczona usługa
name (string) – przyjazna nazwa usługi lub krótki opis
stbs ([ string ]) – lista urządzeń na których będzie świadczona usługa
start (date) – data rozpoczęcia usługi
end (date) – data zakończenia usługi lub
nullgdy usługa bezterminowa
- Zwraca:
nowa usługa
- Typ zwracany:
>>> api.service_add(request, client=2, package_base="test", package_additional=[], state="on", proxy_interface="isptestowy01.stblan", name="test", stbs=["aabbccddeeee"], start=datetime.now().date().isoformat()) {'next_service': None, 'previous_service': None, 'stbs': [{'mac': u'aabbccddeeee'}], 'id': 3, 'package_additional': [], 'end': '', 'name': 'test', 'multiroom': False, 'start': '...', 'state': 'on', 'client': {'id': 2}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_list(request, id_in=None, client=None, package_base=None, package_additional=None, state=None, proxy_interface=None, name_like=None, stb_in=None, start=None, end=None, active=None, chain_id=None)¶
Pobierz listę usług spełniających podane kryteria. Wszystkie kryteria które zostaną podane zostaną wzięte pod uwagę. Podanie pustego kryterium pozwoli pobrać informację o wszystkich obiektach.
- Parametry:
id_in ([ int ]) – lista identyfikatorów usług
client (int) – tylko usługi danego klienta
package_base (string) – tylko usługi posiadające wskazany pakiet podstawowy
package_additional (string) – tylko usługi posiadające wskazany pakiet dodatkowy
state (string) – tylko usługi o określonym stanie
name_like (string) – tylko usługi zawietające podaną frazę w nazwie
proxy_interface (string) – tylko usługi świadczone na podanym interfejsie
stb_in ([ string ]) – tylko usługi świadczone na danych stb
start (string) – tylko usługi rozpoczynające się o wskazanej dacie
end (bool) – tylko usługi kończące się o wskazanej dacie
active – tylko usługi aktywne
chain_id (int) – tylko usługi o danym chain_id
- Zwraca:
Lista usług spełniających kryterium
- Typ zwracany:
[ service ]
>>> api.service_list(request, id_in=[0,1]) [{'start': '2016-01-20', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, client=1) [{'start': '...', 'end': '', 'package_base': ..., 'id': 2}, {'start': '...', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, package_base="test") [{'start': '...', 'end': '', 'package_base': ..., 'id': 2}, {'start': '...', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, package_additional="t2") [{'start': '...', 'end': '', 'package_base': ..., 'id': 2}, {'start': '...', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, state="payment_notyfy") [{'start': '...', 'end': '', 'package_base': ..., 'id': 2}, {'start': '...', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, proxy_interface="isptestowy01.stblan") [{'start': '...', 'end': '', 'package_base': ..., 'id': 2}, {'start': '...', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, name_like="fff") [{'start': '...', 'end': '...', 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}, 'id': 1}] >>> api.service_list(request, stb_in=["aabbccddeeff",]) [{'start': '...', 'end': '...', 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}, 'id': 1}] >>> api.service_list(request, start="2016-01-20T00:00:00") [{'start': '...', 'end': '...', 'package_base': ..., 'id': 1}] >>> api.service_list(request, end="") [{'start': '...', 'end': '', 'package_base': ..., 'id': 2}, {'start': '...', 'end': '...', 'package_base': ..., 'id': 1}]
- service_count(request, id_in=None, client=None, package_base=None, package_additional=None, state=None, proxy_interface=None, name_like=None, stb_in=None, start=None, end=None)¶
Pobierz ilość usług spełniających podane kryteria. Wszystkie kryteria które zostaną podane zostaną wzięte pod uwagę. Podanie pustego kryterium pozwoli pobrać informację o wszystkich obiektach.
- Parametry:
id_in ([ int ]) – lista identyfikatorów usług
client (int) – tylko usługi danego klienta
package_base (string) – tylko usługi posiadające wskazany pakiet podstawowy
package_additional (string) – tylko usługi posiadające wskazany pakiet dodatkowy
state (string) – tylko usługi o określonym stanie
name_like (string) – tylko usługi zawietające podaną frazę w nazwie
proxy_interface (string) – tylko usługi świadczone na podanym interfejsie
stb_in ([ string ]) – tylko usułgi świadczone na danych stb
start (string) – tylko usługi rozpoczynające się o wskazanej dacie
end (string) – tylko usłgui kończące się o wskazanej dacie
- Zwraca:
liczba usług spełniających kryterium
- Typ zwracany:
int
>>> api.service_count(request, id_in=[0,1]) 1 >>> api.service_count(request, client=1) 2 >>> api.service_count(request, package_base="test") 2 >>> api.service_count(request, package_additional="t2") 2 >>> api.service_count(request, state="payment_notyfy") 2 >>> api.service_count(request, proxy_interface="isptestowy01.stblan") 2 >>> api.service_count(request, name_like="fff") 1 >>> api.service_count(request, stb_in=["aabbccddeeff",]) 1 >>> api.service_count(request, start="2016-01-20T00:00:00") 1 >>> api.service_count(request, end="") 2
- service_status_set(request, id, state)¶
Ustawia status usługi o podanym identyfikatorze. Uaktualniane też są statusy przyszłych usług, które powstały w wyniku utworzenia lub modyfikacji podanej usługi.
- Parametry:
id (int) – identyfikator usługi
state (string) – nowy stan usługi
- Zwraca:
obiekt usługi z nowym stanem
- Typ zwracany:
>>> api.service_status_set(request, id=1, state="payment_notyfy") {'next_service': None, 'previous_service': None, 'stbs': [{'mac': u'aabbccddeeff'}], 'id': 1, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}], 'end': '', 'name': u'fff', 'multiroom': False, 'start': '2016-01-20', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_packages_set(request, id, package_base, package_additional, date)¶
Tworzy nową usługę ze wskazanymi pakietami kanałów. Stara usługa jest zakańczana a nowa rozpoczynana we wskazanej dacie. Nowa usługa jest kontynuacją starej usługi - będzie zawierać takie same urządzenia oraz daty zakończenia usługi.
- Parametry:
- Zwraca:
nowa usługa
- Typ zwracany:
>>> api.service_packages_set(request, package_base="test", id=1, package_additional=["t2", "t3"] ,date=datetime.now().date().isoformat()) {'next_service': None, 'previous_service': 1, 'stbs': [{'mac': u'aabbccddeeff'}], 'id': 2, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}, {u'active': True, u'test': False, u'id': 3, u'name': u't3'}], 'end': '', 'name': u'', 'multiroom': False, 'start': '...', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_end_set(request, id, date)¶
Ustaw datę zakończenia usługi.
- Parametry:
id (int) – identyfikator usługi
date (date) – data zakończenia
- Zwraca:
zmodyfikowana usługa lub null
- Typ zwracany:
>>> api.service_end_set(request, id=3, date=datetime.now().date().isoformat())
- service_stb_get(request, id)¶
Pobierz informacje o wskazanej usłudze.
- Parametry:
id (int) – identyfikator usługi
- Zwraca:
żadana usługa
- Typ zwracany:
>>> api.service_stb_get(request, id=1) [{'mac': u'aabbccddeeff'}]
- service_stb_add(request, id, mac, date)¶
Dodanie urządzenia do listy urządzeń na których jest świadczona usługa. Powoduje zakończenie starej usługi i rozpoczęcie nowej we wskazanej dacie. Nowa usługa jest kontynuacją starej usługi.
- Parametry:
- Zwraca:
nowa usługa
- Typ zwracany:
>>> api.service_stb_add(request, id=2, mac='aabbccddeedd', date=datetime.now().date().isoformat()) {'next_service': None, 'previous_service': 1, 'stbs': [{'mac': u'aabbccddeeff'}, {'mac': u'aabbccddeedd'}], 'id': 2, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}, {u'active': True, u'test': False, u'id': 3, u'name': u't3'}], 'end': '...', 'name': u'', 'multiroom': True, 'start': '...', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_stb_set(request, id, stbs, date)¶
Ustawia listę urządzeń, na których jest świadczona usługa. Powoduje zakończenie starej usługi i rozpoczęcie nowej we wskazanej dacie. Ustawione urządzenia będą we wszystkich przyszłych usługach. Z tego powodu zaleca się stosowanie metod service_stb_add i service_stb_remove.
- Parametry:
- Zwraca:
nowa usługa
- Typ zwracany:
>>> api.service_stb_set(request, id=2, stbs=['aabbccddeedd',"aabbccddeeee"], date=datetime.now().date().isoformat()) {'next_service': None, 'previous_service': 1, 'stbs': [{'mac': u'aabbccddeedd'}, {'mac': u'aabbccddeeee'}], 'id': 2, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}, {u'active': True, u'test': False, u'id': 3, u'name': u't3'}], 'end': '...', 'name': u'', 'multiroom': True, 'start': '...', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_stb_del(request, id, mac, date)¶
Usuwa urządzenie z listy boxów na których jest świadczona dana usługa. Powoduje zakończenie starej usługi i rozpoczęcie nowej we wskazanej dacie.
- Parametry:
- Zwraca:
nowa usługa
- Typ zwracany:
>>> api.service_stb_del(request, id=2, mac="aabbccddeeee", date=datetime.now().date().isoformat()) {'next_service': None, 'previous_service': 1, 'stbs': [{'mac': u'aabbccddeedd'}], 'id': 2, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}, {u'active': True, u'test': False, u'id': 3, u'name': u't3'}], 'end': '', 'name': u'', 'multiroom': False, 'start': '...', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_nic_set(request, id, proxy_interface)¶
Zmiana interfejsu do którego przypisana jest usługa.
- Parametry:
id (int) – identyfikator usługi
proxy_interface (string) – nowy interfejs proxy do którego będzie przypisana usługa
- Zwraca:
żądana usługa
- Typ zwracany:
>>> api.service_nic_set(request, id=1, proxy_interface="isptestowy01.stblanl3") {'next_service': 2, 'previous_service': None, 'stbs': [{'mac': u'aabbccddeeff'}], 'id': 1, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}], 'end': '...', 'name': u'fff', 'multiroom': False, 'start': '...', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 3, 'full_name': u'isptestowy01.stblanl3'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- service_name_set(request, id, name)¶
Zmiana nazwy w usłudze. Zmienia nazwy w wszystkich powiązanych usługach.
- Parametry:
id (int) – identyfikator usługi
name (string) – nowa nazwa usługi
- Zwraca:
żadana usługa
- Typ zwracany:
>>> api.service_name_set(request, id=1, name='namev2') {'next_service': 2, 'previous_service': None, 'stbs': [{'mac': u'aabbccddeeff'}], 'id': 1, 'package_additional': [{u'active': True, u'test': False, u'id': 2, u'name': u't2'}], 'end': '...', 'name': 'namev2', 'multiroom': False, 'start': '...', 'state': 'payment_notyfy', 'client': {'id': 1}, 'proxy_interface': {'id': 3, 'full_name': u'isptestowy01.stblanl3'}, 'package_base': {u'active': True, u'test': False, u'id': 1, u'name': u'test'}}
- proxy_get(request, hostname)¶
Pobierz informacje o wskazanym proxy.
- Parametry:
hostname (string) – hostname danego proxy
- Zwraca:
obiekt proxy o podanym hostname’ie
- Typ zwracany:
>>> api.proxy_get(request, hostname="isptestowy01") {'snmp_community': u'', 'description': u'', 'last_reload': '2016-01-19T09:43:08.088000+00:00', 'interfaces': [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}], 'hostname': u'isptestowy01', 'enabled': True, 'boot_interface': {'id': 1, 'full_name': u'isptestowy01.boot'}}
- proxy_list(request)¶
Pobierz listę wszystkich proxy.
- Zwraca:
lista proxy
- Typ zwracany:
[ proxy ]
>>> api.proxy_list(request) [{'hostname': u'isptestowy02'}, {'hostname': u'isptestowy01'}]
- proxy_set_boot_interface(request, hostname, proxy_interface)¶
Ustawia interfejs ładowania proxy na wskazany
- Parametry:
- Zwraca:
obiekt proxy
- Typ zwracany:
>>> api.proxy_set_boot_interface(request, hostname="isptestowy01", proxy_interface="isptestowy01.stblan") {'snmp_community': u'', 'description': u'', 'last_reload': '2016-01-19T09:43:08.088000+00:00', 'interfaces': [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}], 'hostname': u'isptestowy01', 'enabled': True, 'boot_interface': {'id': 2, 'full_name': u'isptestowy01.stblan'}} >>> api.proxy_set_boot_interface(request, hostname="isptestowy01", proxy_interface="isptestowy01.boot") {'snmp_community': u'', 'description': u'', 'last_reload': '2016-01-19T09:43:08.088000+00:00', 'interfaces': [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}], 'hostname': u'isptestowy01', 'enabled': True, 'boot_interface': {'id': 1, 'full_name': u'isptestowy01.boot'}}
- proxy_enable_set(request, hostname, enabled)¶
Włącz lub wyłącz proxy.
Informacja
Wyłączenie nie poinformuje fizycznej maszyny że sama ma się wyłączyć. Oprócz zmiany tego parametru potrzebne jest fizyczne włączenie lub wyłączenie maszyny.
- Parametry:
hostname (string) – nazwa proxy
enabled (bool) – flaga określająca czy proxy jest właczone czy nie
- Zwraca:
Obiekt proxy
- Typ zwracany:
>>> api.proxy_enable_set(request, hostname="isptestowy01", enabled=False) {'snmp_community': u'', 'description': u'', 'last_reload': '2016-01-19T09:43:08.088000+00:00', 'interfaces': [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}], 'hostname': u'isptestowy01', 'enabled': False, 'boot_interface': {'id': 1, 'full_name': u'isptestowy01.boot'}} >>> api.proxy_enable_set(request, hostname="isptestowy01", enabled=True) {'snmp_community': u'', 'description': u'', 'last_reload': '2016-01-19T09:43:08.088000+00:00', 'interfaces': [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}], 'hostname': u'isptestowy01', 'enabled': True, 'boot_interface': {'id': 1, 'full_name': u'isptestowy01.boot'}}
- proxy_interface_list(request, *args, **kwargs)¶
Pobierz listę interfejsów danego proxy lub danego isp.
- Parametry:
hostname (str) – nazwa proxy
isp (str) – nazwa isp
stb_connectable (bool) – flaga oznaczająca możliwość podłaczania stb
l3flag (bool) – STB podpięte pod ten interfejs są typu L3
- Zwraca:
lista intefejsów proxy
- Typ zwracany:
[ proxy_interface ]
>>> api.proxy_interface_list(request, hostname="isptestowy01") [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}] >>> api.proxy_interface_list(request) [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}] >>> api.proxy_interface_list(request, l3flag=True, stb_connectable=False) [] >>> api.proxy_interface_list(request, stb_connectable=True) [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}] >>> api.proxy_interface_list(request, l3flag=False) [{'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}]
- proxy_interface_add(request, hostname, name, type, enabled, stb_connectable, mac, device, vlan, cidr, default_gateway)¶
Dodaj interfejs do proxy
- Parametry:
hostname – nazwa proxy
name – nazwa interfejsu
type – typ interfejsu
enabled – status włączenia
stb_connectable – flaga określająca możliwość podłaczania stb do tego interfejsu
mac – fizyczny adres interfejsu
device – urządzenia do którego jest przypisany dany interfejs
vlan – numer vlan lub
nullgdy brak vlan na tym interfejsiecidr – cidr
default_gateway – brama domyślna dla danego interfejsu
Informacja
Pole cidr decyduje w przypadku interfejsu statycznego jaki ip zostaje ustawiony na danym interfejsie a w przypadku typu dhcp jakiego ip sie spodziewamy.
Informacja
Na podstawie pola cird wyliczana jest podsieć z jakiej będą przydzielane ip dla boxów w trybie l2. Ze względu na wydajność nie jest możliwe ustawianie maski podsieci większej niż /16.
- Zwraca:
nowy interfejs
- Typ zwracany:
>>> api.proxy_interface_add(request, hostname="isptestowy01", name="stblan2", type="static", enabled=True, stb_connectable=True, mac="000000111111", device="eth2", vlan=None, cidr="192.168.2.1/24", default_gateway="") {'l3flag': False, 'default_gateway': None, 'vlan': None, 'stb_connectable': True, 'mac': '000000111111', 'full_name': u'isptestowy01.stblan2', 'device': 'eth2', 'cidr': '192.168.2.1/24', 'id': 5, 'name': 'stblan2', 'enabled': True, 'type': 'static'}
- proxy_interface_del(request, full_name)¶
Usunięcie interfejsu
- Parametry:
full_name (string) – pełna nazwa interfejsu
- Zwraca:
lista interfejsów danego proxy
- Typ zwracany:
[ proxy_interface ]
>>> api.proxy_interface_del(request, full_name="isptestowy01.stblan2") [{'id': 3, 'full_name': u'isptestowy01.stblanl3'}, {'id': 2, 'full_name': u'isptestowy01.stblan'}, {'id': 1, 'full_name': u'isptestowy01.boot'}]
- proxy_interface_get(request, full_name)¶
Pobierz informacje o wskazanym interfesie proxy.
- Parametry:
full_name (string) – nazwa danego interfejsu wraz z nazwą proxy
- Zwraca:
obiekt interfejsu proxy
- Typ zwracany:
>>> api.proxy_interface_get(request, full_name="isptestowy01.stblan") {'l3flag': False, 'default_gateway': u'', 'vlan': 31, 'stb_connectable': True, 'mac': u'aabbccddeeff', 'full_name': u'isptestowy01.stblan', 'device': u'eth0', 'cidr': u'192.168.0.1/24', 'id': 2, 'name': u'stblan', 'enabled': True, 'type': 'static'}
- proxy_rpc_operation_list(request)¶
Pobierz liste dostępnych metod RPC.
- Zwraca:
lista metod RPC
- Typ zwracany:
[ string ]
>>> api.proxy_rpc_operation_list(request) ['reload']
- proxy_rpc(request, rpc_method_name, *args, **kwargs)¶
Zleć wykonanie polecenie RPC.
- Parametry:
rpc_method_name (string) – nazwa polecenia
args – argumenty
kwargs – argumenty nazwane
- Zwraca:
W zależności od metody
- Typ zwracany:
{«task_id»: string ,»result»: string, «status»: string}
>>> api.proxy_rpc(request,"reload", hostname="isptestowy01") {'status': '...', 'result': '', 'task_id': u'...'}
- proxy_rpc_check_state(request, task_id)¶
Sprawdź stan i pobierz wynik metody RPC.
- Parametry:
task_id (string) – identyfikator zadania
- Zwraca:
W zależności od metody
- Typ zwracany:
{«task_id»: string ,»result»: string, «status»: string}
>>> api.stb_rpc_check_state(request, "e96c3a97-6608-4328-9768-9694fb2e9ddb") {'status': 'PENDING', 'result': '', 'task_id': '...'}
- streamersource_list(request, streamer=None)¶
Zwraca listę dostępnych źródeł dla kanałów lub panelu.
- Zwraca:
lista źródeł
- Typ zwracany:
[ streamer_source ]
>>> api.streamersource_list(request) [{'weight': 1, 'streamer': {'hostname': u'isptestowy01'}, 'sourceip': {'id': 1, 'full_name': u'isptestowy01.boot'}, 'id': 1, 'dhcpboot': False, 'panelsource': True, 'enabled': True, 'streamtype': 'HTTP', 'tftpboot': False, 'upstreamnic': {'id': 1, 'full_name': u'isptestowy01.boot'}, 'streamsource': True, 'type': 'Load Balancing'}] >>> api.streamersource_list(request, streamer="isptestowy01") [{'weight': 1, 'streamer': {'hostname': u'isptestowy01'}, 'sourceip': {'id': 1, 'full_name': u'isptestowy01.boot'}, 'id': 1, 'dhcpboot': False, 'panelsource': True, 'enabled': True, 'streamtype': 'HTTP', 'tftpboot': False, 'upstreamnic': {'id': 1, 'full_name': u'isptestowy01.boot'}, 'streamsource': True, 'type': 'Load Balancing'}]
- available_packages_list(request)¶
Zwraca listę dostępnych pakietów
- Zwraca:
lista pakietów
- Typ zwracany:
[ channel_package ]
>>> api.available_packages_list(request) [{u'active': True, u'test': False, u'id': 3, u'name': u't3'}, {u'active': True, u'test': False, u'id': 1, u'name': u'test'}, {u'active': True, u'test': False, u'id': 2, u'name': u't2'}]
- available_packages_base_list(request)¶
Zwraca listę dostępnych pakietów podstawowych.
- Zwraca:
lista pakietów
- Typ zwracany:
[ channel_package ]
>>> api.available_packages_base_list(request) [{u'active': True, u'test': False, u'id': 1, u'name': u'test'}]
- available_packages_additional_list(request)¶
Zwraca listę dostępnych pakietów dodatkowych
- Zwraca:
lista pakietów
- Typ zwracany:
[ channel_package ]
>>> api.available_packages_additional_list(request) [{u'active': True, u'test': False, u'id': 3, u'name': u't3'}, {u'active': True, u'test': False, u'id': 2, u'name': u't2'}]
- available_packages_get(request, name)¶
Zwraca szczegółowe dane o wskazanym pakiecie kanałów.
- Parametry:
name (string) – nazwa pakietu
- Zwraca:
lista pakietów
- Typ zwracany:
[ channel_package ]
>>> api.available_packages_get(request, name="test") {u'active': True, u'test': False, u'id': 1, u'channels': [], u'name': u'test'}
- firmware(request)¶
Lista dostępnych firmwarów
- Zwraca:
lista firmwerów
- Typ zwracany:
[ firmware ]
>>> api.firmware(request) [{'tag': u'1.1.1'}]
- application_list(request)¶
Zwraca listę dostępnych aplikacji
- Zwraca:
lista aplikacji
- Typ zwracany:
[ application ]
>>> api.application_list(request) [{'name': u'1'}, {'name': u'2'}]
- isp_get(request, name)¶
Pobież informacie o danym isp.
- Paramname:
nazwa isp lub jego id
- Zwraca:
Obiekt Isp
- Typ zwracany:
isp
>>> api.isp_get(request, name="isptestowy") {'name': u'isptestowy'}
- isp_add(request, name, email, user_password, first_name, last_name, user=True, headend=False)¶
Dodaje ISP o podanej nazwie, tworzy użytkownika oraz ew tworzy osobny Headend dla niego. Headend jest tworzony tylko i wyłącznie w przypadku isp posiadających własny headend oraz własne umowy z nadawcami.
- Parametry:
name (string) – nazwa isp
user (bool) – czy ma zostać utworzony dla niego użytkownik
headend (bool) – czy ma zostać dla niego stworzony headend
email (string) – email dla użytkownika
user_password (string) – hasło dla użytkownika
first_name (string) – imie dla użytkownika
last_name (string) – nazwisko dla użytkownika
- Zwraca:
Obiekt Isp
- Typ zwracany:
isp
>>> api.isp_add(superrequest, name="nowyisp", email='example@example.pl', user_password="test123", first_name="Jan", last_name="Kowalski") {'name': 'nowyisp'}
- isp_list(request, name_like=None)¶
Pobierz listę isp, których nazwa zawiera podany parametr lub gdy parametr nie zostanie podany pobiera wszystkich do których użytkownik ma uprawnienia.
- Parametry:
name_like (string) – nazwa isp
- Zwraca:
Lista obiektów Isp
- Typ zwracany:
[ isp ]
>>> api.isp_list(request, name_like="testowy") [{'name': u'isptestowy'}] >>> api.isp_list(request, name_like="brak") [] >>> api.isp_list(superrequest) [{'name': u'__DEFAULT__'}, {'name': u'isptestowy'}, {'name': u'isptestowy2'}, {'name': u'nowyisp'}]
- user_info(request)¶
Zwraca informacje na temat aktualnego użytkownika.
- Zwraca:
słownika zawierający podstawowe informacje o użytkowniku
- Typ zwracany:
dict
>>> api.user_info(request) {'username': u'test', 'ISP': [u'isptestowy']}
- auth(request, username, password=None, apikey=None)¶
Autoryzuje wskazanego użytkownika. Jeśli któraś z par (login i hasło lub login i apikey) danych logowania jest poprawną loguje podanego użytkownika. Zwraca informacje o zalogowanym użytkowniku oraz ciasteczko wraz z identyfikatorem sesji skojarzonej z użytkownikiem.
- Zwraca:
słownika zawierający podstawowe informacje o użytkowniku
- Typ zwracany:
dict
- ping(request)¶
Zwraca pong (funkcja testująca)
- Zwraca:
pong
- Typ zwracany:
>>> api.ping(request) 'pong'
- arg_test(request, *args, **kwargs)¶
Zwraca te takie same argumenty jakie zostały przesłane.
- Zwraca:
listy argumentów
- Typ zwracany:
{«args»: …, «kwargs»: …}
>>> api.arg_test(request, "a1", "a2", "a3", k1="1", k2="k2", k3="k3") {'args': ('a1', 'a2', 'a3'), 'kwargs': {'k3': 'k3', 'k2': 'k2', 'k1': '1'}}
- api_version(request)¶
Zwraca aktualną wersje api
- Zwraca:
wersja api
- Typ zwracany:
>>> api.api_version(request) '...'