public endpoint for load-balancer service not found - openstack

I have an issue to list loadbalancers on open stack using cli
from#ge ~
$ openstack loadbalancer list
public endpoint for load-balancer service not found
from#ge ~
$ export | grep OS_
declare -x OS_AUTH_TYPE="password"
declare -x OS_AUTH_URL="http://192.168.20.33:5000/v3"
declare -x OS_IDENTITY_API_VERSION="3"
declare -x OS_PASSWORD="XXXXXX"
declare -x OS_PROJECT_NAME="project-name"
declare -x OS_TENANT_NAME="tenant-name"
declare -x OS_USERNAME="from"
declare -x OS_USER_DOMAIN_ID="default"
from#ge ~
$ echo "endpoint list" | openstack
You are not authorized to perform the requested action: identity:list_endpoints. (HTTP 403) (Request-ID: req-aec8b22e-d3ad-4116-b7bb-52545f641667)
I've tried to set OS_REGION_NAME to RegionOne, but I get the same result
Any tip ?

load-balancer service not found
It seems that the load balance service not work, have you deployment Octavia service successful?
identity:list_endpoints. (HTTP 403)
According to the official document, it's Forbidden about the authorization.
The identity was successfully authenticated but it is not authorized to perform the requested action.
Maybe there is a miss-configuration of the admin's roles in keystone, you should check it in database first.

Ok thanks for your answers.
I finally managed to play with load balancers using neutron cli:
$ neutron
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
(neutron) lbaas-loadbalancer-list
+--------------------------------------+------------------------+----------------+---------------------+----------+
| id | name | vip_address | provisioning_status | provider |
+--------------------------------------+------------------------+----------------+---------------------+----------+
| 00f3453d-8738-4eb6-b362-aefc8dfaeea6 | lb1 | 192.168.36.93 | ACTIVE | haproxy |
| 090e062d-d6cc-4ebe-bcbf-165d5c21051d | lb2 | 192.168.36.169 | ACTIVE | haproxy |
| 0c244567-8f49-4be0-9055-17fa903d4619 | lb3 | 192.168.36.43 | ACTIVE | haproxy |

Related

Openstack Keystone Install Issues

When trying to create Keystone:
openstack domain create --description "An Example Domain" example
I get this return error below:
Could not clean up: 'ClientManager' object has no attribute
'sdk_connection'
I am not sure what this is in reference to...
following the Doc here https://docs.openstack.org//keystone/wallaby/doc-keystone.pdf
This means that you aren't authenticated.
stack#ubuntu:~/devstack$ openstack domain create --description "An Example Domain" example
Missing value auth-url required for auth plugin password
Could not clean up: 'ClientManager' object has no attribute 'sdk_connection'
If you are using devstack you can just source userrc_early inside the devstack folder.
stack#ubuntu:~/devstack$ source userrc_early
stack#ubuntu:~/devstack$ openstack domain create --description "An Example Domain" example
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | An Example Domain |
| enabled | True |
| id | 1ddc2084930d492dbe39680cda5ef660 |
| name | example |
| options | {} |
| tags | [] |
+-------------+----------------------------------+

More than one endpoint exists with the name 'nova'

the command do not work, when I want to show the nova's endpoints:
openstack endpoint show nova
it will report error:
More than one endpoint exists with the name 'nova'.
When you check your endpoints, you will likely find that they reside in an Interface environment.
% openstack endpoint list -c ID -c "Service Name" -c Interface --service nova
+----------------------------------+--------------+-----------+
| ID | Service Name | Interface |
+----------------------------------+--------------+-----------+
| 2d45aed973da34f7d28b8c9e410bba5e | nova | public |
| 7de83faa23d4ee5b39a8b7de45b8ee15 | nova | internal |
| ab8374d8b8f233fe11cda487bfe98ad7 | nova | admin |
+----------------------------------+--------------+-----------+
Similarily, you can filter only endpoints in a specific interface
% openstack endpoint list --interface public
For your command then use the ID instead of the name of the Service Name, e.g. this would give me the admin nova API:
openstack endpoint show ab8374d8b8f233fe11cda487bfe98ad7
You should use:
openstack endpoint list --service nova
to show the endpoints.

How to restart ceilometer service

