Skip to content
This repository has been archived by the owner on Dec 7, 2023. It is now read-only.

Commit

Permalink
Merge pull request #292 from twelho/state-change
Browse files Browse the repository at this point in the history
Replace `vm.status.state` with `vm.status.running`
  • Loading branch information
luxas committed Aug 8, 2019
2 parents 3394e1f + b0b85e2 commit 0657c0c
Show file tree
Hide file tree
Showing 17 changed files with 87 additions and 138 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ api-doc:
mv bin/tmp/${GROUPVERSION}/*.go $(shell pwd)/pkg/apis/${GROUPVERSION}/
rm -r bin/tmp/${GROUPVERSION}
# Format the docs with pandoc
docker run -it \
docker run -it --rm \
-v $(shell pwd):/data \
-u $(shell id -u):$(shell id -g) \
pandoc/core \
Expand Down Expand Up @@ -211,8 +211,8 @@ build-docs: bin/docs/builder-image.tar
docker build -t ignite-docs docs

test-docs: build-docs
docker run -it ignite-docs /usr/bin/linkchecker _build/html/index.html
docker run -it --rm ignite-docs /usr/bin/linkchecker _build/html/index.html

serve-docs: build-docs
@echo Stating docs website on http://localhost:${DOCS_PORT}/_build/html/index.html
@docker run -i -p ${DOCS_PORT}:8000 -e USER_ID=$$UID ignite-docs
@docker run -i --rm -p ${DOCS_PORT}:8000 -e USER_ID=$$UID ignite-docs
4 changes: 2 additions & 2 deletions cmd/ignite-spawn/ignite-spawn.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,15 @@ func serveMetrics(metricsSocket string) {

func patchRunning(vm *api.VM, ipAddrs []net.IP) error {
return patchVM(vm, func(patchVM *api.VM) error {
patchVM.Status.State = api.VMStateRunning
patchVM.Status.Running = true
patchVM.Status.IPAddresses = ipAddrs
return nil
})
}

func patchStopped(vm *api.VM) error {
return patchVM(vm, func(patchVM *api.VM) error {
patchVM.Status.State = api.VMStateStopped
patchVM.Status.Running = false
patchVM.Status.IPAddresses = nil
return nil
})
Expand Down
4 changes: 2 additions & 2 deletions cmd/ignite/run/ps.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ func Ps(po *psOptions) error {
o := util.NewOutput()
defer o.Flush()

o.Write("VM ID", "IMAGE", "KERNEL", "CREATED", "SIZE", "CPUS", "MEMORY", "STATE", "IPS", "PORTS", "NAME")
o.Write("VM ID", "IMAGE", "KERNEL", "CREATED", "SIZE", "CPUS", "MEMORY", "RUNNING", "IPS", "PORTS", "NAME")
for _, vm := range po.allVMs {
o.Write(vm.GetUID(), vm.Spec.Image.OCIClaim.Ref, vm.Spec.Kernel.OCIClaim.Ref, vm.GetCreated(),
vm.Spec.DiskSize, vm.Spec.CPUs, vm.Spec.Memory, vm.Status.State, vm.Status.IPAddresses,
vm.Spec.DiskSize, vm.Spec.CPUs, vm.Spec.Memory, vm.Running(), vm.Status.IPAddresses,
vm.Spec.Network.Ports, vm.GetName())
}

Expand Down
24 changes: 24 additions & 0 deletions docs/api/ignite_v1alpha1.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,15 @@
- [func Convert\_ignite\_VMSpec\_To\_v1alpha1\_VMSpec(in
*ignite.VMSpec, out *VMSpec, s conversion.Scope)
error](#Convert_ignite_VMSpec_To_v1alpha1_VMSpec)
- [func Convert\_ignite\_VMStatus\_To\_v1alpha1\_VMStatus(in
*ignite.VMStatus, out *VMStatus, s conversion.Scope)
error](#Convert_ignite_VMStatus_To_v1alpha1_VMStatus)
- [func Convert\_v1alpha1\_VMSpec\_To\_ignite\_VMSpec(in *VMSpec, out
*ignite.VMSpec, s conversion.Scope)
error](#Convert_v1alpha1_VMSpec_To_ignite_VMSpec)
- [func Convert\_v1alpha1\_VMStatus\_To\_ignite\_VMStatus(in
*VMStatus, out *ignite.VMStatus, s conversion.Scope)
error](#Convert_v1alpha1_VMStatus_To_ignite_VMStatus)
- [func SetDefaults\_OCIImageClaim(obj
\*OCIImageClaim)](#SetDefaults_OCIImageClaim)
- [func SetDefaults\_PoolSpec(obj \*PoolSpec)](#SetDefaults_PoolSpec)
Expand Down Expand Up @@ -118,6 +124,15 @@ func Convert_ignite_VMSpec_To_v1alpha1_VMSpec(in *ignite.VMSpec, out *VMSpec, s
Convert\_ignite\_VMSpec\_To\_v1alpha1\_VMSpec calls the autogenerated
conversion function along with custom conversion logic

## <a name="Convert_ignite_VMStatus_To_v1alpha1_VMStatus">func</a> [Convert\_ignite\_VMStatus\_To\_v1alpha1\_VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/conversion.go?s=1038:1149#L21)

``` go
func Convert_ignite_VMStatus_To_v1alpha1_VMStatus(in *ignite.VMStatus, out *VMStatus, s conversion.Scope) error
```

Convert\_ignite\_VMStatus\_To\_v1alpha1\_VMStatus calls the
autogenerated conversion function along with custom conversion logic

## <a name="Convert_v1alpha1_VMSpec_To_ignite_VMSpec">func</a> [Convert\_v1alpha1\_VMSpec\_To\_ignite\_VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/conversion.go?s=637:740#L15)

``` go
Expand All @@ -127,6 +142,15 @@ func Convert_v1alpha1_VMSpec_To_ignite_VMSpec(in *VMSpec, out *ignite.VMSpec, s
Convert\_ignite\_VMSpec\_To\_v1alpha1\_VMSpec calls the autogenerated
conversion function along with custom conversion logic

## <a name="Convert_v1alpha1_VMStatus_To_ignite_VMStatus">func</a> [Convert\_v1alpha1\_VMStatus\_To\_ignite\_VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/conversion.go?s=1522:1633#L37)

``` go
func Convert_v1alpha1_VMStatus_To_ignite_VMStatus(in *VMStatus, out *ignite.VMStatus, s conversion.Scope) error
```

Convert\_v1alpha1\_VMStatus\_To\_ignite\_VMStatus calls the
autogenerated conversion function along with custom conversion logic

## <a name="SetDefaults_OCIImageClaim">func</a> [SetDefaults\_OCIImageClaim](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=263:313#L13)

``` go
Expand Down
28 changes: 2 additions & 26 deletions docs/api/ignite_v1alpha2.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
- [func SetDefaults\_VMNetworkSpec(obj
\*VMNetworkSpec)](#SetDefaults_VMNetworkSpec)
- [func SetDefaults\_VMSpec(obj \*VMSpec)](#SetDefaults_VMSpec)
- [func SetDefaults\_VMStatus(obj \*VMStatus)](#SetDefaults_VMStatus)
- [type BlockDeviceVolume](#BlockDeviceVolume)
- [type FileMapping](#FileMapping)
- [type Image](#Image)
Expand Down Expand Up @@ -52,7 +51,6 @@
- [type VMKernelSpec](#VMKernelSpec)
- [type VMNetworkSpec](#VMNetworkSpec)
- [type VMSpec](#VMSpec)
- [type VMState](#VMState)
- [type VMStatus](#VMStatus)
- [type VMStorageSpec](#VMStorageSpec)
- [type Volume](#Volume)
Expand Down Expand Up @@ -136,12 +134,6 @@ func SetDefaults_VMNetworkSpec(obj *VMNetworkSpec)
func SetDefaults_VMSpec(obj *VMSpec)
```

## <a name="SetDefaults_VMStatus">func</a> [SetDefaults\_VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=1641:1681#L70)

``` go
func SetDefaults_VMStatus(obj *VMStatus)
```

## <a name="BlockDeviceVolume">type</a> [BlockDeviceVolume](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8095:8155#L218)

``` go
Expand Down Expand Up @@ -493,27 +485,11 @@ type VMSpec struct {

VMSpec describes the configuration of a VM

## <a name="VMState">type</a> [VMState](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=9336:9355#L261)

``` go
type VMState string
```

VMState defines different states a VM can be in

``` go
const (
VMStateCreated VMState = "Created"
VMStateRunning VMState = "Running"
VMStateStopped VMState = "Stopped"
)
```

## <a name="VMStatus">type</a> [VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=9515:9736#L270)
## <a name="VMStatus">type</a> [VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=9324:9547#L261)

``` go
type VMStatus struct {
State VMState `json:"state"`
Running bool `json:"running"`
IPAddresses meta.IPAddresses `json:"ipAddresses,omitempty"`
Image OCIImageSource `json:"image"`
Kernel OCIImageSource `json:"kernel"`
Expand Down
11 changes: 1 addition & 10 deletions pkg/apis/ignite/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,6 @@ func GetImageSourceTypes() []ImageSourceType {
}
}

// GetVMStates gets the list of available VM states
func GetVMStates() []VMState {
return []VMState{
VMStateCreated,
VMStateRunning,
VMStateStopped,
}
}

// SetImage populates relevant fields to an Image on the VM object
func (vm *VM) SetImage(image *Image) {
vm.Spec.Image.OCIClaim = image.Spec.OCIClaim
Expand All @@ -50,7 +41,7 @@ func (vm *VM) SnapshotDev() string {

// Running returns true if the VM is running, otherwise false
func (vm *VM) Running() bool {
return vm.Status.State == VMStateRunning
return vm.Status.Running
}

// OverlayFile returns the path to the overlay.dm file for the VM.
Expand Down
11 changes: 1 addition & 10 deletions pkg/apis/ignite/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -257,18 +257,9 @@ const (
// Whenever updating this list, also update GetNetworkModes in helpers.go
)

// VMState defines different states a VM can be in
type VMState string

const (
VMStateCreated VMState = "Created"
VMStateRunning VMState = "Running"
VMStateStopped VMState = "Stopped"
)

// VMStatus defines the status of a VM
type VMStatus struct {
State VMState `json:"state"`
Running bool `json:"running"`
IPAddresses meta.IPAddresses `json:"ipAddresses,omitempty"`
Image OCIImageSource `json:"image"`
Kernel OCIImageSource `json:"kernel"`
Expand Down
28 changes: 28 additions & 0 deletions pkg/apis/ignite/v1alpha1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,31 @@ func Convert_v1alpha1_VMSpec_To_ignite_VMSpec(in *VMSpec, out *ignite.VMSpec, s
// VMSpecStorage is not supported by v1alpha1, so just ignore the warning by calling this manually
return autoConvert_v1alpha1_VMSpec_To_ignite_VMSpec(in, out, s)
}

// Convert_ignite_VMStatus_To_v1alpha1_VMStatus calls the autogenerated conversion function along with custom conversion logic
func Convert_ignite_VMStatus_To_v1alpha1_VMStatus(in *ignite.VMStatus, out *VMStatus, s conversion.Scope) error {
if err := autoConvert_ignite_VMStatus_To_v1alpha1_VMStatus(in, out, s); err != nil {
return err
}

// Convert in.Running to out.State
if in.Running {
out.State = VMStateRunning
} else {
out.State = VMStateStopped
}

return nil
}

// Convert_v1alpha1_VMStatus_To_ignite_VMStatus calls the autogenerated conversion function along with custom conversion logic
func Convert_v1alpha1_VMStatus_To_ignite_VMStatus(in *VMStatus, out *ignite.VMStatus, s conversion.Scope) error {
if err := autoConvert_v1alpha1_VMStatus_To_ignite_VMStatus(in, out, s); err != nil {
return err
}

// Convert in.State to out.Running
out.Running = in.State == VMStateRunning

return nil
}
24 changes: 12 additions & 12 deletions pkg/apis/ignite/v1alpha1/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions pkg/apis/ignite/v1alpha2/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,6 @@ func SetDefaults_VMNetworkSpec(obj *VMNetworkSpec) {
}
}

func SetDefaults_VMStatus(obj *VMStatus) {
if obj.State == "" {
obj.State = VMStateCreated
}
}

func calcMetadataDevSize(obj *PoolSpec) meta.Size {
// The minimum size is 2 MB and the maximum size is 16 GB
minSize := meta.NewSizeFromBytes(2 * constants.MB)
Expand Down
11 changes: 1 addition & 10 deletions pkg/apis/ignite/v1alpha2/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -257,18 +257,9 @@ const (
// Whenever updating this list, also update GetNetworkModes in helpers.go
)

// VMState defines different states a VM can be in
type VMState string

const (
VMStateCreated VMState = "Created"
VMStateRunning VMState = "Running"
VMStateStopped VMState = "Stopped"
)

// VMStatus defines the status of a VM
type VMStatus struct {
State VMState `json:"state"`
Running bool `json:"running"`
IPAddresses meta.IPAddresses `json:"ipAddresses,omitempty"`
Image OCIImageSource `json:"image"`
Kernel OCIImageSource `json:"kernel"`
Expand Down
4 changes: 2 additions & 2 deletions pkg/apis/ignite/v1alpha2/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/apis/ignite/v1alpha2/zz_generated.defaults.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 0 additions & 16 deletions pkg/apis/ignite/validation/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ func ValidateVM(obj *api.VM) (allErrs field.ErrorList) {
allErrs = append(allErrs, ValidateOCIImageClaim(&obj.Spec.Kernel.OCIClaim, field.NewPath(".spec.kernel.ociClaim"))...)
allErrs = append(allErrs, ValidateFileMappings(&obj.Spec.CopyFiles, field.NewPath(".spec.copyFiles"))...)
allErrs = append(allErrs, ValidateVMStorage(&obj.Spec.Storage, field.NewPath(".spec.storage"))...)
allErrs = append(allErrs, ValidateVMState(obj.Status.State, field.NewPath(".status.state"))...)
// TODO: Add vCPU, memory, disk max and min sizes
return
}
Expand Down Expand Up @@ -94,18 +93,3 @@ func ValidateImageSourceType(t api.ImageSourceType, fldPath *field.Path) (allErr
}
return
}

// ValidateVMState validates if an VM state is valid
func ValidateVMState(s api.VMState, fldPath *field.Path) (allErrs field.ErrorList) {
found := false
states := api.GetVMStates()
for _, state := range states {
if state == s {
found = true
}
}
if !found {
allErrs = append(allErrs, field.Invalid(fldPath, s, fmt.Sprintf("VM state must be one of %v", states)))
}
return
}
2 changes: 1 addition & 1 deletion pkg/filter/vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func (f *VMFilter) Filter(object meta.Object) (filterer.Match, error) {
return nil, fmt.Errorf("invalid Object type for VMFilter: %T", object)
}

if vm.Status.State != api.VMStateRunning {
if !vm.Running() {
return nil, nil
}
}
Expand Down
Loading

0 comments on commit 0657c0c

Please sign in to comment.