public override void Handle(HitInfo hit) { if (Group.HasEntity(hit.HitEntity)) { Instance.SendReply(Player, Messages.CannotAddEntityAlreadyEnrolledInGroup, Group.Name); return; } var entity = ManagedEntity.Create(hit.HitEntity); if (entity == null) { Instance.SendReply(Player, Messages.InvalidEntitySelected); return; } if (!entity.IsAuthorized(Player)) { Instance.SendReply(Player, Messages.CannotAddEntityNotAuthorized); return; } Group.AddEntity(entity); Instance.SendReply(Player, Messages.EntityAdded, Group.Name, Group.MemberIds.Count); }
static void Main(string[] args) { var entity = new ManagedEntity(); for (int i = 0; i < entity.GetVec().Length; i++) { Console.WriteLine(entity.GetVec()[i]); } }
public bool RemoveEntity(ManagedEntity entity) { if (!Entities.Remove(entity)) { return(false); } entity.DeauthorizeAll(); return(true); }
public bool RemoveEntity(BaseEntity entity) { ManagedEntity managedEntity = GetManagedEntity(entity); if (managedEntity == null) { return(false); } return(RemoveEntity(managedEntity)); }
public bool AddEntity(ManagedEntity entity) { if (Entities.Any(e => e.Id == entity.Id)) { return(false); } Entities.Add(entity); entity.DeauthorizeAll(); entity.Authorize(GetActiveAndSleepingMembers()); return(true); }
public DescriptiveResponse <TId> Save(TWrite item) { try { // If item is null if (item == null) { // Return error response with input is null error return(DescriptiveResponse <TId> .Error(ErrorStatus.INPUT_IS_NULL)); } // TWrite is manged entity if (item is ManagedEntity <TId, TUId> ) { ManagedEntity <TId, TUId> managedEntity = item as ManagedEntity <TId, TUId>; // If model in adding mode if (managedEntity.Id.Equals(default(TId))) { // Update creation log properties managedEntity.CreatedBy = UserUtility <TUId> .CurrentUser.UserId; managedEntity.CreationDate = DateTime.UtcNow; } else // If model in update mode { //Update modification log properties managedEntity.LastModifiedBy = UserUtility <TUId> .CurrentUser.UserId; managedEntity.LastModifiedDate = DateTime.UtcNow; } } // Attach entity _writeRepository.Attach(item); // Save Changes _writeRepository.UnitOfWork.SaveChanges(); return(DescriptiveResponse <TId> .Success(item.Id)); } catch (Exception ex) { Logger.Log(ex); return(DescriptiveResponse <TId> .Error(ErrorStatus.UNEXPECTED_ERROR)); } }
public override void Handle(HitInfo hit) { ManagedEntity entity = Group.GetManagedEntity(hit.HitEntity); if (entity == null) { Instance.SendReply(Player, Messages.CannotRemoveEntityNotEnrolledInGroup, Group.Name); return; } if (!entity.IsAuthorized(Player)) { Instance.SendReply(Player, Messages.CannotRemoveEntityNotAuthorized); return; } Group.RemoveEntity(entity); Instance.SendReply(Player, Messages.EntityRemoved, Group.Name); }
static void Main(string[] args) { var entity = new ManagedEntity(); double myDouble = -1.1; int myInt = -1; string myCharString = "c# empty charstring"; string myString = "c# empty string"; double[] myArray = { -1.1, -2.1, -3.1 }; //Test Double System.Console.WriteLine("C# - Value for double: {0}", myDouble); System.Console.WriteLine("C# - C++ Value stored for the double: {0}", entity.GetDouble()); myDouble = entity.GetDouble(); System.Console.WriteLine("C# - Value for double after GetDouble: {0}", myDouble); entity.SetDouble(100.1); System.Console.WriteLine("C# - C++ Value stored for the double: {0} \n", entity.GetDouble()); //Test Int System.Console.WriteLine("C# - Value for int: {0}", myInt); System.Console.WriteLine("C# - C++ Value stored for the int: {0}", entity.GetInt()); myInt = entity.GetInt(); System.Console.WriteLine("C# - Value for int after GetInt: {0}", myInt); entity.SetInt(100); System.Console.WriteLine("C# - C++ Value stored for the int: {0} \n", entity.GetInt()); //Test CharString System.Console.WriteLine("C# - Value for charstring: {0}", myCharString); System.Console.WriteLine("C# - C++ Value stored for the charstring: {0}", entity.GetCharString()); myCharString = entity.GetCharString(); System.Console.WriteLine("C# - Value for charstring after GetCharString: {0}", myCharString); entity.SetCharString("one-hundred point one"); System.Console.WriteLine("C# - C++ Value stored for the charstring: {0} \n", entity.GetCharString()); //Test String System.Console.WriteLine("C# - Value for string: {0}", myString); System.Console.WriteLine("C# - C++ Value stored for the string: {0}", entity.GetString()); myString = entity.GetString(); System.Console.WriteLine("C# - Value for string after GetString: {0}", myString); entity.SetString("one-hundred point two"); System.Console.WriteLine("C# - C++ Value stored for the string: {0} \n", entity.GetString()); //Test Array System.Console.WriteLine("C# - Value for array: {0}", string.Join(", ", myArray)); System.Console.WriteLine("C# - C++ Value stored for the string: {0}", string.Join(", ", entity.GetVector())); myArray = entity.GetVector(); System.Console.WriteLine("C# - Value for array after GetVector: {0}", string.Join(", ", myArray)); entity.SetVector(new double[] { 100.1, 100.2, 100.3, 100.4 }); System.Console.WriteLine("C# - C++ Value stored for the string: {0}", string.Join(", ", entity.GetVector())); //array,comma trick needs .NET 4+ if it does not work use code below to print array to console // foreach (var item in myArray) // { // Console.Write("{0}", item); // if (item != myArray.Last()) // Console.Write(","); // } }
protected void cmdProvision_Click(object sender, EventArgs e) { // // Ready to provision // // // Need a random number to pick a random virtual host to place the new vm on // Random rand = new Random(); // // Validate user entries // // // Do we have a value for the target vm? // if (txtTargetVm.Text == null || txtTargetVm.Text == "") { txtErrors.Text = "Please enter a name for the virtual machine."; Error_Panel.Visible = true; return; } // // Has a valid IP address been entered? // IPAddress theIp; bool ipResult = IPAddress.TryParse(txtIpAddress.Text, out theIp); if (ipResult != true) { txtErrors.Text = "Please enter a valid IP Address."; Error_Panel.Visible = true; return; } // // This does some basic checking on a subnet // IPAddress theMask; bool mskResult = IPAddress.TryParse(txtSubnet.Text, out theMask); if (mskResult != true) { txtErrors.Text = "Please enter a valid Subnet Mask."; Error_Panel.Visible = true; return; } // // Has a valid IP been entered for the gateway? // IPAddress theGateway; bool gwResult = IPAddress.TryParse(txtGateway.Text, out theGateway); if (gwResult != true) { txtErrors.Text = "Please entera valid IP Address for the default gateway."; Error_Panel.Visible = true; return; } // // Does a vm by this name already exist? // VimClient vimClient = ConnectServer(Globals.sViServer, Globals.sUsername, Globals.sPassword); List<VirtualMachine> chkVirtualMachines = GetVirtualMachines(vimClient, null, txtTargetVm.Text); if (chkVirtualMachines != null) { vimClient.Disconnect(); txtErrors.Text = "virtual machine " + txtTargetVm.Text + " already exists"; Error_Panel.Visible = true; return; } // // Need to parse the value of the dropdown // char[] splitChar = { '.' }; string[] specType = cboCustomizations.SelectedValue.Split(splitChar); // // Connect to selected datacenter // List<ClusterComputeResource> lstClusters = GetClusters(vimClient, cboClusters.SelectedItem.Text); List<Datacenter> lstDatacenters = GetDcFromCluster(vimClient, lstClusters[0].Parent.Value); Datacenter itmDatacenter = lstDatacenters[0]; // // Get a list of hosts in the selected cluster // List<HostSystem> lstHosts = GetHosts(vimClient, cboClusters.SelectedValue); // // Randomly pick host // HostSystem selectedHost = lstHosts[rand.Next(0, lstHosts.Count)]; txtResults.Text = "Host : " + selectedHost.Name + "\r\n"; // // Connect to selected vm to clone // List<VirtualMachine> lstVirtualMachines = GetVirtualMachines(vimClient, null, cboSourceVms.SelectedItem.Text); VirtualMachine itmVirtualMachine = lstVirtualMachines[0]; // // Make sure the spec file type matches the guest os // // // The commented code could be used to poweron a vm, check it's guestfamily and then turn it off. // //string GuestFamily = null; //if (itmVirtualMachine.Runtime.PowerState == VirtualMachinePowerState.poweredOff) //{ // // // // We can power on the vm to get the guestfamily property // // // itmVirtualMachine.PowerOnVM(null); // // // // Set the GuestFamily var // // // while (itmVirtualMachine.Guest.GuestFamily == null) // { // // // // Need to grab the current guest status from the vm // // // itmVirtualMachine.Reload(); // GuestFamily = itmVirtualMachine.Guest.GuestFamily; // } // // // // Turn the VM back off // // // itmVirtualMachine.PowerOffVM(); //} // // Added this test to accomodate cloning templates to vm's, per Ryan Lawrence. // if (!(chkTemplate.Checked)) { if (itmVirtualMachine.Guest.GuestFamily != null) { if ((itmVirtualMachine.Guest.GuestFamily).Contains(specType[specType.GetUpperBound(0)]) == false) { vimClient.Disconnect(); txtErrors.Text = "You specified a " + specType[specType.GetUpperBound(0)] + " spec file to clone a " + itmVirtualMachine.Guest.GuestFamily + " virtual machine."; Error_Panel.Visible = true; return; } } else { // // Sometimes the GuestFamily property isn't populated // vimClient.Disconnect(); txtErrors.Text = "The virtual machine " + itmVirtualMachine.Name.ToString() + " has no GuestFamily property populated, please power on this VM and verify that it's a supported Guest Os."; Error_Panel.Visible = true; return; } } txtResults.Text += "Source : " + itmVirtualMachine.Name + "\r\n"; // // Connect to the selected datastore // List<Datastore> lstDatastores = GetDataStore(vimClient, null, cboDatastores.SelectedItem.Text); Datastore itmDatastore = lstDatastores[0]; txtResults.Text += "Datastore : " + itmDatastore.Name + "\r\n"; // // Connect to portgroup // List<DistributedVirtualPortgroup> lstDvPortGroups = GetDVPortGroups(vimClient, itmDatacenter, cboPortGroups.SelectedItem.Text); DistributedVirtualPortgroup itmDvPortGroup = lstDvPortGroups[0]; txtResults.Text += "Portgroup : " + itmDvPortGroup.Name + "\r\n"; // // Connect to the customizationspec // CustomizationSpecItem itmSpecItem = GetCustomizationSpecItem(vimClient, cboCustomizations.SelectedItem.Text); txtResults.Text += "Spec : " + cboCustomizations.SelectedItem.Text + "\r\n"; // // Create a new VirtualMachineCloneSpec // VirtualMachineCloneSpec mySpec = new VirtualMachineCloneSpec(); mySpec.Location = new VirtualMachineRelocateSpec(); mySpec.Location.Datastore = itmDatastore.MoRef; mySpec.Location.Host = selectedHost.MoRef; // // Get resource pool for selected cluster // List<ResourcePool> lstResPools = GetResPools(vimClient, cboClusters.SelectedValue); ResourcePool itmResPool = lstResPools[0]; // // Assign resource pool to specitem // mySpec.Location.Pool = itmResPool.MoRef; // // Add selected CloneSpec customizations to this CloneSpec // mySpec.Customization = itmSpecItem.Spec; // // Handle hostname for either windows or linux // if (specType[specType.GetUpperBound(0)] == "Windows") { // // Create a windows sysprep object // CustomizationSysprep winIdent = (CustomizationSysprep)itmSpecItem.Spec.Identity; CustomizationFixedName hostname = new CustomizationFixedName(); hostname.Name = txtTargetVm.Text; winIdent.UserData.ComputerName = hostname; // // Store identity in this CloneSpec // mySpec.Customization.Identity = winIdent; } if (specType[specType.GetUpperBound(0)] == "Linux") { // // Create a Linux "sysprep" object // CustomizationLinuxPrep linIdent = (CustomizationLinuxPrep)itmSpecItem.Spec.Identity; CustomizationFixedName hostname = new CustomizationFixedName(); hostname.Name = txtTargetVm.Text; linIdent.HostName = hostname; // // Uncomment the line below to add a suffix to linux vm's // // linIdent.Domain = WebConfigurationManager.AppSettings["dnsSuffix"].ToString(); // // Store identity in this CloneSpec // mySpec.Customization.Identity = linIdent; } // // Create a new ConfigSpec // mySpec.Config = new VirtualMachineConfigSpec(); // // Set number of CPU's // int numCpus = new int(); numCpus = Convert.ToInt16(cboCpus.SelectedValue); mySpec.Config.NumCPUs = numCpus; txtResults.Text += "CPU : " + numCpus + "\r\n"; // // Set amount of RAM // long memoryMb = new long(); memoryMb = (long)(Convert.ToInt16(cboRam.SelectedValue) * 1024); mySpec.Config.MemoryMB = memoryMb; txtResults.Text += "Ram : " + memoryMb + "\r\n"; // // Only handle the first network card // mySpec.Customization.NicSettingMap = new CustomizationAdapterMapping[1]; mySpec.Customization.NicSettingMap[0] = new CustomizationAdapterMapping(); // // Read in the DNS from web.config and assign // string[] ipDns = new string[1]; ipDns[0] = txtDnsServer.Text; mySpec.Customization.GlobalIPSettings = new CustomizationGlobalIPSettings(); mySpec.Customization.GlobalIPSettings.DnsServerList = ipDns; txtResults.Text += "DNS : " + ipDns[0] + "\r\n"; // // Create a new networkDevice // VirtualDevice networkDevice = new VirtualDevice(); foreach (VirtualDevice vDevice in itmVirtualMachine.Config.Hardware.Device) { // // get nic on vm // if (vDevice.DeviceInfo.Label.Contains("Network")) { networkDevice = vDevice; } } // // Create a DeviceSpec // VirtualDeviceConfigSpec[] devSpec = new VirtualDeviceConfigSpec[0]; mySpec.Config.DeviceChange = new VirtualDeviceConfigSpec[1]; mySpec.Config.DeviceChange[0] = new VirtualDeviceConfigSpec(); mySpec.Config.DeviceChange[0].Operation = VirtualDeviceConfigSpecOperation.edit; mySpec.Config.DeviceChange[0].Device = networkDevice; // // Define network settings for the new vm // // // Assign IP Address // CustomizationFixedIp ipAddress = new CustomizationFixedIp(); ipAddress.IpAddress = txtIpAddress.Text; mySpec.Customization.NicSettingMap[0].Adapter = new CustomizationIPSettings(); txtResults.Text += "IP : " + txtIpAddress.Text + "\r\n"; // // Assign subnet mask // mySpec.Customization.NicSettingMap[0].Adapter.Ip = ipAddress; mySpec.Customization.NicSettingMap[0].Adapter.SubnetMask = txtSubnet.Text; txtResults.Text += "Subnet : " + txtSubnet.Text + "\r\n"; // // Assign default gateway // string[] ipGateway = new string[1]; ipGateway[0] = txtGateway.Text; mySpec.Customization.NicSettingMap[0].Adapter.Gateway = ipGateway; txtResults.Text += "Gateway : " + txtGateway.Text + "\r\n"; // // Create network backing information // VirtualEthernetCardDistributedVirtualPortBackingInfo nicBack = new VirtualEthernetCardDistributedVirtualPortBackingInfo(); nicBack.Port = new DistributedVirtualSwitchPortConnection(); // // Connect to the virtual switch // VmwareDistributedVirtualSwitch dvSwitch = GetDvSwitch(vimClient, itmDvPortGroup.Config.DistributedVirtualSwitch); // // Assign the proper switch port // nicBack.Port.SwitchUuid = dvSwitch.Uuid; // // Connect the network card to proper port group // nicBack.Port.PortgroupKey = itmDvPortGroup.MoRef.Value; mySpec.Config.DeviceChange[0].Device.Backing = nicBack; // // Enable the network card at bootup // mySpec.Config.DeviceChange[0].Device.Connectable = new VirtualDeviceConnectInfo(); mySpec.Config.DeviceChange[0].Device.Connectable.StartConnected = true; mySpec.Config.DeviceChange[0].Device.Connectable.AllowGuestControl = true; mySpec.Config.DeviceChange[0].Device.Connectable.Connected = true; // // Get the vmfolder from the datacenter // // // Perform the clone // ManagedObjectReference taskMoRef = itmVirtualMachine.CloneVM_Task(itmDatacenter.VmFolder, txtTargetVm.Text, mySpec); Task cloneVmTask = new Task(vimClient, taskMoRef); // // The following will make the browser appear to hang, I need to hide this panel, and show a working panel // ManagedObjectReference clonedMorRef = (ManagedObjectReference)vimClient.WaitForTask(cloneVmTask.MoRef); // // Connect to the VM in order to set the custom fields // List<VirtualMachine> clonedVMs = GetVirtualMachines(vimClient, null, txtTargetVm.Text); VirtualMachine clonedVM = clonedVMs[0]; NameValueCollection vmFilter = new NameValueCollection(); vmFilter.Add("name",txtTargetVm.Text); EntityViewBase vmViewBase = vimClient.FindEntityView(typeof(VirtualMachine),null,vmFilter,null); ManagedEntity vmEntity = new ManagedEntity(vimClient, clonedVM.MoRef); CustomFieldsManager fieldManager = new CustomFieldsManager(vimClient, clonedVM.MoRef); // // One or more custom field names could be stored in the web.config and processed in some fashion // foreach (CustomFieldDef thisField in clonedVM.AvailableField) { if (thisField.Name.Equals("CreatedBy")) { fieldManager.SetField(clonedVM.MoRef, 1, txtUsername.Text); } } vimClient.Disconnect(); // // Hide the vm controls and show the result box // Vm_Panel.Visible = false; Results_Panel.Visible = true; }