<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>

<!-- Licensed to the Apache Software Foundation (ASF) under one
	or more contributor license agreements.  See the NOTICE file
	distributed with this work for additional information
	regarding copyright ownership.  The ASF licenses this file
	to you under the Apache License, Version 2.0 (the
	"License"); you may not use this file except in compliance
	with the License.  You may obtain a copy of the License at
	
	http://www.apache.org/licenses/LICENSE-2.0
	
	Unless required by applicable law or agreed to in writing,
	software distributed under the License is distributed on an
	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
	KIND, either express or implied.  See the License for the
	specific language governing permissions and limitations
	under the License.
-->
<section id="changing-vm-name-os-group">
	<title>Changing the VM Name, OS, or Group</title>
	<para>After a VM is created, you can modify the display name, operating system, and the group it belongs to.</para>
	<para>To access a VM through the &PRODUCT; UI:</para>
		<orderedlist>
			<listitem><para>Log in to the &PRODUCT; UI as a user or admin.</para></listitem>
			<listitem><para>In the left navigation, click Instances.</para></listitem>
			<listitem><para>Select the VM that you want to modify.</para></listitem>
			<listitem><para>Click the Stop button to stop the VM. <inlinemediaobject>
					<imageobject>
						<imagedata fileref="./images/stop-instance-icon.png"/>
					</imageobject>
					<textobject>
						<phrase>StopButton.png: button to stop a VM</phrase>
					</textobject>
				</inlinemediaobject>
			</para></listitem>
			<listitem><para>Click Edit. <inlinemediaobject>
					<imageobject>
						<imagedata fileref="./images/edit-icon.png"/>
					</imageobject>
					<textobject>
						<phrase>EditButton.png: button to edit the properties of a VM</phrase>
					</textobject>
				</inlinemediaobject></para></listitem>
			<listitem><para>Make the desired changes to the following:</para></listitem>
			
				<listitem><para><emphasis role="bold">Display name</emphasis>: Enter a new display name if you want to change
				the name of the VM.</para></listitem>
				<listitem><para><emphasis role="bold">OS Type</emphasis>: Select the desired operating system.</para></listitem>
				<listitem><para><emphasis role="bold">Group</emphasis>: Enter the group name for the VM.</para></listitem>	
			
			<listitem><para>Click Apply.</para></listitem>
		</orderedlist>
	</section>