I changed pulling intervals in /etc/ceilometer/pipeline.yaml file from 600 to 60 and can't make the service to use new values. I restarted everything that relates to ceilometer in openstack-status command, but that did not work. Can somebody tell me the proper way how to do it?
I am using Openstack Liberty on Ubuntu 14.04 LTS
root#OS1:~# openstack service list
+----------------------------------+------------+---------------+
| ID | Name | Type |
+----------------------------------+------------+---------------+
| 056fcccaad5c4991a8a0da199ed1d737 | cinderv2 | volumev2 |
| 483a0cd1ba79430690a8960ae3d40222 | glance | image |
| 5c704fc9253e4c15895589eb19fab2ac | keystone | identity |
| 92bfcfb417314e80a43e6e7d4d21f99b | nova | compute |
| a7a3809d73674d3da3fbe8030b47055a | horizon | dashboard |
| c21b5e3c9d68417cb11df60d72f9bb58 | heat | orchestration |
| c7030edb082346328a715b00098b974a | neutron | network |
| d331f5360e2b4d3a854e7f47107a9421 | ec2 | ec2 |
| f0a22f827bed43dbbc43822abfc3e3e0 | ceilometer | metering |
+----------------------------------+------------+---------------+
root#OS11:~# openstack-status
.
.
.
== Ceilometer services ==
ceilometer-api: active
ceilometer-agent-central: active
ceilometer-agent-compute: inactive (disabled on boot)
ceilometer-collector: active
ceilometer-alarm-notifier: active
ceilometer-alarm-evaluator: active
ceilometer-agent-notification:active
.
.
.
Well, you need to restart ceilometer-agent-notification service because this service is responsible for transforming the data into samples in the ceilometer database.
Thus, systemctl restart ceilometer-agent-notification.service will help along with restarting other services.
Since ceilometer-agent-compute service is disabled, you just need to restart ceilometer-agent-central service on the node you have modified the config file.
sudo service ceilometer-agent-central restart
You might want to auto reload pipelines after you modify it, for that, you can set refresh_pipeline_cfg=True and a proper time for pipeline_polling_interval such as 120 seconds in /etc/ceilometer/ceilometer.conf.
Note, be careful when you enable auto reload, and only save pipeline config file after you are sure about the content is right (otherwise it might lose 1 polling period data)

How to run BrowserMob Proxy with RobotFramework and Capture HAR files

I have written this code in robotframework
${proxy}= | Evaluate | sys.modules['selenium.webdriver'].Proxy() sys, selenium.webdriver |
${proxy.http_proxy}= | Set Variable | 127.0.0.1:8080 |
Create Webdriver | Firefox proxy=${proxy} |
Go To | http://www.knowledgefarm.in/tst/a.html |
And I am running BrowserMob proxy from command line like this:
browsermob-proxy.bat --address 127.0.0.1 --port 8080
Now, when i run robotframework, it open the browser and simple give this message on page.
HTTP ERROR: 404
Problem accessing /tst/a.html. Reason:
Not Found
Powered by Jetty://
Two questions:
why my pages are not loaded. (it works if I remove proxy setting)
After the workaround, how do I specify to generate HAR file and how should I specify the location of HAR file
The above code does not actually start a proxy. To start a proxy, you need to run these commands.
Create | http context | localhost:8080 | http
Post | /proxy
${json} | Get Response Body
${port} | Get Json Value | ${json} | /port
${proxy}= | Evaluate | sys.modules['selenium.webdriver'].Proxy() | sys,selenium.webdriver
${proxy.http_proxy}= | Set Variable | 127.0.0.1:${port}
Create Webdriver | Firefox | proxy=${proxy}
Go To | ${LOGIN URL}
Set Request Body | pageRef=LOGIN&captureContent=false&captureHeaders=true
PUT | /proxy/${port}/har
${json} | HttpLibrary.HTTP.Get Response Body
OperatingSystem.Create File | D:\\myfile.har | ${json}

DevStack/OpenStack: How do I create a tenant?

Ubuntu Server 14.04. Installed the latest DevStack. At the end of the installation it gave me admin & demo user/passwords and an auth URL. My intention is to create a tenant and a user. Here is what I do.
$: cat env.sh
export OS_AUTH_URL=http://10.0.3.15:5000/v2.0
export OS_USERNAME=admin
export OS_PASSWORD=8adb0ddg3b6ef3dc78ac
$:
$: source env.sh
$:
$: keystone tenant-list
+----------------------------------+-------+---------+
| id | name | enabled |
+----------------------------------+-------+---------+
| 7920e943bd1742e198ea78f8453534d5 | admin | True |
| 435d9b5ce34f430ea50e4643d33230e7 | demo | True |
+----------------------------------+-------+---------+
$: keystone tenant-create --name=ten1
$: keystone tenant-list
+----------------------------------+-------+---------+
| id | name | enabled |
+----------------------------------+-------+---------+
| 7920e943bd1742e198ea78f8453534d5 | admin | True |
| 435d9b5ce34f430ea50e4643d33230e7 | demo | True |
+----------------------------------+-------+---------+
$:
Why does tenant-list display user list? Why doesn't tenant-create say anything?
Am I missing any basic concepts?
In DevStack, the starter user names match the project/tenant user names. You can create more users with different tenant names using the docs such as http://docs.openstack.org/icehouse/install-guide/install/apt/content/keystone-users.html.
I think what you're missing is linking a user to the tenant with:
$ keystone user-create --name=fred --pass=SOME_PASS --email=SOME_EMAIL
$ keystone user-role-add --user=fred --role=_member_ --tenant=ten1
When you execute stack.sh in devstack, it creates various tenants for you like admin,demo,service etc. Along with tenants, it creates users like admin,demo and service users.
With the pre-req data, once can try out admin operations and member operations.
if you wish you to have your own user and tenant , you can execute the below after sourcing openrc/env
//Create a tenant
keystone tenant-create --name <tenantName>
//Create a User in a tenant
keystone user-create --name <username> --pass <password> --tenant <tenantName>
//Assign a role for a user for a specific tenant
keystone user-role-add --user <username> --tenant <tenantName> --role <roleName>

Resources