Newer
Older
Dimitrios Giannopoulos
committed
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../../service_ordering/ordering_services/" class="md-nav__link">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Ordering Services from catalogs
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--nested">
Dimitrios Giannopoulos
committed
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Addons
Dimitrios Giannopoulos
committed
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Addons
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../addons/intro/" class="md-nav__link">
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
<label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
<span class="md-ellipsis">
CAMARA
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_2">
<span class="md-nav__icon md-icon"></span>
CAMARA
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../addons/camara/intro/" class="md-nav__link">
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
<span class="md-ellipsis">
Offering CAMARAaaS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../addons/camara/qod/" class="md-nav__link">
<span class="md-ellipsis">
Quality on Demand
</span>
</a>
</li>
</ul>
</nav>
</li>
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
<li class="md-nav__item">
<a href="../../addons/sylva/" class="md-nav__link">
<span class="md-ellipsis">
LF Sylva
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
Design & Architecture
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
Design & Architecture
</label>
<ul class="md-nav__list" data-md-scrollfix>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../../architecture/architecture/" class="md-nav__link">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Architecture
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="../../architecture/messagebus/" class="md-nav__link">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Message bus
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../architecture/osom/" class="md-nav__link">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
OSOM
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../architecture/cridge/" class="md-nav__link">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
CRIDGE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../architecture/metrico/" class="md-nav__link">
<span class="md-ellipsis">
METRICO
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../architecture/oauth/" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Authentication
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_7" >
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_7_7" id="__nav_7_7_label" tabindex="0">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
APIs
Dimitrios Giannopoulos
committed
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_7">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
APIs
</label>
<ul class="md-nav__list" data-md-scrollfix>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="../../architecture/tmfapi/" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
TMF API
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../architecture/nfvapi/" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
NFV API
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="../../architecture/issuemgt/" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Issue management
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../architecture/centrallog/" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Central logging
Dimitrios Giannopoulos
committed
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
</span>
</a>
</li>
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked>
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Contribute
Dimitrios Giannopoulos
committed
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_8">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
Contribute
Dimitrios Giannopoulos
committed
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Developing
Dimitrios Giannopoulos
committed
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Developing
Dimitrios Giannopoulos
committed
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#general-requirements" class="md-nav__link">
<span class="md-ellipsis">
General requirements
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#versionrelease-management" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Version/release management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#getting-started" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#contribute-to-a-subsystem" class="md-nav__link">
<span class="md-ellipsis">
Contribute to a subsystem
Dimitrios Giannopoulos
committed
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#examples-of-developing-on-specific-subsystems" class="md-nav__link">
<span class="md-ellipsis">
Examples of developing on specific subsystems
</span>
</a>
<nav class="md-nav" aria-label="Examples of developing on specific subsystems">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#vnfnsd-catalog-management-and-nsd-deployment-api-service" class="md-nav__link">
<span class="md-ellipsis">
VNF/NSD Catalog Management and NSD Deployment API service
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#vnfnsd-catalog-management-and-nsd-deployment-web-ui-service" class="md-nav__link">
<span class="md-ellipsis">
VNF/NSD Catalog Management and NSD Deployment WEB UI service
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#reach-us" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Reach us
</span>
</a>
<nav class="md-nav" aria-label="Reach us">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#slack" class="md-nav__link">
<span class="md-ellipsis">
Slack
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#e-mail" class="md-nav__link">
<span class="md-ellipsis">
E-mail
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
</ul>
</nav>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#wishlist" class="md-nav__link">
<span class="md-ellipsis">
Wishlist
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../documenting/" class="md-nav__link">
<span class="md-ellipsis">
Documenting
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="../../terminology/" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Terminology
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#general-requirements" class="md-nav__link">
<span class="md-ellipsis">
General requirements
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#versionrelease-management" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Version/release management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#getting-started" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#contribute-to-a-subsystem" class="md-nav__link">
<span class="md-ellipsis">
Contribute to a subsystem
Dimitrios Giannopoulos
committed
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#examples-of-developing-on-specific-subsystems" class="md-nav__link">
<span class="md-ellipsis">
Examples of developing on specific subsystems
</span>
</a>
<nav class="md-nav" aria-label="Examples of developing on specific subsystems">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#vnfnsd-catalog-management-and-nsd-deployment-api-service" class="md-nav__link">
<span class="md-ellipsis">
VNF/NSD Catalog Management and NSD Deployment API service
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#vnfnsd-catalog-management-and-nsd-deployment-web-ui-service" class="md-nav__link">
<span class="md-ellipsis">
VNF/NSD Catalog Management and NSD Deployment WEB UI service
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#reach-us" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Reach us
</span>
</a>
<nav class="md-nav" aria-label="Reach us">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#slack" class="md-nav__link">
<span class="md-ellipsis">
Slack
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#e-mail" class="md-nav__link">
<span class="md-ellipsis">
E-mail
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
</ul>
</nav>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#wishlist" class="md-nav__link">
<span class="md-ellipsis">
Wishlist
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</div>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<h1 id="developing">Developing</h1>
<p>OpenSlice backend services are mainly implemented with Java 17 or above and Spring Boot.</p>
<p>OpenSlice uses various subsystems and depending on the module would you like to work, other subsystems must be present <em>(you can disable them though in the code, e.g. at docker-compose.yaml file)</em>. </p>
<h2 id="general-requirements">General requirements</h2>
<ul>
<li>Docker should be installed in your development environment</li>
<li>Run the core subsystems (see <a href="#contribute-to-a-subsystem">related</a> section)</li>
</ul>
<h2 id="versionrelease-management">Version/release management</h2>
<p>Check <a href="https://nvie.com/posts/a-successful-git-branching-model/">this</a> nice article on how we develop and release versions.</p>
<p>We develop in the <code>develop</code> branch and follow a issue driven development model.</p>
<h2 id="getting-started">Getting Started</h2>
<p>To get the latest development branch, execute:</p>
<div class="language-bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>wget<span class="w"> </span>https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh<span class="w"> </span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>sudo<span class="w"> </span>./deploy.sh<span class="w"> </span>develop<span class="w"> </span><span class="c1">#[or replace develop with another branch name]</span>
</span></code></pre></div>
<p>You may follow the <a href="https://osl.etsi.org/documentation/develop/deployment/">installation process</a>, as described at <code>develop</code> tagged documentation.</p>
<h2 id="contribute-to-a-subsystem">Contribute to a subsystem</h2>
<p>To work on a specific subsystem e.g. <code>org.etsi.osl.tmf.api</code>, you must:</p>
<ol>
<li>
<p>Deploy only the core necessary subsystems through:</p>
<div class="language-bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>sudo<span class="w"> </span>docker<span class="w"> </span>compose<span class="w"> </span>--profile<span class="w"> </span>dev<span class="w"> </span>down<span class="p">;</span>sudo<span class="w"> </span>docker<span class="w"> </span>compose<span class="w"> </span>--profile<span class="w"> </span>dev<span class="w"> </span>up<span class="w"> </span>-d<span class="w"> </span>--build
</span></code></pre></div>
Dimitrios Giannopoulos
committed
<blockquote>
Dimitrios Giannopoulos
committed
<p>Note <strong>--profile dev</strong> that will only deploy the core dependency subsystems, instead of the whole OpenSlice.</p>
Dimitrios Giannopoulos
committed
</blockquote>
<p><em>OR</em></p>
<p>Alternatively, comment out the respective container from the <code>docker-compose.yaml</code> file, so as to deploy the whole OpenSlice, except the subsystem you want to work on, following the provided installation steps.</p>
</li>
<li>
<p>Clone the respective repository, for example: <a href="https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop">https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop</a> (the clone URLs are available at this link)</p>
</li>
<li>
<p>Code! 😊</p>
</li>
</ol>
Dimitrios Giannopoulos
committed
<h2 id="examples-of-developing-on-specific-subsystems">Examples of developing on specific subsystems</h2>
<h3 id="vnfnsd-catalog-management-and-nsd-deployment-api-service">VNF/NSD Catalog Management and NSD Deployment API service</h3>
<p>You need to:</p>
<ol>
<li>