private void update()
        {
            // todo
            // add a check here that determines how long it has been since the last update.
            // if below a threshold, simply return.

            var request = new RestRequest();

            request.Resource      = "/vms/" + vmId;
            request.Method        = Method.GET;
            request.RequestFormat = DataFormat.Json;

            var response = restClient.Execute(request);

            RestSharp.Deserializers.JsonDeserializer deserial = new RestSharp.Deserializers.JsonDeserializer();

            KimchiVm vm = deserial.Deserialize <KimchiVm>(response);

            switch (vm.state)
            {
            case "running":
                vmState = VirtualMachineState.POWERED_ON;
                break;

            case "shutoff":
                vmState = VirtualMachineState.POWERED_OFF;
                break;

            default:
                vmState = VirtualMachineState.UNKNOWN;
                break;
            }
        }
Example #2
0
        public VirtualMachine findVirtualMachine(string criteria)
        {
            var request = new RestRequest();

            request.Resource      = "/vms/" + criteria;
            request.Method        = Method.GET;
            request.RequestFormat = DataFormat.Json;

            var response = restClient.Execute(request);

            RestSharp.Deserializers.JsonDeserializer deserial = new RestSharp.Deserializers.JsonDeserializer();

            KimchiVm vm = deserial.Deserialize <KimchiVm>(response);

            if (vm.name == null || vm.name == "null")
            {
                throw new VirtualizationShimException("Kimchi KVM machine not found.");
            }

            KimchiVirtualMachine kvmTemp;

            kvmTemp = new KimchiVirtualMachine(restClient, vm.name);

            return(kvmTemp);
        }