Release Automation

  • 1.  Nolio Official KB:Nolio SDK resources

    Posted Nov 19, 2012 08:20 AM

    Nolio opens its gates for Developers

    It is clear that Continues Delivery has become much more than a buzz word, and that more and more companies design their development processes around this concept. Our product, Nolio ASAP, enables you to turn this concept into a full working reality with ease and simplicity. This, however refers to a topic of a different post. The topic of this post is the new Nolio API.

    From Version 4.0.0, Nolio offers a simple and convenient API so that your customized solution will actually be tailored to your needs. Now, in addition to the hundreds of actions that Nolio provides, you can create your own actions with an extremely simple and intuitive API, and then, in less than two minutes, install and integrate them within the Nolio Framework. How? This too will be discussed in a future post.

    The subject of this post concerns three features that automatically and - without any additional coding - apply to your action from the moment you install it in Nolio ASAP:

    Full integration in the Nolio Model: The actions you develop can be added to any process, and be installed in every environment, their parameters fully accessible and their execution fully reported and documented. The Nolio model - the strongest model supporting Continuous Delivery to date - will wrap your actions seamlessly.
    Complete Action Dependency Support: As with all Nolio actions you can include your actions in a Nolio process and define their pre and post conditions. You can specify which actions run before or after your custom action and which actions are executed when your action fails or succeeds. You can set dependency relations between different servers and different server types.

    Applicability of the Nolio User Permission Model: The Nolio innovative permission model introduced in version 3.3 enables you to run your action under any user, regardless of the user under which you installed the Nolio Agent. Just provide a username and password and Nolio will run your action under that username.
    Finally, I would like to stress two implications of the above features:

    First, that Nolio can answer your special needs even when your deployment tools are unique and customized specifically to the needs of your organization. By using an extremely simple code you can write your own fully customized actions and then integrate them in the powerful framework that Nolio provides.

    Second, you may wonder why you need Nolio when you still have to write your logic by yourself. I hope this post clarifies how your actions can benefit from being wrapped by the Nolio framework.

    The API for developers that we expose now in version 4.0.0 constitutes a significant improvement compared to past versions. We invested a considerable amount of resources and efforts in Nolio ASAP after carefully listening to the requests and feedback of our customers. We believe that the new Nolio API will enable you to achieve a deployment process that is both customized and tailored to your organization workflow and tools and still yet - fully automatic.

    How to develop your own actions?

    So how do you start creating your own actions? The simplest way is to use the Nolio Eclipse Plugin. Follow the steps below:
    1. Download Eclipse.
    2. Install the Nolio Eclipse Plugin.
    3. In Eclipse, create a new Java project.
    4. Open New->Nolio Action and fill the required fields.
    5. Verify that the Generate Example checkbox is selected.
    6. Save the form.

    That's it. You are now in an excellent position to create your first action.
    To test your action, right-click the new file and select Test New Action. The Tester will ask you to enter values for all the action input parameters. It will then produce a report that will display the action result, the output parameter values and all sorts of coding and syntax errors and warnings, if there are any. We recommend fixing all errors and warnings before you pack and install your new action.

    Contact support regarding any question relating to action development or for any problem you came across during the course of installing the plugin, developing the action, testing it and fixing the errors and warnings.

    How to install new actions

    Yes we know - you are probably expecting to receive a complicated manual that tells you to add a JAR to the hundreds of agents that are installed in your organization. Well...no! Our mission is let you create simple and clean deployments, especially so when you deploy one of our products. So here is a simple way to install your new actions:

    1. When the Nolio ASAP 4.0 server is running, open its installation directory. Find the customerActions directory and paste your JAR there. Nolio ASAP will propagate the JAR to all agents.
    2. To have your new action displayed in the Nolio ASAP GUI, select Administration -> Action Inventory in Nolio ASAP main menu.
    3. In the upper right section of the window click the Reload Action icon.
    4. Select the customerActions path and click the Reload Action Libraries icon.

    That's it. Your action is ready. Quite simple isn't it?

    A few "rules of thumb" for action development

    As you can see it's quite simple to develop actions. In this post you'll get to know a little more about the Nolio ASAP framework and what best practices it implies for action development.

    An Action is Stateless

    The guiding principal of the Nolio ASAP framework is that actions are self-sufficient entities with an independent logic. This principal has come to our aid when we sought to provide a convenient and simple API for action developers as well as advanced features for the Nolio agents.

    The implication of this fundamental principal is that your actions should stand on their own. Do not assume that other actions precede or follow it, and do not create static variables that other actions have to read or modify. Do not create "critical segments" that enforce synchronization, and remember that whoever is using the action may insert it anywhere. Remember also that the Nolio ASAP framework can distribute your action and execute it in different processes. The only communication between your action and the outside world should be by means of input and output parameters and by the returned action result.

    Good action encapsulation will enable you to utilize as many framework features as possible, allow you to insert your actions in a large variety of contexts, and be compatible with prior versions of Nolio ASAP. You will also be able to share your actions with the community of Nolio actions developers.

    Parameters Variables and Other Varieties

    For every action that gets executed in a flow a new object is created. As a general rule an executed action passes through the following three phases:

    1. Values are written to input parameters.
    2. Action logic is executed by the executeAction()function.
    3. Values are read from output parameters.

    Phase 2 may occur multiple times during one action execution (for example, when an action fails or when it is resumed after a pause) while phase 1 happens only once. This has the following implications on action development practice:

    • Do not modify input parameters values during execution, as their initial values will be lost if executeAction() is called again.
    • Do not create parameters that simultaneously functions as both an input and an output parameter. That is because the value of input parameters cannot change during execution while the value of output parameters can.
    • Class variables that are not parameters have to be initialized in every call to executeAction(). Do not rely on static initialization because, if the variable value changes during execution and executeAction() will be called again - the value in the second execution will be irrelevant.


    Serialization

     

    As you can see, NolioAction inherits from Serializable. That is because certain actions can run in other processes in addition to the Nolio agent process (due to internal considerations, such as permissions and performance). In this case, ASAP passes the action to these other processes in a Serialized form. For this reason all fields and parameters should also be Serializable. Internal variables that are not Serializable, must be transient.

     

    Transient variables constitute another reason for initializing class variables at the beginning of every call to executeAction() because if transient variables have default values, these values are lost in the serialization.

     

    Resources to learn SDK:

    • SDK Guide
    • eclipse-plugin-for-sdk
    • eclipse-tutorial to video
    • sdk documentation

     

    These SDK resources can be downloaded from the CA Wiki site

    http://wiki.ca.com/display/RA50/CA+Release+Automation+Home

    or

    From the download section of CA support online (support.ca.com)

    or

    Browse the RA installation media to find the SDK resources.

     

    Message was edited by: Mary Greening I fixed the links and email addresses in this document.



  • 2.  RE:Nolio Official KB:Nolio SDK resources

    Posted Aug 03, 2013 05:03 PM
    Hi.
    I did everything described in this post and in the SDK Guide. I opened a new Java project and added a Nolio Action, but in the generated code, all the Nolio classes are unresolved.
    Checking the build-path, it seems that the Nolio libraries point to a wrong file. Both the log4j and the nolio-shared-... point to 'com.nolio.actions_1.0.0.201205240903.jar_sdk' which is indicated as missing.
    What's wrong?

    Assa



  • 3.  RE:Nolio Official KB:Nolio SDK resources

    Posted Aug 04, 2013 08:45 PM
    Hello
    The issue can happened in case eclipse couldn't extract the SDK jars from the eclipse plugin.
    In order to fix it ,you can take the Nolio-shared and log4j jars from the Nolio Center or Agent installation (/lib>

    Thanks
    Jacky


  • 4.  Re: Nolio Official KB:Nolio SDK resources

    Broadcom Employee
    Posted Aug 21, 2014 07:34 PM

    This is an excellent KB article!  Any chance we could get an updated version of the article for 5.0.x? 



  • 5.  Re: Nolio Official KB:Nolio SDK resources

    Broadcom Employee
    Posted Aug 21, 2014 10:42 PM

    Excellent KB on board



  • 6.  Re: Nolio Official KB:Nolio SDK resources

    Posted Aug 22, 2014 11:26 AM

    Hello.

     

    The URLs are not working, because they all point to the old noliosoft.com site.

    Is there any other (online) place where to get them?

    I managed to find the documents on the Support site, but not the video neither the Eclipse Plugin.

    The good news is that all the 4 resources are also present on CA LISA Release Automation ISO file.

     

    Best regards,

    Ricardo Bernardino



  • 7.  Re: Nolio Official KB:Nolio SDK resources

    Posted Aug 26, 2014 02:17 AM

    Hello Ricardo,

     

    Find attached Eclipse Plugin/Tutorial.

     

    You can find under: https://support.ca.com/irj/portal/ProdCDNResults#results      

     

     

     

    Regards,

     

    Ronen

    Attachment(s)



  • 8.  Re: Nolio Official KB:Nolio SDK resources

    Posted Aug 26, 2014 04:12 AM

    Hello.

     

    As I said, I obtained the files for myself from the product DVD.

    I was trying to find out if there was an online where we could download them. Now, there is.

     

    Best regards,

    Ricardo Bernardino



  • 9.  Re: Nolio Official KB:Nolio SDK resources

    Broadcom Employee
    Posted Aug 25, 2014 02:20 PM

    I also feel this is a very good KB. Inline with developing your own action packs have a look at this Free RDK Training post too: FREE web-based self-paced training for CA Release Automation Rapid Development Kit 1.0



  • 10.  Re: Nolio Official KB:Nolio SDK resources

    Posted Mar 11, 2015 01:55 PM

    I am trouble deploying custom Actions. It seems like once my custom action is loaded on Noilo Server and when I tried to execute the agent, it seems to be trying to initialize but not executing. For the custom action, all I did is generate the project and class for Nolio Action and package to a jar file and deploy, Nothing complex about it.