# Openstack commands

#####  

##### Nova:

- **List of instances**

```shell
openstack server list
nova list
```

- **Details on a specific instance**

```shell
openstack server show <server id>
nova show <server id>
```

- **Rebuild an instance**

```shell
openstack server rebuild --image <image-id> <server-id>
nova rebuild <server-id> <image-id>
```

- **Rebuild an instance with metadata**

```shell
openstack server set --property <meta> <server-id>
nova meta <server-id> set <meta>
nova rebuild --meta <meta> <server-id> <image-id>
```

- **Attach a port to an instance**

```shell
nova interface-attach --port-id <port id> <instance id>
```

- **Create a instance from a availability zone**

```shell
nova boot --availability-zone nova:metal01:<ironic-id> --flavor <flavor-id> --image <img-id> --nic net-id=<network id>,v4-fixed-ip=<ip-address> <name>
openstack server create --availability-zone nova:metal01:<ironic-id> --flavor <flavor-id> --image <img-id> --nic net-id=<network id>,v4-fixed-ip=<ip-address> <name>
```

- **Create a instance with meta property, sec group, fixed ip, ssh-key**

```
openstack server create --image <image id> --flavor <flavor id> --nic net-id=<network id>,v4-fixed-ip=<ip-address> --property <meta-data> --security-group <security group id> --key-name <keypair name> vmname
```

- **Create a instance**

```shell
openstack server create --image <image id> --flavor <flavor id> vmname
```

- **Remove error state from instance**

```shell
nova reset-state --active <server-id>
```

- **Change the flavour (resize)**

```shell
openstack server resize --flavor <flavor> <ID>
```

##### Neutron:

- **List of subnets and network ID**

```shell
openstack network list
neutron net-list
```

- **List of subnets, their IDs and allocation pools:**

```shell
openstack subnet list
neutron subnet-list
```

- <span style="color: #808080;">**List ports**</span>

```shell
openstack port list
neutron port-list
```

- <span style="color: #808080;">**Create port**</span>

```shell
openstack port create --network <network id> --fixed-ip subnet=<subnet id>,ip-address=<ip-address>
neutron port-create --fixed-ip subnet_id=<subnet id>,ip_address=<X.X.X.X> <network id> <name>
```

- <span style="color: #808080;">**Update or Set/Unset port**</span>

```shell
neutron port-update --fixed-ip subnet_id=<subnet id>,ip_address=<ip-address> --fixed-ip subnet_id=<subnet id>,ip_address=<X.X.X.X> <port id>
openstack port set --fixed-ip subnet=<subnet>,ip-address=<ip-address> <port id>
openstack port unset --fixed-ip subnet=<subnet>,ip-address=<ip-address> <port id>
```


- <span style="color: #808080;">**Get details on a port**</span>

```shell
openstack port show <port id>
neutron port-show <port id>
```

- Allowed address pairs - (Allows one port to add additional IP/MAC address pairs on that port to allow traffic that matches those specified values.)

```
neutron port-update <port-uuid> --allowed-address-pairs type=dict list=true ip_address='0.0.0.0/0'
```

##### <span style="color: #000000;">Glance:</span>

- <span style="color: #808080;">**List images**</span>

```shell
openstack image list
glance image-list
```

- <span style="color: #808080;">**Get details on an image**</span>

```shell
glance image-show <image id>
```

- **Upload a image**

```shell
openstack image create --disk-format qcow2 --container-format bare --public --file ./centos7.qcow2 centos7-image
```

- **Delete**

```shell
openstack image delete <ID>
```

- **Download a image**

```shell
glance image-download <img-id> --file img.qcow2
```

- **Change state**

```shell
cinder reset-state --state in-use <id>
```

##### Other:

- **List flavors**

```shell
openstack flavor list
```

- **List keypairs**

```shell
openstack keypair list
```

- **List Security groups**

```shell
openstack security group list
```

##### **Cinder**

```
openstack volume set --state error <id>
```

**Stop a migraion**

**Remove the active volume from the migration state**

```
cinder reset-state <id> --reset-migration-status
```

**find the volume in the attaching state and remove it**

```
openstack volume list
```

```
cinder reset-state <id> --state error 
```

```
cinder reset-state <id> --reset-migration-status
```

```
openstack volume delete <id>
```