google clouddatastore adams.py demo not working in GCE instance - google-compute-engine

when running demo from google-cloud-datastore-1beta2-rev1-2.1.1/
adams.py <project-id>
ERROR:root:Error while doing datastore operation
ERROR:root:RPCError: beginTransaction Unauthorized.
ERROR:root:HTTPError: 403 Forbidden
I ensured the GCE instance has service account enabled (permissions below)
Cloud datastore API is enable in cloud console for the project
google cloud datastore is correctly installed in the GCE
As I am inside a GCE instance I dont need the private key file
Permissions
User info Enabled
Compute Read Write
Storage Full
Task queue Enabled
BigQuery Enabled
Cloud SQL Enabled
What am I missing? Please help

Adding an answer so it's easier for others to find:
Make sure that your GCE instance is running with the datastore scope enabled.
Run the command gcutil getinstance <my-instance>. You should get something like this:
+-----------------+-------------------------------------------------------------+
| name | <my-instance> |
| .... | |
| service-account | |
| scopes | [u'https://www.googleapis.com/auth/datastore', |
| | u'https://www.googleapis.com/auth/userinfo.email'] |
+-----------------+-------------------------------------------------------------+
Importantly, make sure that you see the datastore scope in the list.
When you create your instance, make sure to enable the correct scope:
gcutil --project <PROJECT_ID> addinstance <INSTANCE_NAME> --service_account_scopes=\
https://www.googleapis.com/auth/userinfo.email,\
https://www.googleapis.com/auth/datastore

Related

Azure DevOps SSRS Server Report Deployment

I've seen lots of questions about deploying SSRS reports via an Azure Pipeline, but I haven't found one that seems to address this.
When connecting to an SSRS instance via a Powershell task running the code
New-RsWebServiceProxy
We get Failed to establish proxy connection to Server Address : The term 'New-WebServiceProxy' is not recognized as a name of a cmdlet, function, script file, or executable program.
This is after registering ReportingServicesTools from the gallery
- task: PowerShell#2
inputs:
targetType: 'inline'
script: |
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
Install-Module -Name ReportingServicesTools
Import-Module ReportingServicesTools -UseWindowsPowerShell
PowerShell Version on the Agent;
| Name | Value |
|---------------------|------------------|
|PSVersion | 7.2.8|
|PSEdition | Core|
|GitCommitId | 7.2.8|
|OS | Linux 5.15.0-1030-azure #37-Ubuntu SMP Mon Dec …|
|Platform | Unix|
|PSCompatibleVersions | {1.0, 2.0, 3.0, 4.0…}|
|PSRemotingProtocolVersion | 2.3|
|SerializationVersion | 1.1.0.1|
|WSManStackVersion | 3.0|
The Repository seems to suggest that it won't be supported going foward.
https://github.com/microsoft/ReportingServicesTools/issues/239#issuecomment-595115438
Anyone know how to fix this?
Thanks,
Dan

How to fix network issues with LXD on Fedora 31?

Has anyone had success using LXD on Fedora 31? I have been using it on another machine with Fedora 30 just fine, but after installing Fedora 31 on a new laptop, the containers don't get an IPv4 address:
$ lxc list
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
+-------+---------+------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-------+---------+------+------+------------+-----------+
| c1 | RUNNING | | | PERSISTENT | 0 |
+-------+---------+------+------+------------+-----------+
Attempting something like ping inside the container gives the error:
connect: Network is unreachable
Nothing works that needs the network, but otherwise the containers seem fine and the network is fine on the host laptop.
The one notable difference I see is the warning on Fedora 31:
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
The version of LXD is 3.18 on both machines (installed using snap), and I've compared with both environments but couldn't see any glaring differences that would point to a problem other the cgroup warning.
This is what the network bridge looks like:
$ lxc network show lxdbr0
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
config:
ipv4.address: 10.192.103.1/24
ipv4.nat: "true"
ipv6.address: none
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/containers/c1
managed: true
status: Created
locations:
- none
Any ideas on where to start looking?
According to the official documentation:
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
I found the fix to the problem. Turns out that cgroup v2 warning was more than just a warning. If cgroup v2 is disabled, it works as expected.
To disable cgroup v2, add the following to the linux boot line:
systemd.unified_cgroup_hierarchy=0
There may be other ways to fix it, but this works for now.

