Add insecure option to [rabbitmq] section of murano.conf
This is a partial fix because it improves Engine <-> RMQ
communications but the same problem exist on
Agent <-> RMQ side
Partial-Bug: #1578421
Change-Id: I55207c3016da12be45918a7dc33795abf69627b4
During cloud-init related improvements murano-agent location was
specified for the pip-style installation. This leads to unability
to deploy the apps on the images with pre-installed murano-agent
without network. This commit create a symlink to the pre-installed agent
in place where pip usually installs packages.
Change-Id: I8d90d33dc0a1c36ac4524f8f3b82223c23829126
Closes-Bug: #1570962
This fix expands LinuxMuranoInstance 'releaseResources' method.
Previously, some HeatSoftwareConfig-related resources remained in
the stack after the instance had been removed from the environment.
Change-Id: I2a3eae6bb31a5946463d3da3dfcc74328f61d3da
Closes-Bug: 1541050
Linux.runCommand method used to pass script
in a command line argument and evaluated it using
"eval". This approach failed when the script contained
input redirection.
With this fix script is passed as a file which is specified
as an entry point in execution plan.
Also we supported explicit files in execution plan but not
for the script entry point. This was fixed as well.
Change-Id: Ifd15fc57b08e33ed61cd2765613cd705ce12a5f2
Closes-Bug: #1562954
This patch deletes 'package_upgrade: true' option from cloud-init confs.
It caused upgrading of all the packages in the images spawned by murano.
This made spawning VMs slow and in certain cases caused
dpkg locks be still in place when murano-agent attempted to
install packages
Change-Id: I440d2985f9122dad53c81b15148e60df4e7e9583
Closes-Bug: 1548857
The Environment class got two additional properties:
region - name of the region where environment should be deployed. If
null then home region is used.
regionConfigs - config property (taken from class config) that specifies
region parameters. It is a dictionary of a form regionName -> regionSettings.
Currently the only setting available is a agentRabbitMq that is itself
a dictionary containing the same options as [rabbitmq] section of murano.conf
Thus the configuration file io.murano.Environment.yaml may look like:
regionConfigs:
RegionOne:
agentRabbitMq:
host: rabbitMqHostName
port: 5672
login: murano
password: murano
virtual_host: /
ssl: false
ca_certs: null
Implements Blueprint: assign-environment-to-region
Change-Id: I3c84c96f8eeae738f83ed7b3691be38100b30e1d
When protocol is ICMP in security group, port_range_min and
port_range_max are used to indicate type and code for ICMP. The
default port setting in core library generates ICMP rule with
incorrect setting 'icmptype 0 code 0', which make user cannot ping
instance created by Murano environment. So removed them.
Change-Id: I93b5073db2ece804e3eccdde8432216d4fb12301
Closes-Bug: #1512710
Because the're going to be many different types of classes
(like meta-classes) it is reasonable to distinguish murano_class
from a "type", that can refer to any type of class (type)
Change-Id: I05993eb7a37627aaeacbc6c828250791e145d706
Both properties and methods can be marked as Usage: Static
Statics can be accessed using ns:Class.property / ns:Class.method(),
:Class.property / :Class.method() to access class from current namespace
or type('full.name').property / type('full.name').method() to use full type name.
In static method $ / $this are referencing current class rather than object.
Static properties are not loaded from object model.
Also methods of io.murano.configuration.Linux class are now static.
Since static methods can be called on the instance it doesn't break
backward compatibility.
Implements blueprint: muranopl-statics
Change-Id: Ic7c6beed9222f4bca118877a60fdabfdd9d65e5a
Currently we are using a lot of features from yaql 1.0.0
in core-library, but we still have old version of format.
Increasing of it to 1.1 demonstrates that library package
can be used only with Liberty+ versions of Murano
Change-Id: Ic0d0175e857d29d862a80663f6518e108343142d
The construction on lines 141-142 already does the same things.
Extra expression didn't cause to error but it can be deleted
Change-Id: Id52abe422520c7bd0781b53b48d36bca333101db
This patch changes the method of getting dns address.
Previously dns could be an empty list, if user didn't configured
'default_dns' settings in murano.conf. Now it is taken from already
created subnet.
Change-Id: I5c6a831738e8d971a12bd81eff42aebc869c9a2e
Related-Bug: #1536651
The yaml file allows for installing murano-agent and chef
and puppet by cloud-init
Change-Id: Ia16270d67eeff50d41d8f879e7b4ad0a1037d4b1
Targets-blueprint: conf-lang-instance
Previously there was no way to specify in which direction security rule
should be applied, only ingress was supported. Also it was impossible
to create IPv6 rules.
This patch added ability to specify direction and ethertype for
Neutron security groups and direction - for AWS security groups
Change-Id: Iba5be7a8a94c34eab3e0e06f95e5358a84a5dd7b
Closes-Bug: #1532317
Adding a murano-init script to install murano-agent by cloud init
in the LinuxMuranoInstance.
Change-Id: I080fe14a61b9af468ba1ae2e26dd85196a563449
Targets-blueprint: cloud-init-deployable-agent
This change adds core library classes necessary to work with
cinder volumes:
Volume is the base class for cinder volume implementations.
It defines the interface for volumes. The most important methods of it
are "deploy" to deploy the volume and "attachTo" that returns a HOT
snippet to attach the volume to Instance
CinderVolume represents a new volume.
The class wraps OS::Cinder::Volume Heat resource.
ExistingCinderVolume is a Volume implementation for volumes
created outside of Murano.
CinderVolumeBackup and CinderVolumeSnapshot are
adapter classes to wrap around Cinder backups and snapshots
using their ID.
In addition new property "volumes" was added to the Instance class.
It is a mapping of a mounting path to Volume implementations
that the Instance must be attached to. Because the mapping
can be empty (or omitted) new property doesn't break backward
compatibility.
This commit doesn't has boot from volume functionality that need to be
designed separately.
Implements blueprint: cinder-volumes-support
Change-Id: I8ff7f8e4b48e7fb8112271a642cac703db0963aa
It is possible that there are several public networks exist.
ExistingNeutronNetwork used to pick first one of them.
Now when internal network name or ID supplied it tries
to find such public network that the internal network has
a common router with.
Change-Id: I252bb5545891903355cf7f8480a2cd76febcfebe
Closes-Bug: #1524322
Provides ability to get following information about network
* network name
* network id
* CIDR Range
* gateway IP
implements bp modify-describe-method
Change-Id: Iff59f5c828e2ede42dd0f35eb68046679cf838d3
Added `eval` command to execution plan, which allows
to correctly execute user input
Change-Id: Ie0469a7a464b246dc76acf6259b12eeb9a126563
Closes-Bug: #1523915
When Instance with FIP was destroyed and deployed again
it lost its floating IP because after destroy it was still marked
as occupied
Change-Id: I257883c9334d52fba6b62edccdd6e7a9b957222b
Closes-Bug: #1509066
Because now Environment's .destroy method would
be called before that of an Instance the later will try
to delete itself from the stack that is physically not
existing and represented as an empty dictionary in
HeatStack.current().
With this change Instance will check stack existence
before deleting anything.
Also a method to check if Instance is present in Heat
stack template was added so that application could check
if it is safe to use the instance (for example to send Agent plans)
Change-Id: I298f3f079a153ef87ed7213b7f1432c9e5e4b4b6
Closes-Bug: #1503715
This patch adds to 'putFile' and 'runCommand' methods ability to return
full structure containing stdout, stderr and exitcode instead of
returning just exitCode, which worked incorrectly.
New optional parameter 'options' was added to allow specifing custom
options execution plans.
Change-Id: Icb2b9c5cc72a4555ccee85c471547041be86e2fc
Closes-Bug: #1504211
Currently when application get deleted its servers are also get deleted,
but all underlying allocated OpenStack resources remain so.
This commit makes the following to happen upon deletion:
* Exclude OS::Nova::Server resource from the stack
* Exclude all FloatingIP and related resources allocated for the server
* Exclude Neutron ports allocated to the server
* Exclude all Heat Software Configs (in case of HeatSWConfigInstance)
created by the app
* Exclude all HOT template outputs related to deleted resources
Also:
* Instance class gets releaseResources method that can be used by apps to explicitly
destroy the server. It can be recreated later again using deploy method
* The order in which .destroy() methods get called was changed so that the owner's
destructor be called before that of the owned object. For example application
destructor will be executed prior to its Instance destructor. This allows application
to delete all references to the server that is going to be destroyed. Thus Heat template
remains consistent.
Change-Id: I42d9adf827688232d89b7f01ee1176e3151c65a1
Closes-Bug: #1499563
This is a first commit os new murano testing framework.
This commit adds base io.murano.test.testFixture class.
All test classes are suppossed to be inherited from that class.
Test runner accepts only such kind of classes.
Also test cases should start with the 'test' prefix.
setUp method executes before each test case and tearDown - after.
To run tests, authorization params should be provided or murano config file.
Test runner params have a higher priority than the corresponding
params in config.
Package to test is a required parameter.
It's also allowed to specify class to execute tests in or
to specify test case name.
New murano-test-runner was added.
To run all tests from package, execute the following command:
murano-test-runner -p io.murano.test.MyTest1 -l /package/location/directory
Targets blueprint simulated-execution-mode-murano-engine
Change-Id: I6b9a94ab1a3942fec3ebb84a69dd548c134139df
Murano engine can not convert unicode file to an ascii string.
Without BOM symbol file can be read as an ascii text file
It is rather temporary fix than a comprehensive solution
Change-Id: Ifec342bfa223c255f5c532560bcb247cf21757ad
Partial-Bug: #1490468
Add new API calls that will provide logging and can be
consumed by MuranoPL workflows. It will improve debuggability.
Application author can use logs to improve application quality.
Implements: blueprint logging-api-for-muranopl
Change-Id: I747cf7f5fca20960f2304605e1c7241f465f5dc1
This patch adds to Murano core-library new
functionality allowing to simplify the process of software
configuration.
Implements bp: simple-software-configuration
Change-Id: I80f2c15f2d45398df2a519b54a50c2ba8c3a8be2
In Openstack releases prior to Kilo Heat recreates all the Neutron Ports
during the stack update regardless of the port resource being actually
updated or not. This is done intentionally to workaround the bug in nova
(https://bugs.launchpad.net/nova/+bug/1158684)
However, this approach may cause issues when the stack is updated after
the instance and the port are created (which happens during many Murano
env deployments). To control port re-creation logic Heat allows to
explicitly specify the replacement_policy property for OS::Neutron::Port
resource: if set to AUTO it forbids Heat to recreate the port if it was
not modified.
For regular instances and their ports we are already using this setting.
However, for the ports created for SharedIps this was not true, thus
causing issues on pre-kilo deployments. This patch fixes it.
On deployments using Kilo+ Heat this patch has no effect, as the default
value of replacenent_policy is already AUTO in this releases.
Change-Id: Ib87961a4f2285bf622df50828ecd2ad98365a910
Closes-Bug: #1488105
The SharedIp class was using name property of Network class
which have been removed in favor of describe() method, which should be
used in SharedIp now.
This has been addressed.
Change-Id: Ia1fed204ceca57b31e4a96e1ba222441ab9db0b3
Closes-Bug: #1487013