Ejemplo n.º 1
0
        public async Task DeleteMissingProperties(DefaultContext context)
        {
            var labVmIds    = LabVms.Select(t => t.Id).ToList();
            var vmsToRemove = await context.LabVms
                              .Where(t => t.LabId == Id && !labVmIds.Contains(t.Id)).ToListAsync();

            context.LabVms.RemoveRange(vmsToRemove);

            var interfaceIds       = LabVms.SelectMany(t => t.TemplateInterfaces).Select(i => i.Id).ToList();
            var interfacesToRemove = await context.VmInterfaceTemplates
                                     .Where(t => labVmIds.Contains(t.LabVmId) && !interfaceIds.Contains(t.Id)).ToListAsync();

            context.VmInterfaceTemplates.RemoveRange(interfacesToRemove);

            var bridgeTemplateIds       = BridgeTemplates.Select(t => t.Id).ToList();
            var bridgeTemplatesToRemove = await context.BridgeTemplates
                                          .Where(t => t.LabId == Id && !bridgeTemplateIds.Contains(t.Id)).ToListAsync();

            context.BridgeTemplates.RemoveRange(bridgeTemplatesToRemove);
        }
Ejemplo n.º 2
0
 /**
  * Requires LabVms.VmTemplates.HypervisorNode.Hypervisor is all included
  */
 public Hypervisor GetFirstAvailableHypervisor()
 {
     return(LabVms.SelectMany(vm => vm.VmTemplate.HypervisorVmTemplates).Select(t => t.HypervisorNode.Hypervisor)
            .First());
 }