コード例 #1
0
 def _add_event(self, instance, action):
   event = Event(target_id=instance.id, action='domain_'+action)
   try:
     event.user_id = session['user'].id
   except:
     pass
   Session.add(event)
コード例 #2
0
ファイル: base.py プロジェクト: svarks/bind_config_manager
 def __call__(self, environ, start_response):
     """Invoke the Controller"""
     # WSGIController.__call__ dispatches to the Controller method
     # the request is routed to. This routing information is
     # available in environ['pylons.routes_dict']
     try:
         return WSGIController.__call__(self, environ, start_response)
     finally:
         Session.remove()
コード例 #3
0
 def update_zones_config(self):
   f = open(config['named.zones_config'], "w")
   for domain in Session.query(Domain).all():
     text = "zone " + domain.name + " {\n"
     text += "  type " + domain.type + ";\n"
     text += "  file \"zones/" + domain.name + "\";\n"
     text += "};\n\n"
     f.write(text)
   f.close()
コード例 #4
0
def setup_app(command, conf, vars):
    """Place any commands to setup bind_config_manager here"""
    # Don't reload the app if it was loaded under the testing environment
    if not pylons.test.pylonsapp:
        load_environment(conf.global_conf, conf.local_conf)

    # Create the tables if they don't already exist
    Base.metadata.create_all(bind=Session.bind)
    
    
    ####################
    # load initial data
    ####################
    
    from bind_config_manager.model import User, Domain, Record, Event
    import hashlib
    
    Session.query(User).delete()
    Session.query(Record).delete()
    Session.query(Domain).delete()
    Session.query(Event).delete()
    
    u = User(username='******', password='******', is_admin=True, is_active=True)
    Session.add(u)
    u = User(username='******', password='******', is_admin=False, is_active=True)
    Session.add(u)
    
    d = Domain('master', 'example.com', 'ns1.example.com.', 'hostmaster.example.com.')
    Session.add(d)
    Session.commit()
    Session.add_all([
      Record(d.id, 'NS',    '@',        'ns1.example.com.'),
      Record(d.id, 'NS',    '@',        'ns2.example.com.'),
      Record(d.id, 'MX',    '@',        'mail.example.com.',  priority=10),
      Record(d.id, 'MX',    '@',        'mail2.example.com.', priority=20),
      Record(d.id, 'A',     '@',        '192.168.10.10'),
      Record(d.id, 'A',     'ns1',      '192.168.1.10'),
      Record(d.id, 'A',     'ns2',      '192.168.1.20'),
      Record(d.id, 'A',     'mail',     '192.168.2.10'),
      Record(d.id, 'A',     'mail2',    '192.168.2.20'),
      Record(d.id, 'A',     'www2',     '192.168.10.20'),
      Record(d.id, 'CNAME', 'www',      '@'),
      Record(d.id, 'CNAME', 'ftp',      '@'),
      Record(d.id, 'CNAME', 'webmail',  '@'),
    ])
    
    d = Domain('master', '0.0.127.in-addr.arpa', 'ns1.linux.bogus.', 'hostmaster.linux.bogus.')
    Session.add(d)
    Session.commit()
    Session.add_all([
      Record(d.id, 'NS',    '@',        'ns.linux.bogus.'),
      Record(d.id, 'PTR',   '1',        'localhost.'),
    ])
    
    
    Session.commit()
    
コード例 #5
0
 def target(self):
   if re.match(r'domain', self.action):
     return Session.query(Domain).filter_by(id=self.target_id).first()
   if re.match(r'record', self.action):
     return Session.query(Record).filter_by(id=self.target_id).first()
   return None
コード例 #6
0
def init_model(engine):
    """Call me before using any of the tables or classes in the model"""
    Session.configure(bind=engine)
コード例 #7
0
 def _find_domain(self, id):
   return Session.query(Domain).filter_by(id=id).first()