Skip to content

Betik Ayarları

ZDuygu edited this page Mar 20, 2019 · 2 revisions

Betik Formatı

1. Başlık Bilgisi

Başlık bilgisi aşağıdaki gibi olmalıdır. İlk satır haricinde

# -*- coding: utf-8 -*-				Encoding
# 1						Hangi kullanıcı ile çalıştırılacak (1.1)
# Dns Alan Kaydı Listele			Betik Adı
# Dns Alanındaki kayıtları özelliklerini ..	Uzun açıklaması
# 1.0						Versionu
# dns						Extension Türü
# alan_adi:string				Input değerleri ve tipi
# 3						Türü (1.2)
# Duygu Olmez				        Yazan
# [email protected]			İletişim
# Havelsan					Şirket
# dns_list_record				Genel adı (Generic name)

1.1. Kullanıcı

Betiğin hangi kullanıcı ile çalıştırılacağı bilgisi

  • 0 - normal user
  • 1 - root user

1.2 Tür

Betiğin hangi amaçla kullanılacağı bilgisi.

  • 1 - Server (Tüm sunucularda çalışan temel betikler Network değiştirme, Hostname değiştirme vb.)
  • 2 - Install
  • 3 - Query
  • 4 - Ekleme
  • 5 - Düzenleme
  • 6 - Silme
  • 10 - Other

2. Ana Fonksiyon

Betiklerde run, before ya da after argumanlarından biri ile çalışacaklarından aşağıdaki main fonksiyonu ile başlamak zorundadır.

if __name__ == "__main__":
    globals()[sys.argv[1]]()

3. Temel Fonksiyonlar

Betiklerde 3 adet ana foksiyon bukunur. Bu fonksiyonların hepsi eklenti tarafından(liman) ayrı ayrı çalıştırılacak şekilde yazılmalıdır. Bu fonksiyonlar birbirlerini çalıştırmamalıdır.

3.1. def before()

Betik çalıştırılmadan gerekli validation işlemlerini gerçekleştirir. Eğer betiğin çalışmasını engelleyen durum varsa exit() işlemi yapılır. Yapılması gereken örnek kontroller aşağıdaki gibidir.

  • girilen veri doğru tipte mi (int,string mi,ipaddress’i doğru notasyonda mı, hostname değerinde uygun olmayan karakter bulunuyor mu)
  • gerekli servis ya da uygulama durumu (Yüklü mü,çalışıyor mu)
  • Gerekli dizinler mevcut mu
  • gerekli dosyalar bulunuyor mu
  • Warningler kontrol edilmemeli. Warningler healt-check gibi ayrı bir betikle kontrol edilmeli.
  • İnternete çıkabiliyor mu

3.2. def run()

yalnızca istenilen işlem gerçekleştiren fonksiyonlar çağırılmalı. Gerçekleştirilmesi gereken örnek işlemler aşağıdaki gibidir.

  • Dosya oku
  • Dosya düzenle
  • Dosya dizin oluştur
  • Yükleme kurma bilgi toplama komutları çalıştır

3.3. def after()

After fonksiyonu run da yapılan işlemlerin yapılıp yapılmadığını kontrol eder. (Runda eklenmesi beklenen kayıt, dosya içerisinde var mı yok mu şeklinde kontrol edilmelidir.). Kontrol edilmesi örnek işlemler aşağıdaki gibidir.

  • Dosya içerisinde istenen değer eklendi mi
  • Dosya içerisinde istenen değer değiştirildi mi
  • İstenilen dosya ya da klasör oluşturuldu mu
  • Servis çalışıyor mu
  • İstenilen uygulama yüklendi mi

4. Output

  • Extension’a gönderilecek veriler return döndürülmemeli, print ile yazdırılmalı
  • Extension’a gönderilecek veriler json formatında olmalı
  • Run fonksiyonundan extensiona gönderilecek veri yalnızca bir tane olmalı. Diğer işlemlerde yapılan hiç bir işlem print edilmemeli