def handle(self, *args, **options): apply_options(options) ensure_root() if len(args) != 1: print u'Pass only the zone name.' return 1 zone = args[0] ensure_replica_sets_exist() replica_set = models.ReplicaSet.objects.get(zone=zone) old_instances = replica_set.transinstance_set.order_by('-port').all() if len(old_instances): old_instance = old_instances[0] else: if replica_set.zone == models.ReplicaSet.ZONE_WHAT: zero_port = 9090 zero_peer_port = 21412 elif replica_set.zone == models.ReplicaSet.ZONE_BIBLIOTIK: zero_port = 10090 zero_peer_port = 22412 elif replica_set.zone == models.ReplicaSet.ZONE_MYANONAMOUSE: zero_port = 11090 zero_peer_port = 23412 else: raise Exception('Unknown zone') old_instance = models.TransInstance( replica_set=replica_set, name=u'{0}00'.format(replica_set.zone .replace('.cd', '') .replace('.org', '') .replace('.net', '') .replace('.me', '') .replace('.ch', '')), host='127.0.0.1', port=zero_port, peer_port=zero_peer_port, username='******', password=settings.TRANSMISSION_PASSWORD, ) new_instance = models.TransInstance( replica_set=old_instance.replica_set, name=u'{0}{1:02}'.format(old_instance.name[:-2], int(old_instance.name[-2:]) + 1), host=old_instance.host, port=old_instance.port + 1, peer_port=old_instance.peer_port + 1, username=old_instance.username, password=settings.TRANSMISSION_PASSWORD, ) print new_instance.full_description() print u'Is this OK?' confirm() with transaction.atomic(): instance_manager = TransInstanceManager(new_instance) instance_manager.sync() new_instance.save() print 'Starting daemon...' instance_manager.start_daemon() print u'Instance synced and saved.'
def handle(self, *args, **options): ensure_root() if len(args) != 1: print u'Pass only the zone name.' return zone = args[0] try: replica_set = models.ReplicaSet.objects.get(zone=zone) except models.ReplicaSet.DoesNotExist: print u'There is no replica set with the name {0}. I will create one.'.format(args[0]) confirm() replica_set = models.ReplicaSet( zone=zone, name='master', ) replica_set.save() old_instances = replica_set.transinstance_set.order_by('-port').all() if len(old_instances): old_instance = old_instances[0] else: old_instance = models.TransInstance( replica_set=replica_set, name=u'{0}00'.format(replica_set.zone), host='127.0.0.1', port=9090, peer_port=51412, username='******', password=settings.TRANSMISSION_PASSWORD, ) new_instance = models.TransInstance( replica_set=old_instance.replica_set, name=u'{0}{1:02}'.format(old_instance.name[:-2], int(old_instance.name[-2:]) + 1), host=old_instance.host, port=old_instance.port + 1, peer_port=old_instance.peer_port + 1, username=old_instance.username, password=settings.TRANSMISSION_PASSWORD, ) print new_instance.full_description() print u'Is this OK?' confirm() with transaction.atomic(): instance_manager = TransInstanceManager(new_instance) instance_manager.sync() new_instance.save() print 'Starting daemon...' instance_manager.start_daemon() print u'Instance synced and saved.'
def handle(self, *args, **options): if os.geteuid() != 0: raise CommandError('You have to call this program as root.') for instance in models.TransInstance.objects.order_by('name'): manager = TransInstanceManager(instance) manager.start_daemon()