Ignore:
Timestamp:
Aug 28, 2011, 1:34:06 PM (14 years ago)
Author:
rick
Message:

Fix the organization imports

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/django_gheat/gheat/management/commands/import_nodes.py

    r9590 r9593  
    33#
    44# Script for importing nodes from yaml information generated by gformat.py
     5#
     6# Example: $ ~/wleiden/node-config/genesis/tools/gformat.py  full-export |
     7# ./manage.py import_nodes -
    58#
    69# Rick van der Zwet <info@rickvanderzwet.nl>
     
    2528  args = '[<filename>]'
    2629  help = 'Specify - to read from stdin'
     30  option_list = BaseCommand.option_list + (
     31    make_option('-g', '--debug', dest='debug', default='False', help="Debug", action="store_true"),
     32  )
    2733
    2834  def handle(self, *args, **options):
     35    if options['debug']:
     36      logger.setLevel(logging.DEBUG)
    2937    if len(args) == 0:
    3038      self.print_help(sys.argv[0],sys.argv[1])
     
    4654    hosts = yaml.load(fh)
    4755    for host,items in hosts.iteritems():
    48       node, created = Node.objects.get_or_create(name=host,
    49          latitude=items['latitude'],longitude=items['longitude'])
     56      for iface_key in [x for x in items.keys() if x.startswith('iface_')]:
     57        if items[iface_key].has_key('ssid'):
     58          org = Organization.get_by_ssid(items[iface_key]['ssid'])
     59          if org: break
     60          logger.error("NO Organization for SSID '%s'", items[iface_key]['ssid'])
     61
     62      if not org:
     63        logger.warning("NO Organization for Node '%s'", host)
     64
     65      node, created = Node.objects.get_or_create(name=host)
    5066      if created:
    51         logger.info("Created Node '%s'" % node))
    52     logger.info("Processed %s items" % len(hosts))
     67        logger.info("Created Node '%s'", node)
     68      node.latitude = items['latitude']
     69      node.longitude = items['longitude']
     70      node.organization = org
     71      node.save()
     72    logger.info("Processed %s items", len(hosts))
    5373
Note: See TracChangeset for help on using the changeset viewer.