コード例 #1
0
ファイル: JoyentDriver.py プロジェクト: bocabaton/orchestra
    def stopServer(self, auth, zone_id, req):
        """
         @param : auth
            {"auth":{
               "key_id":"Key ID",
               "secret":"Secret Key",
                }
            }
        @param: zone_id
        @param: req (Dic)
            {"server_id":"xxx-xxxx-xxx"}
        """
        # 1. Get Endpoint of Zone
        cloudMgr = self.locator.getManager('CloudManager')
        (r_name, z_name) = cloudMgr._getRegionZone(zone_id)

        auth_data = auth['auth']
        a_key = auth_data['key_id']
        s_key = auth_data['secret']

        # 2. Create DataCenter object
        sdc = DataCenter(location=z_name, key_id=a_key, secret=s_key)

        if req.has_key('server_id'):
            mid = req['server_id']
            machine = sdc.machine(machine_id=mid)
            # Stop Machine
            machine.stop()
            # Wait state
            machine.poll_until('stopped')
            dic = {}
            dic['status'] = machine.state
            return dic
コード例 #2
0
ファイル: JoyentDriver.py プロジェクト: bocabaton/orchestra
    def discoverServer(self, auth, zone_id, req):
        """
         @param : auth
            {"auth":{
               "key_id":"Key ID",
               "secret":"Secret Key",
                }
            }
        @param: zone_id
        @param: req (Dic)
            {"server_id":"xxx-xxxx-xxx"}
            {"name":"server_name"}
        """
        # 1. Get Endpoint of Zone
        cloudMgr = self.locator.getManager('CloudManager')
        (r_name, z_name) = cloudMgr._getRegionZone(zone_id)

        auth_data = auth['auth']
        a_key = auth_data['key_id']
        s_key = auth_data['secret']

        # 2. Create DataCenter object
        sdc = DataCenter(location=z_name, key_id=a_key, secret=s_key)

        if req.has_key('server_id'):
            mid = req['server_id']
            machine = sdc.machine(machine_id=mid)
            dic = {}
            dic['server_id'] = machine.id
            dic['private_ip_address'] = machine.private_ips[0]
            if len(machine.public_ips) >= 1:
                dic['floating_ip'] = machine.public_ips[0]
            dic['status'] = machine.status()
            # CPU, Memory, Disk
            if machine.has_key('package'):
                packages = sdc.packages(machine['package'])
                if len(packages) == 1:
                    package = packages[0]
                    dic['cpus'] = package['vcpus']
                    dic['memory'] = package['memory']
                    dic['disk'] = package['disk']
            return dic

        elif req.has_key('name'):
            my_name = req['name']
            machines = sdc.machines(name=my_name)
            self.logger.debug("Detected machine is %s" % len(machines))
            dic = {}
            if len(machines) != 1:
                # Error or ?
                return dic
            machine = machines[0]
            dic['server_id'] = machine.id
            dic['private_ip_address'] = machine.private_ips[0]
            if len(machine.public_ips) >= 1:
                dic['floating_ip'] = machine.public_ips[0]
            dic['status'] = machine.status()
            # CPU, Memory, Disk
            #if machine.has_key('package'):
            #    packages = sdc.packages(machine['package'])
            #    if len(packages) == 1:
            #        package = packages[0]
            #        dic['cpus'] = package['vcpus']
            #        dic['memory'] = package['memory']
            #        dic['disk'] = package['disk']
            return dic
        self.logger.error("No Server founded:%s" % z_name)