コード例 #1
0
ファイル: template.py プロジェクト: cchen666/titamu
 def temp_list(self, args):
     templates_service = self.c.system_service().templates_service()
     try:
         if args.prefix is not None:
             search_prefix = 'name=' + args.prefix + '*'
         else:
             search_prefix = '*'
         templates = templates_service.list(search=search_prefix)
         rows = []
         for template in templates:
             cores = template.cpu.topology.cores * template.cpu.topology.sockets * template.cpu.topology.threads
             memory = template.memory / 1024 / 1024
             description = ""
             if template.description is not None:
                 description = template.description
             rows.append([
                 template.id, template.name,
                 str(memory) + ' M', cores,
                 str(description)
             ])
         output = Output(["ID", "Name", "Mem", "CPU", "Description"], rows)
         output.print_table()
         self.c.close()
     except sdk.Error as err:
         print "Failed to list templates, %s" % str(err)
コード例 #2
0
ファイル: vm.py プロジェクト: cchen666/titamu
    def vm_show(self, args):
        vms_service = self.c.system_service().vms_service()
        try:
            rows = []

            vm = vms_service.list(search=args.vm_name)[0]
            vm_service = vms_service.vm_service(vm.id)
            # Print basic information
            rows.append(["Name", vm.name])
            rows.append(["ID", vm.id])
            rows.append(["Status", str(vm.status).upper()])
            rows.append(["Memory", str(vm.memory / 1024 / 1024) + 'M'])
            rows.append([
                "CPU", vm.cpu.topology.cores * vm.cpu.topology.sockets *
                vm.cpu.topology.threads
            ])
            # Print Disk information
            disk_attachments_service = vm_service.disk_attachments_service()
            disk_attachments = disk_attachments_service.list()
            for disk_attachment in disk_attachments:
                disk = self.c.follow_link(disk_attachment.disk)
                rows.append([
                    "Disks",
                    [
                        disk.name, disk.id,
                        str(disk.provisioned_size / 1024 / 1024 / 1024) + 'G'
                    ]
                ])

            # We use nics_service() instead of reported_devices_service()
            # because we need to get NIC id and name
            nics_service = vm_service.nics_service().list()
            for nic in nics_service:
                for device in nic.reported_devices:
                    if device.ips is not None:
                        for ip in device.ips:
                            if ip.version.value == 'v4':
                                rows.append([
                                    "Active Nics",
                                    [
                                        nic.name, nic.mac.address, nic.id,
                                        ip.address
                                    ]
                                ])
                    if device.ips is None:
                        rows.append([
                            "Inactive Nics",
                            [nic.name, nic.mac.address, nic.id]
                        ])

            output = Output(["Item", "Value"], rows)
            output.print_table()
        except sdk.Error as err:
            print str(err)
        except IndexError:
            print "Error: No such VM %s" % args.vm_name
コード例 #3
0
ファイル: net.py プロジェクト: cchen666/titamu
 def net_list(self, args):
     networks_service = self.c.system_service().networks_service()
     try:
         networks = networks_service.list()
         rows = []
         for network in networks:
             comment = ""
             description = ""
             if network.description is not None:
                 description = network.description
             if network.comment is not None:
                 comment = network.comment
             rows.append([network.id, network.name, comment, description])
         output = Output(["ID", "Name", "Comment", "Description"], rows)
         output.print_table()
         self.c.close()
     except sdk.Error as err:
         print "Failed to list networks, %s" % str(err)
コード例 #4
0
ファイル: storagedomain.py プロジェクト: cchen666/titamu
 def sd_list(self, args):
     try:
         sds_service = self.c.system_service().storage_domains_service()
         rows = []
         for sd in sds_service.list():
             if sd.available is not None and sd.used is not None:
                 rows.append([
                     sd.id, sd.name, sd.storage.type,
                     str((sd.available + sd.used) / 1024 / 1024 / 1024) +
                     'G',
                     str(sd.available / 1024 / 1024 / 1024) + 'G'
                 ])
             else:
                 rows.append(
                     [sd.id, sd.name, sd.storage.type, "N/A", "N/A"])
         output = Output(["ID", "Name", "Type", "Total", "Free"], rows)
         output.print_table()
     except sdk.Error as err:
         print "Failed to list disks, %s" % str(err)
コード例 #5
0
ファイル: vm.py プロジェクト: cchen666/titamu
 def vm_list(self, args):
     # Call ovirtsdk to get vms_service
     vms_service = self.c.system_service().vms_service()
     # We check whether prefix has been given or not
     if args.prefix is not None:
         search_prefix = 'name=' + args.prefix + '*'
     else:
         search_prefix = 'name=' + environ.get('TITAMU_VM_PREFIX') + '*'
     try:
         # Get vm list by using vms_service
         vms = vms_service.list(
             search=search_prefix,
             case_sensitive=False,
         )
         rows = []
         for vm in vms:
             addr = ""
             comment = ""
             if vm.comment is not None:
                 comment = vm.comment
             vm_service = vms_service.vm_service(vm.id)
             # We use reported_devices_service method to get all the
             # NICs that have IP address assigned
             for device in vm_service.reported_devices_service().list():
                 if device.ips is not None and vm.status.value == 'up':
                     for ip in device.ips:
                         # cchen: ip.version is a enum so we have to use "value" to
                         # get its real value we are assuming that only the IP which
                         # starts with '10' is something that we are interested in
                         if ip.version.value == 'v4' and ip.address.startswith(
                                 '10'):
                             addr += ip.address + '  '
             rows.append(
                 [vm.id, vm.name,
                  vm.status.value.upper(), addr, comment])
         output = Output(["ID", "Name", "Status", "Networks", "Comment"],
                         rows)
         output.print_table()
         self.c.close()
     except sdk.Error as err:
         print "Failed to list VMs, %s" % str(err)
コード例 #6
0
ファイル: disk.py プロジェクト: cchen666/titamu
    def disk_list(self, args):
        try:
            vms_service = self.c.system_service().vms_service()
            vm = vms_service.list(search=args.vm_name)[0]
            vm_service = vms_service.vm_service(vm.id)
            disk_attachments_service = vm_service.disk_attachments_service()
            disk_attachments = disk_attachments_service.list()
            rows = []
            for disk_attachment in disk_attachments:
                disk = self.c.follow_link(disk_attachment.disk)
                rows.append([
                    disk.id, disk.name,
                    str(disk.provisioned_size / 1024 / 1024 / 1024) + "G",
                    str(disk.status).upper()
                ])

            output = Output(["ID", "Name", "Size", "Status"], rows)
            output.print_table()
            self.c.close()
        except sdk.Error as err:
            print "Failed to list disks, %s" % str(err)