Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Availability Zone] VM Placement in a Zone #273

Closed
wants to merge 10 commits into from
18 changes: 18 additions & 0 deletions pkg/status/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ func InitStatus() *common.Status {
Version: GenerateVersion(),
DownloadStatus: &common.DownloadStatus{},
ValidationStatus: &common.ValidationStatus{},
PlacementStatus: &common.PlacementStatus{},
}
}

Expand Down Expand Up @@ -96,6 +97,16 @@ func GetValidationStatus(s *common.Status) []*common.ValidationState {
return s.GetValidationStatus().GetValidationState()
}

func SetPlacementStatus(s *common.Status, placementState *common.PlacementStatus) {
s.PlacementStatus = new(common.PlacementStatus)
s.PlacementStatus.Status = placementState.GetStatus()
s.PlacementStatus.Message = placementState.GetMessage()
}

func GetPlacementStatus(s *common.Status) common.PlacementStatusType {
return s.GetPlacementStatus().GetStatus()
}

// GetStatuses - converts status to map
func GetStatuses(status *common.Status) map[string]*string {
statuses := map[string]*string{}
Expand All @@ -109,6 +120,8 @@ func GetStatuses(status *common.Status) map[string]*string {
statuses["Version"] = &version
dstate := status.GetDownloadStatus().String()
statuses["DownloadStatus"] = &dstate
placementStatus := status.GetPlacementStatus().String()
statuses["PlacementStatus"] = &placementStatus
return statuses
}

Expand All @@ -135,6 +148,11 @@ func GetFromStatuses(statuses map[string]*string) (status *common.Status) {
proto.UnmarshalText(*val, ps)
status.DownloadStatus = ps
}
if val, ok := statuses["PlacementStatus"]; ok {
ps := new(common.PlacementStatus)
proto.UnmarshalText(*val, ps)
status.PlacementStatus = ps
}

return
}
347 changes: 224 additions & 123 deletions rpc/cloudagent/compute/moc_cloudagent_virtualmachine.pb.go

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,15 @@ message AvailabilitySetReference {
string name = 2;
}

message ZoneReference {
string name = 1;
}

message ZoneConfiguration {
repeated ZoneReference zones = 1;
bool strictPlacement = 2;
}

message VirtualMachine {
string name = 1;
string id = 2;
Expand All @@ -130,6 +139,7 @@ message VirtualMachine {
GuestAgentConfiguration guestAgent = 17;
VirtualMachineAgentInstanceView guestAgentInstanceView = 18;
AvailabilitySetReference availabilitySet = 19;
ZoneConfiguration zone = 20;
}

message VirtualMachineOperationRequest {
Expand Down
440 changes: 265 additions & 175 deletions rpc/common/moc_common_common.pb.go

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions rpc/common/moc_common_common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,25 @@ message Version {
string number = 1;
}

enum PlacementStatusType {
UNKNOWN_PLACEMENT = 0;
ALIGNED = 1;
NOT_ALIGNED = 2;
}

message PlacementStatus {
PlacementStatusType Status = 1;
string Message = 2;
}

message Status {
Health health = 1;
ProvisionStatus provisioningStatus = 2;
Error lastError = 3;
Version version = 4;
DownloadStatus downloadStatus = 5;
ValidationStatus validationStatus = 6;
PlacementStatus placementStatus = 7;
}

message Entity {
Expand Down
341 changes: 225 additions & 116 deletions rpc/nodeagent/compute/moc_nodeagent_virtualmachine.pb.go

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,16 @@ message SecurityConfiguration {
SecurityType securityType = 3;
}

message ZoneReference {
string name = 1;
repeated string nodes = 2;
}

message ZoneConfiguration {
repeated ZoneReference zones = 1;
bool strictPlacement = 2;
}

message VirtualMachine {
string name = 1;
string id = 2;
Expand All @@ -125,6 +135,7 @@ message VirtualMachine {
Tags tags = 14;
GuestAgentConfiguration guestAgent = 15;
VirtualMachineAgentInstanceView guestAgentInstanceView = 16;
ZoneConfiguration zone = 17;
}

message VirtualMachineOperationRequest {
Expand Down
Loading