当前位置: 首页>>代码示例>>Python>>正文


Python Table.align["Item"]方法代码示例

本文整理汇总了Python中SoftLayer.CLI.Table.align["Item"]方法的典型用法代码示例。如果您正苦于以下问题:Python Table.align["Item"]方法的具体用法?Python Table.align["Item"]怎么用?Python Table.align["Item"]使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SoftLayer.CLI.Table的用法示例。


在下文中一共展示了Table.align["Item"]方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: execute

# 需要导入模块: from SoftLayer.CLI import Table [as 别名]
# 或者: from SoftLayer.CLI.Table import align["Item"] [as 别名]
    def execute(self, args):
        update_with_template_args(args)
        mgr = HardwareManager(self.client)

        # Disks will be a comma-separated list. Let's make it a real list.
        if isinstance(args.get("--disk"), str):
            args["--disk"] = args.get("--disk").split(",")

        # Do the same thing for SSH keys
        if isinstance(args.get("--key"), str):
            args["--key"] = args.get("--key").split(",")

        self._validate_args(args)

        bmi_options = mgr.get_bare_metal_create_options()

        order = {"hostname": args["--hostname"], "domain": args["--domain"], "bare_metal": True}

        # Validate the CPU/Memory combination and get the price ID
        server_core = self._get_cpu_and_memory_price_ids(bmi_options, args["--cpu"], args["--memory"])

        if server_core:
            order["server"] = server_core
        else:
            raise CLIAbort("Invalid CPU/memory combination specified.")

        order["hourly"] = args["--hourly"]

        # Convert the OS code back into a price ID
        os_price = self._get_price_id_from_options(bmi_options, "os", args["--os"])

        if os_price:
            order["os"] = os_price
        else:
            raise CLIAbort("Invalid operating system specified.")

        order["location"] = args["--datacenter"] or "FIRST_AVAILABLE"

        # Set the disk size
        disk_prices = []
        for disk in args.get("--disk"):
            disk_price = self._get_price_id_from_options(bmi_options, "disk", disk)

            if disk_price:
                disk_prices.append(disk_price)

        if not disk_prices:
            disk_prices.append(self._get_default_value(bmi_options, "disk0"))

        order["disks"] = disk_prices

        # Set the port speed
        port_speed = args.get("--network") or 100

        nic_price = self._get_price_id_from_options(bmi_options, "nic", str(port_speed))

        if nic_price:
            order["port_speed"] = nic_price
        else:
            raise CLIAbort("Invalid network speed specified.")

        # Get the SSH keys
        if args.get("--key"):
            keys = []
            for key in args.get("--key"):
                key_id = resolve_id(SshKeyManager(self.client).resolve_ids, key, "SshKey")
                keys.append(key_id)
            order["ssh_keys"] = keys

        if args.get("--vlan_public"):
            order["public_vlan"] = args["--vlan_public"]

        if args.get("--vlan_private"):
            order["private_vlan"] = args["--vlan_private"]

        # Begin output
        t = Table(["Item", "cost"])
        t.align["Item"] = "r"
        t.align["cost"] = "r"

        if args.get("--test"):
            result = mgr.verify_order(**order)

            total_monthly = 0.0
            total_hourly = 0.0
            for price in result["prices"]:
                monthly_fee = float(price.get("recurringFee", 0.0))
                hourly_fee = float(price.get("hourlyRecurringFee", 0.0))

                total_monthly += monthly_fee
                total_hourly += hourly_fee
                if args.get("--hourly"):
                    rate = "%.2f" % hourly_fee
                else:
                    rate = "%.2f" % monthly_fee

                t.add_row([price["item"]["description"], rate])

            if args.get("--hourly"):
                total = total_hourly
#.........这里部分代码省略.........
开发者ID:ryanrhanson,项目名称:softlayer-python,代码行数:103,代码来源:bmc.py


注:本文中的SoftLayer.CLI.Table.align["Item"]方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。