def handle(self, *args, **options): if len(args) > 0: raise CommandError("Command takes no arguments") clustername = options['clustername'] port = options['port'] username = options['username'] password = options['password'] hypervisor = options["hypervisor"] if not (clustername and username and password): raise CommandError("Clustername, user and pass must be supplied") # Ensure correctness of credentials if options['check']: check_backend_credentials(clustername, port, username, password) kw = { "clustername": clustername, "port": port, "username": username, "password": password, "drained": True } if hypervisor: kw["hypervisor"] = hypervisor # Create the new backend in database try: backend = Backend.objects.create(**kw) except IntegrityError as e: raise CommandError("Cannot create backend: %s\n" % e) self.stdout.write('\nSuccessfully created backend with id %d\n' % backend.id) if not options['check']: return self.stdout.write('\rRetrieving backend resources:\n') resources = get_physical_resources(backend) attr = ['mfree', 'mtotal', 'dfree', 'dtotal', 'pinst_cnt', 'ctotal'] table = [[str(resources[x]) for x in attr]] pprint_table(self.stdout, table, attr) update_resources(backend, resources)
def handle(self, *args, **options): if len(args) > 0: raise CommandError("Command takes no arguments") clustername = options['clustername'] port = options['port'] username = options['username'] password = options['password'] hypervisor = options["hypervisor"] if not (clustername and username and password): raise CommandError("Clustername, user and pass must be supplied") # Ensure correctness of credentials if options['check']: check_backend_credentials(clustername, port, username, password) kw = {"clustername": clustername, "port": port, "username": username, "password": password, "drained": True} if hypervisor: kw["hypervisor"] = hypervisor # Create the new backend in database try: backend = Backend.objects.create(**kw) except IntegrityError as e: raise CommandError("Cannot create backend: %s\n" % e) self.stdout.write('\nSuccessfully created backend with id %d\n' % backend.id) if not options['check']: return self.stdout.write('\rRetrieving backend resources:\n') resources = get_physical_resources(backend) attr = ['mfree', 'mtotal', 'dfree', 'dtotal', 'pinst_cnt', 'ctotal'] table = [[str(resources[x]) for x in attr]] pprint_table(self.stdout, table, attr) update_resources(backend, resources)
def create_backend(self, clustername, port, username, password, public, hypervisor=None, initialize=True): kw = {"clustername": clustername, "port": port, "username": username, "password": password, "public": public, "drained": True} if hypervisor: kw["hypervisor"] = hypervisor # Create the new backend in database try: backend = Backend.objects.create(**kw) except IntegrityError as e: raise CommandError("Cannot create backend: %s\n" % e) self.stderr.write("Successfully created backend with id %d\n" % backend.id) if not initialize: return self.stderr.write("Retrieving backend resources:\n") resources = backend_mod.get_physical_resources(backend) attr = ['mfree', 'mtotal', 'dfree', 'dtotal', 'pinst_cnt', 'ctotal'] table = [[str(resources[x]) for x in attr]] pprint_table(self.stdout, table, attr) backend_mod.update_backend_resources(backend, resources) backend_mod.update_backend_disk_templates(backend) networks = Network.objects.filter(deleted=False, public=True) if not networks: return self.stderr.write("Creating the following public:\n") headers = ("ID", "Name", 'IPv4 Subnet', "IPv6 Subnet", 'Mac Prefix') table = [] for net in networks: subnet4 = net.subnet4.cidr if net.subnet4 else None subnet6 = net.subnet6.cidr if net.subnet6 else None table.append((net.id, net.backend_id, subnet4, subnet6, str(net.mac_prefix))) pprint_table(self.stdout, table, headers) for net in networks: net.create_backend_network(backend) result = backend_mod.create_network_synced(net, backend) if result[0] != "success": self.stderr.write('\nError Creating Network %s: %s\n' % (net.backend_id, result[1])) else: self.stderr.write('Successfully created Network: %s\n' % net.backend_id) result = backend_mod.connect_network_synced(network=net, backend=backend) if result[0] != "success": self.stderr.write('\nError Connecting Network %s: %s\n' % (net.backend_id, result[1])) else: self.stderr.write('Successfully connected Network: %s\n' % net.backend_id)
def create_backend(self, clustername, port, username, password, hypervisor=None, initialize=True): kw = { "clustername": clustername, "port": port, "username": username, "password": password, "drained": True } if hypervisor: kw["hypervisor"] = hypervisor # Create the new backend in database try: backend = Backend.objects.create(**kw) except IntegrityError as e: raise CommandError("Cannot create backend: %s\n" % e) self.stderr.write("Successfully created backend with id %d\n" % backend.id) if not initialize: return self.stderr.write("Retrieving backend resources:\n") resources = backend_mod.get_physical_resources(backend) attr = ['mfree', 'mtotal', 'dfree', 'dtotal', 'pinst_cnt', 'ctotal'] table = [[str(resources[x]) for x in attr]] pprint_table(self.stdout, table, attr) backend_mod.update_backend_resources(backend, resources) backend_mod.update_backend_disk_templates(backend) networks = Network.objects.filter(deleted=False, public=True) if not networks: return self.stderr.write("Creating the following public:\n") headers = ("ID", "Name", 'IPv4 Subnet', "IPv6 Subnet", 'Mac Prefix') table = [] for net in networks: subnet4 = net.subnet4.cidr if net.subnet4 else None subnet6 = net.subnet6.cidr if net.subnet6 else None table.append((net.id, net.backend_id, subnet4, subnet6, str(net.mac_prefix))) pprint_table(self.stdout, table, headers) for net in networks: net.create_backend_network(backend) result = backend_mod.create_network_synced(net, backend) if result[0] != "success": self.stderr.write('\nError Creating Network %s: %s\n' % (net.backend_id, result[1])) else: self.stderr.write('Successfully created Network: %s\n' % net.backend_id) result = backend_mod.connect_network_synced(network=net, backend=backend) if result[0] != "success": self.stderr.write('\nError Connecting Network %s: %s\n' % (net.backend_id, result[1])) else: self.stderr.write('Successfully connected Network: %s\n' % net.backend_id)