Fiware cloud new instances, statuses and connection

How to create FiWare instance and connect it to internet?
I like the idea and I have big plans on using this infrastructure, but...
I've trying to create instance and make ssh connection to it for some time now.
Created key-pair
Created security group (22,3306,1)
Created instance ubuntu 14 (also tried others)
Also tried ubuntu 12, POI and others already
Added node-int-net-01 and node-int-noinet-net-02 to it when creating
Also tried already with 1 network only
Allocated floating IP
Associated it with the local IP that came from "node-int-net-01"
Statuses:
Instance: ACTIVE, Power State RUNNING
"node-int-net-01" networks in list: shared-subnet 192.168.192.0/18 Yes ACTIVE UP
Inside "node-int-net-01":
Network: Admin State: DOWN, Shared: No, External Network: No
Subnet: DHCP and all ok
Ports: Status: BUILD, Admin State: UP
The confusing parts are (for clue, don't have to answer those if we have solution):
How can network be EXTERNAL-SHARED-ACTIVE-UP and DOWN-NOT_SHARED-NO_EXTERNAL at the same time - perhaps there's an error
What means Port status: BUILD, i mean it must have been building the port like 3 days already. Should i build there something, is it an order or status? Perhaps it means BUILT or BUILDING instead.
What means instance ACTIVE? Is it still active (busy) and i should wait? Or it can be actively used already? From VM Display I never saw it going to unix prompt>, is it kind of fiware itself using this telnet instance? I rather saw things like
"request error",
"connection timeout",
"socket.error",
"Error 101 Network is unreachable".
"cloud-init-nonet [13:31]: waiting 120 seconds for network device"
numerous black-screens and never ending Booting from hard-disk
from Instance log saw endless: "Waiting for network configuration", but that one was cured
Thou i saw "localhost login prompt, but as i only created PEM, then
cant imagine what to do with it - where do i get root/pwd? But i guess it was some error that it ended up there.
The latest status from Instance\Log is:
cloud-init-nonet[4.52]: static networking is now up
* Starting configure network device[74G[ OK ]
* Starting Mount network filesystems[74G[ OK ]
* Stopping Mount network filesystems[74G[ OK ]
* Stopping cold plug devices[74G[ OK ]
* Stopping log initial device creation[74G[ OK ]
* Starting enable remaining boot-time encrypted block devices[74G[ OK ]
Cloud-init v. 0.7.5 running 'init' at Sat, 16 Apr 2016 01:23:11 +0000. Up 5.07 seconds.
ci-info: ++++++++++++++++++++++++++++Net device info++++++++++++++++++++++++++++
ci-info: +--------+------+-----------------+---------------+-------------------+
ci-info: | Device | Up | Address | Mask | Hw-Address |
ci-info: +--------+------+-----------------+---------------+-------------------+
ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . |
ci-info: | eth0 | True | 192.168.242.127 | 255.255.192.0 | fa:16:3e:7a:47:94 |
ci-info: +--------+------+-----------------+---------------+-------------------+
ci-info: +++++++++++++++++++++++++++++++++Route info++++++++++++++++++++++++++++++++++
ci-info: +-------+---------------+---------------+---------------+-----------+-------+
ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags |
ci-info: +-------+---------------+---------------+---------------+-----------+-------+
ci-info: | 0 | 0.0.0.0 | 192.168.192.1 | 0.0.0.0 | eth0 | UG |
ci-info: | 1 | 192.168.192.0 | 0.0.0.0 | 255.255.192.0 | eth0 | U |
ci-info: +-------+---------------+---------------+---------------+-----------+-------+
For a ping and ssh i get: "Destination Host Unreachable" and "No route to host"
Also tried allocating floating IP with "federation" pool, but with that IP i just got time-outs for ping and ssh
I read already:
wiki
fiware help
stackoverflow
Followed also the steps in this slideshow http://www.slideshare.net/fermingalan/developing-your-first-application-using-fi-ware-20130903
http://cosmos.lab.fi-ware.org/cosmos-gui/ seems to be down
EDIT: can use this one (need to use https and accept bad cert)
http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/FIWARE.OpenSpecification.Data.BigData_R4#Basic_concepts
http://catalogue.fiware.org/enablers/bigdata-analysis-cosmos/documentation - no info about it neither.
Any ideas? Perhaps there is an UI (other than the web page at https://cloud.lab.fiware.org/ that seems to be in early beta) for using FiWare (that can do all the "anyway-mandatory" steps for users (developers)?
Maybe the problem is that I'm a software developer not network administrator, and perhaps this interface is meant for linux network andministrators.
The message "Error 101 Network is unreachable" shows that there was a problem in the VM network. node-int-net-01 is the shared network to be joined with the public network, while node-int-noinet-net-02 is to be joined with a network to use VPN. You shouldn't use both networks in the same VM, just you should use node-int-net-01.
The code messages like BUILD, ACTIVE and so on, are codes belonging to Openstack.
Regarding ping, you should open the icmp port in the security port to allow it.
Anyway, if you continue having problems, you can send a mail to FIWARE Lab support fiware-lab-help#lists.fiware.org, indicating your concrete data.

Compute Engine accessing DataStore get Invalid Credentials (code: 401)

I am following the tutorial on
https://cloud.google.com/datastore/docs/getstarted/start_nodejs/
trying to use datastore from my Compute Engine project.
Step 2 in the tutorial mentioned I do not have to create new service account credentials when running from Compute Engine.
I run the sample with:
node test.js abc-test-123
where abc-test-123 is my Project Id and that project have enabled all cloud API access including DataStore API.
After uploaded the code and executed the sample, I got the following error:
Adams: { 'rpc error': { [Error: Invalid Credentials] code: 401,
errors: [ [Object] ] } }
Update:
I did a workaround by changing the default sample code to use the JWT credential way (with a generated .json key file) and things are working now.
Update 2:
This is the scope config when I run
gcloud compute instances describe abc-test-123
And the result:
serviceAccounts:
scopes:
- https://www.googleapis.com/auth/cloud-platform
According to the doc:
You can set scopes only when you create a new instance, and cannot
change or expand the list of scopes for existing instances. For
simplicity, you can choose to enable full access to all Google Cloud
Platform APIs with the https://www.googleapis.com/auth/cloud-platform
scope.
I still welcome any answer about why the original code not work in my case~
Thanks for reading
This most likely means that when you created the instance, you didn't specify the right scopes (datastore and userinfo-email according to the tutorial). You can check that by executing the following command:
gcloud compute instances describe <instance>
Look for serviceAccounts/scopes in the output.
There are 2 way to create an instance with right credential:
gcloud compute instances create $INSTANCE_NAME --scopes datastore,userinfo-email
Using web: on Access & Setting Enable User Info & Datastore

How to show file names in File Transfer?

PHPStorm has a nice File Transfer log:
[24.07.2014 12:36] Upload to server.net
[24.07.2014 12:36] Upload to server.net completed in less than a minute:
1 file transferred (36,4 Kb/s)
Anyway I could make it show the name of the file it transferred?
Settings/Preferences on Mac | Build, Execution, Deployment | Deployment | Options
Change Operations logging level to a more detailed one (Details).
Select File | Settings for Windows or select File | Default Settings for set option for all projects.